Mobile code style:
Code moves to be interpreted on another host. This style enables code to be transmitted to remote host for interpretation. This may be due to lack of local computing power, lack of resources or due to large data sets remotely located.
Mobile code may be classified as code-on-demand, remote evaluation or mobile agent depending on where the code is being transmitted, who requested the transmission and where the program state resides.
- Components: Execution dock which handles receipt and deployment of code and state.
- Connectors: Network protocols and elements for packaging code and data for transmission.
- Data elements: Representation of code as data, program state, data.
- Variants: Code-on-demand, remote evaluation and mobile agent.
- Qualities yielded: Dynamic adaptability, aggregate computing power of available host is used, increased dependability through provision of migration to new host.
- Typical uses:
When processing large data sets in distributed locations, it becomes more efficient to move the code to location of these large data sets.
When it is desired to dynamically customize a local processing node through inclusion of external code.
- Caution: Security issues- execution of imported code may expose the host machine to malware.
When it is necessary to tightly control the different software versions deployed.
When costs of transmission exceed the code of commutation
When network connections are unreliable.
E.g.: Scripting languages, ActiveX control, embedded Word/Excel macros.
Implicit Invocation style:
a)Publish-Subscribe:
Here, the publisher periodically creates information and the subscriber obtains a copy of the information or at least informed of its availability. The publisher maintains a list of subscriber to each of which a procedural call is issued when new information is available. Subscriber register their interest with publisher, providing them with the procedure interface to be used when information is published.
- Components: Publishers, Subscribers, proxies for managing distribution.
- Connectors: Procedural calls, network protocol
- Data elements: Subscriptions, notifications, published information.
- Topology: Subscribers connect to publisher either directly or may receive notifications via network protocol
- Quality yielded: Highly efficient one-way dissemination of information with low coupling of components
- Typical uses: News dissemination- whether in real world or online
Graphical user interface programming,
Multiplayer network based games.
- Cautions: When the number of subscribers for a single data item is very large a specialized broadcast protocol will likely be necessary
b)Event-based:
This style is characterized by independent components communicating solely by sending events through event-bus connectors. With this style, the optimization of event distribution is the responsibility of the connectors; registration of interest in particular events is only handled by the connectors.
- Components: independent, concurrent event generators
- Connectors: event bus
- Data elements: Events
- Topology: Components communicate with the event buses, not directly to each other.
- Variants: Component communication with the event-bus may either be push or pull based.
- Quality yielded: highly scalable, easy to evolve, effective for highly distributed heterogeneous applications
- Typical uses: User interface software, wide-area applications involving independent parties.
- Cautions: No guarantee of when a particular event will be processed.