• Save
From SOA to SCA and FraSCAti
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

From SOA to SCA and FraSCAti

on

  • 2,551 views

Tutorial about SOA, SCA and OW2 FraSCAti.

Tutorial about SOA, SCA and OW2 FraSCAti.

Statistics

Views

Total Views
2,551
Views on SlideShare
2,549
Embed Views
2

Actions

Likes
7
Downloads
1
Comments
0

1 Embed 2

http://localhost 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

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

From SOA to SCA and FraSCAti Presentation Transcript

  • 1. From SOA and SCA to FraSCAti Philippe Merle – INRIA ADAM COSMAL, Villeneuve d’Ascq, France, 10th June 2011
  • 2. FraSCAti TP
    • Java SE 1.5 / 1.6
      • Google “Java SE 1.6”
    • Apache Maven
      • Go to http://maven.apache.org/
      • Left menu “Download”
      • Download and unzip 2 nd archive apache-maven-3.0.3-bin.zip
      • Add apache-maven-3.0.3 to your PATH
    • OW2 FraSCAti
      • Go to http://frascati.ow2.org
      • Left menu “Download”
      • Download and unzip 1 st archive frascati-1.4-bin.zip
  • 3. 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?
  • 4. From SOA… Service-Oriented Architecture
  • 5. From SOA challenges…
    • IT architectures
    • Complexity
      • Managing 10 n lines of code
    • Monolithic
      • Breaking application «silos»
    • Seldom evolvable
      • Freeing systems from immutable dependencies
    • SPL, MDE, CBSE, AOSD, …
  • 6. Software decomposition
  • 7. SOA and SPL, MDE, CBSE, AOSD, …
  • 8. Software composition
  • 9. Tools, skills or contexts?
  • 10. Service Oriented Architecture
    • SOA leverages complexity and promotes flexibility
      • Loose coupling
      • Service composition and orchestration
      • Well defined and contractualized interfaces
      • Standard tools and technologies
    • This should be the SOLUTION !!!
    Source: oasis-open.org
  • 11. Simple Object Access Protocol (SOAP)
  • 12. 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!
  • 13. … to SCA … Service Component Architecture
  • 14. 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
  • 15. SCA in a Nutshell (cont’d)
    • Component implements the business logic
    • Concepts
      • Service(s)
        • Interface type: Java , WSDL
      • Reference(s)
      • Property(s)
      • Implementation
      • Non functional property(s)
        • Intent & policy
    intent
  • 16. SCA in a Nutshell (cont’d)
    • Assembly : ”Process of composing business applications by configuring and connecting components that provide service implementations” [SCA Whitepaper]
    • 2 Levels :
    • Module assembly
      • Closely coupled
      • See figure
    • System assembly
      • Loosely Coupled
  • 17. SCA in a Nutshell (cont’d) 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 Loosely coupled Loosely coupled Closely coupled Entry Points Entry Points External Service External Service External Services Binding Wire Wire
  • 18. Modelling with Eclipse SCA Tools
  • 19. SCA Hello World Example
  • 20. SCA Hello World Example (cont’d)
  • 21. SCA Hello World Example (cont’d)
  • 22. SCA Benefits
    • A component model…
      • Hierarchic compositions
      • Configurable properties
      • Provided/required ports
      • Communication bindings
      • Intent and policy supports
      • Synchronous/asynchronous invocations
    • … for SOA
      • OASIS standard
      • Industry acceptance: Apache Tuscany, IBM WebSphere, Eclipse, …
    • 5 degrees of flexibility / adaptability
      • Implementation languages (Java, C++, BPEL, etc.)
      • Interface description languages (Java, WSDL, etc.)
      • Communication protocols (SOAP, IIOP, etc.)
      • Non-functional properties (security, transactions, etc.)
      • Packaging formats (ZIP, OSGi bundles, WAR, etc.)
  • 23. 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!
  • 24. FraSCAti
  • 25. FraSCAti Overview
    • A framework for SOA interoperability and integration
      • SCA + extensions
    • A reflective SCA component model and framework
      • Runtime adaptability
    • A Software Product Line for SCA
      • “ à la carte”, on-demand, modular, configurable, extensible
    • Components everywhere
      • At any software granularity
    • An open source SCA implementation
      • LGPLv2 at http://frascati.ow2.org
  • 26. SOA Interoperability and Integration
  • 27. Interoperability with FraSCAti
    • Via SCA bindings
      • Web Service / SOAP / WSDL via Apache CXF
      • JMS via OW2 JORAM
      • REST / WADL
      • JSON-RPC
      • UPnP
      • Java RMI
  • 28. Integration with FraSCAti
    • Mainly via 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
  • 29. An open SOA framework 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 Interoperability Integration
  • 30. Reflective Component Model
  • 31. FraSCAti: The marriage of SCA and Fractal SCA The standard component model for SOA Fractal A modular and reflective component model Reflective SCA Applications SOA for Fractal ANR 2007-2009 FraSCAti An open SCA runtime platform built on top of OW2 Fractal
  • 32. An open reflective SCA platform Reflective SCA component model Middleware for integrating middleware Ad-hoc manual & 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 . . . JMS JORAM API Interoperability Integration FraSCAti JMX FraSCAti REST API FraSCAti Explorer FraSCAti FScript
  • 33. FraSCAti API & Runtime
    • API = SCA API + 100% Fractal API + 3 new controllers
      • SCA properties
      • SCA intents
      • SCA contents
      • See http://frascati.ow2.org/RECONF-API/
    • Tinfi = Julia - ASM + Juliac + new SCA membranes
      • FraSCAti components also Fractal/Julia components
      • Java source generation for membranes
  • 34. FraSCAti Explorer - an SCA microscope
  • 35. More than just an SCA microscope
  • 36. FraSCAti JMX
  • 37. FraSCAti REST EMF-based model
  • 38. Reconfiguring SCA applications with
    • Interactively via FraSCAti Explorer or JMX
    • Programmatically via FraSCAti API or FScript/FPath [P.C. David PhD 2005]
  • 39. 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)
  • 40. FraSCAti Aspect Components (FAC)
    • Non functional concerns as shared & reflective FraSCAti composites
    • Dynamic AOP for crosscutting concerns
    • Reuse [N. Pessemier PhD 2007]
  • 41. A FraSCAti Aspect Component
  • 42. A FraSCAti Intent Implementation
    • public class MyIntentHandler implements org.ow2.frascati.tinfi.api. IntentHandler {
    • public Object invoke (org.ow2.frascati.tinfi.api. IntentJoinPoint ijp) throws Throwable
    • {
    • // Before the invocation.
    • Object ret = ijp.proceed ();
    • // After the invocation.
    • return ret;
    • } }
  • 43. FraSCAti UML Diagram Sequence Aspect
  • 44. FraSCAti UML Sequence Diagram Aspect Components
  • 45. Software Product Line
  • 46. OW2 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
  • 47. OW2 FraSCAti
    • Software Product Line (SPL) for h ighly “à la carte”, on-demand, modular, configurable and extensible SCA platforms
      • Both application requirements and target system constraints
    • Three architectural principles:
      • A feature model
      • Maven modules
      • SCA-based architecture
      • Online at http://frascati.ow2.org/doc/1.4/ch12.html
  • 48. Various Features in OW2 FraSCAti
    • 33 for SCA developers
      • <implementation.bpel>, …
      • <interface.wsdl>, …
      • <binding.ws>, …
      • Property XML, …
    • 5 for FraSCAti users
      • Compiler/launcher
      • Tools: Explorer, FScript, JMX, Remote Management
    • 25 internals to FraSCAti
      • Supported metamodels
      • Membrane generators
      • Supported Java compilers
      • Membrane factories
  • 49. OW2 FraSCAti Feature Model
    • 63 features
      • 18 mandatory
      • 45 optional
    • 46 extra constraints, aka feature dependencies
      • ECR = 57%
    • 1 684 077 600 distinct configurations
    • Encoded with FAMILIAR [M. Archer PhD 2011]
      • a scripting language for SPL
  • 50. OW2 FraSCAti Feature Diagram
  • 51. OW2 FraSCAti at S.P.L.O.T.
  • 52. OW2 FraSCAti Modules
    • Modules as implementation of features
    • 46 + Maven modules
    • Mandatory features grouped into few three modules
    • Each optional feature into one module
      • but one exception
  • 53. OW2 FraSCAti Main Modules sca-parser.jar component-factory.jar assembly-factory.jar
  • 54. All OW2 FraSCAti Modules Remote Management Binding REST Binding JSON-RPC Implementation Resource Binding Factory Implementation Fractal Binding Java RMI MM FraSCAti Fscript Sca Parser … Implementation FScript Implementation JavaScript Implementation JRuby Implementation Jython Knopflerfish Equinox Apache Felix Implementation Script Implementation OSGi MG + MF Implementation Spring Implementation Xquery Implementation BeanShell Implementation Groovy Interface Native JMX MF Julia MM Native Property JAXB Binding JNA Implementation BPEL Membrane Generation MM UPnP Binding UPnP Explorer MM Tuscany Binding WS Binding JMS Interface WSDL JDT JDK6 Component Factory … Assembly Factory … MG Tinfi Binding HTTP MF Tinfi
  • 55. 300+ Maven artifacts
  • 56. OW2 FraSCAti Architecture
    • Itself an SCA application
    • 13 composites
    • 91 components
    • Biggest SCA application to our knowledge
    • Most of features implemented by one SCA component
  • 57. Root OW2 FraSCAti SCA Composite Assembly Factory Sca Parser Component Factory Binding Factory Explorer Fscript JMX Remote Management
  • 58. OW2 FraSCAti SCA Parser Metamodels MM_SCA MM_UPnP MM_FraSCAti MM_Native MM_Tuscany
  • 59. OW2 FraSCAti Component Factory Component Factory Membrane Factories MF_Julia MF_Tinfi MF_OSGi Membrane Generation
  • 60. OW2 FraSCAti Component Factory Membrane Generation Membrane Generators Java Compilers MG_OSGi MG_Tinfi JDK6 JDT
  • 61. OW2 FraSCAti Assembly Factory Assembly Factory Implementations Composite Java Fractal Spring OSGi Resource Script BPEL Interfaces Java WSDL Native Bindings SCA WS UPnP REST JSON-RPC JMS HTTP Java RMI JNA Java XSD JAXB Properties
  • 62. Self-introspecting with FraSCAti Explorer
  • 63. Self-introspecting with FraSCAti JMX
  • 64. OW2 FraSCAti SPL Summary
    • Highly “à la carte”, on-demand, modular, configurable, and extensible SCA platforms
      • Design View
        • 63 features
          • 18 mandatory
          • 45 optional
      • Implementation View
        • 46+ Maven modules
          • Mandatory features grouped into few modules
          • One module by optional feature
      • Execution View
        • 13 composites and 91 components
    •  1 684 077 600 distinct configurations
  • 65. Software decomposition and composition frascati-assembly-factory.jar frascati-implementation-bpel.jar Assembly Factory BPEL Decomposition @ Design Time Decomposition @ Runtime Composition @ Deployment Time Decomposition @ Implementation Time
  • 66. Conclusion
  • 67. What you should keep in mind about
    • A middleware of middleware
      • SOA interoperability and integration
    • A reflective component model for SOA [SCC’09, SPE’11]
      • FraSCAti = SCA + Fractal + FAC + CBM
    • A software product line for SCA
      • Highly “à la carte”, on-demand, modular, configurable and extensible
    • At any software granularity
      • SOA applications
      • Non functional crosscutting concerns, aka SCA intents
      • FraSCAti and its plugins
      • Component-based reflective membranes
      • New middleware, e.g., EasyBPEL/EasyViper
  • 68. Next features for OW2 FraSCAti 1.5
    • Follow http://jira.ow2.org/browse/FRASCATI
    • <implementation.osgi> with Concierge
    • <implementation.velocity>
    • <implementation.freemarker>
    • <interface.wadl>
    • <binding.osgi>
    • <binding.jgroup>
    • Deployment on OSGi
      • Apache Felix, Equinox, Knopflerfish, Concierge
    • Deployment on J2ME
    • Web-based FraSCAti Explorer
  • 69. Research Perspectives
    • Software Product Lines to modular SCA with FraSCAti
    • A component-based programming language for dynamic SOA
    • Real-time systems
      • OMG Data Distribution Service (DDS)
    • Event-based systems
    • Embedded systems
    • Autonomous systems
    • E-green systems
    • Home clouds
    • Large scale SOA & Cloud Computing
  • 70. Intensive software systems
    • Interoperability
    • Integration
    • Configuration
    • Deployment
    • Observation
    • Reconfiguration
    • . . .
    • Various forms of flexibility/adaptability
    You want FraSCAti! for your business
  • 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
  • 72. Acknowledgements
    • Slides from
      • 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)
  • 73. FraSCAti everywhere, what else?
    • Visit http://frascati.ow2.org
    • Contact
      • Philippe Merle: Philippe.Merle@inria.fr
      • Lionel Seinturier: Lionel.Seinturier@univ-lille1.fr