Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs
In this series, we will begin by introducing you to the unique JavaSpaces programming model, which is quite different from other network and distributed tools with which you might be familiar. In subsequent articles, we will cover the details of the JavaSpaces API and how you can use it to glue processes together into a distributed application, and describe how JavaSpaces interacts with other components of Jini. Throughout the series, you'll see that JavaSpaces is simple (the API consists of only a handful of operations), expressive (a large number of problems can be solved using JavaSpaces), and powerful (you can build sophisticated distributed systems with small amounts of JavaSpaces code).
Let's get started.
Building distributed applications with conventional network tools usually entails passing messages between processes or invoking
methods on remote objects. In JavaSpaces applications, in contrast, processes don't communicate directly, but instead coordinate
their activities by exchanging objects through a space, or shared memory. A process can write new objects into a space, take objects from a space, or read (make a copy of) objects in a space; Figure 1 depicts several processes (represented by Dukes) interacting with spaces using
these operations. When taking or reading objects, processes use simple matching, based on the values of fields, to find the
objects that matter to them. If a matching object isn't found immediately, then a process can wait until one arrives. In JavaSpaces,
unlike conventional object stores, processes don't modify objects in the space or invoke their methods directly -- while there,
objects are just passive data. To modify an object, a process must explicitly remove it, update it, and reinsert it into the
space.