Service-oriented Heterogeneous Architecture and Platforms Engineering. with SoaML. brian.elvesater@sintef.no



Similar documents
Specifying Services using the Service oriented architecture Modeling Language (SoaML): A baseline for Specification of Cloud-based Services

BPEL. A Step by Step Guide: Model-Driven Generation with. Enterprise Architect. T his document will teach you how to use the Business Process

Model Simulation in Rational Software Architect: Business Process Simulation

Enterprise Architecture Modeling with SoaML using BMM and BPMN MDA Approach in Practice

Developing SOA solutions using IBM SOA Foundation

Eclipse SoaML: a Tool for Engineering Service Oriented Applications

Business Process Modelling Notation A tutorial

Enterprise Architecture: Practical Guide to Logical Architecture

Business Process Driven SOA using BPMN and BPEL

Process Modeling using BPMN 2.0

A Software Development Platform for SOA

Enterprise Service Oriented Architecture Using the OMG SoaML Standard

Getting Started Guide Testable Architecture

Dr. Jana Koehler IBM Zurich Research Laboratory

How To Create A Diagram On Rational Software Development Platform

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

BPMN 2.0 Tutorial. Daniel Brookshier Distinguished Fellow No Magic Inc.

Oracle BPM 11g. Hands-On Workshop Lab Guide

Business Process Modelling Languages

Exporting from WebSphere Business Modeler Unit 23

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

A Quick Chat about SOMF Capabilities Page1 Service-Oriented Modeling Framework (SOMF) Building Attribution Models

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

The Business Process Model

How To Create A Complex Diagram On A Computer Game

Overview

BPMN Business Process Modelling Notation

Interworks. Interworks Cloud Platform Installation Guide

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED LOGICAL DESIGN MODEL LANGUAGE SPECIFICATIONS

A Short Tutorial on Using Visio 2010 for Entity-Relationship Diagrams

Applying SOA to OSS. for Telecommunications. IBM Software Group

Service Oriented Architectures Using DoDAF1

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Supporting Service Design Decisions

Model Driven Benchmark Generation for Web Services

Part One Business Modeling Business Process Model

A Service-Oriented approach dedicated to Internet based Business Process Networks: Building a MDA based collaborative platform with opensource

SemTalk BPMN Tutorial APRIL Tutorial SemTalk 4.3 BPMN Edition for Business Process Analysis

CHAPTER 10: WEB SERVICES

Business Process Standards and Modeling

Creating a Simple Business Collaboration Scenario With a BPMS

Business Process Execution Language for Web Services

BPMN by example. Bizagi Suite. Copyright 2014 Bizagi

The IBM Rational Software Development Platform..Role focused tools help simplification via Separation of Concerns

INTRODUCTION TO BUSINESS PROCESS MODELING NOTATION BPMN 1.2 AND BPMN 2.0

<Insert Picture Here>

Colorfly Tablet Upgrade Guide

SSL Intercept Mode. Certificate Installation Guide. Revision Warning and Disclaimer

Oracle Service Bus Examples and Tutorials

How to Model Aspect-Oriented Web Services

Modeling Business Processes for SOA: Designing the Service Oriented Enterprise

Working with BPMN 2.0 in Enterprise Architect version 11 / 12

Bizagi BPM Suite Loan Assessment Process Lab

IBM Rational Rapid Developer Components & Web Services

How To Use Kentico+ On A Pc Or Mac Or Macbook

Enterprise Architecture Modeling PowerDesigner 16.1

Business Process Modeling Information Systems in Industry ( )

EVALUATION. WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration COPY. Developer

UML Modelling of Automated Business Processes with a Mapping to BPEL4WS

Automotive System and Software Architecture

How to add your Weebly website to a TotalCloud hosted Server

Automating the DEVS Modeling and Simulation Interface to Web Services

Working with the ERP Integration Service of EMC Documentum Process Services for SAP

FMEA: An executable services oriented enterprise architecture for financial management

UML TUTORIALS THE USE CASE MODEL

Business Process Modeling and Standardization

FDD Process #1: Develop an Overall Model

WebSphere Commerce V7 Feature Pack 2

Building the European Biodiversity. Observation Network (EU BON)

4.7 Business Process Model and Notation

