Upload
demarey
View
925
Download
0
Tags:
Embed Size (px)
DESCRIPTION
SOA to SCA with OW2 FraSCAti.Talk @ rivieradev 2011, Sophia, France
Citation preview
1
© Copyright 2011 INRIA/ADAM
From SOA to SCA with FraSCAti
Christophe Demarey, Philippe Merle INRIA ADAM
RivieraDev, Sophia Antipolis, France, 20th October 2011
2
© Copyright 2011 INRIA/ADAM
About
• Adaptive Distributed Applications and Middleware • SPL, FOD, MDE, CBSE, AOSD, SOA, CAC, reflective middleware
• Joint project-team between U. Lille 1, CNRS and INRIA • Created in 2008 • 2 prof + 1 CR + 2 MdC • 2 postdocs + 10 PhD + 7 engineers + 2 students
• Research activities • CALICO • CAPucine • FraSCAti • …
• http://adam.lille.inria.fr
3
© Copyright 2011 INRIA/ADAM
About me • Research engineer at INRIA since 2004
• Engineer at U. Lille 1 (2002 - 2004)
• Background • Component models and frameworks
– OMG CCM – OpenCCM – OW2 Fractal and FraSCAti
• JVM for embedded-systems – JITS (Pops team)
• Model Driven Engineering • Software tools & pratices
– Build tools, forge, continuous integration, code analysis, …
4
© Copyright 2011 INRIA/ADAM
About you
• Who knows SOA?
• Who applies SOA?
• Who would like to apply SOA?
• Who knows SCA?
• Who uses SCA?
• Who would like to use SCA?
• Who knows FraSCAti?
• Who uses FraSCAti?
• Who would like to use FraSCAti?
5
© Copyright 2011 INRIA/ADAM
Outline
1. Service-Oriented Architecture – SOA
2. Service Component Architecture – SCA
3. OW2 FraSCAti
6
From SOA…
Service-Oriented Architecture
7
© Copyright 2011 INRIA/ADAM
From SOA challenges…
• IT architectures
• Complexity • Managing 10n lines of code
• Monolithic • Breaking application «silos»
• Seldom evolvable • Freeing systems from
immutable dependencies
• SPL, MDE, CBSE, AOSD, …
8
© Copyright 2011 INRIA/ADAM
Software decomposition
9
© Copyright 2011 INRIA/ADAM
SOA and SPL, MDE, CBSE, AOSD, …
10
© Copyright 2011 INRIA/ADAM
Software composition
11
© Copyright 2011 INRIA/ADAM
Tools, skills or contexts?
12
© Copyright 2011 INRIA/ADAM
…to existing SOA, but…
SOA leverages complexity and promotes flexibility • Loose coupling • Service composition and orchestration • Well defined and contractualized interfaces • Standard tools and technologies
« This is the SOLUTION !!! » Source: oasis-open.org!
13
© Copyright 2011 INRIA/ADAM
14
© Copyright 2011 INRIA/ADAM
…Still a partial solution
Today's SOA need to be… • Deployable in different environments • Ensure security and reliability • Adaptable to changing business needs
…and thus, SOA lack… • Structured architectures
– What is behind the scene? • Reuse capabilities
– Reuse the wheel when possible… • Flexibility support
– …Or tune it if not!
You want SCA! for your business
15
© 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? – REST Twitter user account + SOAP 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!
16
Service Component Architecture SCA
17
© Copyright 2011 INRIA/ADAM
SCA in a Nutshell
SCA (Service Component Architecture) • Aka a «Component Model for SOA» • Since 11/2005
Hosted by the Open SOA consortium • http://www.osoa.org
Standardised at OASIS • http://www.oasis-opencsa.org
Existing platform providers • Open Source (4): Apache Tuscany, Newton, Fabric3, FraSCAti • Vendors (7): IBM WebSphere FP for SOA, TIBCO ActiveMatrix,
Covansys SCA Framework, Paremus, Rogue Wave HydraSCA, Oracle Fusion Middleware
18
© 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!
Sec. Trans. log
19
© Copyright 2011 INRIA/ADAM
Warehouse Service
WarehouseComposite
Warehouse Broker
Component Warehouse Component
Order Processing
Service OrderProcessing
Component
Shipping Reference
External Warehouse Reference
Payments Component
Payment Service
AccountsComposite External Banking
Reference
Accounts Ledger
Component BPEL
Java EE
C++
SOAP/HTTP
JMS
RMI/IIOP
Mixed: - technologies - app locations
Multi-level composition
SCA in a Nutshell (cont’d)
Loosely coupled
Loosely coupled
Closely coupled
Entry Points
Entry Points
External Service
External Service
External Services Binding
Wire
Wire
20
© Copyright 2011 INRIA/ADAM
Modelling with Eclipse SCA Tools
21
© Copyright 2011 INRIA/ADAM
SCA Hello World Example
22
© Copyright 2011 INRIA/ADAM
SCA Hello World Example (cont’d)
23
© Copyright 2011 INRIA/ADAM
SCA Hello World Example (cont’d)
24
© Copyright 2011 INRIA/ADAM
SCA Hello World Example (cont’d)
25
© Copyright 2011 INRIA/ADAM
SCA Hello World Example (cont’d)
26
© Copyright 2011 INRIA/ADAM
SCA Hello World Example (cont’d)
27
© Copyright 2011 INRIA/ADAM
SCA Hello World Example (cont’d)
28
© Copyright 2011 INRIA/ADAM
SCA Hello World Example (cont’d)
29
© Copyright 2011 INRIA/ADAM
SCA Benefits A Component Model… • Hierarchic compositions • Configurable properties • Provided/required ports • Synchronous/asynchronous invocations • Communication bindings • Intent and policy supports
…for SOA • OASIS standard • Industry acceptance (Apache Tuscany, IBM, Eclipse, …)
4 degrees of flexibility / adaptability • Implementation language (Java, C++, BPEL, etc.) • Interface description language (Java, WSDL, etc.) • Communication protocol (SOAP, IIOP, etc.) • Non-functional properties (security, transactions, etc.)
30
© Copyright 2011 INRIA/ADAM
SCA Limitations
Static configuration & deployment • XML file for describing composite components • Lack of deployment API
No runtime adaptation & reconfiguration • Lack of introspection API • Lack of reconfiguration API
SCA is not a reflective component model
You want FraSCAti!
31
FraSCAti
32
© 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
33
© Copyright 2011 INRIA/ADAM
Middleware made from middleware
Middleware for integrating middleware
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
.
.
.
JMS JORAM
API
Interoperability Integration
34
© Copyright 2011 INRIA/ADAM
Interoperability with FraSCAti
• Interoperability is supported by SCA bindings • Web Service / SOAP / WSDL via Apache CXF • JMS via OW2 JORAM
• REST / WADL • JSON-RPC • UPnP • Java RMI
35
© Copyright 2011 INRIA/ADAM
Integration with FraSCAti • Integration is mainly supported by SCA implementations
• SCA composite • Java POJO and @SCA • BPEL • Spring
• Fractal • OSGi • Script
– BeanShell, Fscript, Groovy, JavaScript, Jython, Jruby, Xquery • Scala
• HTTP servlet binding
• C interface/implementation/binding
• JMX
36
© Copyright 2011 INRIA/ADAM
Multiple programming languages
• FraSCAti is implemented in Java • need a JVM at runtime
• But not limited to Java only • BPEL • Spring • BeanShell, Fscript, Groovy, JavaScript, Jython, JRuby, Xquery, … • Scala • C
37
© Copyright 2011 INRIA/ADAM
Adaptability, reconfiguration, reflective systems
• Adaptability at runtime is reconfiguration • Examine and modify running systems
• “A system which can examine and modify its own state is said to be reflective” [google] • Introspection is “examine” • Intercession is “modify”
• Reconfiguration is introspection then intercession on reflective systems
• FraSCAti brings reflexivity and reconfiguration to SCA
38
© Copyright 2011 INRIA/ADAM
FraSCAti: The marriage of SCA and Fractal
Reflective SCA Applications SOA for Fractal
FraSCAti An open SCA runtime platform
built on top of OW2 Fractal
ANR 2007-2009
39
© Copyright 2011 INRIA/ADAM
An open reflective SCA platform
Reflective SCA component model
Middleware for integrating middleware
FraSCAti Explorer
Ad-hoc manual & anticipated scripted reconfiguration
FraSCAti FScript
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
.
.
.
JMS JORAM
API
Interoperability Integration
FraSCAti JMX
FraSCAti REST API
40
© Copyright 2011 INRIA/ADAM
FraSCAti Explorer - an SCA microscope
41
© Copyright 2011 INRIA/ADAM
FraSCAti Explorer more than just an SCA microscope
42
© Copyright 2011 INRIA/ADAM
FraSCAti Explorer Load SCA composites
Visualize, introspect, navigate within SCA composites • Components • Services / References / Bindings / Wires • Properties • Intents
Reconfiguration actions • Start/stop SCA components • Add/remove SCA components / wires / bindings / intents • Update SCA properties / intents • Update SCA bindings
– Web service address – Java RMI port and exported name
43
© Copyright 2011 INRIA/ADAM
FraSCAti JMX
44
© Copyright 2011 INRIA/ADAM
Reconfiguring SCA applications with FraSCAti
• Interactively via FraSCAti Explorer or JMX
• Programmatically via FraSCAti API or Fscript
45
© Copyright 2011 INRIA/ADAM
Fscript/Fpath for SCA
composite = $domain/scachild::MyComposite;
account = $composite/scachild::AccountFacade;
accountRef = $account/scareference::AccountData;
stop($account); // (1)
unwire($accountRef); // (2)
newAccountData = sca-new(«NewAccountDataServiceComponent»); // (3a)
add($composite, $newAccountData); // (3b)
wire($accountRef, $newAccountData/scaservice::Data); // (4)
start($account); // (5)
46
© Copyright 2011 INRIA/ADAM
FraSCAti Aspect Components (FAC)
• Non functional concerns as shared & reflective FraSCAti composites
• AOP for crosscutting concerns
47
© Copyright 2011 INRIA/ADAM
FraSCAti UML Diagram Sequence Aspect
48
OW2 FraSCAti SCA-based Architecture
49
© Copyright 2011 INRIA/ADAM
OW2 FraSCAti
• Itself an SCA application
• 13 composites
• 91 components
• Biggest SCA application to our knowledge
• Most of features implemented by one SCA component
50
© Copyright 2011 INRIA/ADAM
Self-introspecting with FraSCAti Explorer
51
© Copyright 2011 INRIA/ADAM
Self-introspecting with FraSCAti JMX
52
© Copyright 2011 INRIA/ADAM
FraSCAti « à la carte »
• Support the extensible nature of SCA • <sca:implementation> • <sca:interface> • <sca:binding> • SCA intents
• Select the right subset of FraSCAti features to meet application requirements and system constraints
• Add new application-specific FraSCAti features
• FraSCAti is self implemented
53
© Copyright 2011 INRIA/ADAM
FraSCAti Extensible Architecture in SCA
54
© Copyright 2011 INRIA/ADAM
FraSCAti « à la carte » disk footprint
• 256Kb FraSCAti reflective kernel – API + membrane controllers
• 500Kb + mininal FraSCAti architecture
• 2,4Mb + minimal FraSCAti architecture – Around 2Mb for EMF & SCA MM
• 2,9Mb + membrane generation on the fly – Using JDK6 compiler
• 6,9Mb + Eclipse Java compiler (JDT) – Around 4Mb for JDT
• … + FraSCAti features you need
• 40Mb All FraSCAti 1.4 features
55
Use
Cases
56
© Copyright 2011 INRIA/ADAM
FraSCAti industrial users
• Demonstrators from SCOrWare, Cappucino, ITEmIS, SALTY, Macchiato, EasySOA, SocEDA projects
• Embedded as a JBI Service Engine in OW2 PEtALS (EBM WS) • Deploying SCA composites on PEtALS ESB
• Embedded as an SOA library in OW2 Scarbo (Open Wide) • FraSCAti as an SOA binding factory
• Component framework for EasyVIPER, EasyBPEL and EasyESB (Petals Link) • Easy* components implemented as FraSCAti components
57
© Copyright 2011 INRIA/ADAM
EasyViper
http://research.petalslink.org/display/easybpel
58
© Copyright 2011 INRIA/ADAM
FraSCAti and EasyBPEL
59
© Copyright 2011 INRIA/ADAM
EasyESB
http://research.petalslink.org/display/easyesb
60
61
© Copyright 2011 INRIA/ADAM
FraSCAti tooling
• OW2 Forge (SVN, Mailing lists, releases distribution, web site)
• OW2 Jira (bug tracker, tasks planner)
• Jenkins (continuous integration)
• Nexus (repository manager)
• Sonar (code quality)
62
© Copyright 2011 INRIA/ADAM
FraSCAti tooling
63
Conclusion
64
© Copyright 2011 INRIA/ADAM
What you should keep in mind about
• A framework for SOA interoperability and integration • A middleware of middleware
• A reflective component model for SOA • FraSCAti = SCA + Fractal + FAC + ACO + CBM
• Used at any software level • SOA applications • FraSCAti platform and its plugins • Non functional crosscutting concerns, aka SCA intents • Component-based reflective membranes • New middleware, e.g., EasyBPEL/EasyViper
• Visit the FraSCAti Web site: http://frascati.ow2.org • Read [SCC’09] and [SPE’11]
65
© Copyright 2011 INRIA/ADAM
Large scale software systems need
• Interoperability
• Integration
• Configuration
• Deployment
• Observation
• Reconfiguration
• . . .
• Various forms of flexibility/adaptability
You want FraSCAti! for your business
66
© Copyright 2011 INRIA/ADAM
New features for OW2 FraSCAti 1.5
• See http://jira.ow2.org/browse/FRASCATI
• <implementation.osgi> with Concierge
• <implementation.velocity> with Apache Velocity
• <interface.wadl>
• <binding.osgi>
• <binding.jgroup>
• Deployment on OSGi
• Deployment on J2ME
• Web-based FraSCAti Explorer
67
© Copyright 2011 INRIA/ADAM
FraSCAti Technical Perspectives
• EasySOA FUI project • FraSCAti running on OSGi • SCA-based Web components and bindings • Google RPC binding • Data-oriented components with Talend • Deployment from Jetty to GAE • Improving scripting language support • Web-based FraSCAti Explorer
• Other projects within ADAM • Security • J2ME
68
Demonstration
FraSCAti @ cloudbees
69
© Copyright 2011 INRIA/ADAM
Thanks for your attention
• Who would like to use SCA?
• Who would like to try FraSCAti?
• Any questions?
70
© Copyright 2011 INRIA/ADAM
FraSCAti everywhere, what else?
Visit http://frascati.ow2.org
Contact • Philippe Merle: [email protected] • Lionel Seinturier: [email protected]
71
© Copyright 2011 INRIA/ADAM
SCA References SCA Specifications
• OpenSOA http://www.osoa.org • OASIS OpenSCA http://www.oasis-opencsa.org
OSS Implementations • Tuscany http://tuscany.apache.org • Newton http://newton.codecauldron.org/site/index.html • Fabric3 http://xircles.codehaus.org/projects/fabric3 • FraSCAti http://frascati.ow2.org
SCA Resources • http://www.osoa.org/display/Main/SCA+Resources • http://www-128.ibm.com/developerworks/library/specification/ws-sca • http://www.davidchappell.com/articles/Introducing_SCA.pdf • http://www-128.ibm.com/developerworks/websphere/techjournal/0510_brent/
0509_brent.html • http://events.oasis-open.org/home/sites/events.oasis-open.org.home/files/
Flexible_Agile_Composition_01.ppt [Mike Edwards] • http://www.osoa.org/download/attachments/250/
Power_Combination_SCA_Spring_OSGi.pdf?version=3
72
© Copyright 2011 INRIA/ADAM
Acknowledgements • Slides from
• Philippe Merle - INRIA • Lionel Seinturier – University of Lille • Romain Rouvoy – University of Lille • Rémi Melisson – Orange Labs • Rémi Druilhe – Orange Labs
• All FraSCAti team members • Christophe Demarey (INRIA), Michel Dirix (INRIA), Nicolas Dolet
(INRIA), Damiel Fournier (INRIA), Christophe Munilla (INRIA), Nicolas Petitprez (INRIA), Valerio Schiavoni (INRIA), Guillaume Surrel (ScalAgent)
• Mahmoud Ben Hassine (INRIA), Pierre Carton (INRIA), Jonathan Labejof (Thalès), Adel Noureddine (INRIA), Russel Nzekwa (INRIA), Nicolas Pessemier (INRIA), Clément Quinton (INRIA), Daniel Romero (INRIA)
• …