OMG SoaML Service oriented architecture Modeling Language - UML Profile and Metamodel for Services Tutorial introduction to SoaML Arne J. Berre, SINTEF OMG Feb 9th, 2009 Object Management Group The SoaML submission team Submitters Supporters – 88Solutions – Everware-CBDI – Adaptive – General Services Administration – EDS – VisumPoint – Model Driven Solutions – Mega – BAE Systems – Capgemini – DERI – University of Innsbruck – Fujitsu – DFKI – Fundacion European Software Institute – France Telecom R&D – Hewlett-Packard – NKUA – University of Athens – International Business Machines – Oslo Software – MEGA International – SINTEF – MID GmbH – THALES Group – Rhysome – University of Augsburg – Softeam – Wilton Consulting Group – Telelogic AB SoaML Specification – Revised UPMS Submission Object Management Group Introduction to SoaML concepts SoaML Specification – Revised UPMS Submission Object Management Group SoaML Goals Intuitive and complete support for modeling services in UML Support for bi-directional asynchronous services between multiple parties Support for Services Architectures where parties provide and use multiple services. Support for services defined to contain other services Easily mapped to and made part of a business process specification Compatibility with UML, BPDM and BPMN for business processes Direct mapping to web services Top-down, bottom up or meet-in-the-middle modeling Design by contract or dynamic adaptation of services To specify and relate the service capability and its contract No changes to UML SoaML Specification – Revised UPMS Submission Object Management Group Service Service is defined as an offer of value to another party, enabled by one or more capabilities. Here, the access to the service is provided using a prescribed interface and is exercised consistent with constraints and policies as specified by the service contract. A service is provided by a participant acting as the provider of the service—for use by others. The eventual consumers of the service may not be known to the service provider and may demonstrate uses of the service beyond the scope originally conceived by the provider. [OASIS RM] SoaML Specification – Revised UPMS Submission Object Management Group Business Focused SOA Using Model Driven Architecture Business Concerns Business Model Enterprise Goals Services (e-SOA) Roles, Collaborations & Interactions ProcessPolicy & Information Technology Specification JMS, JEE, Web Services WSDL, BPEL, XML Schema SoaML Specification – Revised UPMS Submission Line-Of-Sight Customers Logical System Model TechnologyCosts Services (t-SOA), Components Interfaces, Agility Messages & Data Refinement & Automation Platform Platform Computation Specific Independent Independent Model Model Model MDA Terms Object Management Group Incorporating Legacy Analysis SoaML Specification – Revised UPMS Submission Object Management Group Value derived from the architecture Business Concerns Component Acquisition Specification OMB 300 FEA/FTF BRM SRM DRM* Web Services OneGSA GSABusiness BusinessModel Model One Business Services (b-SOA) Goals (b-SOA) Business Services Roles,Collaborations Collaborations&&Interactions Interactions Roles, Process & Information Policy Process & Information Customers Logical SystemModel Model Logical System Technology Services (t-SOA), TechnologyCosts Services (t-SOA), Components Components Interfaces, Messages&&Data Data Interfaces, Messages Test & Simulation TechnologySpecification Specification Technology Web Services Web Services WSDL,BPEL, BPEL,XML XMLSchema Schema WSDL, Components Adapters Deployment Data Business Driven Technology Facilitating Business Processes SoaML Specification – Revised UPMS Submission Object Management Group Focus on the Business Model Business Concerns Business Model Business Services (e-SOA) Roles, Collaborations & Interactions Process & Information Logical System Model Technology Services (t-SOA), Components Interfaces, Messages & Data Technology Specification JEE, JMS, Web Services WSDL, BPEL, XML Schema SoaML Specification – Revised UPMS Submission Object Management Group SOA Marketplace Example Order Conformation Shipped Mechanics Are Us Dealer Acme Industries Manufacturer Status Ship Req Shipped Physical Delivery Delivered GetItThere Freight Shipper SoaML Specification – Revised UPMS Submission Object Management Group Order Conformation Provider Consumer Marketplace Services Shipped Mechanics Are Us Dealer Consumer Acme Industries Manufacturer Status Ship Req Shipped Provider Physical Delivery Provider GetItThere Freight Shipper SoaML Specification – Revised UPMS Submission Delivered Consumer Object Management Group Business Motivation Modeling with BMM SoaML Specification – Revised UPMS Submission Object Management Group Business Motivation Model (BMM) integration • Business requirements can be captured using the OMG Business Motivation Model (BMM). • Any UML BehavioredClassifier including (for example a ServicesContract) may realize the BMM Motivation concept of motivation realization. This allows services models to be connected to the business motivation and strategy linking the services to the things that make them business relevant. SoaML Specification – Revised UPMS Submission Object Management Group BMM with MeansRealizations SoaML Specification – Revised UPMS Submission Object Management Group Business Process Modeling with BPMN SoaML Specification – Revised UPMS Submission Object Management Group Capability Modeling with SoaML capabilities SoaML Specification – Revised UPMS Submission Object Management Group Modeling Services with Capabilities Capabilities model the service contract combined with the capability to provide it A network of capabilities helps to identify and define services Capabilities can then be assigned to participants SoaML Specification – Revised UPMS Submission Object Management Group Service Architecture Modeling with SoaML collaboration models SoaML Specification – Revised UPMS Submission Object Management Group Services Architecture Ship Status service Purchasin g service Shippin g service A ServicesArchitecture (or SOA) is a network of participant roles providing and consuming services to fulfill a purpose. The services architecture defines the requirements for the types of participants and service realizations that fulfill those roles. The services architecture puts a set of services in context and shows how participants work together for a community or organization without required process management. A community ServicesArchitecture is defined using a UML Collaboration. SoaML Specification – Revised UPMS Submission Object Management Group Inside the Manufacturer Order Conformation Shipped Order Processing Service Accounting Ship Req Shipped Delivered SoaML Specification – Revised UPMS Submission Object Management Group Services architecture for a participant ParticipantArchitecture is the high-level services architecture of a participant that defines how a set of internal and external participants use services to implement the responsibilities of the participant. A participant will also frequently have a business process. SoaML Specification – Revised UPMS Submission Object Management Group Participants Participant Participants represent logical or real people or organizational units that participate in services architectures and/or business processes. In SoaML participants provide and use services, defining their external contract SoaML Specification – Revised UPMS Submission Participant Object Management Group Participants with ServicePoint and RequestPoint Participant Participant RequestPoint – point where the dealer uses the purchasing service SoaML Specification – Revised UPMS Submission ServicePoint – point where the manufacturer offers the purchasing service Object Management Group ServiceContract A ServiceContract defines the terms, conditions, interfaces and choreography that interacting participants must agree to (directly or indirectly) for the service to be enacted - the full specification of a service which includes all the information, choreography and any other “terms and conditions” of the service. A ServiceContract is binding on both the providers and consumers of that service. The basis of the service contract is also a UML collaboration that is focused on the interactions involved in providing a service. A participant plays a role in the larger scope of a ServicesArchitecture and also plays a role as the provider or user of services specified by ServiceContracts. SoaML Specification – Revised UPMS Submission Object Management Group Service Contract Service Contract Role within service Role within service Service interface corresponding to role Information processed by order processor type type Service interface corresponding to role Information received by orderer The service contract specifies the details of the service – what information, assets and responsibilities are exchanged and under what rules SoaML Specification – Revised UPMS Submission Object Management Group Simple Protocol Choreography for Ordering Service Contract SoaML Specification – Revised UPMS Submission Object Management Group Compound services Compound Services are defined by using more granular services to “build up” an enterprise scale service type type Each composed service becomes a port on the service interface SoaML Specification – Revised UPMS Submission Object Management Group Real Example - Financial Management Enterprise Context • The service-oriented business architecture of an enterprise is modeled as a Collaboration of enterprise-level Participants. This is the use of A service contract specification SoaML Specification – Revised UPMS Submission External enterprise level participants Our Focus Object Management Group Inside Financial Management Service representing delegated responsibility for interaction with an external participant. Roles of participants inside of finance SoaML Specification – Revised UPMS Submission Service representing interaction with another participant within Financial Management. Object Management Group A Composite Service Contract Financial Management is responsible for providing a number of Acquisition Accounting services. SoaML Specification – Revised UPMS Submission Object Management Group Simple Bill Submission Service Contract • A service contract is modeled as a UML Collaboration. • The required conversation may be specified using an Owned Behavior (e.g., Interaction or Activity) Indicates ownership Note that, while one Participant requests the service and the other responds, information may flow both ways during the interaction. First the submitter submits a bill to the receiver… …then either the bill is successfully delivered or it is returned. SoaML Specification – Revised UPMS Submission Object Management Group Process Activities Inside a Participant (Outside of SoaML) • Workflow is modeled using UML Activities. Activity Sent event Received event Information flow SoaML Specification – Revised UPMS Submission Object Management Group Record Unfilled Customer Order Behavior • Ultimately, behavior can be specified using basic UML Activity Diagrams. Control flow SoaML Specification – Revised UPMS Submission Object Management Group Information Modelling with UML/(SoaML) class models SoaML Specification – Revised UPMS Submission Object Management Group Information Model – For Messages and Entities A term in the vocabulary represents a class of things to be described. Entities may be described as having a unique identity. A relation between terms is described by an association between classes. Attributes specify descriptive information having simple types. An un-shaded class is not detailed on this diagram. This means “zero or more” A class may be specialized into subclassifications. This indicates a compositional (as opposed to referential) association. This means “one or more” This is a constraint that defines the sub-classification. SoaML Specification – Revised UPMS Submission Object Management Group Integrating the Information Model with SOA The process model describes how business activities are (or are to be) carried out. Workflow Business transaction Activities Implicit memory of business information State changes due to the activities The information model details the vocabulary of the business entities and transactions used in the process model. SoaML Specification – Revised UPMS Submission Business transaction Object Management Group Service Modelling with SoaML Port/Connector models SoaML Specification – Revised UPMS Submission Object Management Group ServicePoints and Service Participants A ServicePoint is the offer of a service by one participant to others using well defined terms, conditions and interfaces. A ServicePoint defines the connection point through which a Participant offers its capabilities and provides a service to clients. A ServicePoint is a mechanism by which a provider Participant makes available services that meet the needs of consumer requests as defined by ServiceInterfaces, Interfaces and ServiceContracts. A ServicePoint is represented by a UML Port on a Participant stereotyped as a «ServicePoint», . SoaML Specification – Revised UPMS Submission Object Management Group ServiceInterface a ServiceInterface can be the type of a service port. The service interface has the additional feature that it can specify a bi-directional service – where both the provider and consumer have responsibilities to send and receive messages and events. The service interface is defined from the perspective of the service provider using three primary sections: the provided and required Interfaces, the ServiceInterface class and the protocol Behavior. SoaML Specification – Revised UPMS Submission Object Management Group Participant with ServicePoint A ServicePoint is the point of interaction on a Participant where a service. On a service provider this can be thought of as the “offer” of the service (based on the service interface). The ServicePoint is the point of interaction for engaging participants in a service via its service interfaces. SoaML Specification – Revised UPMS Submission Object Management Group Participant with ServicePoints and RequestPoints The type of a RequestPoint is also a ServiceInterface, or UML Interface, as it is with a Service point. The RequestPoint is the conjugate of a ServicePoint in that it defines the use of a service rather than its provision. This will allow us to connect service providers and consumers in a Participant. SoaML Specification – Revised UPMS Submission Object Management Group Participants may be assemblies of other Participants Participant RequestPoint – needs typed by ServiceInterface ServicePoint – capabilities typed by ServiceInterface Participant part SoaML Specification – Revised UPMS Submission Object Management Group Document and RPC Style service operation parameters SoaML Specification – Revised UPMS Submission Object Management Group Agent and Milestones Agent Milestone – autonomous entity – defines a value of progress – has its own lifecycle behavior – attached to behavioral elements – can adapt to the environment – is used especially for dynamic analysis of behavior that does not necessarily end • also through modification of its definition SoaML Specification – Revised UPMS Submission Object Management Group Milestone «Milestone» Order <1> «Milestone» Order <0> A Milestone is a means for depicting progress in behaviors in order to analyze liveness. Milestones are particularly useful for behaviors that are long lasting or even infinite. A Milestone can be understood as a “mythical” Signal. A mythical Signal is a conceptual signal that is sent from the behavior every time a point connected to the Milestone is passed during execution. The signal is sent to a conceptual observer outside the system that is able to record the origin of the signal, the signal itself and its progress value. SoaML Specification – Revised UPMS Submission Object Management Group Mappings from SoaML to technology representations SoaML Specification – Revised UPMS Submission Object Management Group Technology Architecture Business Concerns One GSA/FMEA Business Model Business Services (b-SOA) Roles, Collaborations & Interactions Process & Information Logical System Model Technology Services (t-SOA), Components Interfaces, Messages & Data Technology Specification JEE, JMS, Web Services WSDL, BPEL, XML Schema SoaML Specification – Revised UPMS Submission Object Management Group Receivables Accounting Component Architecture User of a consumed service by multiple internal parts. SoaML Specification – Revised UPMS Submission Object Management Group Technology Architecture Business Concerns Business Model Business Services (b-SOA) Roles, Collaborations & Interactions Process & Information Logical System Model Technology Services (t-SOA), Components Interfaces, Messages & Data Technology Specification JEE, JMS, Web Services WSDL, BPEL, XML Schema SoaML Specification – Revised UPMS Submission Object Management Group Example Web Services Generation <wsdl:portType name=“BillSubmission.BillSubmissionReceiverInterface"> <wsdl:operation name=“submitBill"> <wsdl:input message="tns:BillSubmissionCluster“ name=“billSubmission"> </wsdl:input> </wsdl:operation> </wsdl:portType> <wsdl:portType name=“BillSubmission.BillSubmissionSubmitterInterface"> <wsdl:operation name=“notifyBillDelivered"> <wsdl:input message="tns:BillDeliveredCluster“ name=“billDelivered"> </wsdl:input> </wsdl:operation> <wsdl:operation name=“notifyBillReturned"> <wsdl:input message="tns:BillReturnedCluster“ name=“billReturned"> </wsdl:input> </wsdl:operation> </wsdl:portType> SoaML Specification – Revised UPMS Submission Object Management Group Example Transaction Message XML Document <BillSubmissionCluster> <BusinessTransaction> <transactionID> … </transactionID> </BusinessTransaction> <BillSubmission> <bill> <Bill> <billID> … </billID> <principleAmount> … </principleAmount> … <payer> <Party> <partyID> … </customerID> </Party> </payer> … <lineItems> … </lineItems> </Bill> </bill> <billingAddress> <BillingAddressCluster> <Address> … </Address> <BillingAddress> … </BillingAddress> </BillingAddressCluster> <billingAddress> </BillSubmission> </BillSubmissionCluster> SoaML Specification – Revised UPMS Submission Object Management Group Implementation of service components <provisioningContext name="service“…> <projectRef folder="EjbClient"/> <projectRef folder="AppClient"/> <projectRef folder="Ejb"/> <projectRef folder="ear"/> <projectRef folder="JbossConfig"/> </provisioningContext> Note – stereotypes for provisioning are not part of SoaML – this shows one way to do it. SoaML Specification – Revised UPMS Submission Object Management Group Implementation of service components public class Asset_Completion_Establishment_ConsumerAsset_Completion_Establishment_Provider_InterfaceInternal { … … static public Document establish_asset_completion(Document request) throws CheckedException { …… return gov.gsa.fmea.Asset_Record_Manager. Asset_Completion_Establishment_ProviderAsset_Completion_Establishment_Provider_InterfaceInternal. establish_asset_completion(request); } SoaML Specification – Revised UPMS Submission Object Management Group Mapping – Classes <Organization__Schema identity=”http://ocfo.gsa.gov/fmea/organization/1”> <Organization> <approved>true</approved> … </Organization> </Party__Schema> <Party__Schema identity=”URI”> <Party> <party_id>ABC123<party_id> <legal_address> <Address> <city>Vienna</city> <state>VA</state> </Address> </legal_address> <organizations> <Organization__Item identity=”http://ocfo.gsa.gov/fmea/organization/1”/> <Organization__Item identity=”…”/> … </organizations> </Party> </Party__Schema> SoaML Specification – Revised UPMS Submission Object Management Group End result – this executes Service representing delegated responsibility for interaction with an external participant. Roles of participants inside of finance SoaML Specification – Revised UPMS Submission Service representing interaction with another participant within Financial Management. Object Management Group On this infrastructure VPN SAML Https Web Service Finance Users SAML Identity Management FMS FAS FTP Server TIRES Billing Transactions TIRES Adapter Vehicle Master Vehicle Adapter NEAR AR FMEA Adapter Server Web Service JMS IRIS STAR STAR Adapter JMS FMEA Integration Server PBS Pegasys/ Momentum Fixed Assets Module Pegasys/Momentum Service FMEA Service User Interface Service Service FMEA Service Work Unit Service Service Data Manager Logs VPN JMS Session Management FMEA Services Server SOA JMS Broker IRIS Adapter Building Data Https: Load Balancer FMEA Presentation Server NEAR Project Data SOA Web Service Adapters SAML Https: FMEA DBMS Server FMEA Data SQL Net Momentum Adapter * Any server may be clustered or combined as required GSA SecureNet/MultiNet Financial Network SoaML Specification – Revised UPMS Submission Object Management Group Relating to other standards SoaML integration with BPMN 2.0 and BPDM will be related to the ongoing BPMN 2.0 standardization Extensions for Agents and semantic services will also relate to semantics, ontologies and other OMG metamodels like ODM and SBVR Limited BMM integration is included to tie services to the business SoaML Specification – Revised UPMS Submission