Presentation is loading. Please wait.

Presentation is loading. Please wait.

Transparent Mobility of Distributed Objects using.NET Cristóbal Costa, Nour Ali, Carlos Millan, Jose A. Carsí 4th International Conference in Central Europe.

Similar presentations


Presentation on theme: "Transparent Mobility of Distributed Objects using.NET Cristóbal Costa, Nour Ali, Carlos Millan, Jose A. Carsí 4th International Conference in Central Europe."— Presentation transcript:

1 Transparent Mobility of Distributed Objects using.NET Cristóbal Costa, Nour Ali, Carlos Millan, Jose A. Carsí 4th International Conference in Central Europe on.NET Technologies

2 2 30/05/2006.NET Technologies 2006 Contents >Background & Motivation >Search Agents case study >OOAttachments approach >Conclusions

3 3 30/05/2006.NET Technologies 2006 Background >Previous work in Component-Based Aspect-Oriented Software Architectures >A characteristic is that the components neglect distributed nor local references of their partners >Transparent entities called Attachments are responsible of:  Interconnecting components  Providing transparent mobility and communication Node2Node1 Component1 Attachments Component2

4 4 30/05/2006.NET Technologies 2006 Motivation >To transfer previous experience in attachments to connect objects, instead of aspect-oriented components >To provide a library to support the development of transparent mobility of distributed objects >These features must be provided:  A non intrusive and transparent way of programming  Code should not be precompiled nor preprocessed  Efficiency

5 5 30/05/2006.NET Technologies 2006 Motivation >For example, it can be used by Client & Server architectures to manage both location changes in a transparent way Server Client >Why the client object has to worry about its server?

6 6 30/05/2006.NET Technologies 2006 State of the art >This problem has been dealt in Mobile Agent Systems Most of them are built on Java:  Aglets, Nomads, MobJeX, Voyager, JADE, ProActive, … >There are few approaches on.NET but still in development  MAPNET, Nomad, EtherYatri.NET >Common characteristics of these approaches:  Agents are defined by means of inheritance.  In most of them, the agent has to define all its functionality in one method (usually “Run”) with a specific signature  Events are captured by overriding inherited methods  Communication among agents is realized: by using generic proxies (like “AgentProxy”), by passing messages, or by implementing specific services

7 7 30/05/2006.NET Technologies 2006 Strong vs Weak Mobility In order to implement strong mobility the ability of thread serialization is required. Two main alternatives: By extending the Framework (e.g. JavaThreads [Bouchenak03])  New releases of the Framework would make it useless By preprocessing the source or binary code (e.g. Brakes [Truyen00])  Less eficiency The programmer must take care of their processes Agent processes are interrupted in a transparent way Weak MobilityStrong Mobility It is the programmer who saves processes information before moving and restores it after moving. As no customization is needed, the solution is more portable

8 8 30/05/2006.NET Technologies 2006 Contents >Background & Motivation >Search Agents case study >OOAttachments approach >Conclusions

9 9 30/05/2006.NET Technologies 2006 >Our solution: to send only a few agents capable of establishing transparent mobile communications  Network resources are not overloaded, as there only are a few agents travelling through the network  Agents can exchange new subsearches without realizing where the others are  They are completely autonomous: they only come back with the results, so the sender could have been disconnected during the process (e.g. mobile clients) >There are a lot of resources over the Internet from which we want to collect distributed information >The search grows as a tree, so we need to be able to explore the resources dynamically in a distributed way SearchAgents case study B E C D A

10 10 30/05/2006.NET Technologies 2006 SearchAgent implementation >The inheritance is not limited: we do not have to inherit from a specific class to benefit from mobility >By this way, an object is made remotely accessible to others >A specific interface can be specified to restrict offered services >An object obtains a reference of a remote object by specifying its ID and current location >The remote reference is a transparent proxy that provides all the remote methods >By this way, an object moves itself to another host >There are no need to use specific methods and signatures for being called when object mobility finishes >Parameters can also be provided (e.g. for providing initialization information)

11 11 30/05/2006.NET Technologies 2006 Contents >Background & Motivation >Search Agents case study >The OOAttachments approach >Conclusions

12 12 30/05/2006.NET Technologies 2006 The OOAttachments approach >Features:  Objects can move autonomously among computers without having to take into account how distributed communications with other objects are performed  Since a connection is established, location-awareness is provided  No need for a centralized infrastructure to manage mobility and object registration services  Dynamic code generation and reflection is combined in order to be able of calling code dynamically, so code precompilation is not needed >Constraints:  Weak mobility is provided, so objects must take care of their threads before moving  In order to establish the first connection, a client object needs to know where the server object is located  Each mobile object must be marked as Serializable  The middleware must be running in each computer

