1 / 20

Modeling Process-Oriented Integration of Services Using Patterns and Pattern Primitives

Modeling Process-Oriented Integration of Services Using Patterns and Pattern Primitives. Uwe Zdun and Schahram Dustdar Distributed Systems Group Institute of Information Systems TU Wien, Austria. Overview. Modeling process-driven SOAs based on proven practices

trish
Download Presentation

Modeling Process-Oriented Integration of Services Using Patterns and Pattern Primitives

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Modeling Process-Oriented Integration of Services Using Patterns and Pattern Primitives Uwe Zdun and Schahram Dustdar Distributed Systems Group Institute of Information Systems TU Wien, Austria

  2. Overview • Modeling process-driven SOAs based on proven practices • Pattern survey of existing patterns • Patterns for integration of services and processes • Modeling patterns • A concept for modeling process-driven SOAs using pattern primitives • Integrating various models relevant for a process-driven SOA • Using flow models as glue for different kinds of models

  3. Designing Process-Driven SOAs • Process-driven SOA = Process composition layer introduces a process engine • Design principles and proven practices of process-driven SOAs have not been well documented so far • Existing literature and approaches focus on specific technologies • As an architectural concept, process-driven SOAs are, however, in no way depending on specific technologies or composition techniques

  4. Patterns for Process-Driven SOAs • Software patterns provide a systematic reuse strategy for design knowledge • Each pattern is a three-part rule, which expresses a relation between a certain context, a problem, and a solution • A pattern language is a collection of patterns that solve the prevalent problems in a particular domain and context • Patterns support the general understanding of the “timeless” aspects of SOA as an architectural concept • A survey on existing SOA patterns • Pattern language that explains proven practices for process-oriented integration of services in a SOA

  5. Patterns for process-oriented integration of services

  6. Example: “Full-blown” process-based integration architecture

  7. Patterns for Process-Driven SOAs: Open Issues • However: A pattern is described in an informal form • Instead, patterns describe many possible variants of a software solution • Pattern instances are hard to trace in the models and implementations • Design rationale gets lost as the software evolves • But …

  8. Pattern primitives • We propose model patterns through identifying and representing a number of pattern primitives • Documenting pattern primitives means to find precisely describable modeling elements • Represent basic units of abstraction in the domain of the pattern • Originally proposed in the context of architectural patterns • We apply the pattern primitive concept for the precise description of proven practices of process-driven SOAs

  9. Approach • Analysis of each pattern and existing known uses of the pattern in a pattern language • Elicitation of pattern primitives • Each primitive is precisely defined in the context of the UML2 meta-model using OCL constraints • Mapping Primitives → Patterns • Validation of primitives in known uses of the patterns • Validation by building tool support for the primitives

  10. Modeling Process-Driven SOAs: Open Issues • In the scope of process-driven SOAs many kinds of models need to be considered: • message flow specifications • the workflow or business process languages • programming languages and snippets written in programming languages • business object design models • … • Concept is needed to integrate the various kinds of models that are relevant for the patterns of process-driven SOA

  11. Pattern primitives for Process-Driven SOAs • Different models that are relevant for a process-driven SOA come together in various kinds of “flow” models: • Flow models for long-running business processes • Activity steps in long-running processes • Short-running technical processes • Activity steps in Short-running technical processes. • They are a glue for all the other models that are involved in a process-driven SOA

  12. Primitives elicited in the sub-set of the pattern language • Process Flow Refinement • Process Flow Steps • Macroflow Model • Microflow Model • MacroMicroflow Refinement • Restricted Macroflow Step Types • Restricted Microflow Step Types • Synchronous Service Invocation • Asynchronous Service Invocation • Fire and Forget Invocation • One Reply Asynchronous Invocation • Multiple Reply Asynchronous Invocation • Process Control Data Driven Invocation

  13. Macro-/Microflow: Stereotypes for the Primitives

  14. Example Primitive: Macro-Microflow Refinement • Macro-Microflow Refinement Primitive models the situation that Microflow Models are allowed to refine Macroflow Models • We can model this primitive by extending the Microflow Model primitive • In particular, if the refinedActivityNode and refinedActivity tag values of a Microflow are not empty, the Microflow is a refinement of another Microflow, a Macroflow, or a MacroflowSteps Activity -- If a Microflow Activity refines another Activity, then this -- other Activity must be itself stereotyped as Macroflow, -- MacroflowSteps, or Microflow context Microflow inv: if (self.refinedActivity->notEmpty() and self.refinedActivityNode->notEmpty()) then Macroflow.baseActivity->exist(a | a = self.refinedActivity) or MacroflowSteps.baseActivity->exist(a |a = self.refinedActivity) or Microflow.baseActivity->exist(a | a = self.refinedActivity) endif

  15. Example: Modeling Macro-Microflow • Macro-microflow pattern: • Structure a process model into two kinds of processes, macroflow and microflow • Strictly separates the macroflow from the microflow, and use the microflow only for refinements of the macroflow activities • Both in macroflows and microflows we can observe refinements • The different kinds of refinement can be modeled using the Process Flow refinement primitive • Process Flow Refinement is a generic primitive that can be used for modeling all kinds of process refinements

  16. Macro-Microflow modeling example 1

  17. Macro-Microflow modeling example 2

  18. Example Macroflow model containing ProcessControl Data Driven Invocations and a Refinement

  19. Conclusion • Modeling process-driven SOA based on proven practices • Broad validation of the patterns and primitives in a large number of industrial and research systems • Primitives: semi-formal modeling approach for process-driven SOAs • Avoids that the design knowledge and rationale gets lost or the patterns' constraints might get violated • The primitives are represented in the various flow models • Integrate the different kinds of models relevant for the patterns • Approach is very general and can easily be used with other process modeling approaches

  20. Next Steps • We are continuing to work on a pattern language for process-driven SOA • We are documenting more primitives formally • We are currently developing a model-driven tool suite • Support the generation of models in other modeling languages (such as BPEL or source code • We are going to develop a visual notation for the stereotypes (or integrate the approach in other notations)

More Related