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

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Page 1 Automatic Evaluation of Modelling Rules and Design Guidelines, July 2006 Automatic Evaluation of Modelling Rules and Design Guidelines Tibor Farkas,
Meng Tian Extension in Domain Specific Code Generation with Ontology Based Aspect Weaving Supervisor: Julian Rathke
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
WebRatio BPM: a Tool for Design and Deployment of Business Processes on the Web Stefano Butti, Marco Brambilla, Piero Fraternali Web Models Srl, Italy.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Programming Distributed Systems Lab Institute of Computer Science University of Augsburg Universitätsstraße 14, D Augsburg Tel.: (+49) 821/ ,
CUSTOMER FOCUS COMMITMENT QUALITY PLATINUM PARTNER 1 Click to edit Master title style rewferwfff CUSTOMER FOCUS COMMITMENT QUALITY PLATINUM PARTNER 1 Oracle.
An Integrated Approach to Enterprise Architecture LIACS, Martijn Wiering 23 juni ‘04.
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
Requirements Analysis Concepts & Principles
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
WebRatio BPM: a Tool for Design and Deployment of Business Processes on the Web Stefano Butti, Marco Brambilla, Piero Fraternali Web Models Srl, Italy.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
© Copyright Eliyahu Brutman Programming Techniques Course.
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Architectural Styles Characterize –Structure, i.e. external.
Common Mechanisms in UML
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Foundations This chapter lays down the fundamental ideas and choices on which our approach is based. First, it identifies the needs of architects in the.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
On Roles of Models in Information Systems (Arne Sølvberg) Gustavo Carvalho 26 de Agosto de 2010.
SEG4110 – Advanced Software Design and Reengineering
Requirements Analysis
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
Compositional IS Development Framework Application Domain Application Domain Pre-existing components, legacy systems Extended for CD (ontologies) OAD Methods.
TC Methodology Massimo Cossentino (Italian National Research Council) Radovan Cervenka (Whitestein Technologies)
Introduction to MDA (Model Driven Architecture) CYT.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
Patterns and Reuse. Patterns Reuse of Analysis and Design.
Generative Programming. Automated Assembly Lines.
A language to describe software texture in abstract design models and implementation.
An Introduction to Software Engineering. Communication Systems.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
ARCH-2: UML From Design to Implementation using UML Frank Beusenberg Senior Technical Consultant.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
1 Context-dependent Product Line Practice for Constructing Reliable Embedded Systems Naoyasu UbayashiKyushu University, Japan Shin NakajimaNational Institute.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
The Business Choreography Language (BCL) A Domain-Specific Language for Global Choreographies Institute for Software Technology and Interactive Systems.
ICT EMMSAD’05 13/ Assessing Business Process Modeling Languages Using a Generic Quality Framework Anna Gunhild Nysetvold* John Krogstie *, § IDI,
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
® IBM Software Group © 2004 IBM Corporation Developing an SOA with RUP and UML 2.0 Giles Davies.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Modeling the ODP Computational Viewpoint with UML 2.0: The Templeman Library Example José Raúl Romero, Antonio Vallecillo Universidad de Málaga, Spain.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Requirements Analysis
UML Profile BY RAEF MOUSHEIMISH. Background Model is a description of system or part of a system using well- defined language. Model is a description.
Basic Concepts and Definitions
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
Abstract BPEL Candidate Use Case: Modeling for Business Understanding Wednesday, May 23, 2004 Disclaimer: These are the views of Phil Rossomando and not.
Nigel Baker UWE & CERN/EP-CMA Design Patterns for Integrating Product and Process Models The C.R.I.S.T.A.L. Project ( C ooperative R epositories & I nformation.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Evolution of UML.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Visualizing Design Patterns in Their Applications and Compositions
Implementing Language Extensions with Model Transformations
Introduction to UML.
Design Tips.
Implementing Language Extensions with Model Transformations
From Use Cases to Implementation
Software Architecture & Design
Presentation transcript:

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)