Oracle Application Express - Application Migration Workshop

Application. 1.1 About This Tutorial Tutorial Requirements Provided Files

How to Configure the Workflow Service and Design the Workflow Process Templates

Introduction to System Architect Student Edition (A Product of Popkin Software)

Business Process (BPMN) Course

Hands-On: Introduction to Object-Oriented Programming in LabVIEW

Service Oriented Architecture 68 Success Secrets. Copyright by Irene Gray

OMG releases BPMN What's changed?

ivms-4200 Client Software Quick Start Guide V1.02

IT Management with Enterprise Architecture

Transcription:

Service-oriented Heterogeneous Architecture and Platforms Engineering Service Modelling with SoaML Brian Elvesæter, SINTEF ICT brian.elvesater@sintef.no

Tutorial outline PART I: Introduction ti SoaML language UML modelling tool: Modelio Case study: Travel Agency PART II: Hands-on Business process modelling (BPMN) Business architecture t modelling (SoaML) System architecture modelling (SoaML) 2

Online material SoaML specification Modelio Modelling Tools http://www.omg.org/spec/soaml/ http://www.modeliosoft.com SoaML wiki http://www.omgwiki.org/soaml/doku.php SHAPE project website: http://www.shape-project.eu/ SHAPE Methodology SiSaS Methodology (in progress) http://sisas.modelbased.net/ SHAPE hands-on tutorial given at ECMFA 2010 (extra material) http://rd.softeam.com/demos/soaml Tutorial model download d (updated) d) http://www.uio.no/studier/emner/matnat/ifi/inf512 0/v11/div/DiscountVoyages%20SoaML%20Tutori al%20oslo.zip Modelio Enterprise Edition 1.2.1 (10 day evaluation) http://www.shape-project.eu/download- area/shape- Methodology_OnlineLibrary_final/index.htm http://www.modeliosoft.com/en/download/downloa ds.html Modelio Free Edition 1.2.1 http://www.modeliosoft.com/en/download/downloa ds.html SoaML modules for Modelio (open source) http://rd.softeam.com/prototypes/ http://modelio-open.sourceforge.net/ SoaML Engine module download http://sourceforge.net/projects/modelioopen/files/soamlengines/1.0.00/soamlengines %5Bbin%5D_1.0.00.zip/download SoaML Designer module download http://sourceforge.net/projects/modelioopen/files/soamldesigner/1.0.00/soamldesigner _%5BBin%5D_1.0.00.zip/download 3

SoaML language g 4

What is SoaML? Service oriented architecture Modeling Language (SoaML) Extensions to UML2 to support service concepts. Focuses on basic service modelling concepts. A foundation for further extensions and integration ti with BPMN, BMM and other metamodels. 5

SoaML Concepts Agent Participant Attachment Capability Consumer Collaboration CollaborationUse Expose MessageType Port Property Provider Request ServiceChannel ServiceContract ServiceInterface Milestone Service ServicesArchitecture 6

Marketplace Services Mechanics Are Us Dealer Example Acme Industries Manufacturer Consu umer Order Conformation Shipped Provi ider Consumer Consumer Status Physical Delivery Prov vider GetItThere Freight Shipper Prov vider Ship Req Shipped Delivered 7

Business process overview : Dealer Start event End event Place order Receive order confirmation Receive shipping confirmation :O rder :O rderc onfirmation :ShipmentStatus r : OrderHandler Receive order Confirm order [yes] [no] Forward shipping confirmation Receive delivery confirmation Invoice customer End event urer : Manufactu : Productions Ship order Inventory low? Order production Initiate production Receive shipping confirmation : Invoicing Send invoice : Shipper :ShippingRequest :ShipmentStatus :DeliveryC onfirmation Ship item Send shipping confirmation Send delivery confirmation End event 8

Services architecture (Community-level) Place Order service <<ServicesArchitecture>> Dealer Network Architecture e Community-level services architecture for the Dealer Network consumer order:place Order provider dealer:dealer acme:manufacturer consumer consumer Ship Status service status:ship Status provider shipper:shipper ship:shipping Request provider Shipping Request service Services architecture: High level description of how participants work together for a purpose by providing and using services expressed as service contracts. UML collaboration stereotyped «ServicesArchitecture». 9

