IPOJO: A FLEXIBLE SERVICE-ORIENTED COMPONENT MODEL FOR DYNAMIC SYSTEMS



Similar documents
Service-Oriented Architectures

Service-Oriented Architecture and Software Engineering

Introduction to Service Oriented Architectures (SOA)

Service Computing: Basics Monica Scannapieco

SOA Fundamentals For Java Developers. Alexander Ulanov, System Architect Odessa, 30 September 2008

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

So You Want an SOA: Best Practices for Migrating to SOA in the Enterprise. Eric Newcomer, CTO

Distributed systems. Distributed Systems Architectures

The Service Revolution software engineering without programming languages

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

E-Business Technologies for the Future

Service Oriented Architecture

How To Create A C++ Web Service

Increasing IT flexibility with IBM WebSphere ESB software.

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

A standards-based approach to application integration

VALLIAMMAI ENGINEERING COLLEGE SRM NAGAR, KATTANKULATHUR DEPARTMENT OF COMPUTER APPLICATIONS SUBJECT : MC7502 SERVICE ORIENTED ARCHITECTURE

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles

Extension of a SCA Editor and Deployment-Strategies for Software as a Service Applications

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

FUSE-ESB4 An open-source OSGi based platform for EAI and SOA

Building Web Services with Apache Axis2

OSGi Remote Management

Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure

System Models for Distributed and Cloud Computing

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

AquaLogic ESB Design and Integration (3 Days)

WebSphere Training Outline

Introduction to Service-Oriented Architecture for Business Analysts

AquaLogic Service Bus

Service Governance and Virtualization For SOA

Service Oriented Architectures

Designing an Enterprise Application Framework for Service-Oriented Architecture 1

Redbook Overview Patterns: SOA Design with WebSphere Message Broker and WebSphere ESB

ObjectWeb. An Introduction

Web Services Software Architecture

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

Middleware Lou Somers

A Generic Database Web Service

Dagstuhl seminar on Service Oriented Computing. Service design and development. Group report by Barbara Pernici, Politecnico di Milano

Research on the Model of Enterprise Application Integration with Web Services

An introduction to SOA and the HP NonStop server environment

The Enterprise Service Bus

Run-time Service Oriented Architecture (SOA) V 0.1

ActiveVOS Server Architecture. March 2009

Service-Oriented Architecture: Analysis, the Keys to Success!

Open Source SOA with Service Component Architecture and Apache Tuscany. Jean-Sebastien Delfino Mario Antollini Raymond Feng

Server-side OSGi with Apache Sling. Felix Meschberger Day Management AG 124

Oracle Service Bus Examples and Tutorials

A Service-oriented Architecture for Business Intelligence

JOURNAL OF OBJECT TECHNOLOGY

Virtualized, Converged Data Centers and Cloud Service Providers

ESB Features Comparison

SERVICE ORIENTED ARCHITECTURE

EAI OVERVIEW OF ENTERPRISE APPLICATION INTEGRATION CONCEPTS AND ARCHITECTURES. Enterprise Application Integration. Peter R. Egli INDIGOO.

Principles and Foundations of Web Services: An Holistic View (Technologies, Business Drivers, Models, Architectures and Standards)

1 What Are Web Services?

A common interface for multi-rule-engine distributed systems

Alternatives to SNMP and Challenges in Management Protocols. Communication Systems Seminar Talk 10 Francesco Luminati

1 What Are Web Services?

SCA & SDO Implementations Open Source and Vendor Products

Developing Service-Oriented Architecture Applications with OSGi

Oracle SOA Suite Then and Now:

JVA-561. Developing SOAP Web Services in Java

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Oracle SOA Suite: The Evaluation from 10g to 11g

Implementation of a service oriented architecture in smart sensor systems integration platform

David Pilling Director of Applications and Development

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

How To Develop An Open Play Context Framework For Android (For Android)

Introduction to Web Services

SOA for Healthcare: Promises and Pitfalls

Increasing IT flexibility with IBM WebSphere ESB software.

SOA REFERENCE ARCHITECTURE: SERVICE ORIENTED ARCHITECTURE

SOA Myth or Reality??

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.

Creating new university management software by methodologies of Service Oriented Architecture (SOA)

Meister Going Beyond Maven

A Case Based Tool for Monitoring of Web Services Behaviors

