1.01k likes | 1.18k Views
DISTRIBUTED COORDINATION BASED MODELS. TIB JINI. INTRODUCTION. Here we look at only one type(web,object,file). Clear separation between computation and coordination exists. A distributed system is a collection of processes. INTRODUCTION.
E N D
INTRODUCTION • Here we look at only one type(web,object,file). • Clear separation between computation and coordination exists. • A distributed system is a collection of processes.
INTRODUCTION • Each process is concerned with a specific computational activity. • which in principle is carried out independently from other activities of other processes.
INTRODUCTION • We are trying to separate computation from coordination. • The coordination part of distributed system handles the communication and cooperation between the processes.
INTRODUCTION • Referential coupling generally appears in the form of explicit referencing in communication. • Sender is in need to know the identifier of receiver. • Ex: A process can communicate only if it knows the name or identifier of the other process.
INTRODUCTION • Temporal coupling means that processes that are communicating will both have to be up and running. • Sender and Receiver needs to be active and are running.
COORDINATION MODELS • TIB • JINI
TIB • Coordination model: Meeting Oriented Model • Makes use of subject based addressing, leading to what is known as publish/subscribe architecture. • Receiving a message on subject X is possible only if the receiver had subscribed to it. • Publishing a message on subject X means that the message is sent to all subscriber to X.
Architecture • TIB uses multicasting to forward messages to subscribers. • To cross-large scale networks, it effectively builds an overlay network with proprietary multicast routers.
Communication • Events : Publish – subscribe systems are ideally supported by means of events: you are notified when someone publishes a message that is of interest to you. • Listener Events: Local object that registers a call back for a specific subject.
Communication • Event Scheduling: Events for the same listener event are handled one after the other. • They may also be lost/ignored if listener event is destroyed at the wrong time
NAMING • Names are important as they form address of the address of the message. • Filtering facilities ensure that right messages reach right subscribers.
Transactional Messaging • Ensures that the messages sent by a single process are delivered only if the sender commits. • Store published messages until commit time and only then make them available to subscribers.
Fault Tolerance: Multicasting • TIB relies on multicasting for publishing messages to all subscribers. • This mechanism needs to be extended to wide area networks and requires reliable multicasting. • How?
Fault Tolerance: Multicasting • Solution: • Pragmatic General Multicast(PGM) • A NACK based scheme in which receiver tells the sender that they are missing something
SECURITY • Goal: establish a secure channel between a publisher and a subscriber • Referential decoupling between publisher and subscriber is lost • Sender publishes encrypted data including its identity
SECURITY • Each subscriber sets up a secure channel with the sender • All subscribers share the same key to decrypt messages
SECURITY • Diffie-Helman key exchange + public-key cryptography • Assume Alice and Bob already: • obtained certificates containing each-other public key • established a shared key KA,B using Diffie-Helman
SECURITY • Establish a secure channel between a specific publisher and specific subscriber.
TIB-SUMMARY • Architecture • Communication • Naming • Transactional Messaging • Fault Tolerance • Security
JINI • Generative Communication Model. • Temporal and Referential uncoupling by means of javaspaces, a tuple based storage system. • Tuple? • A Tuple is typed set of references to objects.
JINI • Tuples are stored in serialized, that is, marshalled from into javaspace. • To read a tuple, construct a template, with some fields left open. • Match a template against a tuple through a field by field comparision.
JINI • write(): create an object copy and store it in JavaSpace • read(): return tuples from JavaSpace that match a template • take(): like read, but removes tuple from JavaSpace
JINI • Write : A copy of tuple is stored in javaspace. • Read : A template is compared to tuple instances; the first match returns a tuple instance. • Take : A template is compared to tuple instances; the first match returns a tuple instance and removes the matching instance from javaspace.
Entry JavaSpace Example: JavaSpace “Hello World” public class Message implements Entry { public String content; public Message() { } } Message msg = new Message(); Msg.content = “Hello World”; JavaSpace space = SpaceAccessor.getSpace(); Space.write(msg, null, Lease.FOREVER); Write entry
Example: JavaSpace “Hello World” • Use pattern matching to get desired objects from the space • “null” value represent wildcard • A message object with the “content” field set to “null” will return any message object • A message object with the content field set to “Berkeley” will only return a message object with the content set to that value
JavaSpace Example: JavaSpace “Hello World” Message template = new Message(); //Content is null Message result = (Message)space.read( template, null, Long.MAX_VALUE); System.out.println(result.content); “Hello World” Read entry Entry Long.MAX_VALUE - timeout parameter
Communication : Notifications • A Process can register itself at an object to be notified when ever the event happens. • Uses a callback mechanism through listener objects. • A callback is implemented as an RMI.
Events • A client can register with an object that has events of interest • A client can tell object to pass event to another process • Notification implemented by remote call
JavaSpace Implementation • Replicate JavaSpace at all machines • Store tuples locally, search everywhere • Partial replication and searching • Use DHTs?
Lookup Service • Can be implemented using JavaSpaces • Each service inserts a tuple describing itself • JavaSpace notifies interested clients when service becomes available • Instead, Jini provides a specialized lookup service • A service registers itself using (attribute, value)-pairs • E.g., service parameters, location
Service Item Predefined tuples:
Transactions • Aim to provide ACID properties • Atomicity: all operations of a transaction take place, or none of them do • Consistency: completion of a transaction must leave the participants in a ``consistent'' state • Isolation: activities of one transaction must not affect any other transactions • Durability: results of a transaction must be persistent
Transactions • Jini • Supply the mechanism of two-phase commit protocol • Leave the policy to the participants in a transaction
Transactions • A transaction is represented by a long identifier, obtained from a transaction manager • Each transaction is associated a lease; if lease expires, transaction is aborted