2009-10-06

Practical advice about Distributed Systems

Distributed Systems generic approach:
- Develop "entity"
-- Define the Unit-of-Work (UOW) it supports
- Search for "entity"
-- Agree "entity" offers the desired capability or UOW
- Request "entity" to perform UOW
-- Create a network-transferable message
-- Send the message
-- Maybe try to make the remote interaction appear local
-- Maybe do some "enterprise" (Security, transactions, replication etc.) work as well

The same requirements are present throughout the stack:
- Uniform interface allows for generic infrastructural support
-- Caching, extremely loose coupling
-- Can push more requirements on to the "developer"
-- Requires more from external contract meta-data
- Specific interface allows for more limited generic support
-- Targeted caching, application semantics
-- Impacts less on the "developer" but may cost in terms of flexibility

Different approaches to distribution - there is no global panacea:
- Event Driven Architectures (Pub/Sub)
- Service Oriented Architectures
- Resource Oriented Architectures
- Message Oriented Architectures (MOM, Pub/Sub)
- Tuple Spaces (E.g., Linda, Jini)
- RPC based
- Group communication based (Reliable or unreliable)

Source: Mark Little at JavaOne 2009

No comments: