Download presentation
Presentation is loading. Please wait.
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)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.