SOA/SCA FraScAti
Upcoming SlideShare
Loading in...5
×
 

SOA/SCA FraScAti

on

  • 2,455 views

Fractal: This presentation introduces Fractal which is a modular, extensible and programming language agnostic component model that can be used to design, implement, deploy and reconfigure systems and ...

Fractal: This presentation introduces Fractal which is a modular, extensible and programming language agnostic component model that can be used to design, implement, deploy and reconfigure systems and applications, from operating systems to middleware platforms and to graphical user interfaces. The goal of Fractal is to reduce the development, deployment and maintenance costs of software systems in general, and of ObjectWeb projects in particular. The Fractal component model has the following important features: recursivity, reflectivity, component sharing, binding components, execution model independence, openness.

FraSCAti: The Service Component Architecture (SCA) is a technology agnostic standard for developing and deploying distributed service-oriented architectures (SOA). However, SCA does not define standard means for runtime manageability (including introspection and reconfiguration) of SOA applications and of their supporting environment. This presentation introduces the FraSCAti platform, which brings runtime management features to SCA, and discusses key principles in its design: the adoption of an extended SCA component model for the implementation of SOA applications and of the FraSCAti platform itself; the use of component-based interception techniques for dynamically weaving non-functional services such as transaction management with components.

Statistics

Views

Total Views
2,455
Views on SlideShare
2,455
Embed Views
0

Actions

