LaQuSo is an activity of Technische Universiteit Eindhoven and Radboud University Nijmegen Dagstuhl, July 2006 Relationships between services, components.

Slides:



Advertisements
Similar presentations
Developing Event Driven State Machine Workflows S1 S2 S3 S4 Adam Calderon Principal Engineer - Interknowlogy Microsoft MVP – C#
Advertisements

Crucial Patterns in Service- Oriented Architecture Jaroslav Král, Michal Žemlička Charles University, Prague.
A component- and message-based architectural style for GUI software
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Introduction To System Analysis and Design
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane.
IBM WebSphere survey Kristian Bisgaard Lassen. University of AarhusIBM WebSphere survey2 Tools  WebSphere Application Server Portal Studio Business Integration.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Academic Advisor: Dr. Yuval Elovici Technical Advisor: Dr. Lidror Troyansky ADD Presentation.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Chapter 9: Moving to Design
DEV-14: Understanding and Programming for the AppServer™
The chapter will address the following questions:
SOA, BPM, BPEL, jBPM.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Copyright © 2001, Intalio, Inc. BPML 101 Implementing the BPML Specification Jeanne Baker Director of BPI Solutions, Sterling Commerce Director, BPMI.org.
THE NEXT STEP IN WEB SERVICES By Francisco Curbera,… Memtimin MAHMUT 2012.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Framework: ISA-95 WG We are here User cases Studies
An Introduction to Software Architecture
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
1 The CeNTIE project is supported by the Australian Government through the Advanced Networks Program of the Department of Communications, Information Technology.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
Requirements Engineering Methods for Requirements Engineering Lecture-30.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
BPEL Business Process Engineering Language A technology used to build programs in SOA architecture.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Dynamic Models Sequence Diagrams Collaboration Diagrams Activity Diagrams.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Configuration Mapper Sonja Vrcic Socorro,
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
EBIZ302 Jupiter Business Process Automation and Web Services David Fong Program Manager.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
CS223: Software Engineering Lecture 13: Software Architecture.
CS223: Software Engineering
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
© 2009 Artisan Software Tools. All rights reserved. Testing Solutions with UML/SysML Andrew Stuart, Matthew Hause.
Copyright 1999 G.v. Bochmann ELG 7186C ch.1 1 Course Notes ELG 7186C Formal Methods for the Development of Real-Time System Applications Gregor v. Bochmann.
Chapter 29: Program Security Dr. Wayne Summers Department of Computer Science Columbus State University
Technology of information systems Lecture 2 Architecture.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
SDN-O LCM for Mercury Release Key Points and Overview
ORACLE SOA 11g ONLINE TRAINING
Chapter 1: Introduction to Systems Analysis and Design
Main issues: • What do we want to build • How do we write this down
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Distribution and components
Northbound API Dan Shmidt | January 2017
Service-centric Software Engineering
Logical architecture refinement
Design and Implementation
Analysis models and design models
An Introduction to Software Architecture
Chapter 1: Introduction to Systems Analysis and Design
Design Yaodong Bi.
Chapter 1: Introduction to Systems Analysis and Design
Software Development Process Using UML Recap
Architectural Mismatch: Why reuse is so hard?
Presentation transcript:

LaQuSo is an activity of Technische Universiteit Eindhoven and Radboud University Nijmegen Dagstuhl, July 2006 Relationships between services, components and workflows Kees van Hee

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 1/27 AGENDA Service Oriented Architecture Role of process models Components framework Patterns for SOA Verification

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 2/27 Components and services Components deliver services to their clients So components have a role as service provider Components often use services offered by other components So components have often the role of service client software interface component monitor interface configuration interface user interface Systems are networks of cooperating components Systems can be considered as components themselves Components may reside anywhere Synonyms Capsules Modules Packages Classes

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 3/27 Role of software architecture An architecture is used to divide and conquer in development process to identify, specify and select components to test and integrate components to manage a system when it is operational The architecture of a system should be a “living document” of the system

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 4/27 business architecture process model information model  software architecture: logical model…………..... physical model Infrastructure Typical way of architecture modeling

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 5/27 Service Orientation Architecture Supplier Service contract Service Client Service broker Search Publish ttp function

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 6/27 Unique features of SOA A SOA component is a service provider or “business unit” A SOA component will only survive if it offers added value Dynamic binding: services are requested when they are needed services can be obtained from different providers. Components do not have to know each other: the meet via a broker A simple, universal protocol is required One service may be composed of many levels of components. We only have to consider two:

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 7/27 AGENDA Service Oriented Architecture Role of process models Components framework Patterns for SOA Verification

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 8/27 Different roles of process models Business processes: Enterprise Information Systems (EIS) are developed to automate or support business processes So they have to be modeled, verified and validated before Workflow processes in the EIS: an EIS takes care of enactment: the process model is the configuration parameter Configuration of middleware: Components of an EIS cooperate by means of middleware; process models are the configuration parameters of orchestration

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 9/27 Academic formalisms (Labeled)Transition system Process algebra (e.g pi-calculus) Petri net (e.g.colored nets) Engineering frameworks UML Activity Diagram UML State Chart BPMN BPEL EPC (defacto standard) Rose RT Types of process models

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 10/27 AGENDA Component-based world Service Oriented Architecture Role of process models Components framework Patterns for SOA Verification

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 11/27 Reasons for a framework We need to verify the behavioral properties of component- based (SOA) systems Process models are good for modeling system dynamics But are often too abstract or too restrictive Therefore we need models that are closer to the software systems and their “engineering models” We may check these models with formal methods, but we must explain errors in terms of engineering models.

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 12/27 Essential features of a component Every part of a system is a component: so the service brooker, the middleware and the service’. Each component consists of: Monitor (with history log) Exception handler (with roll back mechanism) Communication ports (with message queues) Service catalog (workflow per offered service) Orchestrator (for workflow enactment) Clock (with timer and alarm) Configurator (for updating the service catalog) Application-specific subcomponents Application-specific datasets (variables)

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 13/27 Generic view: component infrastructure P: ports H: history log C: service catalog V: application specific variables S: application specific sub- components Client ports Provider ports Exception Handler Monitor C Configurator H P P P P PP Clock Orchestrator V S

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 14/27 Application specific view (1) Here we define the services of a component by two connected models: Process layer (wf model) Events, activities, tasks Object layer (class model) Variables (volatile and persisitent) Functions (of input and variables to variables and output) Connection: tasks call functions and update variables

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 15/27 Application specific view (2) Workflow model: Each service instance is a case or thread Case tokens are references to case objects Each task may have  Input and output messages (tiggers, events)  Access to case object and other base objects  Tasks exchange messages through ports with other components  Tasks execute operations on objects by method calls Class model: Per service a case class: attribute types and methods (functions on the attributes) Per case one object with its own attributes (variables) “Base” classes: objects that are independent of cases. Like code tables, reference tables. It is persistent data.

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 16/27 Workflows for services Made with Yasper Intertwined workflows Open workflows Transtion boardered Case identities=thread Case sensitive: E:emitor C:collector

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 17/27 Choices to be made Communication ports: 1,2,3 asynchronous, 4,5 synchronous 3,4,5 need only arcs as glue 3 is favourite? (input place, output transition) Reset and inhibitors only within components: so a component can not reset an input of another Time-outs only within components Identity management per component: add per service a case id. “Case sensitivity”. Exception handling per component: triggered by a task, stops orchestration and activates the compensation process based on the history log Component 1 Component

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 18/27 Subcomponents Subcomponents do not have the full functionality of a component: they use the infrastrucure of the component. They are used as modules in a programming language: to manage complexity and for reuse in other components. Subcomponents may have access to objects of their parents. So shared memory in the hierarchy. Orchestrator Component Subcomp Workflow

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 19/27 AGENDA Component-based world Service Oriented Architecture Role of process models Components framework Patterns for SOA Verification

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 20/27 Example: service consumption Made with Yasper An RFI is broadcasted to providers. From the ones that react 5 are selected for an RFP. From 3 of them a selection is made and negotiations are started. Missing: at the end the input place should be reset

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 21/27 Example: execption handler History log contains the trace of tasks. For each updated variable there is a compensation action

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 22/27 Example: communication bus Every components is connected to the bus. The bus filters the data, keeps a log and sends P2P or broadcast. If the service directory is used, is it a broker

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 23/27 AGENDA Service Oriented Architecture Role of process models Components framework Patterns for SOA Verification

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 24/27 Verification: service integrity Components deliver services, tiggered by a client A service may start up sub-services in other components Services should have a clearly defined start and end event; also when a subservice does not deliver (X) A simple service has a Query-Answer protocol and behaves as an RPC. These services are in fact transactions X

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 25/27 Two important correctness criteria Proper completion: services should always be able to terminate with an end event, and they should not leave any unfinished work Invariants: constraints on case and base objects should be valid as soon as a service has finished If we use Petri nets as modeling vehicle: Proper completion is called soundness Soundness is decidable and there are software tools to check it Many other properties can be verified by model checking with (e.g. reachability/coverability graph) often after applying reduction techniques In practice we need to verify business rule like: “always the total of received invoices should not exceed total of delivered services / goods”

Copyright © 2005 LaQuSo Eindhoven/Nijmegen050615_HS_LQS 26/27 Wish list Patterns for the generic components to be combined with application specific models to verify the complete behavior These patterns need to be verified in isolation and be combined using construction rules that guarantee correctness. (nested Petri nets could be a solution here!) State space checking should be combined by reduction techniques. We need also symbolic model checking (see example business rule) The answers of verification should be translated into the original frameworks of the engineers

LaQuSo is an activity of Technische Universiteit Eindhoven and Radboud University Nijmegen Visit Address: Technische Universiteit EindhovenRadboud Universiteit Faculteit NWI Hoofdgebouw (HG) 5.91Hoofdgebouw A6034 Den Dolech 2, EindhovenToernooiveld 1, Nijmegen Postal Address: HG 5.91RUN-FNWI A6034 P.O. Box 513P.O. Box MB Eindhoven6500 GL NijmegenThe Netherlands Phone:+31 (0) (0) Fax: +31 (0) (0) Website: LaQuSo is an activity of Technische Universiteit Eindhoven