the fractal open component model - laboratoire ibiscdjafri/bachir_djafri... · 2014. 1. 28. ·...

24
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

Upload: others

Post on 08-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 2: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 3: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 4: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 5: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 6: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 7: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 8: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 9: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 10: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 11: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 12: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

A Fractal component

client interface

server interface

membrane

sub-component

Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 12 / 24

Page 13: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 14: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 15: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 16: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 17: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 18: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

Fractal Tools at http://fractal.ow2.org

Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 18 / 24

Page 19: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 20: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 21: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 22: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 23: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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

Page 24: The Fractal Open Component Model - Laboratoire IBISCdjafri/Bachir_Djafri... · 2014. 1. 28. · Hosted by the OW2 Open Source Middleware Consortium (ex ObjectWeb) That develops reflective

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