<<ServicesArchitecture>> Dealer Network Architecture Participants consumer order:place Order provider dealer:dealer acme:manufacturer and service consumer status:ship Status collaboration use consumer ship:shipping Request contracts provider shipper:shipper provider role binding <<ServiceC ontract>> Place Order role binding type consumer:orderplacer provider:ordertaker <<Participant>> Manufacturer Service contract: Service specifications that define the roles each participant plays in the service and the interfaces they implement to play that role. UML collaboration stereotyped «ServiceContract». Participant: Represent logical or real people or organizational units that participate in services architectures and/or business processes. UML class stereotyped «Participant». 10

Services architecture (Participant-level) Order OrderHandler Conformation Invoicing Shipped Ship Req Shipped dealer:dealer consumer <<ServicesArchitecture>> Manufacturer Architecture Productions i:invoicing provider Delivered order:place Order provider oh:orderhandler consumer ic:invoice Customer Participant-level services architecture for the Manufacturer ship:shipping Request provider shipper:shipper consumer consumer po:production Order provider p:productions 11

dealer:dealer consumer <<ServicesArchitecture>> Dealer Network Architecture order:place Order Community and provider participant acme:manufacturer consumer status:ship Status consumer ship:shipping Request architectures provider shipper:shipper provider Community-level services architecture for the Dealer Network dealer:dealer consumer <<ServicesArchitecture>> Manufacturer Architecture i:invoicing provider order:place Order provider consumer ic:invoice Customer oh:orderhandler Participant-level services architecture for the Manufacturer ship:shipping Request provider consumer consumer po:production Order provider shipper:shipper p:productions 12

Service contract: Place order (Structure) Service channel Consumer role within service contract Consumer interface <<ServiceContract>> Place Order consumer:orderplacer provider:ordertaker type type <<interface, Consumer>> <<interface, Provider>> OrderPlacer OrderTaker quote() quoterequest() orderconfirmation() order() Provider role within service contract Provider interface The service contract represents an agreement between the involved participants for how the service is to be provided and consumed. The agreement includes the interfaces, choreography and any other terms and conditions. 13

Service interface: Place order (Structure) Conjugate service interface <<ServiceInterface>> ~PlaceOrderInterface Service interface: <<use>> <<interface, Consumer>> OrderPlacer quote() orderconfirm ation() <<interface, Provider>> OrderTaker quoterequest() order() <<use>> <<ServiceInterface>> PlaceOrderInterface Refines the service contract. Defines the provided and required interfaces for a service. A service interface is the type of a service port on a participant or component. UML class stereotyped «ServiceInterface». A conjugate service interface is the type of a request port on a participant or component. UML class stereotyped «ServiceInterface» and the names starts with a ~ Service interface 14

Choreography: Place order (Service contract t behaviour) (Service interface behaviour) consumer:orderplacer provider:ordertaker Service choreography can be specified using any UML behaviour, e.g, interaction or activity opt [] quoterequest quote order rderplacer consumer : Or quote orderconfirmation orderconfirmation ker rovider : OrderTak p quoterequest order 15

Interfaces and message types: Place order Provider Consumer <<interface, Provider>> OrderTaker <<signal>> quoterequest(in message : QuoteRequest) <<signal>> order(in message : Order) <<interface, Consumer>> OrderPlacer <<signal>> quote(in message : Quote) <<signal>> orderconfirmation(in message : OrderConfirmation) <<enumeration>> CurrencyType EUR USD <<MessageType>> <<MessageType>> <<MessageType>> <<MessageType>> <<enumeration>> QuoteRequest t Order Quote OrderConfirmation ConfirmationType customerid : string quotedate : date productid : string quantity : integer customerid : string customerorderid : string orderdate : date productid : string quantity : integer request : QuoteRequest price : float currency : CurrencyType customerorderid : string providerorderid : string confirm ation : ConfirmationType confirm ationdate : date shipmentid : string Confirmed Shipped Cancelled OutOfStock Provider: Specifies the interface provided by the provider of a service. UML interface stereotyped «Provider». Message type Consumer: Specifies the interface provided by the consumer of a service. UML interface stereotyped «Consumer». Message type: Specifies the information exchanged between service consumers and providers. UML class stereotyped «MessageType». 16