Open ESB. Sang Shin Java Technology Evangelist Sun Microsystems, Inc. Raffaele Spazzoli Imola Informatica 1

Simplifying Processes Interoperability with a Service Oriented Architecture

SOA CERTIFIED JAVA DEVELOPER (7 Days)

HP SOA Systinet software

TIBCO ActiveMatrix BPM SOA Concepts

Cloud Computing & Service Oriented Architecture An Overview

The Enterprise Service Bus: Making Service-Oriented Architecture Real

Transcription:

IPOJO: A FLEXIBLE SERVICE-ORIENTED COMPONENT MODEL FOR DYNAMIC SYSTEMS Clement Escof-ier PhD Defense, December 3 rd 2008 Université Joseph Fourier, Grenoble Jury Laurence Nigay, Présidente, Professeur, UJF, Grenoble Alexander Wolf, Rapporteur, Professor, Imperial College, London Michel Riveill, Rapporteur, Professeur, Polytech Nice Francois Exertier, Examinateur, Bull SAS Philippe Lalanda, Directeur, Professeur, UJF, Grenoble Richard Hall, Co Directeur, Sun Microsystems

TWO PARALLEL EVOLUTIONS Internet & The Web From static web to dynamic content Blur boundaries between desktop and Internet Towards Web 3.0 Ubiquitous computing Communicative & pervasive objects Exponential growth Seamless integration in the daily life Towards ambient intelligence 2

THE CRUNCH Convergence between Internet and Ubiquitous Computing Smart objects bring Internet closer to users Paves the road to new types of applications Machine-to-machine Home applications 3

THE CRUNCH A challenging convergence! Requires facilities to design, develop, execute and manage. Emergence of new stringent requirements Scalability Security Autonomy Heterogeneity Evolution 4

THE CRUNCH A challenging convergence! Requires facilities to design, develop, execute and manage. Emergence of new stringent requirements Scalability Security Autonomy Heterogeneity Evolution 5

OUTLINE Being Dynamic, Why, What and How? Service-Oriented Computing & Dynamism Problematic & Objectives ipojo: Principles & Concepts Dynamism in Atomic & Composite Components Implementation & Validation Conclusion & Perspectives 6

7 BEING DYNAMIC Why, What and How?

WHAT DOES DYNAMIC MEAN? INTERNAL EVOLUTION A B A C B 8

WHAT DOES DYNAMIC MEAN? ENVIRONMENTAL CHANGES A B A A B B 9

WHAT DOES DYNAMIC MEAN? CONTEXTUAL CHANGES A B A B <<location=bedroom>> <<location=living-room>> 10

WHAT IS A DYNAMIC APPLICATION? Dealing with dynamism impacts the architecture Adding, removing, updating components Modifying connectors A dynamic application is an adaptable application supporting the modification of its architecture during its execution Flexible, efficient. complex to design, develop, execute and manage! 11

HOW IS AN APPLICATION ADAPTED? B B C Adaptation logic Adaptation Manager A A B C B Guarantying application consistency is complex Notions of quiescence / tranquility states 12

EXISTING APPROACHES Ad-hoc approaches Context-aware applications, product-lines, autonomic, Hard to generalize Component models supporting dynamic reconfiguration SOFA/DCUP, OpenRec, Focused on a given type of dynamism, lack of flexibility Extended architecture description languages Darwin, Dynamic Wright, C2ADEL, Big gap between such languages and execution frameworks 13

SYNTHESIS Dynamism is today needed but extremely complex to manage Existing solutions are limited Require a lot of design and development effort State management, synchronization, Do not always support the different types of dynamism Constrained to specific domains Ad-hoc mechanisms 14

15 SERVICE-ORIENTED COMPUTING & DYNAMISM Towards Dynamic Extended Service- Oriented Architecture

SERVICE-ORIENTED COMPUTING (SOC) PUBLISH-FIND-BIND Discovery Service Broker Service Specification Publication Service Consumer Binding Service Provider Required Service Provided Service 16

MAIN CHARACTERISTICS Loose-coupling : only the specification is shared Late-binding: on-demand binding Substitutability: a provider can be replaced SOC interactions can happen at runtime: Consumers can adapt themselves to service dynamism 17

