frascati with osgi

21
1 © Copyright 2011 INRIA/ADAM FraSCAti with OSGi Philippe Merle & Christophe Munilla INRIA ADAM OSGi Users' Group France, IFSTTAR, Villeneuve d’Ascq, France, 19th May 2011

Upload: osgi-user-group-france

Post on 20-Jan-2015

595 views

Category:

Technology


0 download

DESCRIPTION

Le standard Service Component Architecture (SCA) du consortium OASIS est un modèle de programmation d'applications SOA à base de composants logiciels. L'intérêt principal de SCA est d'être agnostique par rapport aux technologies de mise en oeuvre. SCA supporte 1) différents langages/modèles de programmation des composants métiers d'une application tels que Composite, Java, Spring, BPEL, C, COBOL, etc., 2) différents langages de description des interfaces fonctionnelles d'un composant métier tels que Java, WSDL, WADL, etc., 3) différents protocoles d'interaction avec les services d'une application tels que SOAP, REST, JMS, Java RMI/IIOP, etc., 4) différentes politiques non-fonctionnelles comme la sécurité, les transactions, etc., 5) différentes technologies de conditionnement des applications telles que de simples JAR, composants JBI, bundles OSGi, WAR, etc., 6) différents environnements d'exécution des applications comme J2SE, OSGi, JBI, serveur Web, etc. Ainsi SCA favorise la construction, l'interopérabilité et l'intégration de systèmes orientés services. FraSCAti est une implantation open source du standard SCA à laquelle nous avons ajouté des capacités réflexives de reconfiguration à grain fin des applications SOA. Dans cet exposé, nous présentons nos travaux en cours sur l'interopérabilité et l'intégration entre FraSCAti et OSGi.

TRANSCRIPT

Page 1: FraSCAti with OSGi

1!

© Copyright 2011 INRIA/ADAM

FraSCAti with OSGi

Philippe Merle & Christophe Munilla

INRIA ADAM

OSGi Users' Group France, IFSTTAR, Villeneuve d’Ascq, France, 19th May 2011

Page 2: FraSCAti with OSGi

2!

© Copyright 2011 INRIA/ADAM

Outline

•! Four challenges for SOA

•! SCA overview

•! Combining SCA with OSGi

•! FraSCAti overview

•! FraSCAti with OSGi

•! Related work

Page 3: FraSCAti with OSGi

3!

© Copyright 2011 INRIA/ADAM

Four challenges for SOA

•! Structuring reusable flexible architectures

•! What is behind the scene?

•! Reuse the wheel when possible…

•! …Or tune it if not!

•! Interoperability

•! Orchestrate heterogeneous services

–! The weather of the city where a Twitter user lives?

–! Access the REST-based Twitter user account then a SOAP-based weather service

•! Integration •! Compose heterogeneous piece of software to build a new service

–! e.g., compose a BPEL process, an OSGi bundle and a Xquery script

•! Dynamically reconfigurable runtime architectures

•! research challenge #1 in Service foundations [Papazoglou 07]

You want

SCA and !

FraSCAti!!

Page 4: FraSCAti with OSGi

4!

© Copyright 2011 INRIA/ADAM

Service Component Architecture (SCA)

An OASIS’s standard programming model for SOA

•! Technology-agnostic, adaptability, variability •! Interface languages (Java, WSDL, OMG IDL, etc.)

•! Implementation languages (Java, Spring, OSGi, BPEL, C/C++, etc.)

•! Binding protocols (WS, REST, JSON-RPC, Java RMI, CORBA, etc.)

•! Non functional aspects, aka SCA intents and policies

•! Packaging formats and deployment targets (JAR, JBI, WAR, OSGi, etc.)

Network!

Network!

Page 5: FraSCAti with OSGi

5!

© Copyright 2011 INRIA/ADAM

Composite bank.account

Component

AccountData

Component

AccountFacade Service Account

Reference StockQuote

<reference name="StockQuote" promote="AccountFacade/StockQuote">

<interface.java interface="services.stockquote.StockQuote"/>

<binding.ws port="http://example.org/StockQuote#

wsdl.endpoint(StockQuote/StockQuoteSOAP)"/>

</reference>

<service name="Account" promote="AccountFacade">

<interface.java interface="services.account.Account"/>

<binding.ws port="http://www.example.org/Account#

wsdl.endpoint(Account/AccountSOAP)"/>

</service>

<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"

name="bank.account" >

</composite>

<component name="AccountFacade">

<implementation.java class="services.account.AccountFacadeImpl"/>

<reference name="StockQuote"/>

<reference name="AccountData"

target="AccountData/Data"/>

<property name="currency">EURO</property>

</component>

<component name="AccountData">

<implementation.bpel process=“QName"/>

<service name="Data">

<interface.java interface="services.account.Data"/>

</service>

</component>

© Copyright 2007 OSOA Collaboration

Page 6: FraSCAti with OSGi

6!

© Copyright 2011 INRIA/ADAM

Modelling with Eclipse SCA Tools

Page 7: FraSCAti with OSGi

7!

© Copyright 2011 INRIA/ADAM

Combining SCA with OSGi

•! Interoperability and integration between SCA and OSGi

