Main

Home Page


In The Book

Intro
Table of Contents
Book Cover
Summary
Chapter Overview
Sample Chapters


Tutorials

Jini
Jxta
Web Services


Other

Related Links
Buy Now!
About Author
Corrections?


Chapter Overview

  • Chapter 1: Introduction: In this chapter, an introduction is given into distributed systems, paying particular attention to the role of middleware. A taxonomy is constructed for distributed systems ranging on a scale from centralized to decentralized depending on how resources or services are organized, discovered and how they communicate with each other. This will serve as an underlying theme for the understanding of the various applications and middleware discussed in this book.
  • Chapter 2: Peer-2-Peer Systems: This chapter gives a brief history of client/server and peer-to-peer computing. The current P2P definition is stated and specifics of the P2P environment that distinguish it from client/server are provided: e.g., transient nodes, multi-hop, NAT, firewalls etc. Several examples of P2P technologies are given, along with application scenarios for their use and categorizations of their behaviour within the taxonomy described in the first chapter.
  • Chapter 3: Web Services: This chapter introduces the concept of machineto-machine communication and how this fits in with the existing Web technologies and future scopes. This leads onto a high-level overview of Web services, which illustrates the core concepts without getting bogged down with the deployment details.
  • Chapter 4: Grid Computing: This chapter introduces the idea of a computational Grid environment, which is typically composed of a number of heterogeneous resources that may be owned and managed by different administrators. The concept of a Òvirtual organizationÓ is discussed along with its security model, which employs a single sign-on mechanism. The Globus toolkit, the reference implementation that can be used to program computational Grids, is then outlined giving some typical scenarios.
  • Chapter 5: Jini: This chapter gives an overview of Jini, which provides an example of a distributed-object based technology. A background is given into the development of Jini and into the network plug-and-play manner in which Jini accesses distributed objects. The discovery of look-up servers, searching and using Jini services is described in detail and advanced Jini issues, such as leasing and events are discussed.
  • Chapter 6: Gnutella: This chapter combines a conceptual overview of Gnutella and the details of the actual Gnutella protocol specification. Many empirical studies are then outlined that illustrate the behaviour of the Gnutella network in practice and show the many issues which need to be overcome in order for this decentralized structure to succeed. Finally, the advantages and disadvantages of this approach are discussed.
  • Chapter 7: Scalability: In this chapter, we look at scalability issues by analysing the manner in which peers are organized within popular P2P networks. First, social networks are introduced and compared against their P2P counterparts. We then explore the use of decentralized P2P networks within the context of file sharing. It is shown why in practice, neither extreme (i.e., completely centralized or decentralized architectures) gives effective results and therefore why most current P2P applications use a hybrid of the two approaches.
  • Chapter 8: Security: This chapter covers the basic elements of security in a distributed system. It covers the various ways that a third party can gain access to data and the design issues involved in building a distributed security system. It then gives a basic overview of cryptography and describes the various ways in which secure channels can be set up, using public-key pairs or by using symmetric keys, e.g., shared secret keys or session keys. Finally, secure mobile code is discussed within the concept of sandboxing.
  • Chapter 9: Freenet: This chapter gives a concise description of the Freenet distributed information storage system, which is real-world example of how the various technologies, so far discussed, can be integrated and used within a single system. For example: Freenet is designed to work within a P2P environment; it addresses scalability through the use of an adaptive routing algorithm that creates a centralized/decentralized network topology dynamically; and it address a number of privacy issues by using a combination of hash functions and public/private key encryption.
  • Chapter 10: Jxta: This chapter introduces Jxta that provides a set of open, generalized, P2P protocols to allow any connected device (cell phone to PDA, PC to server) on the network to communicate and collaborate. An overview of the motivation behind Jxta is given followed by a description of its key concepts. Finally, a detailed overview of the six Jxta protocols is given.
  • Chapter 11: Distributed Object Deployment Using Jini: This chapter describes how one would use Jini in practice. This is illustrated through several simple RMI and Jini applications that describe how the individual parts and protocols fit together and give a good context for the Jini chapter and how the deployment differs from other systems discussed in this book.
  • Chapter 12: P2P Deployment Using Jxta: This chapter uses several Jxta programming examples to illustrate some issues of programming and operating within a P2P environment. A number of key practical issues, such as out-of-date advertisements and peer configuration, which have to be dealt with in any P2P application are discussed and illustrated by outlining the potential solutions employed by Jxta.
  • Chapter 13: Web Services Deployment: This chapter describes the Web services deployment technologies, typically used for representing and invoking Web services. Specifically, three core technologies are discussed in detail: SOAP for wrapping XML messages within an envelope, WSDL for representing the Web services interface description, and UDDI for storing indexes of the locations of Web services.
  • Chapter 14: OGSA: This chapter discusses the Open Grid Service Architecture (OGSA), which extends Web services into the Grid computing arena by using WSDL to achieve self-descriptive, discoverable services that can be referenced during their lifetime, i.e., maintain state. OGSI is discussed, which provides an implementation of the OGSA ideas. This is followed by OGSIÕs supercessor, WSRF, which translates the OGSI definitions into representations that are compatible with other emerging Web service standards.