Glossary of Important Terms
The terms below introduce a few important concepts. Read them now, and then revisit them as you go through some of the later examples and descriptions.
Shared Dictionary (object and instance)
A shared dictionary instance is a shared hierarchical key/value data structure. An instance automatically coordinates with other shared dictionary instances distributed across a variety of machines and/or processes.
Going into a bit more detail, by using the shared dictionary combined with a subscription' mechanism, distributed processes (clients) can access a centrally coordinated distributed shared memory system - a hierarchical key/value data structure - held on a server.
- Programmers typically create a shared dictionary instance within their program.
- They then work with the shared dictionary as though it were a hash table consisting of hierarchical key/value pairs.
- Programmers subscribe to data (keys) of interest, and can publish any data by setting a key to a particular value.
Under the covers.
- The shared dictionary instance connects to (or creates) a Shared Dictionary server located at a particular URL via TCP/IP.
- All data added, created or deleted by a shared dictionary instance is automatically sent and stored on the server.
- In turn, the server will selectively pass on that data to other shared dictionary instances that have subscribed to particular key patterns.
Shared Dictionary server
The shared dictionary server is simply a shared dictionary instance located at a particular URL that other instances connect to as clients.
- All other shared dictionary instances that connect to it will:
- propagate their key/value pairs to the server.
- tell the server what key patterns they are subscribed to.
- In turn, this server will
- store the subscription patterns on a per client bases,
- use that information to propagate added, changed and/or deleted data back to the shared dictionary instances that subscribed to particular key patterns.
Under the covers.
- The shared dictionary server is simply the first shared dictionary instance opened at a particular network location.
- The server stores the subscription patterns on a per client bases
- The server uses that subscription information to propagate added, changed and/or deleted data to the shared dictionary instances that subscribed to a particular key patterns.
Key/value Pairs
All data held in the shared dictionary is in the form of a key/value pair
- Keys are strings in the form of a '/'-delimited path hierarchy, for example, /profs/saul/photo
- Values are associated with a particular key, and can be of any type, for example, shDict("/profs/saul/photo") = <bitmap>.
Under the covers. Data serialization and marshallings of simple and complex data types are handled automatically.
Subscriptions (object and instances)
Clients can selectively subscribe to particular keys within in the shared dictionary. Using a subscription instance, a programmer can:
- subscribe to a regular expression pattern matching one or more keys
- be notified via an associated event handler whenever the key is added, deleted, or its value changed.
Subscription Notifications
A subscription notification is an event generated by the system when a subscribed to entry is changed, added, or removed. * The notification event contains a “reason” field that explains why the notification was sent, be that changed, added, or removed. Otherwise, there are no differences between the types of notifications.
Last modified: December, 2009