Presentation is loading. Please wait.

Presentation is loading. Please wait.

Modeling Process-Oriented Integration of Services Using Patterns and Pattern Primitives Uwe Zdun and Schahram Dustdar Distributed Systems Group Institute.

Similar presentations

Presentation on theme: "Modeling Process-Oriented Integration of Services Using Patterns and Pattern Primitives Uwe Zdun and Schahram Dustdar Distributed Systems Group Institute."— 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 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 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 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 5 Patterns for process-oriented integration of services

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

7 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 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 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 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 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 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 13 Macro-/Microflow: Stereotypes for the Primitives

14 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 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 16 Macro-Microflow modeling example 1

17 17 Macro-Microflow modeling example 2

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

19 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 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)

Download ppt "Modeling Process-Oriented Integration of Services Using Patterns and Pattern Primitives Uwe Zdun and Schahram Dustdar Distributed Systems Group Institute."

Similar presentations

Ads by Google