A metadata-driven approach to context-sensitive composition of collaborations Eddy Truyen, Wouter Joosen and Pierre Verbaeten Bo N. Jørgensen Maersk Institute.

Slides:



Advertisements
Similar presentations
Classes & Objects Computer Science I Last updated 9/30/10.
Advertisements

Basic Concepts in Component-Based Software Engineering
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. Workflow utilization in composition of complex applications based.
Service Oriented Architecture Concepts March 27, 2006 Chris Armstrong
Reseach in DistriNet (department of computer science, K.U.Leuven) General overview and focus on embedded systems task-force.
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
On the horizon Chapter twenty-five of: Szyperski, Clemens et al. Component Software - Beyond Object-Oriented Programming. Second Edition.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Themes and Variations abstraction -- the object metaphor modeling -- understanding.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
1 CS1001 Lecture Overview Object Oriented Design Object Oriented Design.
Chapter 22 Object-Oriented Design
Course Instructor: Aisha Azeem
C++ fundamentals.
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
THE NEXT STEP IN WEB SERVICES By Francisco Curbera,… Memtimin MAHMUT 2012.
Design Patterns.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
An Object-Oriented Approach to Programming Logic and Design
Web Services Experience Language Web Services eXperience Language Technical Overview Ravi Konuru e-Business Tools and Frameworks,
CONCEPTS OF OBJECT ORIENTED PROGRAMMING. Topics To Be Discussed………………………. Objects Classes Data Abstraction and Encapsulation Inheritance Polymorphism.
An Introduction to Software Architecture
Chapter 1: Introduction to Systems Analysis and Design
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Architecting Web Services Unit – II – PART - III.
Unified Modeling Language, Version 2.0
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
OASIS Week of ebXML Standards Webinars June 4 – June 7, 2007.
© DATAMAT S.p.A. – Giuseppe Avellino, Stefano Beco, Barbara Cantalupo, Andrea Cavallini A Semantic Workflow Authoring Tool for Programming Grids.
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
GSFL: A Workflow Framework for Grid Services Sriram Krishnan Patrick Wagstrom Gregor von Laszewski.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
Dynamic and Selective Combination of Extension in Component-based Applications Eddy Truyen, Bart Vanhaute, Wouter Joosen, Pierre Verbaeten, Bo N. Jørgensen.
On the Aspect Composition Issue Eddy Truyen, Wouter Joosen, Pierre Verbaeten.
Learners Support Publications Object Oriented Programming.
BPEL Business Process Engineering Language A technology used to build programs in SOA architecture.
® IBM Software Group © 2004 IBM Corporation Developing an SOA with RUP and UML 2.0 Giles Davies.
16/11/ Web Services Choreography Requirements Presenter: Emilia Cimpian, NUIG-DERI, 07April W3C Working Draft.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
A Mediated Approach towards Web Service Choreography Michael Stollberg, Dumitru Roman, Juan Miguel Gomez DERI – Digital Enterprise Research Institute
Dr. Rebhi S. Baraka Advanced Topics in Information Technology (SICT 4310) Department of Computer Science Faculty of Information Technology.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Introduction to Service Orientation MIS 181.9: Service Oriented Architecture 2 nd Semester,
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (2/2)
Basic Characteristics of Object-Oriented Systems
Context-Aware Middleware for Resource Management in the Wireless Internet US Lab 신현정.
 The Object Oriented concepts was evolved for solving complex problems. Object- oriented software development started in the 1980s. Object-oriented design.
Design Patterns: MORE Examples
Chapter 1: Introduction to Systems Analysis and Design
Architecting Web Services
Systems Analysis and Design With UML 2
Architecting Web Services
Object Oriented Analysis and Design
Service-centric Software Engineering
Service-centric Software Engineering 1
Object-Oriented Design
Chapter 1: Introduction to Systems Analysis and Design
Structural Patterns: Adapter and Bridge
Design Yaodong Bi.
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

A metadata-driven approach to context-sensitive composition of collaborations Eddy Truyen, Wouter Joosen and Pierre Verbaeten Bo N. Jørgensen Maersk Institute of Production Technology Southern University of Denmark

Background Our work is about distributed system infrastructure that supports context-sensitive customization of distributed services –Different client contexts have different requirements in terms of ‘desired features’ –Client-specific and dynamic composition of feature implementations Approach –Extensive componentization of features System = composition of feature components –Per-client-request composition composition process takes into account needs of the runtime context