DYNAMIC SOC Service Provider Arrival Service Provider Departure 2) Notification Service Broker 1) Publication 2) Notification Service Broker 1) Withdrawal Service Consumer Service Provider Service Consumer Service Provider 3) Bind 3) Unbind 18 18

SERVICE-ORIENTED ARCHITECTURE (SOA) SOA, a technical environment made of: A service specification format A publication/query mechanism An interaction protocol Examples WS: <WSDL, UDDi, SOAP> Corba: <IDL, Corba Trading Service, IIOP> Jini: <Interface Java, Discovery Service, RMI> OSGi : <Interface Java, Service Registry, Direct> 19

EXTENDED SOA (FROM PAPAZOGLOU) Monitoring & Management Metrics Evolution State Non-functional properties QoS Composition Conformance Coordination Transactions Foundation (SOA) Discovery Interface, Behavior, Capability Publication Selection Binding 20

DYNAMIC EXTENDED SOA (PROPOSED) Monitoring & Management Evolution Reconfiguration Introspection State Non-functional properties QoS Dynamic Composition Coordination Conformance Dynamic Composition Transactions Foundation (Dynamic SOA) Notification Discovery Interface, Behavior, Capability Publication Withdrawal Selection Binding 21

SUMMARY: SOC, SOA, EXTENDED SOA AND FRIENDS SOC SOA Paradigm based on services promoting loose-coupling Set of technologies allowing the development and execution of applications following SOC principles Dynamic SOC Paradigm based on the SOC but adding primitives to support dynamism Dynamic SOA Set of technologies allowing the development and execution of dynamic applications following dynamic SOC principles Extended SOA Set of technologies allowing the development, composition, management and execution of applications following SOC principles. Is based on a SOA Dynamic Extended SOA Set of technologies allowing the development, composition, management and execution of applications following dynamic SOC principles. Is based on a dynamic SOA 22 22

SERVICE-ORIENTED COMPONENT MODELS (SOCM) SOCM infuses SOC dynamic principles inside component models Principles (Cervantes, Hall): A service is a specified functionality A component instance provides and requires services Bindings between instances follow the SOC dynamic interaction pattern Compositions are described in terms of specifications Service specifications form the basis for substitution 23

ARE SOCM DYNAMIC EXTENDED SOA? Yes, SOCM: are based on a dynamic SOA provide composition mechanisms provide monitoring and administration mechanisms But No! Existing SOCM don t provide all capabilities Focus on the development model simplification SCR, Spring-DM Compositions are generally not supported (or are static) Apache Tuscany (SCA), Spring-DM Administration and monitoring funct. are very limited But it is a promising path 24

25 PROBLEMATIC AND OBJECTIVES

DYNAMIC APPLICATIONS CURRENT STATE Approaches Pros Cons Component Models Structural composition Simplify the dev. model Lack of flexibility Difficulties to manage contextual and env. dynamism Dynamic Service Oriented Architecture Loose-coupling Late binding Substitutability No architectural view No admin. features Development model difficult to control Service-Oriented Component Models (Dynamic Extended SOA) Structural composition Simplify the dev. model Handle dynamism Composition rarely provided or static Has generally an impact on the application code 26

GOAL: A SERVICE-ORIENTED COMPONENT MODEL Providing a component model supporting dynamism and an associated execution framework Defining a service oriented architecture providing features to manage dynamism and structural compositions Proposing an as simple as possible development model Defining a composition language Providing introspection and reconfiguration capabilities Providing an extensibility mechanism to adapt the component model, and the runtime 27

28 IPOJO Principles & Concepts

IPOJO, OUR PROPOSAL A service-oriented component model Supporting structural compositions Hierarchical Built applications are natively dynamic Extensible (implemented with an open container) Key concepts Service implementations and instances A service specification model A service dependency model Service context 29

COMPONENT TYPES & INSTANCES Component Types Implementations (code!) Describe provided and required services Supports updates Stop Configured Start Disposed Instances Living entities Requires and Provides services Introspectable At least, one service dependency is unsatisfied Invalid Valid All service dependencies are satisfied Disposed Disposed 30

SERVICE SPECIFICATION A service is described with Java interface Properties (open set) State Service dependencies A B D C Designed to support structural composition Applications are designed using composable services specification 31

