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

Grid computing makes it possible to dynamically share and coordinate dispersed, heterogeneous computing resources. Flexibility and ubiquity are essential characteristics of Web services technologies such as WSDL (Web Services Description Language), SOAP (Simple Object Access Protocol), and UDDI (Universal Description, Discovery, and Integration).

The Open Grid Services Architecture (OGSA) combines technologies to unlock and exploit grid-attached resources. OGSA defines mechanisms to create, manage, and exchange information between Grid Services, a special type of Web service. The architecture uses WSDL extensively to describe the structure and behavior of a service. Service descriptions are located and discovered using Web Services Inspection Language (WSIL). By combining elements from grid computing and Web services technologies, OGSA establishes an extensible and interoperable design and development framework for Grid Services that includes details for service definition, discovery, and life-cycle management.

Drawing the Grid
Information systems are no longer just defined by what they can process, but also where they can connect to. For example, the growing demands for computing power in simulation and engineering design projects, is increasingly satisfied by "on-demand" sharing of CPU cycles and disk space across distributed networks. The ultimate goal for these interconnected networks, or grids, is to make IT-power as commonplace and omnipresent as electricity.

Grid computing can be described as the coordinated, transparent, and secure sharing of IT resources across geographically distributed sites based on accepted computing standards. The grid endpoints include both hardware and software components such as data, files, storage space, and application functionality (see Figure 1). Adding resources to a grid can be difficult today because of the lack of standards and the implementation method. Enabling, for example, monolithic applications to run in a distributed environment, means overcoming issues such as network access performance and interface granularity.

Figure 1

The concept of a grid can be viewed as an abstraction layer or facade, spanning distributed computing resources and enabling virtual collaboration between people and IT processes. Examples of grid implementations are found in computational science, large-scale simulation, data mining, network-enabled solvers and collaborative engineering projects. Lower total cost of computing, access to a broader range of resources, improved flexibility and reliability are the main benefits of using a grids infrastructure.

Current grid projects, such as NASA's Information Power Grid, The GriPhyn, and NeesGrid, are mostly created and operated by universities and government research institutions. One of the earliest and most popular public examples of grid computing is SETI@home. This project uses the processing power of more than 500,000 personal computers from around the world in its quest to search for life in the galaxy.

Grid computing also reflects changing ideas about the nature of software, who owns it, and where it resides. It implements a service-based software model in which computing services are configured to meet a specific set of requirements at a point in time, executed, and discarded, approaching the vision of instant computing.

Broad adoption of grid computing depends on solving technical and economic concerns, including end-to-end security and usage metering. These issues will initially limit the reach of grids to the boundaries of an organization. Over time, partner grids will extend enterprise grids to include external organizations in the value chain. Service grids represent the final phase, in which grids are broadly accepted, making computing resources a utility similar to water, electricity and gas.

Software from commercial companies like IBM, Sun Microsystems, Avaki, and Microsoft; open source initiatives like Globus; and proprietary implementations are used as the building blocks to develop and deploy grid applications. The grid infrastructure is a mix of hardware and software that can be categorized into four groups: fabric, middleware, tools, and applications. The fabric consists of hardware and system software such as operating systems, device drivers, and communication stacks. Grid applications use grid tools and middleware components to interact with the fabric (see Figure 2).

Figure 2

Grids are complex systems as a result of scope and scale factors. Typically, they have large numbers of nodes, service providers, and consumers using different operating systems and applications on a mix of hardware. Usage patterns are unknown, while consistency in the Quality of Service (QoS) of the response time, for example, is expected. Finally, service providers and consumers can be geographically dispersed and have different objectives regarding service availability and capability. The OGSA defines a framework to develop applications suitable to operate in these large-scale heterogeneous distributed networks.