Two questions? What’s a good component? –Improved feature modularization capability How can web services leverage context- sensitive composition of such components? –Bridge the chasm between OOP and web services –Object-oriented programming model ‘pur sang’? Interface interaction and versioning complexity

What’s a good component?

Context-sensitive composition of collaborations collaboration “yellow” collaboration “orange” collaboration “purple” activate the yellow and the purple feature for my requests abstract collaboration

Needed mechanisms from an OO-standpoint –Delegation (aka object-based inheritance) Context-sensitive late binding –Family polymorphism [Ernst, ECOOP’ 2001] Scales late binding from objects to groups of objects –Delegation Layers [Ostermann, ECOOP’2002] Combines delegation and family polymorphism

How can web services leverage these mechanisms web servicesobjects object identity interface object WSDL XML data URI’s exception handling object life cycle open standards Proprietary nature message UDDI method service XMI metadatatype similar peer conceptNo peer concept composite objects

Our approach Lasagne [Truyen, ICSE’2001] –metadata-driven approach to context-sensitive composition Focus on support for distributed systems Basic mechanisms –Message interception –Messages carry metadata –Simulated OO-mechanisms Family polymorphism –consistent configuration of peer objects Delegation –Context-sensitive late binding –But protect against malicious clients

Our approach configuration metadata –how collaborations must be composed with each other –is managed by a trusted configuration manager –In OOP terms: encapsulation of specialization interface Immaculate Client Interface Principe [Steyaert, ECOOP’95] generic metadata –client-specific selection of desired collaboration components –is dynamically included in the header of messages –in OOP terms: qualified message passing Point-Of-View Notion of Multiple Inheritance [Carre, OOPSLA’90] Split Objects [Bardou, OOPSLA, ’96]

Our approach distributed thread propagates generic metadata with the locus of execution In OOP terms: family polymorphism for a given client request, the self parameters must be consistently evaluated in harmony to the same set of collaborations. core add generic metadata {purple feature, yellow feature} to my request core

Overview

Conclusion Collaboration-based design improves feature modularization and reuse capabilities Metadata-driven composition of features –Necessary mechanisms are already at place in web service infrastructure Message headers Message interception

Discussion Does collaboration-based design make sense at the level of composing web services Eddy Truyen, Wouter Joosen and Pierre Verbaeten Bo N. Jørgensen Maersk Institute of Production Technology Southern University of Denmark

Revisiting desired properties Modularity –Customizability depends on the ability the separate all concerns of importance => limited impact of change –Feature modularization capability depends on the kind(s) of decomposition and composition a programming language or design methodology supports Requirement analysis decomposes a system by ‘feature’ Object-oriented design and implementation decompose a system by ‘object’ –Aspect-oriented programming

Reusability –Application-domain specific reuse Component reuse Architectural reuse: component interactions  Component frameworks  Conflict between reuse and customizability  Frameworks do not allow interaction refinement –These limitations can be overcome in collaboration-based design Revisiting desired properties

Reusability (ctd.) –In collaboration-based design the hotspots are not objects, but the interactions between objects Revisiting desired properties

Independent extensibility = a system can cope with the late addition of components without requiring a global integrity check  Need for contractual specification of common abstractions. Two senses of a contract: Component contract specifies the interfaces provided by a component and the interfaces needed by a component to provide these services Interaction contract specifies a pattern of interaction among different roles and the reciprocal obligations of components that fill these roles Revisiting desired properties

Context-sensitive composition of collaborations collaboration “yellow” collaboration “orange” collaboration “purple” activate the yellow and the purple feature for my requests abstract collaboration

Context-sensitive composition of collaborations abstract collaboration collaboration “yellow” collaboration “orange” collaboration “purple” Activate the orange feature for my requests System implementation Clients

Context-sensitive composition of web services Basis characteristics of process model –Processes are described as a set of collaborations between various participants, including organizations, applications, employees, and other business processes. –The ability to recursively decompose process models is generally required. –The workflow defines how the participants in a process work together to execute a process from start to finish, and is also called choreography or orchestration. –Workflow descriptions can be generated from collaboration models, or specified independently

Context-sensitive composition of web-services Collaboration-based design strategy –Does it make sense at this level? ??

Context-sensitive composition of web-services Cross-organizational collaborations: –The “there is one administrator” fallacy –gradual and fragmented change, where old and new collaboration components can coexist =>Need for independent extensibility –Interaction contracts

Conclusion Collaboration-based design improves feature modularization and reuse capabilities Does collaboration-based design makes sense at the level of composing web services? –If yes, the notion of independent extensibility is crucial