ACADEMIA
SOAs and Grid: Two Concepts Get Acquainted (Part 1)
The connection of service-oriented architectures (SOAs) and Grid computing offers huge potential for IT solutions. While Grid technologies enable standardized access to distributed IT resources across the whole organization, SOAs offer the technical framework and the methodical superstructure for this. The first part of this article describes the basics of the two concepts, while the second part looks at some practical examples of how they can interact. Enterprises are outsourcing more and more business processes, and therefore need software solutions that enable their partners to access internal applications and resources remotely but still securely. Distributed computing power is needed for this, as well as the ability to connect up application processes across enterprise boundaries.
In view of the increasingly virtual nature of enterprise functions, which arises for example as a consequence of outsourcing services or administrative activities, companies are increasingly questioning the wisdom of basing their operations on their own, centrally run IT infrastructure. As a result, they are tending to buy in the additional computing capacities and services they need for each individual application case, not least because of the increasing cost pressures they face. This is precisely where service-oriented architectures (SOAs) come into their own for grid computing. While grid technologies help to standardize access to distributed IT resources – such as hardware, software, services, and data – globally across enterprise boundaries, service-oriented architectures offer the methodical superstructure for this, as well as a technical framework for implementation.
Computing power straight from the socket
The term "grid" is used in analogy to the electric power grid, and describes the vision of getting computing power and services "straight from the socket" without having to worry about the specifics of where it comes from. The origins of grid computing lie in scientific data processing, where the power of an individual computer cluster or supercomputers is often insufficient. As a result, several clusters or supercomputers from different organizations are connected up to form a large hardware grid.
The commercial use of grid computing is now gaining in importance, and the integration of business processes and automated workflows in the grid, based on web services and service-oriented architectures, are taking on an increasingly important role.
In the opinion of leading hardware vendors such as IBM and Sun Microsystems, "computational grids" will be as important in the future as the world wide web (WWW) is today. While the WWW provides users with easy access to globally distributed information, grids also offer standardized and secure access to extensive and complex computing resources, data, and services. This access is standardized to such an extent that the selection and composition of services and the access to them is also possible without human intervention, as they can be automatically initialized and configured.
Basically we differentiate between three typical forms of grid computing:
Classification of grids
* Hardware or resource grids (grid computing in its original form) provide comprehensive computing power for solving large, often scientific computing problems, such as simulation calculations or parameter studies.
* Data or information grids are used to store large volumes of data and organize distributed databases across enterprise boundaries.
* Software or service grids make it possible to use software and services across organizations, and focus on coupled and distributed data processing.
The greatest synergy effects from service-oriented architectures can be achieved with service-oriented software grids. But query processes to distributed databases, known as data grids, can also be implemented as SOAs.
Services on demand
In a service-oriented architecture, application functionality for certain processes are divided into individual components and made available as web services. According to traditional teaching, web services, for example online queries to determine share prices, should be stateless, which means identical requests should always return the same response. In practice, however, it is usual for web services to not only reflect the state of databases, but also to actively change it. Strictly speaking, these kinds of web services applications reside in a gray area not covered by the underlying theoretical concepts. In the grid, the focus is primarily on organizing the access to networked software components, and the fact that almost every component of this kind manages its own state information cannot be ignored. This was one of the main reasons for the concept of "grid services", a term introduced to cover something more general than web services. The stateful resources, such as databases, needed to execute the service must be explicitly referenced, or "called by their name."
Web services are usually installed on a specific computer. The web service concept does not look more closely at what happens if a service has to be moved from one computer to another, for example. Grid computing, on the other hand, is all about dynamically running services where suitable capacities are available. With grid services, the life cycle of a service is looked at explicitly and organized in a uniform way: A grid service is generated on demand on a suitable, available computer by means of a "factory service" for the duration of use, and is destroyed once it is no longer required. A query to a grid service can be active over several weeks and can access extensive hardware, software, and data resources. In addition, grid services offer greater performance and scalability, as well as a better performance model. The objective of the most recent developments is also to enable suitable resources to be reserved and automatically made available, and the aim of completely virtual resources in the grid is becoming a tangible possibility.
When used within an SOA, grid services make it possible to utilize resources more flexibly in the face of varying load, on the one hand, and to use new strategies to meet security and reliability requirements on the other. Thus critical services can be dynamically replicated or run at different locations.
One important grid standard is the "Web Service Resource Framework" (WSRF), developed by the Organization for the Advancement of Structured Information Standards (OASIS). WSRF specifies the realization of grid services in an SOA by – as described above – adding the concept of stateful resources to web services. The "open grid services architecture" (OGSA) is a grid architecture model introduced by the Open Grid Forum (previously: Global Grid Forum) that is based on stateful services. The most well-known implementation of WSRF taking account of OGSA is the Globus Toolkit 4 (GT4). This is the basis for a number of current, mostly scientific, grid projects such as the European EGEE project (Enabling Grid for E-Science) or the TeraGrid project in the United States.
Can SOA help grid computing to break through?
The greatest benefits of an SOA for the grid lie in the programming model and architectural concept. In the past, several competing, incompatible programming models and architectures were used for grids, and the vision of a standardized, global grid was correspondingly remote. With the arrival of the SOA paradigm and the global prevalence of the associated web services standards, a globally accepted standard for achieving global grids – in the shape of WSRF – is in sight for the first time. This can help grid computing to break through in the medium term.
Conversely, grid technologies can be used in an SOA, in particular in the virtualization and composition of resources. Users work with abstract services and don't need to worry about the technical details relating to their implementation. Another advantage of grid technologies in an SOA relates to the mechanisms for composing and executing powerful and secure workflows, where the grid operates as the backend and middleware of an SOA.
- Michael John, Thilo Ernst & Andreas Hoheisel at Fraunhofer Institute for Computer Architecture and Software Technology