Welcome!

Microservices Expo Authors: Liz McMillan, Pat Romanski, Carmen Gonzalez, Elizabeth White, Jason Bloomberg

Related Topics: Microservices Expo

Microservices Expo: Article

The Future of Internet Distributed Computing

The Future of Internet Distributed Computing

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.
  • More Stories By Milan Milenkovic

    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

    Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


    Microservices Articles
    Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is foundational - something customers routinely cite as a top pain point. In his session at @DevOpsSummit at 21st Cloud Expo, Bill Borsari, Head of Systems Engineering at Datera, explored how organizations can reap the bene...
    "NetApp's vision is how we help organizations manage data - delivering the right data in the right place, in the right time, to the people who need it, and doing it agnostic to what the platform is," explained Josh Atwell, Developer Advocate for NetApp, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
    The Jevons Paradox suggests that when technological advances increase efficiency of a resource, it results in an overall increase in consumption. Writing on the increased use of coal as a result of technological improvements, 19th-century economist William Stanley Jevons found that these improvements led to the development of new ways to utilize coal. In his session at 19th Cloud Expo, Mark Thiele, Chief Strategy Officer for Apcera, compared the Jevons Paradox to modern-day enterprise IT, examin...
    In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, discussed how to use Kubernetes to set up a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace. H...
    Skeuomorphism usually means retaining existing design cues in something new that doesn’t actually need them. However, the concept of skeuomorphism can be thought of as relating more broadly to applying existing patterns to new technologies that, in fact, cry out for new approaches. In his session at DevOps Summit, Gordon Haff, Senior Cloud Strategy Marketing and Evangelism Manager at Red Hat, will discuss why containers should be paired with new architectural practices such as microservices ra...
    In his session at 20th Cloud Expo, Scott Davis, CTO of Embotics, discussed how automation can provide the dynamic management required to cost-effectively deliver microservices and container solutions at scale. He also discussed how flexible automation is the key to effectively bridging and seamlessly coordinating both IT and developer needs for component orchestration across disparate clouds – an increasingly important requirement at today’s multi-cloud enterprise.
    The Software Defined Data Center (SDDC), which enables organizations to seamlessly run in a hybrid cloud model (public + private cloud), is here to stay. IDC estimates that the software-defined networking market will be valued at $3.7 billion by 2016. Security is a key component and benefit of the SDDC, and offers an opportunity to build security 'from the ground up' and weave it into the environment from day one. In his session at 16th Cloud Expo, Reuven Harrison, CTO and Co-Founder of Tufin, ...
    DevOps is often described as a combination of technology and culture. Without both, DevOps isn't complete. However, applying the culture to outdated technology is a recipe for disaster; as response times grow and connections between teams are delayed by technology, the culture will die. A Nutanix Enterprise Cloud has many benefits that provide the needed base for a true DevOps paradigm. In their Day 3 Keynote at 20th Cloud Expo, Chris Brown, a Solutions Marketing Manager at Nutanix, and Mark Lav...
    Many organizations are now looking to DevOps maturity models to gauge their DevOps adoption and compare their maturity to their peers. However, as enterprise organizations rush to adopt DevOps, moving past experimentation to embrace it at scale, they are in danger of falling into the trap that they have fallen into time and time again. Unfortunately, we've seen this movie before, and we know how it ends: badly.
    TCP (Transmission Control Protocol) is a common and reliable transmission protocol on the Internet. TCP was introduced in the 70s by Stanford University for US Defense to establish connectivity between distributed systems to maintain a backup of defense information. At the time, TCP was introduced to communicate amongst a selected set of devices for a smaller dataset over shorter distances. As the Internet evolved, however, the number of applications and users, and the types of data accessed and...