A RICH AND FLEXIBLE DEPENDENCY MODEL Two levels of dependencies Service-level Implementation-level Component Instance The instance provides A, And so depends on B A dependency targets a service specification scalar or aggregate optional or mandatory can be filtered and/or sorted binding policies Dynamic, Static, Dynamic-Priority Properties A B Implementation-level service dependencies Reconfigurable, Introspectable 32

SERVICE CONTEXT Hierarchical structural Service Composition Support service isolation Notion of service contexts Equivalent to isolated dynamic SOAs Each composition has its own service context Isolates instances created in the composition C B D A D 33

IPOJO & EXTENDED DYNAMIC SOA Administration & Monitoring Supports Evolution, Introspection, Reconfiguration Composition Mechanism Provides mechanism to execute dynamic hierarchical structural service composition Service Specification model Dependency Model Fundamental Dynamic SOA Provides a hierarchical dynamic SOA Service Context Service Implementation/Service Instance 34

DYNAMISM MANAGEMENT IN ATOMIC & COMPOSITE COMPONENTS 35

ATOMIC COMPONENT Atomic components deal with the following requirements A simple development model, Hiding dynamism, Managing state Characteristics Centered on the notion of service component With required and provided services Partial architectural vision It is a component type with a concrete implementation, supporting configurations 36

EXAMPLE OF ATOMIC COMPONENT DESCRIPTION @Component @Provides public class AlarmServiceImpl implements AlarmService { @Requires private MessageSender m_sender; public void sendalarm(string message) { System.out.println(m_sender.send(message)); } } AlarmService 37

EXAMPLE OF ATOMIC COMPONENT SERVICE DEPARTURE MANAGEMENT @Component @Provides public class AlarmServiceImpl implements AlarmService { @Requires private MessageSender m_sender; public void sendalarm(string message) { System.out.println(m_sender.send(message)); } } AlarmService 38

EXAMPLE OF ATOMIC COMPONENT SERVICE ARRIVAL MANAGEMENT @Component @Provides public class AlarmServiceImpl implements AlarmService { @Requires private MessageSender m_sender; public void sendalarm(string message) { System.out.println(m_sender.send(message)); } } AlarmService 39

COMPOSITE COMPONENT An Architecture Description Language defined in terms of Required Service Specifications Instantiated and Imported Provided Service Specifications Exported and Implemented Component Types Characteristics Application concept and vertical composition Implementation evolution and substitution Context-awareness 40

COMPOSITE COMPONENT DESCRIPTION Instance of service Implementation Provided Service Instance of Component Type C B A D B E Delegation Scheme Imported Service 41

COMPOSITE COMPONENT EXAMPLE <composite name= Editor1"> <subservice action="instantiate specification= Editor /> <subservice action="instantiate specification= Plugin aggregate="true" /> <subservice action="import specification= Printer optional="true /> </composite> Editor Plug-in Plug-in Plug-in Printer 42

COMPOSITE COMPONENT CONTEXT-AWARENESS EXAMPLE <composite name= Editor2"> <subservice action="instantiate specification= Plugin aggregate="true" filter="(type=${my.type}) " context-source= " local:editor" /> <subservice action="instantiate specification= Editor /> <subservice action="import specification= Printer optional="true /> </composite> XML Editor Plug-in Plug-in Printer 43

COMPOSITE COMPONENT CONTEXT-AWARENESS EXAMPLE <composite name= Editor2"> <subservice action="instantiate specification= Plugin aggregate="true" filter="(type=${my.type}) " context-source= " local:editor" /> <subservice action="instantiate specification= Editor /> <subservice action="import specification= Printer optional="true /> </composite> XML Java Editor Plug-in Plug-in Plug-in Printer 44

COMPOSITE COMPONENT CONTEXT-AWARENESS EXAMPLE The printer can also become context-aware Editor Select the of the closest printer Printer Plugin Plugin Plugin <composite name= Editor3"> <subservice action="instantiate specification= Plugin aggregate="true" filter="(type=${my.type}) " context-source= " local:editor" /> <subservice action="instantiate specification= Editor /> <subservice action="import specification= Printer optional="true context-source= global:location-source filter="(&(printer.location=$ {current.location})(duplex=true)) /> </composite> To get the closest printer, the composition uses a global context-source tracking the user location 45

