Presentation is loading. Please wait.

Presentation is loading. Please wait.

Www.objectweb.org Dream A Fractal-based communication framework ObjectWeb Architecture Meeting July, 8th 2004 M. Leclercq, V. Quéma, J.-B. Stefani Sardes.

Similar presentations


Presentation on theme: "Www.objectweb.org Dream A Fractal-based communication framework ObjectWeb Architecture Meeting July, 8th 2004 M. Leclercq, V. Quéma, J.-B. Stefani Sardes."— Presentation transcript:

1 www.objectweb.org Dream A Fractal-based communication framework ObjectWeb Architecture Meeting July, 8th 2004 M. Leclercq, V. Quéma, J.-B. Stefani Sardes Project, INRIA-LSR-IMAG

2 www.objectweb.org Architecture Meeting - D2 - 07/08/2004 Outline è Motivations è Dream è Experiments è Future work

3 www.objectweb.org Architecture Meeting - D3 - 07/08/2004 Motivations è Existing communication middleware (CM)  Provide a fixed communication model RPC (CORBA, RMI, SOAP, …) JMS (JORAM, WebSphere MQ, iBus, …) Ad-Hoc (BEA MessageQ, Gryphon, SIENA, …)  But… share a lot of architectural components  Provide several non-functional properties  Are not extensively (re)configurable Fixed monolithic architecture with few parameters to configure  The application developer is constrained to fixed abstractions

4 www.objectweb.org Architecture Meeting - D4 - 07/08/2004 What do we need? è (re)configurable CMs  Functionally Build various communication paradigms –RPC, Message passing, event/reaction, publish/subscribe  Non functionally Provide various non-functional properties –Security, transactions, persistency, ordering, …  Architecturally Adapt to various kind of execution environments –PC, PDA, cell phones, …

5 www.objectweb.org Architecture Meeting - D5 - 07/08/2004 What is Dream? è A framework for building CMs  Core Abstractions and tools for resource management –Messages –Activities  ADL for the configuration and deployment of CMs  A component library Components commonly found in CMs è Used to build several personalities  JMS, Probabilistic broadcast, Internet services, … è Integrated in LeWYS

6 www.objectweb.org Architecture Meeting - D6 - 07/08/2004 Outline è Motivations è Dream  Core  ADL  Component library è Experiments è Future work

7 www.objectweb.org Architecture Meeting - D7 - 07/08/2004 Dream core è Define abstractions and tools to manage resources  Messages  Activities è 105 classes (12054 lines) è dream-core.jar = 113k

8 www.objectweb.org Architecture Meeting - D8 - 07/08/2004 Messages è Messages are fractal composites encapsulating  Chunks Unit of data allocation Implement a Fractal server interface  Sub messages è Two interfaces  Message Methods to retrieve chunks and sub messages  ExtensibleMessage extends Message Methods to add/remove chunks and sub messages

9 www.objectweb.org Architecture Meeting - D9 - 07/08/2004 Message managers è Shared components that manage messages and chunks  Implement the MessageManager interface  Methods to create, delete, duplicate chunks and messages è Pool messages and chunks for efficiency è Generic versus specific implementations è Future work: dynamic generation of messages using ASM

