Collaborative and P2P Computing

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 about connection in a loosely coupled environment.

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.

Napster

Napster began in 1999 as an idea in the head of a teenager, and with the synergic power of the Web it has forced the music industry to rethink its distribution mechanisms and treatment of intellectual property. Napster centers around the distribution of MP3 files. MP3 is a digital music format that can be downloaded from the Internet and played on your computer, listened to on a portable player, or even burned on your own private CD. The advantage of MP3 is that song files are small enough to move easily around the Internet, even with limited bandwidth.

The original MP3 craze was fueled by sites like www.mp3.com, where users could upload songs to a Web site and other users could log in and download the songs. In 1999 Shawn Fanning, frustrated by some of the technical difficulties in finding music he liked on the Web, spent several months writing the code that would become the utility Napster.

Napster (actually Fanning's nickname in high school because of his "nappy" hair) altered the model so that instead of songs being stored on a central server, they were stored on individual users' machines. With Napster's P2P sharing, when someone downloads a song, it is actually downloaded from another person's computer, which could be in the same city or elsewhere around the globe. The purpose of the central Napster server is to monitor all Napster users currently online and connect them to each other. The server itself does not contain any MP3 song files.

The music industry, very upset with Napster, has taken steps to close it down. The Recording Industry Association of America filed a lawsuit based on copyright infringement and the fact that thousands of people were making thousands of copies of copyrighted songs, with no money going to the record labels or the artists . Napster claims that the music files are personal files that people maintain on their own machines and that Napster does not traffic in the songs.

In a settlement with the record industry, Napster has agreed to charge users for its music service and to pay $26 million to music publishers and songwriters. From user fees, owners of music-publishing rights will receive one-third of the royalties, leaving two- thirds of those royalties for record labels. How this all will play out remains to be seen, since many of the legal issues are unresolved as of this writing. However, no matter which side you may be on in this debate, the reality is that P2P computing has incredible potential to change how data is distributed. And it's a high-impact software endeavor that was assembled by a kid in his garage in a few months, using the power of the Web.

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.

graphics/08fig02.jpg

P2P Software

Groove is based on data sharing.

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

  • File sharing

  • Discussion boards

  • Chat (text-based and voice-based)

  • Whiteboard

  • Picture sharing

  • Calendar

  • Organizer

In an interview with the trade publication CRN, Ozzie describes Groove as

[a] platform layer as a component management service. If they [developers] write tools or solutions within the Groove environment, they can package up their code, and they don't have to worry about delivering that code to all the workstations that are using it. They can host that code on our component servers, and the moment that any one of those users accepts an invitation to one of the shared spaces, the code comes down and gets installed automatically. The framework lets you program in any number of languages, any dotcom compliant language in the Windows environment. Once they build the app, we provide the synchronization of how that app interacts with itself. We transparently provide storage services so that anything someone does automatically gets stored in a secure XML object store. We do the communications services transparently . They don't have to worry about how to get the information from one workstation to another. [1]

[1] Kelley Dalmore, "An Interview with Ray Ozzie," http://www.crn.com/sections/Interview/Interview.asp?RSID=CRN&ArticleID=21070.

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.

Both .NET and J2EE have P2P initiatives.

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.

[2] JXTA is short for "juxtapose," reflecting the fact that P2P computing is juxtaposed to the conventional client-server computing model.

Other P2P Initiatives

JavaSpaces and TSpaces .

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.

graphics/08fig03.jpg

Linda = TupleSpace .

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.

JavaSpaces and TSpaces can move data and code.

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

ZwiftBooks at the cutting edge with 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


XML, Web Services, and the Data Revolution
XML, Web Services, and the Data Revolution
ISBN: 0201776413
EAN: 2147483647
Year: 2002
Pages: 106
Authors: Frank Coyle

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net