Likes
1
Downloads
51
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    SOA/SCA FraScAti SOA/SCA FraScAti Presentation Transcript

    • Fractal & FraSCAti An Open SOA/SCA Platform fOSSa Conference Lionel Seinturier University of Lille & INRIA, France Lionel Seinturier 1 November 18, 2009
    • Outline 1. SCA in a nutshell 2. 2 Motivation & principles 3. Architecture 4. 4 Positioning wrt other platforms 5. Conclusion Lionel Seinturier 2 November 18, 2009
    • SCA in a Nutshell SCA (Service Component Architecture) – a component model for SOA – 11/2005 Hosted by the Open SOA consortium – http://www.osoa.org Standardised by OASIS – http://www.oasis-opencsa.org Platform providers pro iders – Open Source: Apache Tuscany, Fabric3, FraSCAti, Mule, Newton – Vendors: IBM WebSphere FP for SOA, TIBCO ActiveMatrix, Covansys SCA Framework, Paremus, Newton, Rogue Wave HydraSCA, Oracle Fusion Middleware Lionel Seinturier 3 November 18, 2009
    • SCA in a Nutshell SCA Business Components & Assemblies Lionel Seinturier 4 November 18, 2009
    • <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" name="bigbank.accountcomposite" > "bi b k t it " <service name="AccountService" promote="AccountServiceComponent"> <interface.java interface="services.account.AccountService"/> <binding.ws port="http://www.example.org/AccountService# binding.ws port http://www.example.org/AccountService# wsdl.endpoint(AccountService/AccountServiceSOAP)"/> </service> <component name="AccountServiceComponent"> <implementation.java class="services.account.AccountServiceImpl"/> <implementation java class "services account AccountServiceImpl"/> <reference name="StockQuoteService"/> <reference name="AccountDataService" target="AccountDataServiceComponent/AccountDataService"/> <property name="currency">EURO</property> name currency >EURO</property> bigbank.accountcomposite StockQuote </component> Reference StockQuote Service AccountService <component name="AccountDataServiceComponent"> Service AccountService Component AccountData <implementation.bpel process=“QName"/> Service Component <service name="AccountDataService"> <interface.java interface="services.accountdata.AccountDataService"/> </service> </component> <reference name=“StockQuoteService" promote="AccountServiceComponent/StockQuoteService"> <interface.java interface="services.stockquote.StockQuoteService"/> <binding.ws port="http://example.org/StockQuoteService# wsdl.endpoint(StockQuoteService/StockQuoteServiceSOAP) /> wsdl endpoint(StockQuoteService/StockQuoteServiceSOAP)"/> </reference> </composite> OpenCSA Member Section – Service Component Architecture 5
    • Java Implementation Example p package org.example.services.account; g g p Annotation for the import org.osoa.sca.annotations.*; service offered by this class @Service(interfaces = AccountService.class) public class AccountServiceImpl implements AccountService { private String currency = "USD"; Constructor with p private AccountDataService accountDataService; annotations for private StockQuoteService stockQuoteService; injected property and references public AccountServiceImpl( @Property("currency") String currency, @Reference("accountDataService") AccountDataService dataService, @Reference("stockQuoteService") StockQuoteService stockService) { this.currency = currency; this.accountDataService = dataService; this.stockQuoteService = stockService; } OpenCSA Member Section – Service Component Architecture 6
    • Outline • SCA in a nutshell • Motivation & principles for FraSCAti • Architecture • Positioning wrt other platforms • Conclusion Lionel Seinturier 7 November 18, 2009
    • FraSCAti = SCA++ Dynamic deployment & configuration – Distributed deployment with FDF/DeployWare Runtime adaptation & reconfiguration p g – Introspection & reconfiguration support via Fractal – Reconfiguration of SCA components & FraSCAti itself Reflective SCA platform – Li ht i ht efficient, predictable, scalable Lightweight, ffi i t di t bl l bl Lionel Seinturier 8 November 18, 2009
    • FraSCAti Principles Designed with adaptability/extensibility/flexibility in mind Component-based architecture to support protocols and implementations p pp p p – Communication protocols plugged within a binding factory – Component implementation languages encapsulated as platform components AOP-based mechanism to integrate intents and policies – Non functional Non-functional services developed as regular SCA components – Non-functional policies dynamically woven into the base architecture Fractal-based runtime substrate (cf. http://fractal.ow2.org) – Dynamic reconfiguration capabilities – Java 5 @-based development style (dependency injection) – XML-based architecture descriptors – Structuring concepts (component personality, membrane, control interface, etc.) 2 execution modes for the FraSCAti platform – Standalone application server (support for 2 backends) – Integrated in the PEtALS JBI ESB (cf. http://petals.ow2.org) Lionel Seinturier 9 November 18, 2009
    • FraSCAti Features SCA component implementation – Java POJO and SCA annotations – Spring – Fractal SCA bi di binding – Web Services via Apache CXF – Java RMI Under development – OSGi implementation and binding – JMS, JSONRPC Lionel Seinturier 10 November 18, 2009
    • FraSCAti and SCA Spec. FraSCAti SCA Specification State Component SCA A Assembly Model (v1.0) bl M d l ( 1 0) ! Assembly Factory A bl F t SCA Policy Framework (v1.0) !/" Assembly Factory SCA Transaction Policy (v1.0) y( ) ! Transaction Service SCA Java Common Annotations & APIs (v1.0) ! Tinfi SCA Java Component Implementation (v1.0) ! Tinfi SCA Web Services Binding (v1.0) ! Binding Factory ! = supported pp ! / " = under development p Lionel Seinturier 11 November 18, 2009
    • FraSCAti and SCA Spec. FraSCAti SCA Specification State Components SCA Spring Component Implementation (v1.0) !/" Plug-in Assembly Factory SCA BPEL Client & Implementation (v1.0) "" Plug-in Assembly Factory SCA C++ Client & Implementation (v1.0) """ SCA C Client & Implementation (v1.0) """ SCA COBOL Client & Implementation (v1.0) (v1 0) """ SCA JMS Binding (v1.0) "" Plug-in Binding Factory SCA EJB Session Bean Binding (v1.0) "" Plug-in Binding Factory SCA JCA Binding (v1.0) """ Plug-in Binding Factory SCA Java EE Integration (v0.9) """ Lionel Seinturier 12 November 18, 2009
    • Outline • SCA in a nutshell • Motivation & principles for FraSCAti • Architecture • Positioning wrt other platforms • Conclusion Lionel Seinturier 13 November 18, 2009
    • Platform Architecture Modular (plugin like) architecture to support variation points • implementation types – Java 5, Java POJO, Spring, OSGi, Java supported scripting languages, Scala • binding types – SOAP, RMI, OSGi, REST, JBI Lionel Seinturier 14 November 18, 2009
    • Container Architecture Component container architecture • host a business logic instance which provides the component services • generalize the notion of a meta level meta-level • decomposed in some fine-grained services Lionel Seinturier 15 November 18, 2009
    • Non Functional Services Support for non-functional (NF) services • SCA Policy Framework provides some metada – @Confidentiality, @Integrity, @Authentication – general purpose: @Intent @Requires @Intent, • NF services implemented as SCA components t • NF wiring between business components and NF p components • API for dynamic management Lionel Seinturier 16 November 18, 2009
    • FraSCAti Tinfi Fractal architecturing principles for the implementation of the container (control membranes) 6 controllers – SCAComponent : component identity dedicated interface (ComponentContext) and implementation – SCAContentController : component instantiation policy dedicated implementation, private interface (no need to export it) – SCAIntentController : intent handlers management – SCAPropertyController : component properties management – SCALifeCycleController : component initialization (@EagerInit) same interface as Fractal LC, dedicated implementation – SCABindingController : component bindings same interface as Fractal BC, dedicated implementation Interceptors – lifecycle management – component instantiation policy – i t t di intent dispatch t h Lionel Seinturier 17 November 18, 2009
    • FraSCAti Tooling Eclipse STP/SCA modeler – http://www eclipse org/stp/sca/ http://www.eclipse.org/stp/sca/ Lionel Seinturier 18 November 18, 2009
    • FraSCAti Tooling FraSCAti Explorer Lionel Seinturier 19 November 18, 2009
    • Outline • SCA in a nutshell • Motivation & principles for FraSCAti • Architecture • Positioning wrt other platforms • Conclusion Lionel Seinturier 20 November 18, 2009
    • FraSCAti vs Tuscany " Less SCA features supported – Less implementation languages and binding protocols " Smaller ecosystem – Less sponsoring companies, developers, and users ! Better continuum from SCA tooling to runtime platform contin m r ntime – Share the same SCA metamodel with Eclipse STP SCA project ! Better footprint to target embedded systems p g y – Smaller disk and memory footprints ! Ready for dynamic runtime reconfiguration – B Based on OW2 F t l component model and associated t l d Fractal t d l d i t d tools Lionel Seinturier 21 November 18, 2009
    • FraSCAti vs Tuscany Performance Evaluation: Instantiation Time 25000 FraSCAti Tuscany 20000 Instantiatio Time( ms) 15000 on 10000 5000 0 10 50 100 250 500 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 13000 Number of Components Lionel Seinturier 22 November 18, 2009
    • FraSCAti vs Tuscany Performance Evaluation: Invocation Time 450 400 FraSCAti 350 Tuscany cation Time (ms) 300 250 200 150 Invoc 100 50 0 10 50 100 250 500 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 13000 Number of Components Lionel Seinturier 23 November 18, 2009
    • FraSCAti vs Tuscany Performance Evaluation: Memory Consumption 70 60 Bytes) 50 nsumption (MB 40 30 Memory Con FraSCAti 20 Tuscany 10 0 10 50 100 250 500 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 13000 Number of Components Lionel Seinturier 24 November 18, 2009
    • Other OSS Competitors • Fabric3 "/! Fork from the Apache Tuscany project " Developed by fewer contributors • The Newton Project ! Distributed runtime framework based on OSGi, Jini, and SCA ! SCA bindings for OSGi and Jini " Does not target a fully-compliant SCA framework " No support for SCA Java annotations " No Web Service binding • The Mule Project - MuleSCA activity ! Some Web pages " No open source code currently available Lionel Seinturier 25 November 18, 2009
    • Outline • SCA in a nutshell • Motivation & principles for FraSCAti • Architecture • Positioning wrt other platforms • Conclusion Lionel Seinturier 26 November 18, 2009
    • Conclusion FraSCAti – an open and extensible implementation of the SCA specifications • continuum from tooling to runtime (common SCA metamodel shared with STP) • reconfigurable SCA applications • lightweight version for embedded devices currently being developed – based on OW2 code blocks Lionel Seinturier 27 November 18, 2009
    • Contact Web site – http://frascati.ow2.org Project heads – Philippe Merle: Philippe.Merle@inria.fr – Lionel Seinturier: Lionel.Seinturier@univ-lille1.fr @ Development team – INRIA ADAM & SARDES • Pierre Carton, Christophe Demarey, Nicolas Dolet, Damien Fournier, Philippe Merle, Nicolas Pessemier, Valerio Schiavoni, Lionel Seinturier Acknowledgements – Vivien Quéma, Jean-Bernard Stefani, Alain Boulze, Adrian Mos, Adrien Louis, Stéphane Bagnier, Daniel Hagimont, Etienne Juliot, Gaël Blondelle, Jean-Pierre Lorre, Marc Dutoo, Marc Pantel, Mickael Istria, Mohammed Eljai, Nicolas Salatge, Samir Tata, Roland Naudin, Samuel Quaireau, Stéphane Drapeau, Thomas Darbois Lionel Seinturier 28 November 18, 2009
    • 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 p g – 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://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 Lionel Seinturier 29 November 18, 2009