10 www.objectweb.org Architecture Meeting - D10 - 07/08/2004 Inputs/outputs è Fractal interfaces that allow message exchanges between components push(message, ctxt) ; void push(Message m, Map ctxt){ // Processing of message m } Push connection Message m = pull(ctxt); // Processing of // message m Message pull (Map ctxt){ // Returns a message } Pull connection Component A Component B Input Output Principle

11 www.objectweb.org Architecture Meeting - D11 - 07/08/2004 Activities è Components can be active or passive è Active components define tasks to be executed è For a task to be executed, it must be registered to one activity manager component

12 www.objectweb.org Architecture Meeting - D12 - 07/08/2004 Activity managers è Shared components that encapsulates tasks and schedulers Activity manager Task (thread) FIFO Scheduler Task A1Task A2Task B Component A Third party Component B taskManager schedulerManager taskController Task (thread) schedule execute register(A1 )

13 www.objectweb.org Architecture Meeting - D13 - 07/08/2004 Schedulers and tasks è Schedulers are responsible for mapping higher level tasks onto lower-level tasks  Schedule server interface  Execute client interface  Implement a scheduling policy FIFO, round-robin, with priority,... è Tasks  Execute server interface  Schedule client interface  Three kinds of tasks Higher-level tasks = applicative tasks Lowest-level tasks = threads ( Execute = Runnable ) Middle-level tasks = allow inter-schedulers scheduling è Note: shares a lot of similarities with P. Merle’s orchestration framework… should be merged soon !

14 www.objectweb.org Architecture Meeting - D14 - 07/08/2004 Outline è Motivations è Dream  Core  ADL  Component library è Experiments è Future work

15 www.objectweb.org Architecture Meeting - D15 - 07/08/2004 ADL è Use Fractal ADL  All this work is not Dream specific è Added modules  Description of legacy components  Class loading management (uses OSCAR’s module loader) è Future work  Extend (re)configuration capabilities  Support for distributed asynchronous deployment

16 www.objectweb.org Architecture Meeting - D16 - 07/08/2004 Outline è Motivations è Dream  Core  ADL  Component library è Experiments è Future work

17 www.objectweb.org Architecture Meeting - D17 - 07/08/2004 Component library (1) è Components commonly found in CMs  Fine grain components Ease reuse Improve configurability è 76 classes (9025 lines) è dream-lib.jar = 116k

18 www.objectweb.org Architecture Meeting - D18 - 07/08/2004 Component library (2) è Message queue  Ordering (FIFO, causal, …)  Behavior in the different states (empty, full) è Router  Routing policy (round-robin, chunk name, …) è Aggregator  Aggregate messages received on the input(s)  Deliver a message on its output è Pump  Periodically pull a message on its input and then push it è Channel  Allow message exchanges between different address spaces (TCP socket, …) è Protocol components, Transformers, Filters …

19 www.objectweb.org Architecture Meeting - D19 - 07/08/2004 Outline è Motivations è Dream è Experiments è Future work

20 www.objectweb.org Architecture Meeting - D20 - 07/08/2004 Experiments è Goals  Check that Various personalities can be built There is a gain in configurability Performances for functionally equivalent CMs are comparable Performances can be better when CMs are adequately configured è Experiments  Joram, an open-source implementation of the JMS API  Lightweight Probabilistic Broadcast (LPBCast)  Staged Event-Driven Architecture (SEDA)

21 www.objectweb.org Architecture Meeting - D21 - 07/08/2004 Joram

22 www.objectweb.org Architecture Meeting - D22 - 07/08/2004 Performances (1) è Compare performance of the same application running on Joram agent server and its Dream based implementation  Four Agent servers  Each server hosts an agent  Agents are organized in a virtual ring  A message is forwarded by each agent around the ring  Measure Number of rounds made by the message per second Memory footprint

23 www.objectweb.org Architecture Meeting - D23 - 07/08/2004 Performances (2) Nb of Rounds / secMemory footprint (KB) 0 kB1 kB Joram3252554 x 1447 Dream (non-reconf)3292604 x 1580 Dream (reconf)3182504 x 1587 è Dream non-reconf  Optimized binding Interface object bypassed  No lifecycle interceptor Non stoppable application è Julia has no execution cost and low memory cost

24 www.objectweb.org Architecture Meeting - D24 - 07/08/2004 Configurability assessment (1) è Allow changing non functional properties  Causal ordering  Atomic reaction è Allow changing the architecture è Allow changing the concurrency model è Allow building an architecture for mobile devices

25 www.objectweb.org Architecture Meeting - D25 - 07/08/2004 Configurability assessment (2) è An Agent Server for mobile devices Router Atomic Reactor Agent Factory Agent Repository MessageToNotif NotifToMessage TCPChannelIn (Pull) TCPChannelOut (Push) Repository AtomicityProtocol Engine ChannelOut (Pull) TCPChannelI n (Push) Conduit Network (details not shown) RemoteRepresentative Towards other agent servers Mobile deviceProxy

26 www.objectweb.org Architecture Meeting - D26 - 07/08/2004 SEDA (Staged Event-Driven Architecture) è UC Berkeley project (SOSP 2001, USITS 2003) è Dedicated to the construction of highly concurrent Internet services è Service = network of event-driven stages è Stage  Event queue (incoming events)  Event handler  Thread pool

27 www.objectweb.org Architecture Meeting - D27 - 07/08/2004 SEDA architecture Event Handler Thread Pool Controller Event Queue Outgoing Events

28 www.objectweb.org Architecture Meeting - D28 - 07/08/2004 SEDA-Dream architecture

29 www.objectweb.org Architecture Meeting - D29 - 07/08/2004 Configurability assessment è Event handlers have direct control over threads  Allows avoiding the use of locks, … è Activity managers can be shared between several stages  Common scheduling policy for accessing shared state è Every architectural element is a component  Reconfiguration  Ordered queues è Allows changing the concurrency model

30 www.objectweb.org Architecture Meeting - D30 - 07/08/2004 Outline è Motivations è Dream è Experiments è Future work

31 www.objectweb.org Architecture Meeting - D31 - 07/08/2004 Future work è Improving Dream  Persistency, transactions  Improving resource management è Integrating Dream with other projects (CLIF, LeWYS)  Binding factory for Julia è Building other personalities  Synchronous middleware (requires Jonathan concepts)  Group communication library (with JGroups as a basis)  Implementing various publish/subscribe middleware

32 www.objectweb.org Architecture Meeting - D32 - 07/08/2004 Questions?


Download ppt "Www.objectweb.org Dream A Fractal-based communication framework ObjectWeb Architecture Meeting July, 8th 2004 M. Leclercq, V. Quéma, J.-B. Stefani Sardes."

Similar presentations


Ads by Google