Grids, Services, and OGSA
From a software-design perspective, a grid can be viewed as a collection of self-contained computing services that can be described, published, located, and invoked over any type of network. Services are location-independent and dynamic, span multiple computing architectures, and reach across administrative domains. The design principles of OGSA reflect a combination of elements from Web services and grid computing:

  • Resource virtualization: Each grid component is considered a service.
  • Standard interface definition mechanisms: Enabling multiple protocol bindings and transparency between local or remote services.
  • Standard foundation services: Defining service semantics, reliability and security models, and core functions such as life-cycle management, or discovery.
  • Implementation independence: Support for multiple development languages and hosting environments including Java, COBOL, C, J2EE, CICS, and .NET.

    Since a grid consists of both existing and new hardware and software, multiple variations of communication protocols, security schemes, and transaction management systems exist and cooperate at the same time. Today's grids tend to be a patchwork of protocols and noninteroperable "standards" and difficult-to-reuse "implementations." The OGSA uses Web services technologies like WSDL, SOAP, and WSIL to abstract platform and implementation differences, giving transparent access to grid services.

    OGSA is an extension and a refinement of a Web services architecture. It describes a system that normally consists of a few persistent and potentially many transient services. The architecture defines basic service behavior including fundamental semantics, life-cycle management, and discovery. Also included is a framework for fault resilience, security, and transaction management.

    The services specified in OGSA can be persistent and time limited, supporting delegated authentication credentials using heterogeneous communications protocols. These characteristics are significantly different from the common Web services model in which services are persistent, allowing anonymous communication over HTTP using SOAP. Transient, short-lived services, dynamically created and destroyed, are an essential component of a grid. Examples include: interfaces to the states of distributed activities, data analysis, and streaming video. Much of the work in OGSA deals with the implications of transient service instances on management, naming and discovery.

    Fundamental to OGSA are WSDL and interfaces for dynamic discovery and life-cycle management for a specific type of Web service - a Grid Service. WSDL conventions and extensions are used to describe and structure services, while core service activities are expressed using WSDL interfaces and behaviors. Every Grid Service instance has a unique and immutable name called the Grid Service Handle. Lifetime management is provided by mandatory support for the operations Destroy and SetTerminationTime.

    WSDL in OGSA
    WSDL enables the creation of "tightly contracted/loosely coupled" systems, separating interface, binding, and implementation. The binding component is further divided in transport, the mechanism used to flow bits from A to B, and encoding, how information is communicated from one system to another. This allows for the separation of concerns for building, hosting and accessing services. A service provider can be developed in C++, hosted on zOS, accessed by a Java application running on Solaris, using SOAP over MQ-Series. WSDL defines the service functionality and an access path or on-ramp to invoke it (see Figure 3).

    Figures 3 & 4

    OGSA introduces the following extensions to WSDL:

  • serviceType: Used to describe aggregated families of services defined by a collection of ports of specified types
  • serviceImplementation: Represents the implementation of the actual code
  • instanceOf: Maps the service description of the actual instance
  • compatibilityAssertion: Associates equivalent interface elements and implementations

    A basic WSDL instance document only describes that a service implements a port with the given interface; there is no information about what the service does with that port. The OGSA extensions allow the naming of families of services that have identical semantics and to assert that a particular service implements these semantics. The role of the compatibilityAssertion is to declare that two elements with the same underlying type are indeed compatible even if they have different names. As a result, the clients of the service understand its behavior. Figure 4 illustrates how the WSDL extensions relate to each other.

    GridService
    A Grid Service is a WSDL-defined service that follows a set of conventions relating to its interface definitions and behaviors. The specification details how clients create, discover, and interact with a Grid Service. Note that OGSA doesn't address the actual creation, management, and destruction of the server component in a particular hosting environment. This means that Grid Services may not be portable across hosting environments but any OGSA-compliant client can invoke them. Three characteristics separate a Grid Service from a regular Web service:

    1.   A Grid Service is an instance of a service implementation of a service type, a collection of specific interfaces.

    2.   The instance implements a Grid Services Handle. This is a Uniform Resource Indicator (URI) for the service instance and is bound to a Grid Service Reference (GSR). The GSR is similar, for example, to the Interoperable Object Reference (IOR) in CORBA and contains the necessary information to bind and use the service. The HandleMap interface is used to map between the GSH and GSR. Introducing the GSR in the specification allows the separation of the service name from the service implementation, facilitating service evolution such as "non-stop" service upgrades.

    3.   The instance also implements a port called GridService supporting three operations:

  • FindServiceData: Allows a client to discover information about the service's state, execution environment, and additional semantic details not available in the GSR. It is a form of reflection used by the service consumer to learn more about the service.
  • Destroy: An operation to explicitly destroy an instance
  • SetTerminationTime: A method to extend the lifetime of a service

    In addition to the required GridService port, OGSA also defines additional, optional service ports. These interfaces define properties commonly required by distributed systems, such as messaging, discovery and registration, instance creation, and full life-cycle management.

    The NotificationSource and NotificationSink ports handle messaging. This is a simple publish-subscribe system similar to Java's JMS, using XML messages. Existing messaging systems such as Tibco or MQ Series can also be used to implement the service. Error notification, application monitoring, and dynamic discovery of services are areas where the Notification ports are useful (see Figure 5).

    Figure 5

    The Registry port is used to bind the metadata of Grid Service instances, identified by their GSH, to a registry. The registry is a particular type of Grid Service that maintains a set of Grid Service Handles and policies associated with the collection. Extracting information from the registry service is done using the FindServiceData method on the GridService port. This method always supports the XPath query language and returns a WS-Inspection document containing the GSHs of a set of Grid Services. Unfortunately, there is no port type defined to add or remove bindings to and from a service. As a workaround, the notification system can be used.

    Instances of a Grid Service can be created via a factory or manually. Similarly, they can be destroyed via soft state termination or explicitly. The factory interface operation CreateService can create transient application service and supports reliable service instantiation (once-and-only-once). Interaction with the factory requires creation-lifetime information and can be extended to include an XML document describing service-specific creation parameters. The interface returns a GSH that uniquely identifies the instance over time. The soft-state lifetime management support avoids clients having to tear down services and prevents resource "leaks" in hosting environments.

    Implementations hurdles and future
    From a technical perspective, OGSA is critical to streamlining and accelerating the creation and deployment of grid applications. The architecture unifies existing grid development approaches and is extensible from a technical perspective to incorporate future developments. However, to expand the reach of grid applications beyond the level of a single enterprise the OGSA needs to more thoroughly address issues concerning:

    • Use of WSDL extensions
    • Definition and use of service ports
    • Heterogeneous, end-to-end, security
    • Grid Service manageability
    The extensibility of WSDL has implications for interoperability with existing WSDL clients and servers. Full interoperability and accommodation of non-OGSA WSDL clients by grid servers will accelerate the adoption of the extensibility elements. This is important since the handling of extensions is spotty at best in most current toolkits.

    Discovery and life-cycle management deserve a separate interface. In the current OGSA specification, the services are combined in GridService. These services perform distinct roles and are used in different ways. For example, discovery of grid services can be open to anyone, while instantiation and destroy operations require a secure, authenticated connection.

    Addressing concerns around authentication, authorization, and trust relations is essential for grid implementations across organizational boundaries. The OGSA should include provisions for "pluggable" security mechanisms that can be discovered by the client using a service description. Service providers, in turn, can plug in a security architecture that fits their infrastructure for Grid Services.

    Currently, the OGSA does not indicate how resources are exposed or, in an operational setting, how large sets of Grid Service instances can be monitored and managed. Grid Services are commonly subject to service level agreements that define specific availability, performance, and reliability characteristics. Without agreement on how to instrument and manage, for example, serviceType and portTypes, it will be next to impossible to manage heterogeneous grid applications.

    Conclusion
    OGSA brings utility-based computing a step closer, and allows the development and deployment of standards-based Grid Services today. The combination of Web services and grid computing virtualizes networked resources using common computing standards, making them accessible to a larger audience. To extend the reach of the architecture and maximize its potential benefits, additional services, such as security and management, need to become an integral part of the specification.

    References

  • OGSA: www.globus.org/ogsa
  • NASA Information Power Grid: www.ipg.nasa.gov/
  • The GriPhyn: www.griphyn.org
  • NeesGrid: www.neesgrid.org
  • SETI: www.seti-inst.edu
  • IBM: www-1.ibm.com/grid
  • Sun Microsystems: wwws.sun.com/software/gridware
  • Avaki: www.avaki.com
  • Microsoft: www.microsoft.com
  • Globus: www.globus.org

    Author Bio
    Dirk Hamstra has over 15 years of experience in senior-level software development and sales. His area of expertise is application integration and middleware. He has worked at IBM, Vitria Technology, IONA Technologies, and as an independent consultant. dirk-hamstra@attbi.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.