HomeDigital EditionSys-Con RadioSearch Web Services Cd
B2B Beginning WS Business Process Management Case Studies Content Management Distributing Computing e-Business Electronic Data Interchange Enterprise Industry Insight Integration Interviews Java & Web Services .NET Portal Product Reviews Scalability & Performance Security SOAP Source Code UDDI Wireless WS Standards WS Tips & Techniques WSDL WS Editorials XML

The current implementation of the World Wide Web and its supporting Internet infrastructure is predominantly geared toward information retrieval and display in a humanly readable form. Its data formats and protocols are neither intended nor very suitable for automated machine-machine interactions without humans in the loop.

Emerging uses of the Internet - including peer-to-peer and grid computing - provide both a glimpse of and the impetus for evolution of the Internet into a distributed computing platform of unprecedented scale.

In this article I explore the needs and requirements of distributed computing on the Internet and present a case for a building-block approach that amalgamates and extends the foundation provided by standards-based Web services, peer-to-peer, and grid computing. I analyze the requirements of emerging and predicted modes of Internet distributed computing and extrapolate some fundamental underlying principles and mechanisms.

When implemented, the proposed building-block approach will provide an unprecedented level of modularity and standards-based infrastructure support for composition of distributed applications on the Internet that combine the best aspects of Web services, peer-to-peer, and grid computing.

Web Services
Distributed computing on the Internet, in the form of Web services, is rapidly evolving toward the ability to dynamically link dispersed, heterogeneous platforms into self-organizing structures to provide a plethora of services. These include both end-user services and automated, machine-to-machine, programmatic services. Web services are self-contained, self-describing, loosely coupled software components that can be described, published, discovered, and invoked over the Internet using standard protocols. They can dynamically locate and interact with other Web services on the Internet to provide a complex service without human intervention.

Web services are platform-independent and based on Internet standards - such as XML, SOAP, UDDI, and WSDL. Coupled with the ubiquitous connectivity of the Internet, Web services realize a long-sought vision of component software: distributed, reusable, standardized, open, scalable, and Internet-centric. The distribution of computer resources across the Internet is an acknowledged trend in today's computing industry. XML and Web services are often seen as providing the "plumbing" for that distribution.

Peer-to-Peer Computing
Peer-to-peer computing provides both a design approach and a set of operating assumptions that enables exploitation of the aggregate power of millions of networked personal computers and high-end personal digital assistants. It provides file backup, content distribution, and collaboration without the need for centrally provisioned and managed services. Peer-to-peer solutions are also noted for dealing with practicalities found in vastly heterogeneous collections of personal machines, such as intermittent node availability, non-DNS IP addressability (due to dynamically assigned and translated IP addresses) and bidirectional communication through Network Address Translation (NAT) units and firewalls.

Grid Computing
Grid computing extends conventional distributed computing by large-scale sharing of computational and storage resources among dynamic collections of individuals and institutions. Such settings are characterized by unique scale, security, authentication,resource access, and resource discovery requirements.

The term grid comes from the notion of computing as a utility and an analogy with a power grid as a pool of resources combined to meet variations in load demand without users' awareness of (or interest in) how it is done. Grid's origins and most of its current applications are in the area of high-performance computing.

Internet Distributed Computing
Internet Distributed Computing (IDC) describes the use of the Internet as a distributed computing platform by combining and unifying common aspects of Web services, peer-to-peer, and grid computing, while preserving their unique problem-solving aspects. Internet standards and connectivity are used to achieve convergence, interoperability, and reuse of a set of common building blocks that meet the listed and emerging requirements of distributed computing on the Internet.

The benefits of distribution and decentralization of control and resources - such as objects, storage, and processing power - are inherent in the new model of IDC. We cover the benefits of functionally rich clients in implementing Web services in both symmetrical (peer-to-peer and grid computing) and asymmetrical (resembling client/server computing) application architectures. While powerful clients offer obvious benefits for individual users, for the purposes of cooperating on a common task they can also dynamically form a powerful union of even global proportions, such as planetary grids.

In addition to the common building blocks, IDC embodies a set of fundamental abstractions and mechanisms.

Resource Virtualization
A service in the world of Web services is essentially a form of virtualization of a software functional component. Services can be advertised and discovered using directories, such as UDDI, and inspection, such as WSIL. Once discovered, an invoking entity can bind to the selected service and communicate with its externally visible functions via protocols such as SOAP. These concepts can be extended to hardware to virtualize resources, such as compute cycles, storage, and devices. Each virtualized component can be abstracted as a Web service that can be advertised, discovered, and bound.

This deceptively simple extension transforms the (software) component model into a distributed component model of immense power. With its application carried to a logical extreme, one can envision a planetary-size pool of composable hardware and software resources connected via the Internet and described and accessible using Web-service protocols and conventions.

Dynamic Configuration and Runtime Binding
Dynamic configuration has several aspects that are useful in different application domains. Its foundation is the ability to perform runtime binding of components, as opposed to, say, design time or link time. Deferred or runtime binding may be implemented through a combination of Web-service discovery and binding mechanisms. Its primary benefit is decoupling of the application design and execution from awareness of the underlying system configuration and physical connectivity. This in turn allows application portability across a wide range of platforms and network configurations. It also allows decoupling of development of users and providers of services, unlike the tight tandem-development with shared logic inherent in client/server applications.

Runtime binding also enables desirable system capabilities such as load balancing (by binding to a least-loaded service from a functionally equivalent group) and improved reliability (by binding to a service that is available at time of invocation).

Finally, runtime binding is a necessary ingredient for ad hoc and self-configuring networks. These are sometimes referred to as zero-configuration networks, which is how they appear to users. This capability facilitates use via automatic peer configurations in systems with high node-fluctuation rates.

