Advertisement
Advertisement

More Related Content

Advertisement

FraSCAti@rivieradev

  1. 1 From SOA to SCA with FraSCAti Christophe Demarey, Philippe Merle INRIA ADAM RivieraDev, Sophia Antipolis, France, 20th October 2011 © Copyright 2011 INRIA/ADAM
  2. 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. 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
  4. 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
  5. 5 Outline 1.  Service-Oriented Architecture – SOA 2.  Service Component Architecture – SCA 3.  OW2 FraSCAti © Copyright 2011 INRIA/ADAM
  6. 6 From SOA… Service-Oriented Architecture
  7. 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. 8 Software decomposition © Copyright 2011 INRIA/ADAM
  9. 9 SOA and SPL, MDE, CBSE, AOSD, … © Copyright 2011 INRIA/ADAM
  10. 10 Software composition © Copyright 2011 INRIA/ADAM
  11. 11 Tools, skills or contexts? © Copyright 2011 INRIA/ADAM
  12. 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. 13 © Copyright 2011 INRIA/ADAM
  14. 14 …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 © Copyright 2011 INRIA/ADAM
  15. 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. 16 Service Component Architecture SCA
  17. 17 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 © Copyright 2011 INRIA/ADAM
  18. 18 Service Component Architecture (SCA) An OASIS’s standard programming model for SOA Network! 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. 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 Ledger SOAP/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
  20. Modelling with Eclipse SCA Tools 20 © Copyright 2011 INRIA/ADAM
  21. 21 SCA Hello World Example © Copyright 2011 INRIA/ADAM
  22. 22 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  23. 23 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  24. 24 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  25. 25 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  26. 26 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  27. 27 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  28. 28 SCA Hello World Example (cont’d) © Copyright 2011 INRIA/ADAM
  29. 29 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.) © Copyright 2011 INRIA/ADAM
  30. 30 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! © Copyright 2011 INRIA/ADAM
  31. 31 FraSCAti
  32. 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. 33 Middleware made from middleware API Middleware for integrating middleware Interoperability Integration Apache 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. 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. 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. 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
  37. 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. 38 FraSCAti: The marriage of SCA and Fractal ANR 2007-2009 FraSCAti An open SCA runtime platform built on top of OW2 Fractal Reflective SCA Applications SOA for Fractal © Copyright 2011 INRIA/ADAM
  39. 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 Integration Apache 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
  40. FraSCAti Explorer - an SCA microscope 40 © Copyright 2011 INRIA/ADAM
  41. FraSCAti Explorer more than just 41 an SCA microscope © Copyright 2011 INRIA/ADAM
  42. 42 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 © Copyright 2011 INRIA/ADAM
  43. FraSCAti JMX 43 © Copyright 2011 INRIA/ADAM
  44. Reconfiguring SCA applications with 44 FraSCAti •  Interactively via FraSCAti Explorer or JMX •  Programmatically via FraSCAti API or Fscript © Copyright 2011 INRIA/ADAM
  45. 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. 46 FraSCAti Aspect Components (FAC) •  Non functional concerns as shared & reflective FraSCAti composites •  AOP for crosscutting concerns © Copyright 2011 INRIA/ADAM
  47. FraSCAti UML Diagram Sequence Aspect 47 © Copyright 2011 INRIA/ADAM
  48. 48 OW2 FraSCAti SCA-based Architecture
  49. 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
  50. Self-introspecting with FraSCAti Explorer 50 © Copyright 2011 INRIA/ADAM
  51. Self-introspecting with FraSCAti JMX 51 © Copyright 2011 INRIA/ADAM
  52. 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. 53 FraSCAti Extensible Architecture in SCA © Copyright 2011 INRIA/ADAM
  54. 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. 55 Use Cases
  56. 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
  57. EasyViper 57 http://research.petalslink.org/display/easybpel © Copyright 2011 INRIA/ADAM
  58. FraSCAti and EasyBPEL 58 © Copyright 2011 INRIA/ADAM
  59. EasyESB 59 http://research.petalslink.org/display/easyesb © Copyright 2011 INRIA/ADAM
  60. 60
  61. 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. 62 FraSCAti tooling © Copyright 2011 INRIA/ADAM
  63. 63 Conclusion
  64. 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. 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. 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. 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. 68 Demonstration FraSCAti @ cloudbees
  69. 69 Thanks for your attention •  Who would like to use SCA? •  Who would like to try FraSCAti? •  Any questions? © Copyright 2011 INRIA/ADAM
  70. 70 FraSCAti everywhere, what else? Visit http://frascati.ow2.org Contact •  Philippe Merle: Philippe.Merle@inria.fr •  Lionel Seinturier: Lionel.Seinturier@univ-lille1.fr © Copyright 2011 INRIA/ADAM
  71. 71 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 © Copyright 2011 INRIA/ADAM
  72. 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
Advertisement