FraSCAti@rivieradev
Upcoming SlideShare
Loading in...5
×
 

FraSCAti@rivieradev

on

  • 1,244 views

SOA to SCA with OW2 FraSCAti.

SOA to SCA with OW2 FraSCAti.
Talk @ rivieradev 2011, Sophia, France

Statistics

Views

Total Views
1,244
Views on SlideShare
1,244
Embed Views
0

Actions

Likes
0
Downloads
21
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

FraSCAti@rivieradev FraSCAti@rivieradev Presentation Transcript

  • 1 From SOA to SCA with FraSCAtiChristophe Demarey, Philippe Merle INRIA ADAM RivieraDev, Sophia Antipolis, France, 20th October 2011 © Copyright 2011 INRIA/ADAM
  • 2 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 © Copyright 2011 INRIA/ADAM
  • 3 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, … © Copyright 2011 INRIA/ADAM View slide
  • 4 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? © Copyright 2011 INRIA/ADAM View slide
  • 5 Outline1.  Service-Oriented Architecture – SOA2.  Service Component Architecture – SCA3.  OW2 FraSCAti © Copyright 2011 INRIA/ADAM
  • 6 From SOA…Service-Oriented Architecture
  • 7 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, … © Copyright 2011 INRIA/ADAM
  • 8 Software decomposition © Copyright 2011 INRIA/ADAM
  • 9 SOA and SPL, MDE, CBSE, AOSD, … © Copyright 2011 INRIA/ADAM
  • 10 Software composition © Copyright 2011 INRIA/ADAM
  • 11 Tools, skills or contexts? © Copyright 2011 INRIA/ADAM
  • 12 …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! © Copyright 2011 INRIA/ADAM
  • 13 © Copyright 2011 INRIA/ADAM
  • 14 …Still a partial solutionTodays 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 © Copyright 2011 INRIA/ADAM
  • 15 Four challenges for SOA•  Structuring reusable flexible architectures •  What is behind the scene? You want •  Reuse the wheel when possible… SCA and •  …Or tune it if not! FraSCAti!•  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] © Copyright 2011 INRIA/ADAM
  • 16 Service Component Architecture SCA
  • 17 SCA in a NutshellSCA (Service Component Architecture) •  Aka a «Component Model for SOA» •  Since 11/2005Hosted by the Open SOA consortium •  http://www.osoa.orgStandardised at OASIS •  http://www.oasis-opencsa.orgExisting 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 © Copyright 2011 INRIA/ADAM
  • 18 Service Component Architecture (SCA) An OASIS’s standard programming model for SOANetwork! Sec. log Trans. Network! •  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.) © Copyright 2011 INRIA/ADAM
  • 19 SCA in a Nutshell (cont’d) RMI/IIOP AccountsComposite External Services External Binding Payment Payments Banking Order Entry Points Loosely coupled Service Component Reference OrderProcessing Processing Component Service Closely coupled Java EE Accounts LedgerSOAP/HTTP BPEL Multi-level Component Loosely coupled composition External Service WarehouseComposite External Warehouse Reference Entry Points Warehouse Warehouse Warehouse Mixed: Broker Service Wire Component Component - technologies JMS - app locations C++ Shipping Wire Reference External Service © Copyright 2011 INRIA/ADAM
  • Modelling with Eclipse SCA Tools 20 © Copyright 2011 INRIA/ADAM
  • 21 SCA Hello World Example © Copyright 2011 INRIA/ADAM
  • 22 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  • 23 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  • 24 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  • 25 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  • 26 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  • 27 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  • 28 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  • 29 SCA BenefitsA 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.) © Copyright 2011 INRIA/ADAM
  • 30 SCA LimitationsStatic configuration & deployment •  XML file for describing composite components •  Lack of deployment APINo runtime adaptation & reconfiguration •  Lack of introspection API •  Lack of reconfiguration APISCA is not a reflective component model You want FraSCAti! © Copyright 2011 INRIA/ADAM
  • 31 FraSCAti
  • 32 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 © Copyright 2011 INRIA/ADAM
  • 33 Middleware made from middleware API Middleware for integrating middleware Interoperability IntegrationApache CXF OW2 . Java OSGi Easy Java JMS JSON Spring SOA stack PEtALS . Script Apache Felix BPEL RMI JORAM RPC . Framework(WS, REST) JBI ESB Engines Equinox Engine © Copyright 2011 INRIA/ADAM
  • 34 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 © Copyright 2011 INRIA/ADAM
  • 35 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 © Copyright 2011 INRIA/ADAM
  • 36 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 © Copyright 2011 INRIA/ADAM
  • Adaptability, reconfiguration, 37 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 © Copyright 2011 INRIA/ADAM
  • 38 FraSCAti: The marriage of SCA and Fractal ANR 2007-2009 FraSCAti An open SCA runtime platform built on top of OW2 FractalReflective SCA Applications SOA for Fractal © Copyright 2011 INRIA/ADAM
  • An open reflective SCA platform 39 FraSCAti FraSCAti REST FraSCAti FraSCAti JMX API FScript Explorer Ad-hoc manual & anticipated scripted reconfiguration Reflective SCA component model API Middleware for integrating middleware Interoperability IntegrationApache CXF OW2 . Java OSGi Easy Java JMS JSON Spring SOA stack PEtALS . Script Apache Felix BPEL RMI JORAM RPC . Framework(WS, REST) JBI ESB Engines Equinox Engine © Copyright 2011 INRIA/ADAM
  • FraSCAti Explorer - an SCA microscope 40 © Copyright 2011 INRIA/ADAM
  • FraSCAti Explorer more than just 41 an SCA microscope © Copyright 2011 INRIA/ADAM
  • 42 FraSCAti ExplorerLoad SCA compositesVisualize, introspect, navigate within SCA composites •  Components •  Services / References / Bindings / Wires •  Properties •  IntentsReconfiguration 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 © Copyright 2011 INRIA/ADAM
  • FraSCAti JMX 43 © Copyright 2011 INRIA/ADAM
  • Reconfiguring SCA applications with 44 FraSCAti•  Interactively via FraSCAti Explorer or JMX•  Programmatically via FraSCAti API or Fscript © Copyright 2011 INRIA/ADAM
  • Fscript/Fpath for SCA 45 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) © Copyright 2011 INRIA/ADAM
  • 46 FraSCAti Aspect Components (FAC)•  Non functional concerns as shared & reflective FraSCAti composites•  AOP for crosscutting concerns © Copyright 2011 INRIA/ADAM
  • FraSCAti UML Diagram Sequence Aspect 47 © Copyright 2011 INRIA/ADAM
  • 48 OW2 FraSCAtiSCA-based Architecture
  • 49 OW2 FraSCAti•  Itself an SCA application•  13 composites•  91 components•  Biggest SCA application to our knowledge•  Most of features implemented by one SCA component © Copyright 2011 INRIA/ADAM
  • Self-introspecting with FraSCAti Explorer 50 © Copyright 2011 INRIA/ADAM
  • Self-introspecting with FraSCAti JMX 51 © Copyright 2011 INRIA/ADAM
  • 52 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 © Copyright 2011 INRIA/ADAM
  • 53 FraSCAti Extensible Architecture in SCA © Copyright 2011 INRIA/ADAM
  • 54 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 © Copyright 2011 INRIA/ADAM
  • 55 UseCases
  • 56 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 © Copyright 2011 INRIA/ADAM
  • EasyViper 57 http://research.petalslink.org/display/easybpel © Copyright 2011 INRIA/ADAM
  • FraSCAti and EasyBPEL 58 © Copyright 2011 INRIA/ADAM
  • EasyESB 59 http://research.petalslink.org/display/easyesb © Copyright 2011 INRIA/ADAM
  • 60
  • 61 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) © Copyright 2011 INRIA/ADAM
  • 62 FraSCAti tooling © Copyright 2011 INRIA/ADAM
  • 63 Conclusion
  • 64 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] © Copyright 2011 INRIA/ADAM
  • 65 Large scale software systems need•  Interoperability•  Integration•  Configuration•  Deployment•  Observation•  Reconfiguration You want FraSCAti! for your business•  . . .•  Various forms of flexibility/adaptability © Copyright 2011 INRIA/ADAM
  • 66 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 © Copyright 2011 INRIA/ADAM
  • 67 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 © Copyright 2011 INRIA/ADAM
  • 68 DemonstrationFraSCAti @ cloudbees
  • 69 Thanks for your attention•  Who would like to use SCA?•  Who would like to try FraSCAti?•  Any questions? © Copyright 2011 INRIA/ADAM
  • 70 FraSCAti everywhere, what else?Visit http://frascati.ow2.orgContact •  Philippe Merle: Philippe.Merle@inria.fr •  Lionel Seinturier: Lionel.Seinturier@univ-lille1.fr © Copyright 2011 INRIA/ADAM
  • 71 SCA ReferencesSCA Specifications •  OpenSOA http://www.osoa.org •  OASIS OpenSCA http://www.oasis-opencsa.orgOSS 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.orgSCA 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 © Copyright 2011 INRIA/ADAM
  • 72 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) •  … © Copyright 2011 INRIA/ADAM