Resource Aggregation and Orchestration
The primary purpose of creating a networked, configurable pool of virtual resources is to be able to dynamically aggregate the exact collection needed to perform a task at hand, such as execute a specific application. Runtime resource aggregation to meet application resource requirements implies that applications are designed in a manner that allows them to state their requirements or at least provide hints to the execution system that enable it to arrive at a reasonably efficient estimate.

Resource aggregation is already being used in grid computing and high-performance cluster configurations. It will also play a key role in implementing the vision of pervasive computing with computing resources embedded in the "rich computing" environment.

For this discussion, resource orchestration refers to control and management of an aggregated set of resources so that they can make collective progress towards task completion. It also includes the communication and synchronization necessary for coordination and collating of partial results. Naturally, following completion of a task, resources can be released back to the pool for allocation to other uses.

Security and Authentication
Security and authentication, while not a unique IDC requirement, are necessary for most applications. Resource sharing and aggregation across potentially distinct security domains and levels of trust necessitate protection of both the host and the guest application. Moreover, application execution over a collection of components may require a single system-wide sign-on, as opposed to unwieldy authentication at each individual node.

Future Applications
Future evolution of IDC is expected to include pervasive and proactive computing. The pervasive computing vision postulates an order of magnitude greater scale of Internet "things" - such as sensors, cars, and home appliances. This requires expanded naming and addressing schemes, such as IPv6, and force application designs where intermittent node availability is a default operating asumption, as opposed to a failure mode which is the prevalent design assumption today.

Pervasive computing is often associated with the creation of "smart" environments with embedded computing resources. IDC will enable mobile users to carry a subset of physical computer resources that they need to augment their computational, storage, and UI capabilities when required by dynamically aggregating resources found in the environment. Pervasive and proactive computing include the notion of real-world awareness via sensors. Proactive computing also adds the ability to initiate certain actions automatically and autonomously based on a specific context, such as: ambient conditions, user's intent, preferences, or location. Context may be deduced by the system, explicitly designated by the user, or derived through a combination of these. Context awareness can be useful in any system, but it becomes essential as the number of computing devices operating on a user's behalf grows by orders of magnitude in the world of Internet of things.

While not discussed here, emerging hybrid wired/wireless LAN connectivity continues to have significant influence on IDC design. There is evidence that Web services will be the predominant set of standards governing e-business and grid computing. By adopting and extending these standards to the mobile space early, we hope to accelerate the adoption of mobile computing and associated technologies by providing a natural bridge to an information ecosystem capable of engendering advanced (e.g., proactive) services and virtualized resources. Other factors motivating IDC design include the desire for efficient use of computing resources and hiding from users the complexity inherent in managing heterogeneous distributed systems. These are evidenced by emergence of utility computing, autonomic computing, and massively parallel applications such as peer-to-peer, grid-like formations that aggregate resources from millions of personal computers.

IDC is poised to accelerate distributed computing on the Internet by providing an environment to aggregate, discover, and on-demand, dynamically assemble computing structures (services and resources) for the task at hand. Its underlying principles are reusable and recursive, i.e., they can be "reincarnated" at different scales in sensor networks, home-area networks (UPnP), enterprise networks, and wide-area networks. Indeed, IDC will provide a foundation for pervasive computing from small-scale personal area networks to virtual, planetary-scale grids.

References

  • Web Services Architecture Requirements, Editor's Draft 26 June 2002: www.w3.org/2002/ws/arch/2/06/wd-wsa-reqs-20020605.html.
  • Web Services Description Language (WS DL) Version 1.2, W3C Working Draft 9 July 2002: www.w3.org/TR/2002/WD-wsdl12-20020709.
  • Web Services Description Language (WS DL) Version 1.2: Bindings, W3C Working Draft 9 July 2002: www.w3.org/TR/2002/WD-wsdl12-bindings-20020709.
  • SOAP Version 1.2 Part 0: Primer, W3C Working Draft 26 June 2002: www.w3.org/TR/2002/WD-soap12-part0-20020626.
  • Neel, Dan. (2002) "The Utility Computing Promise," InfoWorld: www.infoworld.com/articles/fe/xml/02/ 04/15/020415feutility.xml.
  • IBM Research. "Autonomic Computing: IBM's Perspective on the State of Information Technology," www.research.ibm.com/autonomic/manifesto.
  • Foster, I. et al. (2002) "The Physiology of the Grid: An Open Grid Services Architecture for Distributed Systems Integration," June. www.gridforum.org/ogsi-wg/drafts/ ogsa_draft2.9_2002-06-22.pdf.
  • Global Grid Forum, www.gridforum.org.
  • D. Barkai (2001). "An Introduction to Peer-to-Peer Computing," Intel Developer Update Magazine. February. www.intel.com/update/departments/ initech/it02012.pdf.
  • The 1st International Workshop on Peer-to-Peer Systems (IPTPS '02), www.cs.rice.edu/Conferences/IPTPS02.
  • Satyanarayanan, M., "Pervasive Computing: Vision and Challenges," IEEE Personal Communications Magazine (2001), pp. 10-17, August. www.comsoc.org/pubs/pcm/index.html.
  • D. Tennenhouse (2000). "Proactive Computing," Communications of the ACM Vol. 43. No. 5. www.acm.org/pubs/articles/journals/cacm/ 2000-43-5/p43-tennenhouse/p43-tennenhouse.pdf.

    Author Bio
    Dr. Milan Milenkovic is director of distributed systems architecture in Intel's Corporate Technology Group (R&D). He has authored several textbooks and numerous articles in the area of systems design. milan@intel.com

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.

      E-mail: info@sys-con.com

    Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.