XML Europe 2001 logo21-25 May 2001
Internationales Congress Centrum (ICC)
Berlin, Germany

Enabling Peer-to-Peer (P2P) Applications with XML

Brian Buehling <buehling@dakota-systems.net>
 PDF version    Latest version   

ABSTRACT

Following the growth of business-to-business exchanges and supply chain management systems, the recent emergence of peer-to-peer (P2P) computing is likely to significantly extend the use of XML technology. The very nature of the term "peer-to-peer" implies communication between separate systems. Whether exchanging user messages, caching application data or deploying software components, handling distributed information effectively is a critical component of any P2P application. Using XML, system designers can establish rules for peer interaction allowing developers to independently build applications customized for their intended users. From this perspective, one sees how XML naturally plays an important role in P2P application design by facilitating this communication. This paper gives an overview of P2P technology and explains the role that XML plays in its future development.

Table of Contents

1. What is P2P?

As with any emerging technology that is cast in the media spotlight, the concept behind P2P technology is open to misinterpretation. Much of the confusion surrounding the term "peer-to-peer" arises from companies applying the label to dozens of distinct types of systems. For instance, SETI@HOME, the well-known distributed computing project designed to analyze data in the hope of finding extraterrestrial life, has little in common with the infamous Napster music community. Similarly, Groove Networks' collaboration system cannot be directly compared to the Jabber Open Source project that focuses on instant messaging. Yet, as different as these systems are, they all are touted as key proponents of the P2P movement.

As a result, one is hard pressed to find a common technical thread among these P2P applications. Complicating matters further, there exists no field monopolizing these initiatives as notable contributions to P2P technology have been made in every arena of computer science. Nor is there a single industry sector driving the effort. Network equipment manufacturers, Open Source projects, educational institutions and scores of unaffiliated programmers all have played an important role to further the development of the P2P systems.

Without the luxury of a suitable definition in terms of technology or contributors, the industry is left to describe P2P in terms of the intent of its supporters. Framed this way, "peer-to-peer" is best defined as the set of technologies targeted at better utilizing resources that are networked together. Defining "peer-to-peer" as any system designed with the explicit intent to take advantage of under-utilized user, network, hard drive or processing resources at the edges of the Internet, is the best way to accurately depict the underlying industry movement while still encompassing all aspects of the technology.

2. Does P2P make sense?

The timing of this new interest in peer-to-peer technology is ironic. Just when IT managers have begun to adapt to the shift from client-server applications to central web-based application services, users are showing new found interest in exploiting dormant resources on their desktops. In fact, users are beginning to demand more control over their computing resources every day. Whether creating chat rooms with colleagues or sharing files with clients, users want the ability to use applications without relying on IT departments to setup user accounts or create private networks to support them. For years, IT administrators have been pressured to consolidate IT support operations by locking down corporate desktops and centralizing computing resources. Now they are being told that their systems are too rigid and don't allow users enough control. Not surprisingly, the demand for new peer systems has been met with harsh resistance.

Idealistically, many IT managers thought that their jobs would be getting easier as decreasing server costs allowed them to meet the budgetary constraints of their departments. However, the P2P movement brings new challenges as the indirect cost of under-utilized desktop computing resources has offset the hardware savings of server-centric IT systems. This current shift highlights the continuing oscillation from central to distributed control of computer systems. Those who witnessed the prior shifts from mainframes to client-server applications and more recently from client-server applications to server-centric ASP architectures, should find the rationale behind P2P architectures vaguely familiar. Looking at computing architecture over the course of the last quarter century, one sees that the current P2P movement is just the next phase of this central versus distributed control cycle.

Despite the historical and theoretical justifications of P2P systems, the costs associating with developing, deploying and supporting client applications are significant. So, before starting a P2P crusade within an organization, one should ensure it makes economic sense to pursue this type of technical approach. Although there is much discussion concerning this topic, any viable P2P system should offer benefits that cannot be achieved by relying on another computing architecture that is less costly to maintain.

3. XML and Peer-to-Peer Technology

After determining that P2P technology is appropriate for an IT project, there are several design challenges that will have to be solved before any development can begin. First, since pure P2P systems have no central servers for dispatching information between peers, devising a mechanism for peers to communicate is a critical aspect P2P design. Second, efficiently distributing and storing application data for peer access is not a trivial task since data often has to reside locally for processing. Lastly, managing the updates to the peer application components themselves is of paramount concern as even a simple bug fix can lead to a distribution nightmare. It is no coincidence these are the areas in P2P technology that benefit the most from XML.

3.1. Messaging

XML offers an ideal mechanism to transfer short structured messages between peer applications. Its simple organization allows XML to be easily customized for specific systems and to be readily transmitted over today's Internet protocols. Additionally, XML data can be encrypted making it a suitable candidate for secure messaging. In fact, there are already several implementations of XML-based messaging schemes, including XML-RPC and Jabber, that have made an impact on the development of P2P applications.

3.2. Data Storage

Utilizing XML to locally cache application data in P2P systems offers several advantages compared to other conventional alternatives. Caching data in XML allows for more flexibility and easier retrieval than storing unstructured data. Developers can take advantage of XML handlers to search, validate, retrieve and manipulate the data needed to support their peer application. This approach often reduces the overall complexity of P2P systems leading to decreased development time and increased application performance. In many cases, XML databases are easier to implement than storing unstructured data directly in the file system and require less system resources to operate that traditional relational databases.

3.3. Application Deployment

XML can also be used to help manage the deployment of the application components to peers in the network, which is often one of the most difficult challenges of P2P systems. With the potential of having millions of peers, having an effective process to distribute software updates is essential to the long-term success of any P2P system. One XML-based solution designed to address this problem is Open Software Description (OSD) files. OSD files allow system architects to define the components required for peer applications along with the location to download them and any component dependencies. Effectively integrating OSD files into a P2P deployment strategy shifts the burden of software upgrades from the user to the P2P application itself. Each peer can verify that it has the most recent software components and automatically download upgrades if needed.

4. Conclusion

In conclusion, there is little doubt that P2P technology will continue to change many aspects of the IT industry. The only real question is whether or not it can live up the aggressive hype with which companies are promoting it. Whatever the outcome, XML will continue to play an instrumental role in the future of the messaging, data storage and application deployment of these new P2P systems.

Biography

Brian Buehling
Managing Director
Dakota Systems, Inc.
Chicago
Illinois
USA
Email: buehling@dakota-systems.net Web: www.dakota-systems.net

Brian Buehling - Brian Buehling is currently the Managing Director for Dakota Systems, a consulting firm specializing in XML-related technologies. He is a former project manager at SBC responsible for several enterprise content management systems. Previously, he was a Finalist for Business Intelligence Applications at Comdex/Window World Open 1997 and was nominated for the 1997 Smithsonian Award for innovation in information technology for work in decision support at John Deere Health. He received his M.B.A. from the University of Chicago and a M.S. in Systems Science and Mathematics from Washington University in St. Louis.