Integrating BPMN and SoaML Based on an example from SoaML spec.

Slides:



Advertisements
Similar presentations
SOA Modelling By Rajat Goyal.
Advertisements

Object-Oriented Software Engineering Visual OO Analysis and Design
Aligning Business and IT Models in Service-Oriented Architectures using BPMN and SoaML Brian Elvesæter, Dima Panfilenko, Sven Jacobi & Christian Hahn MDI2010.
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
OASIS Reference Model for Service Oriented Architecture 1.0
Object-Oriented Analysis and Design
Web Ontology Language for Service (OWL-S). Introduction OWL-S –OWL-based Web service ontology –a core set of markup language constructs for describing.
Irwin/McGraw-Hill Copyright © 2004 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS6th Edition.
Business Process Orchestration
Unified Modeling (Part I) Overview of UML & Modeling
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
HAS. Patterns The use of patterns is essentially the reuse of well established good ideas. A pattern is a named well understood good solution to a common.
© Copyright Eliyahu Brutman Programming Techniques Course.
Use Case Analysis – continued
Web Service Architecture Part I- Overview and Models (based on W3C Working Group Note Frank.
Department of Computer Science 1 CSS 496 Business Process Re-engineering for BS(CS)
Chapter 7: The Object-Oriented Approach to Requirements
Page 1 May 2009 SOS Concepts in DM2 – SoaML Example The purpose of this is to refine SOA concepts in DM2 –It is a summary for the DM2/SOA team –Based on.
BPMN By Hosein Bitaraf Software Engineering. Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
An Introduction to Software Architecture
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Systems Analysis and Design in a Changing World, 3rd Edition
1 Introduction to modeling Process and Service modeling.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Design Model Lecture p6 T120B pavasario sem.
Ontologies Reasoning Components Agents Simulations Architectural Modeling with UML2 Composite Structures and Components Jacques Robin.
® IBM Software Group © 2004 IBM Corporation Developing an SOA with RUP and UML 2.0 Giles Davies.
Dr. Rebhi S. Baraka Advanced Topics in Information Technology (SICT 4310) Department of Computer Science Faculty of Information Technology.
Service Contract Perspectives UPMS Submission team March 2007.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Behavioral Framework Background & Terminology. Behavioral Framework: Introduction  Background..  What was the goal..
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
1 CEN 4020 Software Engineering PPT4: Requirement analysis.
Diagrams. Typically, we view the static parts of a system using one of the four following diagrams. 1. Class diagram 2. Object diagram 3. Component diagram.
OMG 9/16/2008 UPMS – UML Profile and Metamodel for Services – RFP Revised submission: SoaML Service oriented architecture Modeling Language SOA SIG Orlando,
Integrating BPMN and SoaML Based on an example from SoaML spec.
Modeling of Service Oriented Architecture: From Business Process to Service Realization Petr Weiss and Marek Rychlý Brno University of Technology, Faculty.
Variability Modeling for Service Oriented Product Line Architectures 최경석.
Chapter 5 – System Modeling
Systems Analysis and Design in a Changing World, Fourth Edition
Analysis Classes Unit 5.
UML Diagrams By Daniel Damaris Novarianto S..
Chapter 6 The Traditional Approach to Requirements.
Chapter 5 – System Modeling
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Object-Oriented Analysis and Design
2.3 Collaboration Contracts
Unified Modeling Language
Integrating BPMN and SoaML
UML Diagrams Jung Woo.
The Object Oriented Approach to Design
Object-Oriented Design
Interactions.
Service-centric Software Engineering
Unified Modeling Language
Chapter 20 Object-Oriented Analysis and Design
Design and Implementation
BPMN - Business Process Modeling Notations
Software Design Lecture : 15.
An Introduction to Software Architecture
Design Yaodong Bi.
Use Case Analysis – continued
Presentation transcript:

Integrating BPMN and SoaML Based on an example from SoaML spec

Motivation BPMN and SoaML are complimentary –Demand-side view: outward facing view of an entities value proposition, responsibilities and what it requires of others –Supply-side view: a design of the activities an entity has chosen to accomplish its goals and providing services to deliver its value Together they address the organization, information and behaviors from different perspectives: –SoaML: Structure of systems of collaborating systems –BPMN: Dynamic behavior

Some requirements for Integrating BPMN and SoaML Support the construction and consumption of services 1.Identify SoaML Capabilities (or candidate services) from BPMN processes 2.Identify, specify and implement services using SoaML 3.Use BPMN to define a method to implement an Operation of a SoaML ServiceInterface provided by a Participant 4.Invoke a service operation defined by a SoaML ServiceInterface and provided by SoaML Participant as a ServiceTask in a BPMN process 5.Share information specifications (classes, data types, messages) between BPMN and SoaML 6.Use SoaML to define lifecycles for data objects in BPMN that can respond to business events Separate the architecture of the services from the processes that drive or use them

Integration Requirements Identify BPMN issues that: –Would improve the quality of BPMN –Would facilitate integration whenever or however we decide to do it Minimize undesirable coupling between specifications and metamodels Specifications should be able to be used independently as well as together Minimize implementation vendor burden Focus on complimentary modeling capabilities, not overlap

Approaches to Integration None –Assumes specifications and tools are independent with intentional overlap –Does not leverage complimentary capabilities –Document best practices for using each specification Model-to-model Mapping –Focuses on specification overlap –Results in redundant models increasing life-cycle management and reconciliation issues –Minimal effect on integration tool support –Can represent a CIM to PIM mapping –Not clear this would need to be standardized as there could be different mappings for different purposes Metamodel Integration –Provides best integration, but at higher development and integration costs –Can be accomplished with a metamodel extension, separate bridging metamodel using package merge, or possibly UML profiles –Standardize on a shared ontology of BPM and SOA

Approach to defining the integration to meet the requirements Identify topics fulfilling the requirements in a language independent manner, without regard to BPMN or SoaML Start by developing a complete example using both standards –Covers a set of topics including structure and behavior –What services are provided and consumed by whom –How the services are implemented and used Use the example to explore commonality and variability Develop a mapping table (ok to have gaps and overlaps) Design an integration that exploits the strengths of each specification Demonstrate how the integration satisfies the requirements Publish a discussion paper describing the integration and best practices for using the BPMN and SoaML together Develop a roadmap to provide the proposed integration

Topics to Explore Encapsulation: Description of a encapsulating element or “component” including its potential interactions with other prototypical components Contract: Specification of the potential interactions between components that the agree to adhere to Behavior: Representation of a component’s internal behavioral implementation (orchestration) –How the component consumes and provides services according to the agreed upon contract Structure: Internal structure of a component as an assembly of other components –How the components are connected in order for the interactions to occur –At the class level and/or part level

The description of a component’s interaction with other components Interactions between components involve the following: –The specification of the messages exchanged –The grouping of those messages into logical, cohesive units –The valid sequence, protocol or choreography that constrains the order of those messages We need to look at how BPMN and SoaML address each of these dimensions

Figure 84 “The OrderProcessor Service Provider” in SoaML A Participant provides services through ServicPoints and consumes them through RequestPoints Participants must provide a method implementing each of their provided service operations A Service Port is typed by a ServiceInterface and describes the expected interactions the participant has through this interaction point A service port represents a capability the participant exposes as a service A request port represents a need the participant expresses as a request for a service Interfaces define the available operations that do things

InvoicingService ServiceInterface Specifies the provided interface and operations Specifies the required interface and operation A use case can describe the requirements for the service interface A service interface can define a role in a service contract An activity (or interaction) can specify the protocol for using and providing the service These parts represent the service and request ports at the end of a service channel connector connecting consumers and providers of the service The activity shows the permissible sequence of invocations of the operations SoaML ServiceInterface defines the valid messages, message grouping and choreography and is used to define the type of Service and Request Ports The activity partitions represent the parts of the service contract, the participants connected through a service channel

Associated BPMN 2.0 Collaboration

Associated BPMN 2.0 Conversation

Associated BPMN 2.0 Conversation (showing mini-Choreography)

Associated BPMN 2.0 Choreographies (per Conversation) Order Shipping Invoice Schedule

Encapsulated Conversation (and Choreography)

Associated BPMN 2.0 Choreography (Complete)

Potential Issues The information about the interactions is spread across three diagrams in BPMN with unclear connections between them: –There’s no way to connect a choreography to a particular communication to indicate the valid sequences of the messages in that communication –Should be possible to drill down a communication to see the messages grouped and their valid choreography –This could be done using naming conventions Relationship between orchestration and collaboration, communication and choreography –How the orchestrations conform to the interaction protocols –Possibility of lanes representing communications Relationship to BPMN interactions and interfaces is unclear –Relationship between messages and service operations needs to be defined

Mappings SoaML TermBPMN Mapping ServicesArchitecture (a UML Collaboration) or a specification Participant Overview Choreography ParticipantParticipant representing PartnerEntity (within definitional collaboration Service PortOne end of a communication between participants in a communication diagram: Interface of the above participant Request PortThe other end of the communication, the one sending the first message ServiceInterface (defining the type of a Service or Request Port) Interface, but doesn’t support service protocols. Alternatively, a communication in a communication diagram, including the corresponding messages in a collaboration diagram, and the choreography of those messages in a choreography diagram Interface (realized or used by a ServiceInterface)Interface, but not clear how this relates to a communication Operation or Reception (of an Interface)Operation of an Interface or Message, but not clear how this relates to an operation of an interface Parameter (of an Operation)Message inputs and outputs for an Operation

Integration Topics to Explore Encapsulation: Description of a encapsulating element or “component” through its potential interactions with other prototypical components Behavior: Representation of a component’s behavioral implementation (orchestration) –Public process: observable behavior as seen from the outside –Internal processes: those that implement and use services Contract: Service Contract, component’s interactions (collaboration, conversation, choreography) between components describing how they interact Structure: Internal structure of a component as an assembly of other components –At the class level, dependencies between components –At the instance level, connected parts in an assembly defined by usages of component types

Figure 86 “The processPurchaseOrder Service Operation Design” in SoaML A part Activity Partition represents a request port of the owning participant This activity is owned by the participant and is the method for providing its service operation A call operation action is an invocation of a service operation available through the request port represented by the activity partition This is the receipt of a callback from the consumer through the request port’s provided interface (a two- way conversation) The target InputPin of the Action must be set to the Port represented by the part ActivityPartition the Action is in

Associated BPMN 2.0 Process (with Definitional Collaboration)

BPMN 2.0 Process (with Definitional Collaboration and Choreography)

BPMN 2.0 Process (with Definitional Collaboration and Conversation)

BPMN 2.0 Process (with Definitional Collaboration, Conversation, and Messages)

Potential Issues Unclear how the orchestration of the OrderProcessor is connected to the operation of the service being provided Lots of low-level send and receive message activities in the process instead of abstracting a service invocation interaction – describes how the service is implemented as message exchanges which is unnecessary and inappropriate for business processes Conventions for using lanes to correspond to communications is informal Encapsulation is broken by showing message exchanges that cross participant boundaries and connect to specific activities – results in increased coupling between participants Not clear how the messages in a collaboration correspond to the messages of an operation invoked with a service task –May need to be able to associate an interface with a conversation through which the messages for operations of that interface flow Unclear how to model multiple processes and services provided by the same participant –Multiple orchestrations in the same pool? –Multiple pools with the same name, each showing a different process?

Mappings SoaML TermBPMN Mapping ActivityProcess CallOperationAction including target InputPin and Pins for Parameters SendSignalActionSend Task AcceptCallAction AcceptEventAction ControlFlowSequence Flow ObjectFlowData Association Etc.

Integration Topics to Explore Encapsulation: Description of a encapsulating element or “component” through its potential interactions with other prototypical components Behavior: Representation of a component’s behavioral implementation (orchestration) –Public process: observable behavior as seen from the outside –Internal processes: those that implement and use services Contract: Service Contract, component’s interactions (collaboration, conversation, choreography) between components describing how they interact Structure: Internal structure of a component as an assembly of other components –At the class level, dependencies between components –At the instance level, connected parts in an assembly defined by usages of component types

Figure 87 “Assembling the Parts into a Deployable Subsystem” in SoaML Participants can assemble reference to other participants needed to provide their services A participant can delegate a service to one of its parts Requests of one participant are connected to compatible services of another Participants can adhere to a ServicesArchitecture by indicating what roles the parts in the assembly play in the services architecture These parts represent references to instances of participants that will exist at runtime

Associated BPMN Mapping Alternative 1 (preferred): Out of scope –BPMN is used to describe process components and their implementations –BPMN does not describe the wiring of such components  SoaML and BPMN are orthogonal and composable Same relationship as SCA and BPEL Alternative 2: Add relationship between partnerEntity and partnerRole –Corresponding to SoaML wiring between request point and component/its service point  Leads to undesirable overlap between specs

Integration Topics to Explore Encapsulation: Description of a encapsulating element or “component” through its potential interactions with other prototypical components Behavior: Representation of a component’s behavioral implementation (orchestration) –Public process: observable behavior as seen from the outside –Internal processes: those that implement and use services Contract: Service Contract, component’s interactions (collaboration, conversation, choreography) between components describing how they interact Structure: Internal structure of a component as an assembly of other components –At the class level, dependencies between components –At the instance level, connected parts in an assembly defined by usages of component types

ServicesArchitecture A ServicesArchitecture defines the specification for the interaction between a set of participants collaborating to accomplish some end. References to ServiceContracts specify the agreements between the participants, specifying how they interact in this services architecture The behavior of the ServicesArchitecture specifies how the participants interact

Associated BPMN 2.0 Choreography

Backup Detailed slides, or those that define intermediate model states that indicate how the models might be developed

Role / Type UML and BPMN employ the same implicit “reuse” pattern. Making it explicit, just for discussion: –Things play roles in contexts. –Roles restrict the kinds (types) of things that can play them. –Things only exist at “runtime”, but models are explained by their effect on things.

Role / Type: Examples ContextRoleType CompanyEngineerPerson CompanyHeadquartersBuilding CarLeft Front WheelWheel Stage PlayPartPerson BrokeringSellerEconomic Agent

Role / Type: Metamodel Roles are owned by contexts. Types are “reusable”. Implicit metamodel: Context RoleType has

Role / Type: BPMN Context RoleType Process CallActivityProcess Activity Activity Resource / Performer Resource Collaboration CallCollaborationCollaboration ParticipantPartnerEntity/Role Collaboration Message FlowMessage Interface OperationMessage

Role / Type: UML Context RoleType Class Property (“part”) / Port Class / Interface Class ConnectorAssociation Collaboration Property (“role”)Class / Interface Activity CallBehaviorActionBehavior Interaction LifelineClass Interaction InteractionUseInteraction

Role / Type: SoaML (UML+) Context RoleType Participant Service / Request PortServiceInterface Services Architecture Property (“part”)Participant Property (“part”)Participant ServiceChannelN/A Service Contract Property (“role”)ServiceInterface

Associated BPMN 2.0 Definitional Collaboration invoicingShipping scheduling

Associated BPMN 2.0 Process

Associated BPMN 2.0 Process (Lanes)

Issues Check execution for service task—to make sure what instance of a Participant will support the operation Question: how are data associations connected to input/output messages of operation?