Service and request ports: Place order Request port <<Participant>> Dealer <<ServiceInterface>> ~PlaceOrderInterface type OrderTaker <<use>> OrderTaker <<interface, Consumer>> OrderPlacer quote() orderconfirmation() <<interface, Provider>> OrderTaker quoterequest() order() <<Participant>> Manufacturer type <<use>> <<ServiceInterface>> PlaceOrderInterface <<Request>> r:~placeorderinterface <<Service>> s:placeorderinterface OrderPlacer OrderPlacer Service Service: Specifies a feature of a participant p that is the offer of a service by one participant to others using well defined terms, conditions and interfaces. UML port stereotyped «Service» on a participant or component. Request: Specifies a feature of a participant that represents a service the participant needs and consumes from other participants. UML port stereotyped «Request» on a participant p or component. port 17

consumer dealer:dealer consumer status:ship Status provider <<ServicesArchitecture>> Dealer Network Architecture order:place Order shipper:shipper <<Participant>> Dealer <<Request>> r:~placeorderinterface <<Request>> ssi:~shipstatusinterface St t t provider consumer acme:manufacturer ship:shipping Request provider OrderTaker OrderPlacer Logical system components: Dealer Network OrderTaker Architecture <<Participant>> Manufacturer <<Service>> s:placeorderinterface OrderPlacer <<Request>> sri:~shippingrequestinterface Shipper Shipper <<Participant>> Shipper <<Service>> ssi:shipstatusinterface ShippingProvider ShippingConsumer ShippingProvider <<Service>> sri:shippingrequestinterface ShippingConsumer Components implement the service interfaces providing the link to systems. Participants and services may be used in multiple architectures. 18

dealer:dealer consumer order:place Order ship:shipping Request provider shipper:shipper <<ServicesArchitecture>> Manufacturer Architecture provider consumer oh:orderhandler consumer consumer i:invoicing provider ic:invoice Customer po:production Order provider p:productions Software components: Manufacturer Architecture Mapped to software components <<Participant>> Dealer <<Participant>> Manufacturer <<Request>> r:~placeorderinterface <<Service>> s:placeorderinterface <<Service>> s:placeorderinterface oh:orderhandler i:invoicing <<Service>> ici:invoicecustomerinterface <<Request>> ici:~invoicecustomerinterface <<Participant>> Shipper <<Request>> poi:~productionorderinterface p:productions <<Request>> sri:~shippingrequestinterface <<Service>> poi:productionorderinterface <<Service>> sri:shippingrequestinterface <<Request>> sri:~shippingrequestinterface 19

UML modelling tool: Modelio 20

Tool support for SoaML SoaML Wiki IBM Rational Software Architect IBM Rational SOMA ModelDriven.org ModelPro NoMagic MagicDrawUML Softeam Modelio Sparx Systems Enterprise Architect Softeam Modelio BPMN SoaML Designer/Engines http://www.omgwiki.org/soaml/doku.php http://rd.softeam.com/prototypes/ 21 21

Case study: Travel agency 22

Case study: Travel agency (Discount Voyage) A Travel Agency has some contact with Partner Agencies which provide reservation for Flights, Hotels, Cars, etc. A Client can interact with the Travel Agency to: Reserve a Travel: Cancel a Travel Pay the Travel The Travel Agency needs to be in contact with a Visa payment center in order to be paid by the Client, and pay the Partner Agencies. Payment fa acilities Visa Client Rese erve Pay Can cel Travel Agency Travel res servation facilitie es Partner Agency Insurance Purchase Ha ands on Insurance Company 23

Scenario Travel Agency needs to purchase a cancellation insurance at 3 rd party Insurance company. The case study model will be updated with BPMN: Pool, Tasks, Dataobject BAM: Service Contract, Service Architecture SAM: Service Interfaces, Participant, BPMN 24

Business process modelling (BPMN) 25

hod dolo ogy En nter rpris se Met Enterprise Business Model (CIM) Business Processes, Domain model, Business Rules, Organization SoaML Methodology Business Architecture Model (BAM) Capabilities Business Goals Service Contracts and Choreographies Business to System refinement System Architecture Model (SAM) Interfaces and Messages Platform- Specific Model (PSM) Service Orchestrations ti Service Interfaces Software Components Model to Text (M2T) Transformation Use cases UI Cloud, Web Services, JEE, MAS, P2P/Grid, SWS Refined & Annotated Business Processes Services Architectures Dialog model Service Choreographies CIM PIM PSM EA on SOA A erspective o ive on SOA odelio Business pe T perspect M B I enova G o Modeli 26