•! “Power Combination: SCA, OSGi and Spring”, White paper,

OSOA Collaboration, March 2007

•! http://www.osoa.org/download/attachments/250/

Power_Combination_SCA_Spring_OSGi.pdf

•! Already implementations of these ideas

•! Apache Tuscany, Fabric3, Newton

•! Not still part of the SCA standard !

Page 8: FraSCAti with OSGi

8!

© Copyright 2011 INRIA/ADAM

Combining SCA with OSGi

•! OSGI to SCA •! SCA service exported into the OSGi registry

•! SCA to OSGi •! SCA reference imported from the OSGi registry

•! OSGI in SCA •! SCA component implemented by OSGi bundles

•! OSGi for SCA •! Dynamic « à la carte » SCA applications

•! SCA for OSGi •! Assembly model

•! Multiple implementation languages

•! Multiple network binding protocols

•! Non functional policies and intents

Page 9: FraSCAti with OSGi

9!

© Copyright 2011 INRIA/ADAM

OSGi to SCA

<component name=“X”>

<service name=“S”>

<binding.osgi …/> </service>

</component> © Copyright 2007 OSOA Collaboration

Page 10: FraSCAti with OSGi

10!

© Copyright 2011 INRIA/ADAM

SCA to OSGi

<component name=“X”>

<reference name=“R”>

<binding.osgi …/> </reference>

</component> © Copyright 2007 OSOA Collaboration

Page 11: FraSCAti with OSGi

11!

© Copyright 2011 INRIA/ADAM

OSGi in SCA Composite bank.account

Component

AccountData

Component

AccountFacade Service Account

Reference StockQuote

BPEL

OSGi

Bundle

© Copyright 2007 OSOA Collaboration

<component name=“X”>

<implementation.osgi…> </component>

Page 12: FraSCAti with OSGi

12!

© Copyright 2011 INRIA/ADAM

OSGi for SCA

© Copyright 2007 OSOA Collaboration

Page 13: FraSCAti with OSGi

13!

© Copyright 2011 INRIA/ADAM

OSGi for SCA

© Copyright 2007 OSOA Collaboration

Page 14: FraSCAti with OSGi

14!

© Copyright 2011 INRIA/ADAM

OSGi for SCA

© Copyright 2007 OSOA Collaboration

Page 15: FraSCAti with OSGi

15!

© Copyright 2011 INRIA/ADAM

Combining SCA with OSGi

© Copyright 2007 OSOA Collaboration

Page 16: FraSCAti with OSGi

16!

© Copyright 2011 INRIA/ADAM

Distributed heterogeneous containers

© Copyright 2007 OSOA Collaboration

Page 17: FraSCAti with OSGi

17!

© Copyright 2011 INRIA/ADAM

FraSCAti Overview

•! A framework for SOA interoperability and integration

•! A reflective SCA component model and framework

•! Runtime adaptability

•! Lightweight, efficient, predictable, scalable

•! Components everywhere

•! Adaptability of all software layers

•! An open source SCA implementation

•! LGPLv2 at http://frascati.ow2.org

Page 18: FraSCAti with OSGi

18!

© Copyright 2011 INRIA/ADAM

FraSCAti, an open reflective SCA platform

Reflective SCA component model

Middleware for integrating middleware

FraSCAti Explorer

Ad-hoc manual

reconfiguration

FraSCAti FScript

Anticipated scripted

reconfiguration

Apache CXF

SOA stack

(WS, REST)

Spring

Framework

OSGi

Apache Felix

Equinox

OW2

PEtALS

JBI ESB

… Java

RMI

JSON

RPC

Java

Script

Engines

Easy

BPEL

Engine

C

O

R

B

A

JMS

JORAM

Reflective

FraSCAti API

Interoperability Integration

Page 19: FraSCAti with OSGi

19!

© Copyright 2011 INRIA/ADAM

FraSCAti on OSGI

•! Set of OSGi bundles •! Now: few couple

•! WIP: 200+

•! Issue: Bundle granularity?

•! Gateway agnostic •! Now: Equinox, Felix, Knopflerfish

•! WIP: Concierge, …

•! Issue: Manifest portability?

•! Combining SCA with OSGi •! Now: <implementation.osgi>

•! WIP: <binding.osgi>

•! Dynamic « à la carte » FraSCAti •! WIP: Install, start, update, stop, uninstall FraSCAti plugins

Page 20: FraSCAti with OSGi

20!

© Copyright 2011 INRIA/ADAM

Related work

•! Apache Tuscany, Fabric3, Newton " More or less all presented “Combining SCA with OSGi” features

•! OSGi Declarative Services ! No composites

•! OSGi Blueprint " Composites

•! Spring Dynamic Modules " or heavy !?

•! Apache Felix iPOJO " Very very well " " " but

! Will BluePrint kill it?

! All OSGi component frameworks ! Only Java implementation

! What about various remote bindings

! All: No fine grain reflective & reconfiguration capabilities

Page 21: FraSCAti with OSGi

21!

© Copyright 2011 INRIA/ADAM

FraSCAti everywhere, what else?

Visit http://frascati.ow2.org

Contact •! Philippe Merle: [email protected]

•! Lionel Seinturier: [email protected]