OTHER FEATURES : INTROSPECTION, RECONFIGURATION & EXTENSIBILITY System introspection for monitoring purposes System reconfiguration Supports extensions 46

SYNTHESIS Atomic Components provide a simple dev. model Hiding dynamism Hiding service-based interactions Hiding synchronization Composites provide an ADL for dynamic applications Based on services Supporting evolution dynamism, environmental changes and context changes Noteworthy features Introspection, reconfiguration, extensions support 47

IMPLEMENTATION & VALIDATION 48

IMPLEMENTATION ipojo implementation main features Bytecode manipulation Extensible through Handlers Handlers are ipojo instances Natively support dynamism Heavy use of threads and synchronization constructions On top of OSGi R4.0 Container Handler Handler Handler Content Handler Content Handler Handler Handler 49

VALIDATION BENCHMARK Impact on the code size According to the application, ipojo can drastically reduce the number of line of code Several benchmarks were executed Startup time of large applications (vs. OSGi) Facing the Event Storm OSGi : 512 687 ms / ipojo: 491 543 ms Service Access Analyze service injection against other injection frameworks Client Implementation Server Implementation 50

INJECTION BENCHMARK RESULTS 51

RESIDENTIAL GATEWAYS EXAMPLE OSGi/iPOJO framework is used to develop residential gateways. Requirements: Dynamism management Extensibility Composition and Isolation 52

JAVA EE SERVER EXAMPLE ipojo is used in the JOnAS Java EE server Requirements Dynamism management Non-intrusive development model 53

54 CONCLUSION & PERSPECTIVES

MAIN CONTRIBUTIONS ipojo proposes a new way to design, develop and execute dynamic applications A model and an associated runtime Provides a simple development model Provides a hierarchical composition language Provides introspection, reconfiguration and extensibility mechanisms 55

AVAILABILITY ipojo is hosted on Apache Felix Every described feature is implemented! Additional provided tools Integration in the build process Ant, Maven A command dumping instance architecture data A test framework (based on Junit) 56

PERSPECTIVES Apply ipojo principles on different technologies Principles can also be used on the top of other technologies than OSGi However, rare are the frameworks providing the required underlying functionalities Deployment support How to ease the deployment of dynamic applications? Context-Aware and Autonomic Applications ipojo can be used to execute context-aware and autonomic applications What are the missing features? 57

PERSPECTIVES Domain-driven application servers How to provide an ADL, an IDE and an execution framework for a specific domain ipojo extensibility mechanisms can be applied to solve such problems. Ongoing Specific Composition Language Specialized IDE Execution Environment Application Application Handlers Technical Services ipojo 58

Q & A 59

APPENDIX A INTERCEPTION & INJECTION FRAMEWORK Injection Container Implementation class instance Interception Injection & Interception Layer 60

APPENDIX A INTERCEPTION & INJECTION FRAMEWORK public class ClientImpl implements Pojo { public class ClientImpl { private Service getm_service() { if(! Fm_service) return m_service; else return (Service) IM.onGet(this, "m_service"); } private void setm_service(service service) { if(! Fm_service) { m_service= service; } else { IM.onSet(this, "m_service", service); } } } private Service m_service; public void dosomething() { System.out.println(m_service.getMessage()); } public ClientImpl() { this(null); } private ClientImpl(InstanceManager _manager) { _setinstancemanager(_manager); } public void dosomething() { if(! MdoSomething) { dosomething(); return; } try{ IM.onEntry(this, "dosomething", new Object[0]); dosomething(); IM.onExit(this, "dosomething", null); } catch (Throwable throwable) { IM.onError(this, "dosomething", throwable); throw throwable; } } private void dosomething() { System.out.println( getm_service().getmessage()); } private void _setinstancemanager(instancemanagerinstancemanager) { } public ComponentInstance getcomponentinstance() { return IM; } } private InstanceManager IM; private boolean Fm_service; private Service m_service; private boolean MdoSomething; 61

APPENDIX B LINES OF CODE Projects LOC Test LOC Execution Framework 7500 Core Manipulator 2350 Metadata 242 30000 Annotations 105 Composition Model Composite 2900 8000 arch 130 Tools Maven plugin 70 Ant Taks 80 8500 OBR support 2400 Event Admin 300 External handlers Temporal Dependencies 250 Extension & Whiteboard 330 9500 Administration 670 62