Business Architecture Model (BAM) Business Architecture Model (BAM) Business Goals Business Processes Capabilities Services Architectures Service Contracts and Choreographies Represents the business perspective of an SOA. Captures business requirements and identifies services: Business goals Business processes Capabilities Specifies the business community and its services: Services architectures of the business community. Service contracts t between the business entities participating i in the community. 27

Business Business Architecture Model (BAM) Business Goals Business Processes Architecture Modelling Capabilities Service Contracts and Choreographies Model to Model (M2M) Transformation System Architecture Model (SAM) Interfaces Service Interfaces and Messages Service Orchestrations Software Components Services Architectures Service Choreographies Platform- Specific Model (PSM) Model to Text (M2T) Transformation Cloud, Web Services, JEE, MAS, P2P/Grid, SWS 28

Refine business processes (1/2) Identify relevant business processes: Focus on business processes that enable the business goals to be met. Public and collaborative business processes between different business organizations. Map to community-level services architectures in SoaML Private business processes within a business organization. Map to participant-level i t l services architectures t in SoaML. Refine the business processes: Identify business entities and model them as pools or swimlanes. Map to participants in SoaML Focus on tasks that describe the interaction points between the business entities. Map to service contracts in SoaML Identify the control and data flows between these tasks. Map to message types in SoaML 29

destination:string travels [*]:Travel t:travel c:client o:o rder b:billing p:c arddetails 48 hours o:o rder o:o rder oc:o rder or:o rder b:billing i:invoice Refine business processes Case study example (2/2) c : Client StartEvent browse travels SelectTravel PlaceOrder confirminterest Cancel? [no] Provide Credit Card Details [yes] [cancel] Cancel Travel EndEvent Client VisaPaymentCenter pa : PartnerAgency ta : TravelAgency vpc : Indicate Price initorderfile checksolvency solvency ClientSolvable? CheckAvailability availability [no] CancelOrder [yes] PlacesAvailable ReservePlace Withdraw From Credit Card canceltravel reservetravel withdraw SendInvoice EndEvent TravelAgency PartnerAgency VisaPaymentCenter destination:string t:travel c:c lient p:c arddetails o:o rder travels [*]:Travel o:o rder [no] CancelOrder ta : TravelAge ncy Indicate Price initorderfile checksolvency ClientSolvable? 48 hours CheckAvailability PlacesAvailable [yes] ReservePlace With b:billing o:o rder oc:o rder 30 or:o rder

Hands-on exercise #1 Handson with Modelio Goal Revise the BPMN diagram Modelling Create a pool Create tasks Crate a dataobject Walkthrough Step by step 31

Walkthrough: BPMN Handson with Modelio diagram 1. Open the BPMN diagram in Business Architecture BusinessProcesses TravelReservationProcess 32

Walkthrough: BPMN pool Handson with Modelio 1. Create a pool IC in the BPMN diagram 33

Walkthrough: BPMN tasks Handson with Modelio and flows 1. Create a task Purchase Insurance in the TravelAgency pool and a task Process Insurance Request in the IC pool 2. Modify the flow in the TravelAgency pool, connecting ReservePlace to Purchase Insurance and create a new flow from Purchase Insurance to Withdraw From Credit Card. 34

Walkthrough: BPMN Handson with Modelio dataobject and message flow 1. Create a dataobject IR in the TravelAgency pool. 2. Connect the Purchase Insurance to the IR dataobject with an association. 3. Connect the IR dataobject to the Process Insurance Request in the IC pool with a message flow. 35

Business architecture modelling (SoaML) 36

Specify services architectures (1/3) Services architectures UML collaborations stereotyped «ServicesArchitecture». Identified from the BPMN processes. Participants UML classes stereotyped «Participant». Identified from pools, participants and lanes in the BPMN processes. Service contracts. UML collaborations stereotyped «ServiceContract». Identified from possible interactions between participants in the BPMN processes. 37

