the fractal open component model - laboratoire ibiscdjafri/bachir_djafri... · 2014. 1. 28. ·...
TRANSCRIPT
The Fractal Open Component Model
Jean-Bernard Stefani
INRIA Grenoble-Rhône-Alpes
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 1 / 24
Executive Summary
Fractal: a model for the construction of reconfigurablecomponent-based software systemsFractal: an open model
different forms of compositiondifferent forms of reflectiondifferent forms of connectionprogramming-language independent
Fractal: an open source project, hosted by the OW2 consortiumModel specificationsDesign, programming & deployment toolsIndustrial-strength Fractal-based projects
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 2 / 24
Outline
1 CBSE and Fractal
2 The Fractal Component Model
3 The Fractal Project
4 Fractal-based Developments
5 Conclusion
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 3 / 24
Outline
1 CBSE and Fractal
2 The Fractal Component Model
3 The Fractal Project
4 Fractal-based Developments
5 Conclusion
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 4 / 24
Component-Based Software Engineering (CBSE)
CBSE: branch of software engineering that studies the design andconstruction of software systems as explicit compositions of softwareunits (components).
Semantical foundations: components and composition operatorsDesign and programming tools: architecture description and analysisPattern catalogs: architecture styles
Components: units of (data and behavior) encapsulation with welldefined interfaces for communication with other components.
In contrast to objects, components expose as interfaces all theircommunication relations.
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 5 / 24
Motivations for Fractal
Component-based software engineering (CBSE) for software systemconstruction and management
Components as units of modularity, fault isolation, distribution,configuration, deploymentSoftware architecture central for design, construction and management
Question #1: how to support CBSE and its multiple concerns ?
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 6 / 24
Motivations for Fractal
“Components” among usplugins, xBeans, packages, COM & .Net, OSGI, SCA, etc
At the crossroad of multiple, overlapping concernsmodularityarchitecturesoftware evolutiondistributiondeploymentdependability
Question #2: how to understand the diversity of components ?
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 7 / 24
Motivations for Fractal
Answering questions #1 and #2 by combining in the same componentmodel:
Sophisticated architecture description capabilitiescomponent hierarchiessharing graphs
Multiple forms of component composition and component interactionconcurrency and controlcommunication and synchronization
Multiple forms of reflectioninterceptionintrospectionsuperposition
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 8 / 24
Outline
1 CBSE and Fractal
2 The Fractal Component Model
3 The Fractal Project
4 Fractal-based Developments
5 Conclusion
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 9 / 24
Fractal: classical concepts
ComponentEncapsulated data and behaviorWith well identified interfacesWith sub-components
InterfaceA named access point to a componentCan emit or receive operations or messages
E.g. client and server interfaces
Can be typedBinding
Communication path between componentsBindings mediate all interactions between components
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 10 / 24
Fractal: original concepts
Component = membrane + sub-componentsMembrane
Supports a component’s reflective capabilitiesCan support meta-object protocols through control interfacesCan have an internal structure of its own (cf AOKell)Arbitrary reflective capabilities can be supported (no fixed MOP)
SharingA component can be a subcomponent of several composites
Component graphs, not just trees
Useful for architectures with resources and cross-cutting concerns
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 11 / 24
A Fractal component
client interface
server interface
membrane
sub-component
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 12 / 24
Fractal: original concepts
BindingsCan support arbitrary communication semantics
request/response, asynchronous message dispatch, publish/subscribe,etc.
Can be primitive or compositeA primitive binding connects two or more interfaces in the sameaddress space; typically implemented by a language reference.A composite binding connects two or more interfaces; can be reified asa component with primitive bindings.
Can span address spaces and networks
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 13 / 24
Useful reflective capabilities (from the Fractal specification)
Reflection: minimalComponent controller (discovering a component interfaces)Interface controller (obtaining the Component controller)Binding controller (binding an external component interface)
Reflection: structuralContent controller (adding, removing subcomponents)Attribute controller (setting, getting component attributes)
Reflection: behavioralInterceptors (before, around and after operations)Lifecycle controller (starting, stopping the component)
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 14 / 24
Fractal: Forms of components
Without reflection: objectsWith no sub-components and binding controller: objects with IOCWith sub-components and binding controller: SCA componentsWith component and interface controllers: COM componentsWith binding and lifecycle controllers: OSGI bundlesWith binding controller and multicast bindings: CCA componentsWith attribute controller: MBeansWith transaction and persistency interceptors, controllingsubcomponents with lifecycle controller: EJBeans
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 15 / 24
Outline
1 CBSE and Fractal
2 The Fractal Component Model
3 The Fractal Project
4 Fractal-based Developments
5 Conclusion
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 16 / 24
The Fractal Project
An open source projectHosted by the OW2 Open Source Middleware Consortium (exObjectWeb)
That develops reflective software component technology for theconstruction of reconfigurable distributed systems
The Fractal component modelA set of tools for Fractal-based design, programming and deployment
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 17 / 24
Fractal Tools at http://fractal.ow2.org
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 18 / 24
Outline
1 CBSE and Fractal
2 The Fractal Component Model
3 The Fractal Project
4 Fractal-based Developments
5 Conclusion
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 19 / 24
Using Fractal for building software infrastructures
Operating system kernels: ThinkAsynchronous middleware: DreamTransaction management: GOTMDeployment: DeployWarePersistency services: Speedo, PerseusMiddleware for computational grids: ProactiveMiddleware for enterprise application integration (EAI): PetalsMiddleware for service oriented architectures (SOA): FrascatiDistributed systems management: Jade, Jasmine
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 20 / 24
Outline
1 CBSE and Fractal
2 The Fractal Component Model
3 The Fractal Project
4 Fractal-based Developments
5 Conclusion
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 21 / 24
Conclusion
A component model for building reconfigurable software systemsIndependent from programming languagesOpen: reflection, composition, connection
Supported by comprehensive series of open source toolsLightweight implementations for component-based systemprogrammingRun-time API for online reconfigurationCombination of components and aspectsProgramming and IDE support
Used in industrial-strength developmentsE.g. Speedo, Jasmine, Proactive, Petals
Used in standardsGrid Component Model (GCM) standards at ETSI
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 22 / 24
What’s next ?
Webinars:Fractal programming in JavaFractal programming in C
Fractal technology:Formal semantics, design & verificationADL for dynamic architecturesWorkflow integrationComprehensive deployment and configuration management support
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 23 / 24
To know more
Visit the Fractal Web site: http://fractal.ow2.orgSome publications:
E. Bruneton, T. Coupaye, M. Leclercq, V. Quéma, and J.-B. Stefani.The Fractal Component Model and Its Support in Java . SoftwarePractice and Experience, special issue on Experiences withAuto-adaptive and Reconfigurable Systems. 36(11-12), 2006.T. Coupaye, V. Quéma, L. Seinturier, J.-B. Stefani. Le système decomposants Fractal. Chapitre 3 de Intergiciel et Constructiond’Applications Réparties. Janvier 2007. (in French)P. Merle, J.B. Stefani. A formal specification of the Fractal componentmodel in Alloy. INRIA Research Report RR-6721, 2008.Special issue of the Annals of Telecommunications onComponent-based architecture: the Fractal initiative. Jan.-Feb. 2009.
Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 24 / 24