Business Process Integration Using UML and BPEL4WS SI-SE 2004 University of Zurich March 18-19, 2004 Sridhar Iyengar Distinguished Engineer, IBM Rational Software [email protected] Copyright 2004, IBM Corporation Slide 1 Software Development & Integration A ‘team sport’ that IBM Rational enables Analyst Business Business integration Integration Model, simulate & monitor business processes Architect Model Applications Documents & data Developer Visually construct, program, and generate code Adopt best practices, track project status, Manage requirements, assets, and quality Collaboration & Information Management Copyright 2004, IBM Corporation Slide 2 Tester Test code Application Monitoring and Deployment “Components – The Future of …” Q ‘Components’ – Too many definitions , therefore different types of components – Java Beans, EJBs, Eclipse plug-ins, CORBA components, Web Services (W3C, OSGi…), Classes (C++, Eiffel, Java, UML1, UML2), Structured Classes (UML2), Component (UML2) Q Important to discuss the Architectural framework (J2EE, .Net, Web Services AF, MDA) in which the ‘components’ are defined, deployed, used – Can’t wire a EJB component and a COM component WITHOUT defining the interoperability protocol (hopefully via Web Services) Q Component Assembly (intentional wiring of components to compose coarser grained components) and composition is essential Industry needs consistent definitions and implementations if the dream of reuse thru component assembly is realized Work In Progress (Eclipse, J2EE, Web Services, .Net, MDA components) Copyright 2004, IBM Corporation Slide 3 What this session is & isn’t about Q We will cover – Motivation for the UML2BPEL work (i.e why this is important) – An overview of recent work on ‘bridging’ the OMG MDA (Model Driven Architecture) work to the SOA and Web Services work at W3C and OASIS – Relationship between Components and Web Services – Some UML patterns for modeling Web Services & Services Oriented Architecture – Progress in OMG on mapping UML 2.0 to BPEL4WS & BPMN – The profile is based on BPEL4WS 1.0 (this is being updated to 1.1) Q We will NOT cover – – – – Q Details of UML or UML metamodel (we will show by example) Details of MDA Details of BPEL4WS and rest of the Web Services Stack Or propose YACM (Yet Another Component Model) Please hold questions to the end – we have quite a bit to cover! Copyright 2004, IBM Corporation Slide 4 Business Models, Processes and Rules Context for ‘Business Process Integration’ Managed Managed Processes Processes Business Processes Managed Managed Rules Rules Business Rules This Session Business Transformation Business Models, Artifacts Business Performance Managed Managed Entities Entities Copyright 2004, IBM Corporation Perf Perf Measures Measures Slide 5 Solving the Integration Problem What is needed? Q Q Q Q Short Answer ‘was’ XML and HTTP ala SOAP! Slightly longer answer is SOAP, WSDL, UDDI Even longer answer is SOAP, WSDL, UDDI, BPEL4WS, XQuery, WS* standards… with J2EE, .Net etc. The real answer is : many of the buzzwords above are fine, but – We need to think and build software & standards like engineers – Where is the process, methodology and architecture, discussion of the full application lifecycle? – A focus for OMG MDA and how it bridges modeling, methods, tools and middleware technologies – Somehow we need to simplify this complex mess! Q Q The OMG Architecture Board, W3C Web Services Architecture WG, OASIS TCs have started to look at this issue from different but complementary perspectives Need to form ‘bridges’ between the architectural communities & standards groups that are addressing piece parts of solution Copyright 2004, IBM Corporation Slide 6 Focus on Architecture is Essential Use componentoriented and service-oriented architectures Model visually Application Modeling Business Modeling Business applications Focus on architecture to… Data Modeling Adapt quickly to changing business needs Create strategic advantage Are reliable, scalable and manageable Design for change Reduce complexity; work at the right level of abstraction Ensure architectural integrity and ultimate quality Copyright 2004, IBM Corporation Slide 7 Characteristics of Service Oriented Architecture Reduced interdependency between software assets. Standards Based Allows individual software assets (components) to become building blocks that can be reused in developing other applications (application assembly & composition). Shared services Loosely Coupled Service Oriented Architecture Federated Control Federated and policy based security, management and deployment. Copyright 2004, IBM Corporation Slide 8 Leverages open standards to represent software assets as services (XML, SOAP, WSDL, UDDI, UML, RAS…). Structure, Relationships, Composition, Semantics, Usage Guidelines Service Oriented Architecture & Component Based Development Q Secure, Reliable, Transacted Web Services – http://www-106.ibm.com/developerworks/webservices/library/ws-securtrans/ Q Using Service Oriented Architecture & Component Based Development to build Web Services Applications – http://www-106.ibm.com/developerworks/rational/library/510.html Q Modeling XML Applications with UML – http://www.xmlmodeling.com/DesktopDefault.aspx Q From UML to BPEL – http://www-106.ibm.com/developerworks/library/ws-uml2bpel/?ca=dnt-436 Q OMG Business Process Definition Metamodel RFP – http://www.omg.org/techprocess/meetings/schedule/Business_Proc_Def_Metamod_RFP .html Q Web Services best practices – http://www-106.ibm.com/developerworks/edu/ws-dw-wsbestprofil-i.html Copyright 2004, IBM Corporation Slide 9 An Overview of OMG Model Driven Architecture An Architectural Style & a set of standards that enables the use Industry Standard Models, Metadata, Mappings (Patterns & Transformations) for building & integrating software. MDA allows architects & developers to productively design, build, integrate and manage applications throughout the application lifecycle . MDA: Model Driven Architecture Q www.omg.org/mda Q An integration of best practices in Modeling , Middleware, Metadata and Software Architecture Model Driven (UML, MOF, CWM…) – Platform Independent Business Models (PIM) – Platform Specific Models (PSM) – Mappings : PIM <==> PSM, PSM<==> PSM (Relative term!) Q Q Key Concept: Models & Model Transformations Based on standard Metadata Models Metadata Driven (MOF, XSD, XMI) Key Benefits – Improved Productivity for Architects, Designers, Developers and Administrators – Lower cost of Application Development and Management – Enhanced Portability and Interoperability – Business Models and Technologies evolve at own pace on platform(s) of choice Copyright 2004, IBM Corporation Slide 11 Q MDA as an ‘Architectural Style’ for Model Driven Integration Understand the problem domain (technology or business) Q Model the problem domain – – – – Q Use UML for the visual modeling, analysis & design of meta model Use a UML compliant tool/repository that supports XMI import/export Define Domain Specific Modeling Languages (aka MetaModels) as needed ‘In Progress’ : Make UML & MDA more data/information/web services modeler friendly, provide Business/IT visualization – not just ‘OO/CBD’ Formally represent the metamodel semantics using MOF – Simple class modeling is all you need to know – OCL (Object Constraint Language) can capture additional semantics – Reverse engineer existing DTD, XSD, XMI, Java to MOF (jump start) Q Use Standard transformation (mappings) patterns for – Metadata Interchange (XMI – MOF to XML, DTD, XSD) – Metadata Interfaces (JMI – MOF to Java, MOF to WSDL*, MOF to IDL etc.) Q Use open source meta modeling frameworks for metadata management – Eclipse EMF : www.eclipse.org/emf – Netbeans MDR : www.netbeans.org Q Summary : Understand,Copyright Model, Map and Manage metadata to integrate 2004, IBM Corporation Slide 12 Model Transformations using OMG Model Driven Architecture (MDA) Business IT Mappings Mappings PIM PIM -- PSM PSM Computation Computation Independent Independent Business Business Model Model Auto Color : String Door : Integer Engine : Integer XMI XMI XSD,DTD XSD,DTD Engine Cyl : integer Fuel : String Comp : Float Computation Computation Independent Independent Model Model View View MOF, MOF, JMI JMI Platform Platform Specific Specific Design Design and and Implementation Implementation Model Model Java, Java, C# C# (PSM) (PSM) XML XML Doc. Doc. (PSM) (PSM) Class ClassAuto Auto {public {public String String color; color; public int Door; public int Door; public publicint intEngine} Engine} <Auto> <Auto> <Color> <Color> Red Red </Color> </Color> <Door> 4 <Door> 4 </Door> </Door> <Engine> <Engine> 11 </Engine> </Engine> </Auto> </Auto> XML XML DTD, DTD, Schema Schema (PSM) (PSM) <!Element <!Element Auto Auto (Color*, (Color*, Door*, Door*, Engine*)> Engine*)> JOLAP, JOLAP, JDM JDM UML4EJB… UML4EJB… ‘Architecture/Platform’ Specific Models (PSM) ‘Architecture/Platform’ Independent Models (PIM) Mappings to UDDI, WSDL & BPEL4WS being defined Copyright 2004, IBM Corporation Slide 13 Choice of Modeling Paradigms Adopt the right modeling paradigm for your needs UML & MDA Standards Abstraction/ productivity Supports Supports multiple: multiple: Model Model Development Development languages languages Operating Operating environments environments Skill Skill levels levels Modeling Modeling paradigms paradigms Model Model Code Model Model Code Code Code Code Code only Executable Models Model Transformations Pattern-Based Development Roundtrip Engineering Code Visualization Model-Driven Model-Driven Development Development Scope Copyright 2004, IBM Corporation Slide 14 Key MDA Standards UML XMI MOF www.omg.org www.eclipse.org/emf www.eclipse.org/uml2 www.eclipse.org/xsd Web Services Overview Web services enables application/business process/ people interaction Business Process Web services enables application/business process/ people interaction Management Simple Object Access Protocol ENHANCE (SOAP) - Connect the service User Interaction Reliable messaging Quality of Service HTTP Customers, business partners, suppliers, employees Web Services Description Language (WSDL) - Describe what the service is and how to use it Universal Description, Discovery, and Integration (UDDI) - Find the service Copyright 2004, IBM Corporation Slide 15 Q Q Q Q Q ¾ What are the hot standardization areas today in web services? Security Program well underway in OASIS, uncontroversial. WSFederation is well received. User Experience WSRP, WSIA Reliability Two new specifications and a Reliability Roadmap paper published March, 2003. Management Enterprise Business Processes WSDM, WSLA Business Process Choreography and Transactions Specs published August, 2002, convergence of work from IBM and Microsoft, now in OASIS. Management Work is early stage, but good coordination among OASIS, W3C, GGF, and DMTF. Interoperability WS-I.org is the place to be and the work to watch. User Experience WSRP is an OASIS TC specification with many vendors announcing product. Copyright 2004, IBM Corporation Slide 16 Transactions BPEL4WS WS-Transaction, WS-Coordination WS-Addr Reliability WS-RM, HTTPR Security & Reliability WS-Security * Security SAML. XML S & E Discovery UDDI WS-Inspection Publication Connection Description UDDI WS-Inspection Messaging SOAP WS-Attachements WSDL Web Services : The ‘Standards Stack’ Evolves in W3C, OASIS and WS-I Specific Composable Services and Processes (ebXML, OAG, RosettaNet PIP...) Service Composition & Flow (BPEL4WS..) Security Reliable Messaging Transactions Domain Standards Service Composition Service Assurances XSD, WSDL, UDDI, WS-Policy Description XML, SOAP, WS-Addressing Messaging Network (HTTP, HTTPS, SMTP…) Transports Not intended to be viewed as a ‘software stack’ Copyright 2004, IBM Corporation Slide 17 Modeling & Design for Web Services Q UML can be used to model Web Services – Web Service Operations (WSDL Operations) as UML Operations – Groups of Web Service structures Requests (WSDL PortTypes) as UML Interfaces or Classes – XML Schemas using UML Class Diagrams – Web Services data structures using UML Class Diagrams – Web Services flow (E.g.:BPEL4WS) using UML Activity Diagrams – UML2 Structured Classes & Components add additional support for Architectural Modeling Q MOF and XMI can be used to define standard transformations from models to XML schemas, DTDs, Documents – www.eclipse.org/emf, xsd, uml Q Q But standard metamodels, transformations, UML profiles etc, would be useful – http://www.omg.org (MOF, XMI, UML and CWM specs) – XMI - Mappings from MOF/UML to XML DTD, XML Schema Using Service Oriented Architecture & Component Based Development to build Web Services Applications – http://www-106.ibm.com/developerworks/rational/library/510.html – Modeling XML applications with UML by David Carlson • http://www.xmlmodeling.com Q UML to BPEL4WS mappings Q From UML to BPEL – http://www-106.ibm.com/developerworks/library/ws-uml2bpel/?ca=dnt-436 Copyright 2004, IBM Corporation Slide 18 A peek at integrating Business Processes using UML and BPEL4WS See the BPEL4WS spec for the examples, BPEL4WS syntax See OMG UML spec for details on UML Read many popular books , use tools Possible standard UML profile for BPEL BPEL4WS tools still emerging Update : BPD Profile submitted to OMG Mapping to BPEL4WS 1.1 in progress Copyright 2004, IBM Corporation Slide 19 Business Process Execution Language for Web Services (BPEL4WS) Q Q Q Q The Business Process Execution Language for Web Services (BPEL4WS) provides an XML notation and semantics for specifying business process behavior based on Web Services. A BPEL4WS process is defined in terms of its interactions with partners. A partner may provide services to the process, require services from the process, or participate in a two-way interaction with the process. A short summary of research underway at IBM is described to illustrate how MDA and models can be used for business process integration BPEL4WS products are beginning to show up in the market – more in 2004 (tools and engines) Submitted to OASIS by IBM, Microsoft, BEA, SAP & Siebel Copyright 2004, IBM Corporation Slide 20 Web Services, Components & Services Orchestration Q Q Components are implemented using J2EE, .Net, CICS transactions… Components support defined extension points (think Eclipse Plug-ins, UML2 Components and Ports) – Provided Interfaces (Services offered to other components) – Required Interfaces (Services required by this component) Q Components can be ‘wired’ together explicitly to assembly ‘coarser grained’ components – ‘Connectors’ in UML2 (influenced by ACME, UML4RT…) – ‘Service references’ in BPEL that allows Integration partners to refer to each other (‘soft references’) Q Components can be orchestrated at runtime (role of BPEL) Copyright 2004, IBM Corporation Slide 21 Unified Modeling Language (UML) Q Visual Modeling Language for analysis, design and construction of software – Widely used in the software architecture and ‘lead developer’ community for component based development – UML ‘Profiles’ are used to customize UML to a specific domain Q Q Q UML 1.0 became a standard in 1997 and unified several leading OO modeling notations (Booch, Rumbaugh, Jacobson, Mellor….) – UML 2.0 was just adopted The UML metamodel (model of UML) is defined using a meta language called Meta Object Facility & using UML notation UML models are serialized as XML documents based on UML 1.4 DTD or UML 2.0 XSD – XML Metadata Interchange (XMI) provides design patterns that automate model and metadata serialization Q UML, MOF, XMI are OMG MDA standards Copyright 2004, IBM Corporation Slide 22 Why map UML to BPEL4WS? Copyright 2004, IBM Corporation Slide 23 ‘Business Integration Profile’ using MDA and Web Services «mdx» XDE Model «mdl» Rose Model /Unisys XMI 1.3 Export /XDE XMI 1.x Export convert to UML1.4 convert to UML1.4 «XMI2» UML 1.4 Model UML 1.4 XMI 2.0 Mapping Rules UML1.4 to Web Services XSD Schema WSDL Definition BPEL Process XSD 1.0 WSDL 1.1 BPWS4J Copyright 2004, IBM Corporation BPEL4WS 1.0 BPEL run time Slide 24 Profile Principles Q Q Q Q Q Q The profile should cover broadly the same set of concepts as BPEL Support the concepts of XSD and WSDL that are required to support BPEL, but don’t cover the whole of service oriented architecture in this profile Standard UML terminology for concepts is used where available, e.g. Interface rather than PortType Where UML 2 will have more direct support for concepts then the profile adopts a UML 2 style (e.g. introducing a notion of ports) In areas of UML that are better defined in UML 2 then the UML 2 semantics is assumed It should be possible to create models conforming to the profile using multiple UML editors, specifically Rose and XDE Copyright 2004, IBM Corporation Slide 25 Purchase Order (PO) Process Q Q Q Q Q Q Customer sends purchase order to purchase service provided by PO process PO process asks for initial price, shipping information, and production schedule Shipping requestor determines where order items will be obtained and creates source and destination shipping information When price and shipping information are available, invoice provider calculates final price and sends invoice to PO process The PO process asks a scheduling provider to determine when each order item will be produced and instructs the scheduling provider to send a schedule to the customer Finally, the PO process replies to the customer with an invoice Copyright 2004, IBM Corporation Slide 26 The PO Process in BPEL4WS Copyright 2004, IBM Corporation Slide 27 BPEL Process as a Process Component & BPEL partners as ports – UML 2.0 Q This is the UML 2 version, we approximate this in UML 1.4 (more detail later) «process» PurchaseOrder invoiceProvider shippingProvider customer schedulingProvider Copyright 2004, IBM Corporation Slide 28 BPEL Partners as Ports – UML 1.4 Purchase PurchaseOrderProcess «role» Purchase::PurchaseService - customer «port» «process» PurchaseOrder PO : PO shippingInfo : ShippingInfo shippingRequest : ShippingRequest shippingSchedule : ShippingSchedule invoice : Invoice «role» Invoice::InvoiceRequester «port» «port» «port» - invoiceProvider - shippingProvider - schedulingProvider «role» Shipping::ShippingRequester Copyright 2004, IBM Corporation Slide 29 «role» Scheduling::SchedulingRequester UML2 Activities: New Semantic Foundation Q Petri Net-like foundation (vs. statecharts) enables PrePre- and and postpostconditions conditions – Un-structured graphs (graphs with “go-to’s”) – Richer models of concurrency Parameter Parameter Partition Partition Input Input pin pin ProcessOrder RequestedOrder:Order <<precondition>> Order com plete <<postcondition>> Order entered London (Order Processing) [order accepted] Requested Order Receive Order [order rejected] Send Invoice Bill Order Skip Order M ake Paym ent Accept Paym ent Close Order Toronto (Payment Processing Invoice Copyright 2004, IBM Corporation Slide 30 Purchase Order Process customer «receive» receivePO invoiceProvider «invoke» initiatePriceCalculation «invoke» sendShippingPrice «receive» receiveInvoice schedulingProvider «assign» initialiseShippingRequest «invoke» requestScheduling shippingProvider «invoke» requestShipping «receive» receiveSchedule «invoke» sendShippingSchedule «reply» returnInvoice Partitions correspond to ports (partners) Copyright 2004, IBM Corporation Slide 31 Copyright 2004, IBM Corporation Slide 32 Data and Message Types «external» SNS «data» Invoice «data» CustomerInfo + customerInfo «data» Schedule «data» ShippingInfo «data» PurchaseOrder «data» ShippingRequest + purchaseOrder Purchase «messageContent» PO Copyright 2004, IBM Corporation «data» OrderFaultType Slide 33 Interfaces «interface» PurchaseOrder sendPurchaseOrder ( [in] po : PO ) : Invoice «interface» ComputePrice «interface» InvoiceCallback initiatePriceCalculation ( [in] po : PO ) sendShippingPrice ( [in] shippingInfo : ShippingInfo ) sendInvoice ( [in] invoice : Invoice ) «interface» ShippingCallback «interface» Shipping sendSchedule ( [in] schedule : Schedule ) requestShipping ( [in] shippingRequest : ShippingRequest ) : ShippingInfo «interface» Scheduling requestProductionScheduling ( [in] shippingInfo : ShippingInfo ) sendShippingSchedule ( [in] schedule : Schedule ) Copyright 2004, IBM Corporation Slide 34 Protocols Q Q Protocols are defined independently of the processes that use them Roles provide ‘port types’ – groupings of provided and required interfaces that must be supported through the same port «protocol» Purchase «role» PurchaseService PurchaseOrder «use» «protocol» Scheduling «role» PurchaseRequester «role» SchedulingRequester «use» «protocol» Invoice «role» InvoiceRequester «use» ComputePrice Scheduling «role» SchedulingService «protocol» Purchase::Shipping «role» InvoiceService «role» ShippingRequester «use» Shipping ShippingCallback«use» InvoiceCallback «use» Copyright 2004, IBM Corporation Slide 35 «role» ShippingService Copyright 2004, IBM Corporation Slide 36 Mapping: Process «process» <process LoanApprovalProcess::LoanApproval abstractProcess="no" + request : CreditInformation containerAccessSerializable="no" + riskAssessment : RiskAssessmentDetails enableInstanceCompensation="no" + approvalInfo : Approval + error : LoanRequestError name="LoanApproval" suppressJoinFailure="yes" targetNamespace="http://www.bpel-examples.ibm.com/ LoanApproval/LoanApprovalProcess/LoanApproval.bpel"> ... <containers> <container messageType="LoanDefinitions:CreditInformation" name="request"/> <container messageType="LoanAssessor:RiskAssessmentDetails" name="riskAssessment"/> <container messageType="LoanApprover:Approval" name="approvalInfo"/> <container messageType="LoanDefinitions:LoanRequestError" name="error"/> </containers> ... </process> Copyright 2004, IBM Corporation Slide 37 Mapping: Partners «role» LoanApproval::Approver + customer «port» «process» LoanApproval + request : CreditInformation + riskAssessment : RiskAssessment... + approvalInfo : Approval + error : LoanRequestError «port» «port» + assessor + approver «role» RiskAssessment::AssessmentRequester «role» LoanApproval::ApprovalRequester <partners> <partner myRole="Approver" name="customer" serviceLinkType="LoanApprovalProtocols:LoanApproval"/> <partner name="approver" partnerRole="Approver" serviceLinkType="LoanApprovalProtocols:LoanApproval"/> <partner name="assessor" partnerRole="Assessor" serviceLinkType="LoanApprovalProtocols:RiskAssessment"/> </partners> Copyright 2004, IBM Corporation Slide 38 Mapping: Assign Activities «assign» assign Entry/approvalInfo/accept := 'yes' <assign name="assign"> <copy> <from expression="'yes'"/> <to container="approvalInfo" part="accept"/> </copy> </assign> Copyright 2004, IBM Corporation Slide 39 Copyright 2004, IBM Corporation Slide 40 Copyright 2004, IBM Corporation Slide 41 UML to BPEL Mapping model R ule c ontex t : U M L2B P E LR ec onc iler < < datat y pe> > U M L2B P E LR ec onc iler < < javac las s > > c om. ib m .m da .bpel .u m l2bpel.U M L2B P E LR ec onc ile r m apS ourc e2Target(s ourc e : E O bjec t) m apTarget2S ourc e(target : E O bjec t) addS ourc eA s s oc iations () addTargetA s s oc iations () + s c h ema XS DS c h ema (f ro m x sd ) 1 1 U M LP ac k age P ac k age2W S R ule + pac k age 1 D efinition + definition (fro m M o d e l _ M a n a g e m e n t) (fro m w sd l ) 1 1 + pac k ageR ule 1 1 1 + pac k ageR ule C las s ifier2W S R ule 0..* + c las s ifierR ules + portTy pe + interfac e Int erfac e (fro m C o re ) 1 P ortTy pe Interfac e2W S R ule (fro m w sd l ) 1 1 + c om plex Ty pe XS D C om plex T ypeD efinition (fro m xsd ) 1 1 U M LC las s + um lC las s (fro m C o re ) is A c tive : E B ool eanO bjec t U M LC las s 2W S R ule 1 1 1 (f ro m xsd) + ele m ent D ec larat io n 0..1 + c las s R ule E num eration2W S R ule E num eratio n + enum eration XS D E lem entD ec laration 0..1 1 {< < entity , c ontrol> > } (fro m C o re ) + elem en t 1 + s im p leTy pe XS D S im pleTy peD efinition (f ro m xsd) 1 1 1 + a tt ri bute Rules A ttribute + attribute A ttribute2W S R ule (fro m C o re ) 1 { m ult ip li c ity = 1} (fro m C o re ) + as s oc iation + attributeD ec laration 1 XS D At tr ib uteD ec l arati on 1 (fro m x sd ) 0..1 + as s oc iationR ules A s s oc iati on 0..* 1 0..* A s s oc iation2W S R ule 1 Copyright 2004, IBM Corporation Slide 42 + attribu teD ec lara tion UML2BPEL Components – All these are EMF based Eclipse plug-ins! Q Q Q Q Q Eclipse infrastructure : www.eclipse.org EMF component : www.eclipse.org/emf XSD component : www.eclipse.org/xsd BPEL component : Internal IBM metamodel (for tools) and BPEL engine (BPWS4J) Will use UML2 component : www.eclipse.org/uml2 – The proof of concept of EMF UML 1.4 implementation was a precursor to the current UML2 project Q Q WSDL component : Internal IBM metamodel UML2BPEL mapping component : Internal IBM metamodel component (mapping component) Copyright 2004, IBM Corporation Slide 43 UML2BPEL has been Submitted to OMG ( IBM, Unisys, BEA…) Notation(s) UML UML2.0 2.0 BPMN BPMN Other… Other… Including domainspecific languages mapped to Business BusinessProcess ProcessDefinition DefinitionMetamodel Metamodel Metamodel Information Information Process Process Organization Organization UML2 UML2 mapped to Runtime J2EE J2EE BPEL4WS BPEL4WS Copyright 2004, IBM Corporation Other… Other… Slide 44 Modeling for Web Services - Recap Q UML, MOF and XMI can be used as-is to model & manage Web Services – Web Service Operations (WSDL Operations) are UML Operations – Groups of Web Service structures Requests (WSDL Ports) as UML Interfaces or Classes – XML Schemas using UML Class Diagrams – Web Services data structures using UML Class Diagrams – Web Services flow (E.g.:BPEL4WS) using UML Activity Diagrams Q But some standard transformations, UML profiles etc, would be useful to enable tools interoperability – http://www.omg.org (MOF, XMI, UML and CWM specs) – XMI - Mappings from MOF/UML to XML DTD, XML Schema – Modeling XML applications with UML by David Carlson • http://www.xmlmodeling.com – UML to BPEL mappings (UML profile for BPEL) - Proposed standard – OMG Business Process Definition Metamodel RFP – OMG Business Rules RFP Drafts : Rule Expression Language, Rule Management… Copyright 2004, IBM Corporation Slide 45 IBM will integrate its tools portfolio using a set of shared Metamodels and Profiles based on the Eclipse platform (as plug-ins) The UML 2.0, XSD, WSDL, BPEL4WS and related transformations are an integral part of our software development platform Copyright 2004, IBM Corporation Slide 46 Wrap Up Q Most customers have and will continue to have components and information/data from multiple sources and formats that need integration Q Web Services promise to be a key enabler for application integration and business process integration – Embraced by all industry players – Pragmatic loosely coupled integration – Promise of ubiquitous availability – Modeling and Web Services on a convergence path • OMG MDA, OASIS ebXML UMM, BPMN Q Model Driven Architecture enables architects, designers and developers to use models and metadata with web services and existing technologies with a focus on full life cycle architecture Q Web Services standards (like other standards!)will come and go, but some of the business models and processes will be more lasting (manage and protect your models and metadata) Q Use models to communicate, understand, analyze and design, use metadata to integrate flexibly within an architectural context Copyright 2004, IBM Corporation Slide 47 For More Information Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q OMG : www.omg.org Web Services : http://www-106.ibm.com/developerworks/webservices/newto MDA : www.omg.org/mda IBM : www.ibm.com IBM Alphaworks : www.ibm.com/alphaworks (UDDI4J, BPWS4J) UML : www.omg.org/uml, www.rational.com CWM : www.cwmforum.org, www.omg.org/uml W3C : www.w3c.org DSTC : www.dstc.edu.au Sridhar : [email protected] UML RTF : [email protected] MOF RTF : [email protected] XMI RTF : [email protected] CWM RTF : [email protected] JMI Eclipse : http://java.sun.com/aboutJava/communityprocess/jsr-40 : http://www.eclipse.org (/emf, /xsd, /uml2) Copyright 2004, IBM Corporation Slide 48 Backup Copyright 2004, IBM Corporation Slide 49 Tool Integration across Modeling & Web Service Tools – How are we doing it? Q Use Eclipse tools integration framework – www.eclipse.org (Java IDE, tools integration framework) Q Use Eclipse EMF for modeling & metadata management – – – – – Q Q www.eclipse.org/emf, www.eclipse.org/xsd Simplification of OMG MOF 1.4 with support for XMI 2.0 Use UML models, XMI, XSD or Annotated Java as metamodel input Code generation for metadata interfaces and implementation XML Serialization, XSD generation. Support for MOF2 soon Used in IBM WebSphere Studio & in WebSphere Application Server (ex: configuration metadata), Rational, Borland.. Expect the usage to increase across software development lifecycle – UML modeling, testing, software quality improvement… – UML2 open source project launched : www.eclipse.org/uml2 – IBM Research area : ‘Model Driven Business Integration’ Copyright 2004, IBM Corporation Slide 50 OMG Model Driven Architecture EMF in WebSphere Tools XMI UML Etc. MOF2XML (PSM) DTD, Document XSD (XMI 2.0) Model & Design (PIM) UML, Java, XSD Input Framework (PIM) Metadata Interchange Metadata Interfaces Application Server Configuration Model Driven Tool Integration Model Driven App Development EMF2Java SQL* (PSM) PIM : Platform Independent Model PSM : Platform Specific Model Copyright 2004, IBM Corporation * In progress Slide 51 MetaData Management XML Schema Management Sample EMF Metamodels Used in WebSphere Integration of key software domains XMI XML HTML JSP EJB MOF XSD BPEL* WSDL UDDI EM MO F/ Mo F de ls Java Service Providers Customers Business Partners Suppliers Employees FCM C/C++ COBOL Mapping WCCM UML* Directory & Security Services Web Presentation Servers Web Application Servers Transaction Servers Data Servers End-to-End Systems Management * In R&D Copyright 2004, IBM Corporation SQL BPM* Slide 52 EMF Ecore Model (www.eclipse.org/emf) EObj ect EModelElement EFactory ENam edElement EPackage EMetaObject EClass EDat aType EEnum EEnumLiteral EType dElement ESt ructuralFeature EAt tribute EOperation EReference Copyright 2004, IBM Corporation Slide 53 EParameter EMF::Ecore Details EModelElem ent EFa ctor y EN ame dE le me nt + na me : String +eFactoryIns tance + create(eClas s : EClas s ) : EObject + createFrom String(eDataType : EDataType, literalValue : String) : EJavaObject + convertToString(eDataType : EDataType, ins tanceValue : EJavaObject) : String 1 + ePackag e 1 ETypedElem ent EMetaOb ject + instance ClassNam e : String + instance Class : EJav aCla ss + defau ltValue : EJa vaO b je ct +eType 0..1 +eOperation EOperation 0..* + eParam eter s 0. .* 0..* +eOp era tion s + getEMetaObject(nam e : String) : EMetaObject + isInsta nce (ob ject : EJa vaO b ject) : b oolea n + getMetaOb jectI D( ) : in t EParam eter 1 EPackage + ns URI : String + ns Nam e : String +eExceptions 1 0..* +eMetaObjects 0..* +eSubpackages 1 +ePackage +eSu perPackage +eClas s EClas s +eAllOperations 1 +eAl lCo ntainm ents +eAllStructuralFeatures 0..* 1 0..* EDataType + s erializable : boolean = true + abs tract : boolean + interface : boolean + is SuperTypeOf(s om eClas s : EClas s ) : boolean + getEStructuralFeature(featureID : int) : EStructuralFeature + getEStructuralFeature(featureNam e : String) : EStructuralFeature +eClas s EStructuralFeature + changeab le : b oolean = true + volatile : b oolean + transient : b oolean + unique : b oolean = true + defaultValueLiteral : String + defaultValue : EJavaOb ject + lowerBound : int + upperBound : int = 1 + m any : b oolean + required : b oolean + getFeatureID() : int + getContainerClass() : EJavaClass 0..* 0. .* +eAttributes 0. .* EEnum Literal + value : int + ins tance : EEnum erator +eSuperTypes 0. .* EAttribute +eAllAttributes + uns ettable : boolean +eReferences + eLi tera ls 0. .* +eAllSuperTypes 0..* EReference + com pos ite : boolean + res olveProxies : boolean +eOppos ite 0..* +e Enum 1 EEnum 0..* +eAl lRe fe renc es + getEEnum Literal(nam e : String) : EEnum Literal + getEEnum Literal(value : int) : EEnum Literal 0..1 Copyright 2004, IBM Corporation Slide 54 Influenced MOF2::EMOF Using MDA to execute the Mapping Q Q Start with EMF models of UML, XML Schema, WSDL, and BPEL Use EMF to generate Java APIs for all the EMF models – Each model uses a serializer for its preferred external representation Q Q Q Q Create an EMF model of the mapping between UML and the Web Services components Use EMF to generate an API for the model-to-model mapping Implement the methods to map between source and target models Can be deployed as an Eclipse builder, no user input required to do the mappings Copyright 2004, IBM Corporation Slide 55 XML Schema model From www.eclipse.org/xsd +substitutionGroupAffiliation +substitutionGroup +notationDeclarations 0..n 0..n +a ttrib uteDeclarati ons XSDSchema +attributeGroupDefinitions 0..n +typeDefinitions 0..n 0..n +elementDeclarations 0..n 0..n XSDEl emen tDe cla ration 0..n 1 +identityConstraintDefinitions XSDId enti tyCon strain tD efin ition +identityC onstrain tDefinitions 0..1 0..n +mod elGroupD efi niti ons XSDModelGroupDefinition 0..1 +fields +referencedKey +modelGroup 1 +s elector 1..n 1 +typeDefinition XSDXPathDefinition XSDTypeDefinition XSDModelGroup 1 +baseTypeDefinition +particles 1..n +attribute Wild card XSDSimpleTypeDefinition XSDComplexTypeDefinition +b aseType De finition 1 1 +typeDefinition +attribute Us es XSDAttribu teD ecl arati on 1 0..1 +scope XSDParticle 0..1 +contentType +attributeWildcard XSDC omp lexType Co ntent +term XSDAttributeUse 0..n XSDAttributeGroupDefinition +attributeUses XSDScope XSDNo tationDecl aratio n 0..1 Copyright 2004, IBM Corporation 1 XSDTerm 0..n +attributeDeclaration XSDFeature XSDWildcard 0..1 Slide 56 WSDL Model – From WSAD Definition <<Interface>> IDefinition addBinding() addImport() addMessage() addNamespace() addPortType() addService() createBindingFault() createBindingInput() createBindingOutput() createBindingOperation() createBinding() createFault() createImport() createInput() createMessage() createOperation() createOutput() createPart() createPort() createPortType() createService() getBinding() getBindings() getImports() getImports() getMessage() getMessages() getNamespace() getNamespaces() getPortType() getPortTypes() getPrefix() getService() getServices() getExtensionRegistry() setExtensionRegistry() getDocumentBaseURI() setDocumentBaseURI() createTypes() removeService() removeBinding() removePortType() removeMessage() getTypes() setTypes() targetNamespace : String qName : QName encoding : String getDocument() setDocument() 1..1 1 ..1 1..1 1..1 1..1 Import +eI mp orts getSchema() setSchema() {ordered} 0..n 1..1 Types +eTypes 0 ..1 getSchemas() getSchemas() + eMessages 0..n Message {ord ered} +ePortTypes 0..n PortType {ordered} +eBindings 0 ..n {ordered} +eServices 0..n Binding Service {ordered} Copyright 2004, IBM Corporation Slide 57 Draft BPEL Model P r o ce s s n a m e : S trin g ta rg e t N a m e s p a c e : S t rin g q u e ry L a n g u a g e : S trin g e x p re s s io n L a n g u a g e : S t rin g s u p p re s s Jo in F a ilu re : B o o le a n = fa ls e c o n t a in e rA c c e s s S e ria liz a b le : B o o le a n = fa ls e e n a b le In s t a n c e C o m p e n s a tio n : B o o le a n = fa ls e a b s t ra c tP ro c e s s : B o o le a n = fa ls e 1 1 1 1 1 1 E x t e n s ib le E le m e n t (f ro m w sd l ) g e tE x t e n si b ili ty E l e m e n ts ( ) : IL is t a d d E x te n s ib il it y E le m e n t (e x tE le m e n t : IE xt e n s ib il it yE le m e n t ) 1 0 .. * + e x te n s io n s S e r vi ce L i nk Ty p e n a m e : S trin g E x te n s io n n a m e s p a c e : S trin g t y p e : S t rin g 1 P a rtn e r 0 . .* + s e rvic e L in k Ty p e P o rt Ty p e + ro le 1 . .2 0..* n a m e : S tr in g 1 + p a rtn e rR o le + p a rtn e rs (f ro m w sd l ) + r es p o n s ib ilitie s R o le n a m e : s trin g 0..* qNam e : Q Nam e u n d e fin e d : b o o l ea n p ro x y : bo o l ea n r es o u r ce U R I : S tr in g 1 . .* g e tS e r vi c e Li n k Typ e ( ) 0 . .* 0 . .* + m y R o le P a rt (f ro m w sd l ) 1 + m es s a ges C o n t a in e r n a m e : S t rin g 0 . .* + c o n ta in e rs 0 .. * g e t C o n t a in e rD a t a () g e t C o n ta in e rP ro p e rt y () 0 .. * 0..* + m e s s a g e Ty p e n a m e : S t rin g e le m e n tN a m e : Q N a m e ty p e N a m e : Q N a m e M es s age + eM es s age (f ro m w sd l ) qNam e : Q Nam e u n d e fin e d : b o o le a n p ro x y : b o o le a n re s o u rc e U R I : S t rin g 0 .. 1 + e P a rts 0 .. n { ord e re d } 1 . .1 1 + m e s s a g e Ty p e g e t Ty p e () s e t Ty p e () g e t E le m e n t () s e t E le m e n t () s e t M e s s a g e () g e t M e s s a g e () + p a rt 1 0 .. * 0 .. * + c o rre la t io n S e t s C o rre la tio n S e t n a m e : S t rin g + p ro p e r tie s 0 .. * 1 .. * P ro p e rt y n a m e : S t rin g 1 0 .. * 0 . .1 X S D T yp e D e fin itio n (f ro m x s d ) 0 .. * 0 .. * 0 . .1 + e XS D Ty p e P ro p e rty A lia s q u e ry : S tr in g + p ro p e rt y N a m e 1 + ty pe 1 F a u lt H a n d le r + fa u l tH a n d le r s + b a s e Ty p e 0 . .1 C o m p e n s a ti o nH a nd l e r + c o m p e n s a t io n Ha n d le r s 1 + a c ti vi t y A c t ivit y + s o u rc e n a m e : S tr in g 1 jo i n C o nd i ti on : B o o le a n E x p re s s io n s u p p re s s Jo i n F a ilu r e : B o o le a n = fa l s e + ta rg e t 1 Copyright 2004, IBM Corporation + s o u rc e s 0 .. * + t a rg e ts 0 . .* L in k n a m e : S trin g t ra n s it io n C o n d itio n : B o o le a n E x p re s s io n = t ru e g e tL in k S t a tu s () Slide 58 1 + ro o tTy p e UML to BPEL Mapping model R ule c ontex t : U M L2B P E LR ec onc iler < < datat y pe> > U M L2B P E LR ec onc iler < < javac las s > > c om. ib m .m da .bpel .u m l2bpel.U M L2B P E LR ec onc ile r m apS ourc e2Target(s ourc e : E O bjec t) m apTarget2S ourc e(target : E O bjec t) addS ourc eA s s oc iations () addTargetA s s oc iations () + s c h ema XS DS c h ema (f ro m x sd ) 1 1 U M LP ac k age P ac k age2W S R ule + pac k age 1 D efinition + definition (fro m M o d e l _ M a n a g e m e n t) (fro m w sd l ) 1 1 + pac k ageR ule 1 1 1 + pac k ageR ule C las s ifier2W S R ule 0..* + c las s ifierR ules + portTy pe + interfac e Int erfac e (fro m C o re ) 1 P ortTy pe Interfac e2W S R ule (fro m w sd l ) 1 1 + c om plex Ty pe XS D C om plex T ypeD efinition (fro m xsd ) 1 1 U M LC las s + um lC las s (fro m C o re ) is A c tive : E B ool eanO bjec t U M LC las s 2W S R ule 1 1 1 (f ro m xsd) + ele m ent D ec larat io n 0..1 + c las s R ule E num eration2W S R ule E num eratio n + enum eration XS D E lem entD ec laration 0..1 1 {< < entity , c ontrol> > } (fro m C o re ) + elem en t 1 + s im p leTy pe XS D S im pleTy peD efinition (f ro m xsd) 1 1 1 + a tt ri bute Rules A ttribute + attribute A ttribute2W S R ule (fro m C o re ) 1 { m ult ip li c ity = 1} (fro m C o re ) + as s oc iation + attributeD ec laration 1 XS D At tr ib uteD ec l arati on 1 (fro m x sd ) 0..1 + as s oc iationR ules A s s oc iati on 0..* 1 0..* A s s oc iation2W S R ule 1 Copyright 2004, IBM Corporation Slide 59 + attribu teD ec lara tion UML2BPEL Components – All these are EMF based Eclipse plug-ins! Q Q Q Q Q Eclipse infrastructure : www.eclipse.org EMF component : www.eclipse.org/emf XSD component : www.eclipse.org/xsd BPEL component : Internal IBM metamodel (for tools) and BPEL engine (BPWS4J) Will use UML2 component : www.eclipse.org/uml2 – The proof of concept of EMF UML 1.4 implementation was a precursor to the current UML2 project Q Q WSDL component : Internal IBM metamodel UML2BPEL mapping component : Internal IBM metamodel component (mapping component) Copyright 2004, IBM Corporation Slide 60