destination:string travels [*]:Travel t:travel c:client o:o rder b:billing p:c arddetails 48 hours o:o rder o:o rder oc:o rder or:o rder b:billing i:invoice Specify services architectures Case study example (2/3) Client Each Pool can be mapped to a Participant c : Client vpc : VisaPaymentCenter pa : PartnerAgency ta : TravelAgency StartEvent [yes] [cancel] Cancel Travel [no] browse travels SelectTravel PlaceOrder confirminterest Provide Credit Card Details Cancel? EndEvent [no] CancelOrder [yes] Indicate Price initorderfile checksolvency CheckAvailability SendInvoice ClientSolvable? PlacesAvailable ReservePlace Withdraw From Credit Card EndEvent canceltravel reservetravel availability solvency withdraw TravelAgency PartnerAgency VisaPaymentCenter destination:string t:travel c:c lient p:c arddetails o:o rder travels [*]:Travel o:o rder [no] CancelOrder ncy ta : TravelAge Indicate Price initorderfile Interactions between Pools Interactions between Pools are categorized categorised as Service Contracts checksolvency b:billing ClientSolvable? 48 hours CheckAvailability o:o rder PlacesAvailable oc:o rder [yes] ReservePlace 38 or:o rder With

Specify services architectures Case study example (3/3) 1. Create a Services Architecture 2. Identify Participants <<ServicesArchitecture>> TravelReservation r3:client client cd:clientdefinition travelagency traveller ti:travelinformation travelagency visaaccounter visacenter co:cardoperations r:travelagency tr:travelreservation r2:visapaymentcenter r1:partneragency traveller to:travelorder travelagency travelagency partneragency 3. Identify Service Contracts 4. Bind the Participants to the Service Contracts 39

Specify service contracts (1/2) Analyse the BPMN diagrams to identify service contracts. This is a design-choice as there is no single construct in BPMN that resembles a service contract. Certain pattern of objects can reveal a service contract, e.g. two single tasks follow one after another across a pool or lane and are connected with a sequence flow and associated with a data object. Specify the provider and consumer roles and interfaces operations and messages at the business level 40

Specify service contracts Case study example (2/2) traveller: <<ServiceC ontract>> TravelOrder travelagency:travelorder <<interface>> TravelOrder cancelorder(in order : Order) payo rder(in cardde tails : CardDetails) createorder(in travel : Travel, in client : Client):Order traveller: <<ServiceC ontract>> TravelInformation travelagency:travelinformation <<interface>> TravelInformation getdestinations():string[*] gettravels(in destination : string):travel[*] 41

Hands-on exercise #2 Handson with Modelio Goal Derive SoaML services from BPMN Modelling Link the BPMN and SoaML elements Service Contract Service Architecture Walkthrough h Step by step 42

Service Contract Handson with Modelio <<ServiceContract>> Insuranc epurchasecontrac t travelagency: company:insurancepurchase 43

Services Architecture Handson with Modelio <<ServicesArc hitecture>> t TravelAgencyInsurance r:insuranc ecompany c ompany ip:insura nce Purcha sec ontract travelagency r1:travelage ncy 44

Walkthrough: SoaML Handson with Modelio Package 1. Create InsurancePurchase SoaML Package in Business Architecture Package with right-click. 45

Walkthrough: SoaML Handson with Modelio Participant 1. Create InsuranceCompany participant i t in InsurancePurchase package with rightclick 46

Walkthrough: SoaML Handson with Modelio MessageType 1. Create InsuranceRequest message type in InsurancePurchase package with right-click 47

Walkthrough: Link SoaML Handson with Modelio elements to BPMN elements 1. Open the BPMN diagram in Business Architecture BusinessProcesses TravelReservationProcess 2. Type the IC pool with the InsuranceCompany participant p using the Represented property in the Properties tab 3. Type the IR dataobject with the InsuranceRequest message type using the Type/Represented property in the Properties tab 48

Walkthrough: SoaML Handson with Modelio Provider Interface 1. Create InsurancePurchase provider interface in InsurancePurchase package with right-click 49

Walkthrough: SoaML Handson with Modelio Service Contract Diagram 1. Create InsurancePurchase service contract diagram in InsurancePurchase package with right-click 50

