- Ubiquitous Computing
- Web Services
- The Semantic Web
- Spaces Computing
- Peer-to-Peer Computing
- Collaborative Computing
- Dependable Systems
- Security
- Languages
- Pervasive Computing
- Cluster Concepts
- Distributed Agents
- Distributed Algorithms
- Distributed Databases
- Distributed Filesystems
- Distributed Media
- Distributed Storage
- Grid Computing
- Massively Parallel Systems
- Middleware
- Mobile and Wireless Computing
- Network Protocols
- Operating Systems
- Real-Time and Embedded Systems
- Commentary
- Endnotes
Spaces Computing
A Mirror World is some huge institution's moving, true-to-life mirror image trapped inside a computerwhere you can see and grasp it whole. The thick, dense, busy sub-world that encompasses you is also, now, an object in your hands. A brand new equilibrium is born.
David Gelernter
Biologists are much more interested in microbes than in microscopes. Computers are tools at best and annoyances otherwise; for too long, software developers have dwelt on the discipline-specific minutiae while ignoring the big-picture implications that NDC finally forces before our eyes, demanding resolution. If the computer industry itself is to be more than just a passing fad, outside-the-box visions must be heeded. Spaces computing is one of those visions.
David Gelernter of Yale University published Mirror Worlds in 1991, well before the general public had heard of the Internet, let alone acquired an email address.[9] In the Mirror World, a software framework could contain all elements of reality we would deign to measure, track, transport, or number; reality could be reflected in software in real timeas could all the relationships among myriad mirrored images. This vision was manifested in the implementation Gelernter pioneered, a system called "Linda," which tendered tuple-spaces, a simple persistent storage that transcended nodes and networks, the mirror in which levels of reality could begin to reflect.
With Mirror Worlds, Gelernter was hailed as one of the most brilliant computer scientists of the modern eraso celebrated, in fact, that he was victimized by one David Kaczynski, aka the Unabomber, in June of '93, toward the end of the neo-Luddite's anonymous reign of terror. Gelernter was consumed by a lengthy recovery the next several years, the period which saw URLs emerge from obscurity to emblems of the then nascent dotcom mania. Gelernter's vision, however, needed no therapy.
With Mirror Worlds, Gelernter was hailed as one of the most brilliant computer scientists of the modern eraso celebrated, in fact, that he was victimized by one David Kaczynski, aka the Unabomber, in June of '93, toward the end of the neo-Luddite's anonymous reign of terror. Gelernter was consumed by a lengthy recovery the next several years, the period which saw URLs emerge from obscurity to emblems of the then nascent dotcom mania. Gelernter's vision, however, needed no therapy.
A Sun Implementation
Let's look at JavaSpaces. Sun Microsystems demonstrated JavaSpaces in the spring of 1998 at the JavaOne conference, the annual worldwide gathering of Java devotees in San Francisco's Moscone Center. JavaSpaces was the first commercially viable instantiation of Gelernter's seminal vision, a Mirror World framework, which was enabled by the Write Once, Run Anywhere promise of the Java platform. Built upon Jini network technology protocols, JavaSpaces was demonstrated at the conference by the 14,000 Java Rings given away to conference attendees.
The rings, as shown in Figure 3.3, featured a small embedded processor[10] that ran the smallest of Java virtual machines, a Java SmartCard-specified device that defines a WORA engine for credit-card sized devices.
Figure 3.3. The Java Ring, JavaOne 1998
Once the ring was registered in a central database, each ring bearer's name and coffee preference were stored in their own ring as persistent data that could be accessed upon subsequent connections to the serial readers that were interfaces for such devices. Demonstrations were then made available at coffee-dispensing stations around the event facilities. Espresso, cappuccino, or regular coffee? Decaffeinated? Tea, perhaps? The stored preference on each ring determined the beverage of choice.
But another demonstration of Java Ring technology proved to be even more interesting.
What if all those rings could be used to solve a large problem? What if 14,000 asynchronous, independent, intermittently connected CPUs could be harnessed to serve the needs of one problem? Would that, conceptually, hold value? What other kinds of applications might also be so served? Conference attendees were encouraged to periodically take a few moments, connect their rings briefly to the network, and allow the ring CPU to be used to compute a small part of a large problem.
The fractal mathematics necessary to compute the location and color of each pixel in the 64K image, as shown in Figure 3.4, that emerged over the course of the four days of the event was hosted on those rings. Over a conference period, the image slowly but certainly filled in.
Figure 3.4. JavaRing/JavaSpaces problem, JavaOne 1998
Computing on rings was terribly cool. Equally cool and almost unheralded, however, was JavaSpacesthe "man behind the curtain," the Mirror World framework that allowed all those compute transactions to easily and seamlessly occur.
Since that event, spaces computing has slowly emerged in the Java platform. Jini network technology has found some application beyond the early (mistakenly) device-specific marketing spin it suffered.
Commercial Potential
Some purveyors of spaces computing frameworks beyond Gelernter's work and JavaSpaces have recently begun to emerge. GigaSpaces, an Israeli software venture, announced a commercially hardened JavaSpaces in 2001 that promises a vital framework for solving myriad NDC problems today.[11] Complementary to, if not competitive with, other approaches like Web Services, spaces computing may yet capture a critical mass thanks to its simplicity, an attribute which may become more dear in an increasingly complex NDC world.