1 / 32

Alejandro Houspanossian Advisor: Prof. Dr. Mariano Cilia April 2006 Tandil, Argentina

Enhancing a BPEL4WS Engine Supporting the Execution of Flexible WS-flows According to the ReFFlow Model. Alejandro Houspanossian Advisor: Prof. Dr. Mariano Cilia April 2006 Tandil, Argentina. Agenda. Introduction Systems Integration and Workflow Technology

alima
Download Presentation

Alejandro Houspanossian Advisor: Prof. Dr. Mariano Cilia April 2006 Tandil, Argentina

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Enhancing a BPEL4WS Engine Supporting the Executionof Flexible WS-flows According to the ReFFlow Model Alejandro Houspanossian Advisor: Prof. Dr. Mariano Cilia April 2006 Tandil, Argentina

  2. Agenda • Introduction • Systems Integration and Workflow Technology • Context: The BPEL model, BPEL engines, etc. • Motivation & Goals • Enhancement Analysis • ActiveBPEL: An Open Source BPEL Engine • Adopting Open Source Software • Our Extensions • Enhancing ActiveBPEL • Conclusions & Future Work Enhancing a BPEL Engine - April '06

  3. Introduction • Support for Automated Business Processes • (Automated trading relationships) • Coordination of heterogeneous and distributed systems • (of different companies) • Coordination (Orchestration) • Workflow Technology • Workflow description languages • 2 level programming model • Workflow engines • Systems Integration • Service Oriented Architectures (SOAs) • Web services (WSs) Enhancing a BPEL Engine - April '06

  4. Our Context: BPEL(4WS) • Business Process Execution Language for Web Services: BPEL(4WS) • Workflows + Web Services • Standard technology • Supported by IBM, MS, SAP, BEA (and others) • (Open) Specification (v1.1) released on 2003 • Business processes • are defined as compositions of Web Services (WS-flows) • Using the BPEL Language (XML-based) • and then deployed into and executed by • BPEL Engines • Applications: Document Processing, Groupware, Healthcare Systems, Supply Chain Management, etc. • Enterprise Application Integration • Business-to-Business Interactions Enhancing a BPEL Engine - April '06

  5. The BPEL Model: an Example <process name="loanApprovalProcess" ...> <flow> <links .../> <receive name="receive1" createInstance="yes" portType="apns:loanApprovalPT" ... </receive> <invoke name="invokeapprover" portType="apns:loanApprovalPT"> </invoke> <invoke name="invokeAssessor" portType="asns:riskAssessmentPT"> ... </invoke> <reply name="reply" portType="apns:loanApprovalPT" ... </reply> <assign name="assign"> ... </assign> </flow> </process> BPEL-Compliant Engine Enhancing a BPEL Engine - April '06

  6. Problems with BPEL WS-flows • Business processes are long running processes • execution can take days, weeks or months… • Once deployed, processes cannot adapt • WS failures • Changing business requirements • BUT no run time flexibility is provided • BPEL does not provide such constructs • Which is required in today’s business context • This is the issue we address in this work Enhancing a BPEL Engine - April '06

  7. Motivation & Goal • The ReFFlow Project (@ TU Darmstadt, Germany): • Dimka Karastoyanova’s Doctoral Dissertation • Research project in the field of e-commerce and B2B • An enhanced BPEL model is proposed • an enhanced BPEL Engine is required … • Goal of this Work • Propose and provide an enhanced BPEL engine to support the execution of WS-flows defined according to the ReFFlow Model Enhancing a BPEL Engine - April '06

  8. Alternative Approaches • Develop a BPEL engine from scratch • Workflow engines are complex systems • Its development is (time-)expensive • Enhance an existing BPEL engine • Many existing BPEL engines • Some of them are Open-Source • Trend towards open-source software (OSS) • academic, governmental and even industrial projects • can be modified and extended as desired • reuse !! Enhancing a BPEL Engine - April '06

  9. Enhancing a BPEL engine • Which engine to enhance? • Twister, ActiveBPEL, … • Which are the enhanced features? • New language constructs, status dissemination • How to implement the extensions? • According to standards and current trends • How to integrate the extensions into an standard BPEL engine? • Flexible approach required Enhancing a BPEL Engine - April '06

  10. 100% BPEL v1.1 compliant Open-Source Java Project Robust product, strongly supported by a commercial company Aprox. 700 java classes Based on servlet containers and app. servers v1.0 released in October 2004 Active development, stable releases once or twice a month Bug corrections Feature Enhancement Non structural changes ActiveBPEL: an Open-Source BPEL Engine We decided to adopt ActiveBPEL Understand and Extend OSS Enhancing a BPEL Engine - April '06

  11. Enhanced Features • Which are the enhancements? • Find and bind • Evaluate • Attaching loosely-coupled clients Enhancing a BPEL Engine - April '06

  12. Fault ! The find-and-bind Mechanism 4 – Select WS 1-On fault detected Find-and-Bind (Core functionality) 5-Replace WS 2-Find Compliant Services 3-List of Matching Services Enhancing a BPEL Engine - April '06

  13. The find-and-bind Mechanism* (Cont.) <?xml version="1.0" encoding="UTF-8"?> <process name="MyLoanBusinessProcess"...> ... <invoke partnerLink=“assessor" portType=“asns:riskAssessmentPT” operation=“assess” inputVariable=“assessmentRequest” outputVariable=“assessment”> <find_bind policy_id="PickOne"/> </invoke> ... </process> find-and-bind (Core) Using WSDL in UDDI TN UDDI Spec. WSDL Spec. UDDI4J Public UDDI Registry • * Implementation Presented in the 9th IEEEInternational Enterprise Distributed Object Computing Conference (EDOC 2005), Enschede, The Netherlands, September 2005: Karastoyanova, Houspanossian, Cilia, Leymann, Buchmann Enhancing a BPEL Engine - April '06

  14. The Evaluate Mechanism <?xml version="1.0" encoding="UTF-8"?> <process name="MyCurrencyConverterBP"...> ... <invoke partnerLink="rate" portType="ws1:MyCurrencyRateService" operation="getRate" inputVariable="rateRequest" outputVariable="rate"> <evaluate activated="no" changeType="portType/operation" substitute="newPortType/newOperation" policy_id="PickOne"/> </invoke> ... </process> PortType A <evaluate> PortType B Enhancing a BPEL Engine - April '06

  15. The Evaluate Mechanism (Cont.) Enhancing a BPEL Engine - April '06

  16. Attaching Loosely Coupled Clients Monitoring BPEL events Extended BPEL engine BPEL engine (open-source) Auditing … Observe 1:N Listen Disseminate Enhancing a BPEL Engine - April '06

  17. Enabling the Attachment of Loosely Coupled Clients • This extension must: • observe state changes (BPEL execution) • process definitions are deployed and undeployed • process instances are created, terminated, suspended and resumed • process activities change their status (ready to execute, executing, completed or faulted) • but also process-related errors and exceptions while executing • and disseminate events • Clients listen to (some of) these events • Process monitors, auditing tools, BI tools Enhancing a BPEL Engine - April '06

  18. Publishing Events as JMS Messages • Publish/Subscribe-based solution: • - it decouples consumers and producers of events/messages • - the number of participants can vary dynamically • - consumers only receive the messages of their interest Enhancing a BPEL Engine - April '06

  19. How to Integrate Our Extensions into ActiveBPEL? • “Observe” is still pending! • Detect state changes (source code). For instance: • Processes are created with the execution of: private ProcessInstance ProcessMgr.createProcess(data); • Remote services are invoked through: private IResult InvokeHandler.invokeWS(port); • … • Many state changes to detect • Many classes involved! • Integration with existing code required! Enhancing a BPEL Engine - April '06

  20. Hand-coded Integration (OOP) • Modify engine’s sources to reference our extensions • Many classes involved • ProcessMgr.java • InvokeHandler.java • … • errors and exceptions? • … • Difficult to maintain! • New versions of ActiveBPEL every month! • Re-implementation costs too high! Points of observation BPEL Engine (standard) + Our extensions Enhancing a BPEL Engine - April '06

  21. (Modifying) Open-Source Software (OSS) • We do not control the evolution of ActiveBPEL!! • How to maintain our modifications across evolving releases? • Minimize re-implementation costs • Smoothly integration required! • (Our extensions can not be added to ActiveBPEL official code baseline) • ActiveBPEL is a standard BPEL engine • We implement an enhanced BPEL engine!! • OSS is a real option for academic, gov., and even industrial software projects • OSS can be modified and extended as desired • BUT • Managing OSS evolution is difficult • Re-implementation costs are high Enhancing a BPEL Engine - April '06

  22. Aspect-Oriented Programming (AOP) • enhancedSystem = baseSystem + aspects • base system and aspects are developed independently and then woven together • Weaving process (at compile, load, or run-time) • Modify the behaviour of the base system without changing its source code ;-) • AOP is appropriate when there is an aspect (concern) of a system that *: • crosscuts the structure of several objects or operations • is beneficial to separate out • Benefits: • good modularity: • easier maintenance and evolution • easier to reason about, debug, change • more reusable * from: “Aspect Oriented Programming with AspectJ”™, the AspectJ.org team. Enhancing a BPEL Engine - April '06

  23. Status Publication AOP-based Integration disseminate • Our functionality as aspects of the base system • There is no explicit reference to our code in the BPEL engine observe • We keep different things separated • (our concerns, and Active-BPEL development team’s concerns) Enhancing a BPEL Engine - April '06

  24. AOP-based Integration (cont.) • Define Pointcuts (points in the engine’s execution flow to observe) • process creation pointcut processCreation call( private ProcessInstance ProcessMgr.createProcess(data) ); • Web Service (WS) invocation pointcut invokeService call( private IResult InvokeMgr.invokeWS(port) ); • Define Advices (actions to execute when pointcuts are reached) • afterprocessCreation do: disseminate(processCreatedEvent); • before invokeService do: disseminate(invokingWSEvent); Observation (glue code) Our extension Enhancing a BPEL Engine - April '06

  25. An (AspectJ) Aspect: EventPublishing public aspect EventPublishing { ... pointcut fireEvent(IAeEngineEvent event): ( call( void IAeBusinessProcessEngine.fireEngineEvent(IAeEngineEvent)) && args(event) ) ; after (IAeEngineEvent event): fireEvent(event) { ReFFlow.disseminate(event); } ... } Observation (glue code) Our extension Enhancing a BPEL Engine - April '06

  26. Integrating ReFFlow Extensions Detect fault Hot fix Find-bind • We defined aspects to integrate: • the find-and-bind • the evaluate mechanism • BPEL engine code is not modified! • Engine behavior is modified to react to faults Enhancing a BPEL Engine - April '06

  27. Evolution & Maintainability • We have worked with many releases of ActiveBPEL: • No dramatic (structural) changes observed • Bug-fixes, new features • By applying AOP: • Often no changes to our work were needed • Automatic weaving! • Rarely the integration points needed to be adjusted • which is not difficult • good locality of the changes -> the aspects (pointcuts) Enhancing a BPEL Engine - April '06

  28. Summary • We provided an implementation of the ReFFlow model • we additionally contributed with new extensions • State dissemination • we incorporated the extensions into a BPEL-compliant engine. • Instead of developing a system from scratch, we adopt an existing OSS • the resulting system has built-in support for the ReFFlow model • We combined Open-Source Software with Aspect-Oriented Programming • We applied AOP to extend an evolving open-source system • By adopting AOP, we add new behavior to the base system without modifying its source code • This approach has shown to be highly maintainable • We addressed one of the major drawbacks related to the adoption and extension of open-source software: • i.e. managing open-source software’s evolution Enhancing a BPEL Engine - April '06

  29. Conclusions • An enhanced BPEL engine has been provided according to the requirements of the ReFFlow Project • Our extensions (developed as aspects of the base system) have been successfully applied to evolving releases of the open-source system • By applying AOP, we address one of the major challenges related to the adoption and extension of OSS (i.e. managing OSS’s evolution). • Our contributions were published in: • A. Houspanossian and M. Cilia. Extending an Open-Source BPEL Engine with Aspect-Oriented Programming. In Proc. of the Sixth Argentine Symposium on Software Engineering ASSE 2005 (JAIIO 34). Rosario, Argentina, August 2005. • D. Karastoyanova, A. Houspanossian, M. Cilia, F. Leymann, and A. Buchmann. Extending BPEL for Run Time Adaptability. In Proc. of the 9th IEEE International Enterprise Distributed Object Computing Conference (EDOC 2005). Enschede, The Netherlands, September 2005. Enhancing a BPEL Engine - April '06

  30. Future Work • Business Activity Monitoring Tools • Stream Processing Systems • Security Aspects on Pub/Sub Systems • Scopes • Content-based Routing • XML routing • Enterprise Service Bus • event-driven SOA • the coming integration platform • Reliable, secure Web Services • Aspect-oriented Software Development • Aspect-oriented Design, supporting tools • … Enhancing a BPEL Engine - April '06

  31. Enhancing a BPEL4WS Engine Supporting the Execution of Flexible WS-flowsAccording to the ReFFlow Model Thank you! +++ A. Houspanossian, M. Cilia {ahouspan,mcilia}@exa.unicen.edu.ar +++

  32. References • BPEL Specification • http://ifr.sap.com/bpel4ws/ • Aspect-Oriented Software Development • http://aosd.net • AspectJ • www.aspectj.org • ActiveBPEL Engine • www.activebpel.org • The ReFFlow Project • www.dvs1.informatik.tu-darmstadt.de/research/refflow/ Enhancing a BPEL Engine - April '06

More Related