13 13 30/05/2006.NET Technologies 2006 The OOAttachments approach >Objects are connected through entities called Attachments Search Agent 2 Search Agent 1 Host AHost B Server behaviour: It offers the “NotifyNewLocation” service Client behaviour: It invokes “NotifyNewLocation” Attachment Server behaviour: provided by the AttachmentServer Client behaviour: provided by the AttachmentClient Object layer Attachments layer.NET Remoting layer >Attachments are created through the AttachmentsManager class

14 14 30/05/2006.NET Technologies 2006 How it works: Communication Search Agent 2 Search Agent 1 Host AHost B Attachment >Server-behaviour is defined by the AttachmentServer object  Incoming request services are forwarded towards the server object  It notifies about mobility to its connected objects  One entity is serializable (Marshal By Value), so its state can be migrated, and the other is accessible remotely (Marshal By Reference) >Server-behaviour is defined by the AttachmentServer object  Incoming request services are forwarded towards the server object  It notifies about mobility to its connected objects  One entity is serializable (Marshal By Value), so its state can be migrated, and the other is accessible remotely (Marshal By Reference)

15 15 30/05/2006.NET Technologies 2006 How it works: Communication Search Agent 2 Search Agent 1 Host AHost B Attachment >Client-behaviour is defined by the AttachmentClient object >Composed by:  A runtime generated proxy (MSIL) of the remote object  A remote accessible object which allows to be notified about server mobility  A serializable object that manages the attachmentClient state, forwards services to the attachmentServer >Client-behaviour is defined by the AttachmentClient object >Composed by:  A runtime generated proxy (MSIL) of the remote object  A remote accessible object which allows to be notified about server mobility  A serializable object that manages the attachmentClient state, forwards services to the attachmentServer

16 16 30/05/2006.NET Technologies 2006 How it works: Communication >Inter-object communication is a very frequent operation: it must be as faster as possible >Communication is established dynamically on demand, so dynamic code invocation must be used  Its performance is: Reflection < Delegates << Direct Calls (code generation) >We dynamically generate code on establishing a connection in order to reduce these costs >Total introduced communication costs:  3 direct calls + 1 dynamic invocation (through delegates) ≈ +11%

17 17 30/05/2006.NET Technologies 2006 How it works: Mobility >The MoveObject service performs several steps:  The object to be moved and its communication processes (attachments) are packaged in a MobilityPackage object  This is serialized and transferred to the target host  Before unpacking, it is checked whether the required assemblies are available. If not, they are downloaded from the source host  The information is unpacked and, when communication processes are restored, the transferred object runs by invoking its specified method  If anything fails, all information is restored properly >Simultaneous mobility is also supported  An object can move to another host while other objects, that are connected to it, are being moved at the same time >The mobility process depends on the role of the object to be moved

18 18 30/05/2006.NET Technologies 2006 How it works: Mobility >Client behaviour:  If it has service requests being processed, the mobility process waits until they finish properly (weak mobility)  When mobility finishes, object state is restored, including its connections with remote objects >Server behaviour:  Before moving, pending requests from client objects must finish first  New requests from client objects are blocked (at the attachment level) until mobility finishes.  When mobility finishes, all communication processes are restored and client requests are processed

19 19 30/05/2006.NET Technologies 2006 Contents >Background & Motivation >Search Agents case study >The OOAttachments approach >Conclusions

20 20 30/05/2006.NET Technologies 2006 Conclusions & Future work >An application can be easily adapted to benefit from these features:  Objects do not have to take into account what communication technology is used  Objects benefit from transparent (weak) mobility and distributed communications in a non-intrusive way  After establishing a connection, location-awareness of connected objects is provided >Further work:  Adaptability to Service-Oriented infrastructures, such as WCF  To provide security features to validate incoming code, such as by signing assemblies and by establishing trusted relations >OpenSource project home page: http://workspaces.gotdotnet.com/OOAttachments

21 21 30/05/2006.NET Technologies 2006 Questions


Download ppt "Transparent Mobility of Distributed Objects using.NET Cristóbal Costa, Nour Ali, Carlos Millan, Jose A. Carsí 4th International Conference in Central Europe."

Similar presentations


Ads by Google