modeling process oriented integration of services using patterns and pattern primitives n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Modeling Process-Oriented Integration of Services Using Patterns and Pattern Primitives PowerPoint Presentation
Download Presentation
Modeling Process-Oriented Integration of Services Using Patterns and Pattern Primitives

Loading in 2 Seconds...

play fullscreen
1 / 20

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


  • 87 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Modeling Process-Oriented Integration of Services Using Patterns and Pattern Primitives' - trish


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
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
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
designing process driven soas
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
patterns for process driven soas
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
patterns for process driven soas open issues
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 …
pattern primitives
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
approach
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
modeling process driven soas open issues
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
pattern primitives for process driven soas
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
primitives elicited in the sub set of the pattern language
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
example primitive macro microflow refinement
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

example modeling macro microflow
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
example
Example

Macroflow model containing ProcessControl Data Driven Invocations

and a Refinement

conclusion
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
next steps
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)