Distributed Coordination-Based Systems References... · Coordination model Publish/subscribe...
Transcript of Distributed Coordination-Based Systems References... · Coordination model Publish/subscribe...
Coordination Model (1)
The principle of a publish/subscribe system as implemented in TIB/Rendezvous.
Basic Messaging
Attributes of a TIB/Rendezvous message field.
The actual data stored in a fieldAny typeData
A constant indicating the type of dataConstantType
The number of elements in the case of an arrayIntegerCount
The total size of the field (in bytes)IntegerSize
A message-unique field identifierIntegerID
The name of the field, possibly NULLStringName
DescriptionTypeAttribute
Processes
a) Priority scheduling of events through a queue group.b) A semantically equivalent queue for the queue group with the
specific event objects from (a).
Naming (1)
Examples of valid and invalid subject names.
YesMarten.R.van_SteenNo (empty label)Marten..van_SteenYesNEWS.res.com.soYesftp.cuss.vu.nilNo (starts with a '.').ftp.cuss.vu.nilYesBooks.Computer_systems.Distributed_Systems
Valid?Example
Naming (2)
Examples of using wildcards in subject names.
NEWS.comp.so.booksNEWS.comp.ai.booksNEWS.comp.se.booksNEWS.comp.theory.books
NEWS.comp.*.books
nil.vu.cuss.ftpnil.vu.cuss.zephyrnil.vu.few.www
ni.vu.>
ftp.cuss.vu.nilwww.cuss.vu.nil
*.cuss.vu.nil
MatchesSubject Name
Synchronization (1)
The organization of transactional messaging as a separate layer in TIB/Rendezvous.
Reliable Communication
The principle of PGM.a) A message is sent along a multicast treeb) A router will pass only a single NACK for each messagec) A message is retransmitted only to receivers that have asked for it.
Processes (1)
A JavaSpace can be replicated on all machines. The dotted lines show the partitioning of the JavaSpace into subspaces.
a) Tuples are broadcast on WRITEb) READs are local, but the removing of an instance when calling
TAKE must be broadcast
Processes (2)
Unreplicated JavaSpace.a) A WRITE is done locally.b) A READ or TAKE requires the template tuple to be broadcast
in order to find a tuple instance
The Jini Lookup Service (1)
The organization of a service item.
A set of tuples describing the service.AttributeSets
A (possibly remote) reference to the object implementing the service.Service
The identifier of the service associated with this item.ServiceID
DescriptionField
The Jini Lookup Service (2)
Examples of predefined tuples for service items.
Street, organization, organizational unit, locality, state or province, postal code, countryAddress
Floor, room, buildingLocation
Name, manufacturer, vendor, version, model, serial numberServiceInfo
AttributesTuple Type
Synchronization of Transactions
The general organization of a transaction in Jini. Thick lines show communication as required by Jini's transaction protocol
Comparison of TIB/Rendezvous and Jini
Based entirely on JavaSecure channelsSecurity
No explicit supportNo explicit supportRecovery mechanisms
NoYesProcess groups
YesYesReliable communication
NoNoCaching and replication
As JavaSpace operationsNoLocking
Multiple processesSingle process (see text)Transactions (scope)
Method invocationsMessagesTransactions (operations)
Lookup serviceNoneNaming services
Byte stringsCharacter stringsNames
General purposeGeneral purposeProcesses
As a callback serviceFor incoming messagesEvent mechanism
Process specificSelf-describingMessages
Java RMIMulticastingNetwork communication
Generative communicationPublish/subscribeCoordination model
Flexible integrationUncoupling of processesMajor design goal
JiniTIB/RendezvousIssue