Walkthrough: SoaML Handson with Modelio Service Contract 1. Create InsurancePurchaseContract t service contract t using palette button. 2. Drag and drop InsurancePurchase provider from model browser into the service contract 3. Create travel agency instance inside of the service contract. 4. Link both instances with a connector from the palette 51

Walkthrough: SoaML Service Architecture Diagram Handson with Modelio 1. Create InsurancePurchase service architecture diagram in InsurancePurchase package with right- click 52

Walkthrough: SoaML Handson with Modelio Services Architecture 1. Create TravelAgencyInsurance service architecture using palette button. 2. Drag and drop InsuranceCompany and TravelAgency participants from model browser into the service architecture 3. Create an ip Collaboration Use inside of the service architecture. 4. Type ip with InsurancePurchaseContract service contract using Properties tab. 5. Link participants and the service architecture with bind link from the palette and connect them to the correct roles using Properties tab 53

System architecture modelling (SoaML) 54

System Architecture Model (SAM) System Architecture Model (SAM) Interfaces and Messages Service Orchestrations Represents the IT perspective p of an SOA Service Interfaces Software Components Service Choreographieshi It partitions the system into software components and interfaces. Structural modelling to specify components, their interfaces and dependencies: Service interfaces Interfaces and messages Software components Behavioural modelling to specify component interactions and protocols: Service choreographies Service orchestrations 55

System Business Architecture Model (BAM) Business Goals Business Processes Architecture Modelling The System Architecture Modelling will refine the models of the Business Architecture t Modelling. Capabilities Service Contracts and Choreographies Model to Model (M2M) Transformation System Architecture Model (SAM) Interfaces Service Interfaces and Messages Platform- Specific Model (PSM) Service Orchestrations Software Components Model to Text (M2T) Transformation Cloud, Web Services, JEE, MAS, P2P/Grid, SWS Services Architectures Service Choreographies 56

Specify service interfaces (1/2) Define service interface as UML class stereotyped «ServiceInterface». One-to-one mapping between service contracts and service interfaces. Define provided interface as UML interface stereotyped «Provider». Define consumer interface as UML Interface stereotyped «Consumer». The consumer interface is specified only when callbacks are needed. Link the provided and consumer interfaces to the service interface. Create an interface realization between the provider interface and the service interface. Create a usage link between the consumer interface and the service interface. Create and link a conjugate service interface as UML class stereotyped «ServiceInterface». The name starts with a ~, and represents the counter-part of a service interface. It uses the provider interface It realizes the consumer interface. 57

Specify service interfaces Case study example (2/2) ~TravelOrderService Conjugate Service Interface <<interface>> TravelOrder createorder(in order : Order):integer cancelorder(in orderid : integer) payorder(in orderid : integer, in cardnb : integer) TravelOrderService Provider Interface (operations can be further refined from the BAM) Service Interface ~TravelInformationService getdestinations():string[*] <<interface>> TravelInformation gettravels(in destination : [*] string):simpletravel l gettravelinformation(in travelreference : Travel):boolean TravelInformationService 58

Specify interfaces and messages (1/2) Define message types as UML classes stereotyped «MessageType». The specification of message types is closely linked to the specification of operations and callbacks in the interfaces. Data passed into, and/or returned from the invocation of an operation or event signal defined in an interface. For an asynchronous document-centric approach you will typically only specify one input parameter. For a synchronous document-centric approach you will typically only specify one input parameter and one response parameter. Message types may have properties that can be either modelled as UML properties or associated UML classes. 59

Specify interfaces and Case study example messages (2/2) Message Type representing the Travel Destination country : string=null continent : string=null flight * destination 0..1 travel travel Travel travelreference : string=null publicprice : string=null pricevoyagesdiscount : string=null ishighpriority : boolean=false nbpersons : integer Title : string=null departuredate : Date=null returndate : Date=null travel travel 1 PartnerTravelAgency name : string=null partnert ravela genc y travel 0..1 CarRental category : string=null carrental nbplaces : integer renter : string=null null startingdate : Date=null endingdate : Date=null Flight flightid : string=null departure : string=null arrival : string=null departuredate : Date=null arrivaldate : Date=null hotelbooking * HotelBooking serviceoffer : string=null startingdate : Date=null endingdate : Date=null 60

Specify software components (1/2) Refine the participants of the services architecture by possibly decomposing them into several components. Use SoaML participants for logical system components. Use UML components for components that represent internal designtime software components. Create the ports of the participants/components Service port will be typed by a service interface (service provider). Request port will be typed by a conjugate service interface (service consumer). Link the ports through their provided/required interfaces The types of the linked ports must be such that a conjugate service interface is matched by a service interface. 61

Specify software components (2/2) <<ServicesArchitecture>> TravelReservation client travelagency cd:clientdefinition visaaccounter visacenter r3:client travelagency co:cardoperations traveller r:travelagency ti:travelinformation tr:travelreservation Case study example r2:visapaymentcenter r1:partneragency traveller to:travelorder travelagency travelagency partneragency <<Request>> port, typed by a Conjugate Service Interface <<Service>> port, typed by a Service Interface Participants are refined <<Participant>> Travel Agency Architecture i:website :~ClientDefinitionService ClientDefinition i2:cliententity :ClientDefinitionService :ClientInformationService :~TravelInformationService TravelInformation i1:travelentity :TravelInformationService :~TravelDefinitionService CardOperations :CardOperationsService :~TravelOrderService TravelOrder i3:travelreservationprocess to:travelorderservice co:~cardoperationsservice i6:visapaymentcenter tr:~travelreservationservice i7:partneragency om:~ordermanagementservice b:~billingservice :TravelReservationService OrderManagement Billing TravelReservation :OrderManagementService :BillingService i5:orderentity i4:accountingdepartment 62

Hands-on exercise #3 Handson with Modelio Goal Specify software component Modelling Service Interface definition Participant definition BPMN definition Walkthrough h Step by step 63

Service Interface Handson with Modelio ~InsurancePurchaseService InsuranceRequest <<interface>> InsurancePurchase purchase(in message : InsuranceRequest):InsuranceResponse clie nt : string travel : string InsuranceResponse response : string InsurancePurchaseService 64

Participant Handson with Modelio <<component>> TravelReservationProcess <<Request>> ins:~insurancepurchaseservice 65

BPMN process Handson with Modelio 66

Walkthrough: SoaML Handson with Modelio Package 1. Create InsurancePurchase SoaML Package in System Architecture Package with right-click. 67

Walkthrough: SoaML Handson with Modelio Service Interface Diagram 1. Create a Service Interface diagram in InsurancePurchase package with rightclick 68

Walkthrough: SoaML Handson with Modelio Service Interface 1. Create InsurancePurchase provider interface using palette button. 2. Create InsuranceRequest message type using right-click 3. Create InsuranceResponse message type using right-click 4. Add the properties client and travel typed by string to the InsuranceRequest 5. Add the property response typed by string to the InsuranceResponse 6. Add the operation purchase to the InsurancePurchase provider interface using palette button. 7. Set the input parameter InsuranceRequest and the return parameter to InsuranceResponse using right-click. 69

Walkthrough: SoaML Handson with Modelio Service Interface 1. Create a InsurancePurchaseService service interface using the palette. 2. Create an interface realization from InsurancePurchaseService to InsurancePurchase NB! Do this in a separate class diagram as the service interface diagram is broken! 70

Walkthrough: SoaML Handson with Modelio Service Interface 1. Create a Conjugate Service Interface from InsurancePurchase service interface with right-click 71

Walkthrough: SoaML Handson with Modelio Participant Diagram 1. Create a Participant i t diagram in InsurancePurchase package with rightclick 72

Walkthrough: SoaML Handson with Modelio Participant 1. Drag&Drop TravelReservationProcess participant from model browser (see in Participants package). 2. Create ins Request port using palette button. 3. Type ins port with ~InsurancePurchaseService InsurancePurchaseService conjugate service interface using the Base property in Properties tab. 73

Walkthrough: BPMN Handson with Modelio 1. Open BPMN process diagram inside of the TravelReservationProcess participant. 2. Add choice node and BuyInsurance task as shown 3. Link nodes as shown. 4. Select BuyInsurance node. In SoaML Engine tab, choose ins port and purchase operation invocation. 74

Walkthrough: BPEL Handson with Modelio Transformation 1. Right-click on System Architecture and choose SoaMLEngine / web/ BPEL Transformation 75

Thanks for your attention 76