Team-Fly |
XML, Web Services, and the Data Revolution By Frank P. Coyle | |
Table of Contents | |
Chapter 8. Back to the Future |
One of the things made possible by loosely coupled networks is ad hoc interaction between network nodes, which has opened the door to P2P computing that takes advantage of the possibility of connection between any two Web devices. What Is P2P?
P2P is less a technology than the concept that, because we no longer need servers to interconnect us, we're free to focus on data and not the infrastructure to get the data from point A to point B. Given that P2P doesn't need servers, it's important to realize that servers actually come in quite handy, not for controlling the flow of data but as repositories of shared data. It turns out to be simpler to keep data in one place than to worry about distributed data management, cache control, and all the hard problems that computer science has been trying to solve for the past few decades. In the end, storing data in one place is much easier and more convenient . And what's really good at storing data in a central repository with lots of access? The mainframe.
So now in many ways we've come full circle. After a decade -long fling with client-server middleware, we're now back to seeing the advantage of the mainframe model. As Figure 8.2 illustrates, the Web as a network running standard protocols such as HTTP, SOAP, and TCP/IP gives us either pure P2P with no intermediaries, a Web services model where peers find each other through registry lookup, or a mainframe model where peers find each other through a registry that stores data of common interest. Figure 8.2. Three options for adding order to loosely coupled, asynchronous Web-based interactions: peers freely associating, using a third party registry to locate peers, and using a third party registry to locate peers and to store common data.
P2P Software
The option in which peers find each other through a registry that stores data of common interest is the basis for the success of Groove Networks, an open , real-time, P2P communication platform that is based on data sharing rather than a common tightly coupled infrastructure. Groove is the brainchild of Ray Ozzie, the creator of Lotus Notes, who has successfully leveraged the loose space of the Web by giving end-users a way to work together in a secure, shared virtual workspace, either connected or disconnected from a corporate network. Groove provides basic collaborative functionalities that include
In an interview with the trade publication CRN, Ozzie describes Groove as
For application developers, the Groove platform serves as the base for building collaborative applications. Groove has created domain-specific tools that enable application-specific collaboration. For example, there is a "Team Sports Groove" that consists of pieces for coaches, players, and players' parents to manage a sports team and track its progress. Other examples include "Family Groove" for families to share news, post events, and share pictures, and an "Educational Groove" that uses the Web to structure online classroom support for both faculty and students.
This move toward collaborative computing has not been lost on the major industry players. Microsoft, for example, has taken a stake in Groove Networks to round out its push into Web space. The addition of a P2P component to Microsoft's existing .NET infrastructure means that users can gain access to critical documents across a range of devices. Similarly, Sun has come out with a P2P framework called JXTA, [2] which is a set of open P2P protocols that allows any network-connected device including cell phones, PDAs, PCs, or servers to communicate and collaborate. What remains to be seen is how the synergy between P2P and Web services will play out, since industrial-strength collaborative software requires secure messaging, the ability to archive data, and solutions to the nasty problems of version control and configuration management.
Other P2P Initiatives
The move to embrace P2P is not limited to Microsoft; both Sun and IBM also have major P2P initiatives. Sun's effort is known as JavaSpaces, and IBM's project is called TSpaces. Both TSpaces and JavaSpaces are a kind of network middleware that supports synchronous communication among diverse systems. Both have their origins in the Linda distributed operating system proposed by David Gelernter at Yale in the 1980s. As Figure 8.3 illustrates, the idea behind Linda, JavaSpaces, and TSpaces is an open asynchronous network space into which client software deposits work requests that are extracted by servers able and willing to accept the work. When the work is done, results are deposited back into the shared space for retrieval by the client. Figure 8.3. The P2P concept of a shared space for loosely coupled asynchronous interaction has its origins in David Gelernter's Linda system of the 1980s. Both Sun's JavaSpaces and IBM's TSpaces are based on Linda's TupleSpace and use entries and templates to deposit and retrieve data and code.
In Linda, the shared memory space is called TupleSpace, where results of a computer's processes or the processes themselves are stored and can be accessed by multiple CPUs. All of the contents of a TupleSpace are marked with self-describing tags that help match processes with CPUs looking for tasks , essentially functioning the way a bulletin board might in the physical world. For example, a student seeking a ride to Florida over spring break could pin an envelope labeled "need ride" to a bulletin board on campus. Another student looking for riders could take down the envelope and check the required destination. If there was a match, the driver could slip his or her phone number into the envelope and return it to the bulletin board. If their destinations did not match, the driver could leave the envelope untouched for other drivers to see.
Both Sun's JavaSpaces and IBM's TSpaces are structured along the lines of Linda except that instead of just data being made available, code in the form of serialized objects can be posted which can be run on any platform capable of running Java. The effect is that code and data can be passed around in a distributed environment in a way that preserves state. The goal is to raise the level of abstraction for programmers so they can create completely distributed applications that run regardless of hardware and location. Just as file utilities in operating systems free users from having to know exactly where on the disk their data resides, so the JavaSpaces and Tspaces frameworks take developers to a level where the entities representing data, applications, and even computers themselves are abstracted away in the cloud of "tuple-space." Users don't need and may not care to know where their computational resources reside; they simply access them by abstracted addresses. ZwiftBooks and P2P
P2P computing provides an opportunity for ZwiftBooks to leverage the power of collaboration in its effort to deliver books as rapidly as possible. Working out of a conventional Web-server-based infrastructure (which could be based on .NET or J2EE), ZwiftBooks also acts as a peer in P2P network space that offers both wireless and wired connectivity. Individuals interested in acting as couriers for ZwiftBooks use their cell phone or PDA to post their availability in the P2P network. Availability takes the form of an entry that includes name , city, and contact information. Couriers register long-standing entries that describe their general availability as well as short- term entries that indicate immediate availability. When ZwiftBooks receives a request for a book, it submits a template into P2P space that matches against delivery city and returns all the potential delivery people who have submitted short-leased availability entries within the past hour . A ZwiftBooks who operator then selects a delivery person and either manually or programmatically contacts the individual, providing details about the book delivery. If no one has submitted a matching city entry when a request enters the P2P space, a match is made against the more permanent entries. These entries include software objects that send wireless messages to registered ZwiftBooks couriers that a new entry has been posted. Couriers then have an opportunity to submit an "immediately available" entry that indicates availability. In this way, ZwiftBooks extends its own service capability with minimal cost and overhead by leveraging the capability of an existing P2P network. |
Team-Fly |
Top |