Camelot: What Do SImple Mobile Objects Do?
The Mobile Object Pattern: Live Globally, Act Locally
THERE IS that wonderful song ("What do the simple folk do?") in Camelot (the movie) where Arthur and Guenevere are wondering what simple folk do to turn tears to mirth. Several conjectures are presented: they whistle, they sing, they dance, and they wonder what Arthur and Guenevere do. What do mobile objects do that is not done otherwise to brighten up our day, to give us the needed glow? Do you know? The simplest recipe for mobile object oomph follows.
Local objects communicate, as a rule, by using references: they call and message one another on the same machine. Distributed (remote) objects communicate in various ways but most usually through remote method invocation (remore procedural calls) and message passing via sockets and other networking devices on different machines.
Distributed objects differ from local objects in several particulars:
- Life cycle: The creation, migration and deletion of the objects differ.
- Reference: Remote references are much more complex than simple pointers to memory addresses in the same process.
- Request latency: A distributed request is orders of magnitude slower than local invocations.
- Object activation: Distributed objects might not always be available.
- Parallelism: Distributed objects can be executed in parallel.
- Communication: There are different communication primitives available for distributed objects requests.
- Failure: Distributed objects have more points of failure.
- Security: There are vulnerabilities specific to the distribution of the objects.
- Objective C using the Cocoa API with the NSConnection class and support.
- Java RMI
- CORBA allows distributed mixed object systems.
- DCOM is a framework for distributed objects on the Microsoft platform.
- DDObjects is a framework for using distributed objects on Borland Delphi.
- JavaSpaces is a Sun Microsystems specification for distributed, shared memory.
- Pyre is a framework for distributed objects with Python.
- Distributed Ruby (DRb) is a framework for distributed objects using Ruby.
The following graphics indicate visually local versus distributed objects at the simplest level. Local object communication is on the same machine.
Distributed object communication is on different machines. Mobile objects provide a combination/merger of the virtues of each of these object communication paradigms. Mobile object communication is both on different machines and on the same machine.
When you have distributed (global) communication that is problematic because of its nature and need local communication, try the mobile objects.
Conversely, when you have local communication that is problematic because you need remote (global) configuration or management, try mobile objects.
The preceding is the simplest measure of when you should be using mobile objects. Think of the mobile object runtime environment (MORE) as a locally existent template for global configuration of object communications. Very often you might find yourself in a quandary about how to solve a simple network problem that is easily resolved by the Mobile Object Pattern.
Conversely, when you have local communication that is problematic because you need remote (global) configuration or management, try mobile objects.
The preceding is the simplest measure of when you should be using mobile objects. Think of the mobile object runtime environment (MORE) as a locally existent template for global configuration of object communications. Very often you might find yourself in a quandary about how to solve a simple network problem that is easily resolved by the Mobile Object Pattern.
0 TrackBacks
Listed below are links to blogs that reference this entry: Camelot: What Do SImple Mobile Objects Do?.
TrackBack URL for this entry: http://blogadmin.topiatechnology.com/mt-tb.cgi/14
