2. Agenda Background Problem statement Example Strategy Modeling and model transformation DSL design, modeling, template design, and model transformation Framework Findings Summary and future work 2
3. Background Two major architectural styles exist in today’s distributed enterprise IT system designs: Business Process-oriented architecture (e.g. using BPMN) Business Service-oriented architecture (e.g. using SOA) Business Rule ….. Business Process Business Service Business Event 3
4. Background: Business Process “business process is a defined set of business activities that represent the steps required to achieve a business objective.” (BPMN specification) 4
5. Background: BPM and distributed system BPM related standards BPDM, BPMN, UML, Workflow, IDEF, … and Enterprise Architecture such as FEA, DoDAF/MODAF, TOGAF 5
6. Background: Business Service “A service is a mechanism to enable access to one or more capabilities, where the access is provided using a prescribed interface and is exercised consistent with constraints and policies as specified by the service description.” (SOA Reference Model) Add business context to the services definition above. 6
7. Background: SOA and distributed system SOA related standards SOA-RM, SoaML, SCA, WS-* as implementation standards Service Service Service Service Service 7
8. Background: Process & Service Each one may be implemented using the other. Business Process Business Services use Service A use Step N use execute use Service C Service B use implement Service X Business Process Either style can be used for enterprise IT system development. 8
9. Problem statement Both can be used to build distributed enterprise IT systems, and each can be dependenton the other. Are they essentially the same? If not, how similar/different are they, and where does the difference come from? Should they be used at the same abstraction level? If not, which one should be positioned over the other? Including but not limited to process and service relationship, How can we compare models of different architecture styles? How can we measure the similarity/difference between models of different architecture style? 9
10. Example Buy-Sell-Ship business process and business service E.g. when you buy a book from online book store, or when a company buys office goods from online retailer Notations Business Process in RM-ODP Enterprise Language (extension of UML Activity) Business Service in SoaML 10
13. The strategy Assumption: if model A (conforming to metamodel MA) is successfully mapped to model B (conforming to metamodel MB), and the model B is successfully mapped back to the model A, then A and B are semantically equivalent, and Mappings can be defined between MA and MB as well. Examine how much: BPM based model can be transformed to a Service based model, and Service based model can be transformed to a BPM model Method: By creating essential models, and By applying model transformation to other type to measure the matching rate 13
14. About MD* Model Driven Engineering is a filed of Software Engineering, where models are considered as important resources in software development processes. MD*: Model Driven engineering (MDE), design (MDD), development (MDD), software development (MDSD), architecture (MDA®), … Popular terms Model(ling), metamodel(ling), domain specific language (DSL), model transformation, model validation, … 14
15. About DSL Domain specific language “a computer programming language of limited expressiveness focused on a particular domain.” (M. Fowler’s Domain Specific Languages book) Could be internal (dependent on hosting programming language) or external Could be graphical or textual 15
16. Modeling and model transformation Modeling As a first step, used domain specific language for the purpose (“ProcessDSL” and “ServiceDSL” based on eclipse/Xtext) [to avoid the complexity UML may introduce at the next step] Model Transformation Used “Model to text (M2T)” rather than “Model to model (M2M)” to get flexibility in model navigation M2M: MOF Query View and Transformation, ATL. … M2T: Xpand, JET,MOF M2T, … Used Xpand/Xtend template language/engine, a part of eclipse/Xtext 16
17. The work flow Domain Specific Language development Created a grammar for each domain (process modeling and service modeling) Modeling with generated DSL model editor Generated a textual editor for model development Created models that reflects sample process and sample services Template development Created “process->service” and “service->process” model transformation templates Executed model transformations Generated text or model for evaluation 17
20. Template design Import generated process metamodel Create output file Create service interfaces from crossing lane actions Create participants from non-artifact lanes Create messages from artifact lane Create contracts from consumer and provider 20
24. Template design Import generated service metamodel Create output file Create process from SOA collaboration Create role from SOA participant Create step Request and Receive from messages Create artifact roles from messages 24
27. Results overview Model Transformation Sample ProcessDSL based Model & lines of text Generated ServiceDSL based Model & lines of text Compare Sample ServiceDSL based Model & lines of text Generated ProcessDSL based Model & lines of text 27
29. Sample ProcessDSL based Model 227 Generated ServiceDSL based Model 88 38.7% 17.6%(~9%) Compare 70.4%(~35%) Sample ServiceDSL based Model 125 Generated ProcessDSL based Model 40 32% 29
30. Findings Something internal to a specific lane in a process will be lost when transforming process to service, and theywill not be generated from a set of services when transforming service to process. Orchestration of all the participants in process model will be lost when transforming process to service, and they will not be re-created from service models when transforming service to process. 30
31. Findings Abstraction levels/target audience do not match completely. Process models are at end users or business analysts level. Service models further include software architects or developers perspective (e.g. service interface definitions). If required, placing process model over service model will work better than the other way. Model Transformation Model transformation is not always possible. Published cases are successful cases. Even with unsuccessful cases, model transformation works as a tool for measuring how close two models are. 31
32. Findings Model Comparison DSL for software architecturecan be used as a tool to create architecture based models. Model transformations can be applied to compare models. Two way model transformation could be a means to analyze the similarities of the two models. Matching rate of “process to service” transformation is higher than “service to process” transformation. Tooling Open source Eclipse/Xtext is good enough tool for the experiment. M2T transformation can be used to generate other DSL based model. 32
33. Problem statement (again) Both can be used to build distributed enterprise IT systems, and each can be dependenton the other. Are they essentially the same? If not, how similar/different are they, and where does the difference come from? Should they be used at the same abstraction level? If not, which one should be positioned over the other? Including but not limited to process and service relationship, How can we compare models of different architecture styles? How can we measure the similarity/difference between models of different architecture style? 33
34. Summary Process-oriented and service-oriented architectures have some commonality but with different focused area. [i.e. not exactly the same] Similarities and differences Generated service model / hand-written service model = 70.4% (max) Generated process model / hand-written process model = 17.6% (max) Differences: internal activities, orchestration, service interface etc. Process-oriented model should better be positioned over service-oriented model if both need to coexist. This method can be used to compare architectures, and matching rate can be used as a metrics for comparison. 34
35. Future Works Mechanisms to verify essential DSLs to generate DSLs from UML models to measure model transformability to make currently lost internal information in a lane visible (by e.g. introducing local controller?) to introduce orchestration into service architecture (as annotation?) More experiments use ODP model, including computation model, as a source process-based model use M2M to improve formality/transformability of the method 35