The Grid 2: Blueprint for a New Computing Infrastructure

Front Cover
Ian T. Foster, Ian Foster, Carl Kesselman
Morgan Kaufmann, 2004 - Computers - 748 pages

"The Grid is an emerging infrastructure that will fundamentally change the way we think about-and use-computing. The word Grid is used by analogy with the electric power grid, which provides pervasive access to electricity and has had a dramatic impact on human capabilities and society. Many believe that by allowing all components of our information technology infrastructure-computational capabilities, databases, sensors, and people-to be shared flexibly as true collaborative tools the Grid will have a similar transforming effect, allowing new classes of applications to emerge." --From the Preface

In 1998, Ian Foster and Carl Kesselman introduced a whole new concept in computing with the first edition of this book. Today there is a broader and deeper understanding of the nature of the opportunities offered by Grid computing and the technologies needed to realize those opportunities. In Grid 2, the editors reveal the revolutionary impact of large-scale resource sharing and virtualization within science and industry, the intimate relationships between organization and resource sharing structures and the new technologies required to enable secure, reliable, and efficient resource sharing on large scale.

Foster and Kesselman have once again assembled a team of experts to present an up-to-date view of Grids that reports on real experiences and explains the available technologies and new technologies emerging from labs, companies and standards bodies. Grid 2, like its predecessor, serves as a manifesto, design blueprint, user guide and research agenda for future Grid systems.

  • 30 chapters including more than a dozen completely new chapters
  • Web access to 13 unchanged chapters from the first edition
  • Three personal essays by influential thinkers on the significance of Grids from the perspectives of infrastructure, industry, and science
  • A foundational overview of the central Grid concepts and architectural principles
  • Twelve application vignettes showcase working Grids in science, engineering, industry, and commerce
  • Detailed discussions of core architecture and services, data and knowledge management, and higher-level tools
  • Focused presentations on production Grid deployment, computing platforms, peer-to-peer technologies, and network infrastructures
  • Extensive bibliography and glossary

What people are saying - Write a review

User Review - Flag as inappropriate

Using XML Data Islands and Client-Side XSLT
XSLT running on the client can be an effective way of creating applications that require a minimal amount of interaction with a server. After the XML
, XSLT, and (in some cases) HTML files are downloaded to the client, all or most operations are carried out on the client host. This usually means more responsive user interactions.
The major drawback of client-side XSLT is that you, the XSLT developer, will have to deal with potential browser incompatibility issues. Therefore, client-side XSLT is best for applications running on an intranet, where it is possible to establish a consistent environment for creating and deploying applications.
The HTML file in the next topic, DataIsland.htm, shows how to use XML data islands in a client-side XSLT application. An XML data island is represented by an <XML>...</XML> tag in an HTML page. Remember that XML data islands are HTML elements, or DHTML DOM objects when used in a script. This HTML tag can have two attributes: ID and SRC. ID serves as the identifier of the DOM object, and SRC can be used to load an XML document from a specified file.
In this example, there are two XML data islands—that is, two <XML>...</XML> tags. One is identified as book_catalog and holds the XML source document. The other is identified as catalog_filter and holds the XSLT style sheet used to transform book_catalog. Here one XML document (catalog_filter) is hard-coded into the XML data island. The other (book_catalog) reads from an external XML file (book_catalog.xml). To retrieve the XML DOM object from an XML data island, use the XMLDocument property on the data island. For example, catalog_filter.XMLDocument returns the XML DOM object for the XSLT style sheet.
In the DataIsland.htm sample file, the JavaScript code for transforming the XSLT is quite similar to the code used in the server version in Using ASP with XSLT Processor and Template Objects, with a few notable differences. The showGenre() function (renamed from main() in the server version) takes the genre name as a parameter, which lets it modify the contents of a DIV element (called catalog_table) when the select list box's value is changed. This function passes references to the two data islands book_catalog and catalog_filter directly, rather than passing file names. The transformData() function returns the resulting transformed data as an XML object, rather than sending the output to the Response object. This is because the Server.Response object can take an XML DOM stream as input, but the innerHTML property can only take a string.
Both loadSource() and getProcessor() have also been modified to take into account the data island source of the information, and getProcessor() now uses a local variable to store the XSLT processor object, rather than a session variable. Otherwise, the two are quite similar.
The only changes from the XSLT in Using ASP with XSLT Processor and Template Objects are as follows:
The result is now contained in a <DIV> element, rather than in the full <HTML> wrapper. This has already been declared on the client.
The style sheet has been moved out to the containing HTML document, to simplify the code.
The onchange attribute of the <SELECT> list box has been changed from a URL call to the command showGenre(this.value). This command will update the table to reflect the selected genre.
This example brings up a number of points about working with XSLT on the client:
The JavaScript functions discussed here are highly modular. Only the showGenre function actually contains code specific to a single style sheet and data source. By maintaining this modularity, you can create other functions that use different sources or transformations in the same page—a navigation bar, for example, or a menu—without functions that transform each component separately.
You can use the SRC attribute on data islands to load both data and transformations from the server in response to changing



Other editions - View all

Common terms and phrases

Popular passages

Page 709 - In Proceedings of the Fifth IEEE International Symposium on High Performance Distributed Computing. IEEE Computer Society Press, August 1996.

About the author (2004)

Ian Foster is Senior Scientist in the Mathematics and Computer Science Division at Argonne National Laboratory, where he also leads the Distributed Systems Laboratory, and Associate Professor of Computer Science at the University of Chicago. His research concerns techniques, tools, and algorithms for high-performance distributed computing, parallel computing, and computational science. Foster led the research and development of software for the I-WAY wide-area distributed computing experiment, which connected supercomputers, databases, and other high-end resources at 17 sites across North America (a live experiment at the Supercomputing conference of 1995).

Most recently Carl Kesselman received international recognition for GUSTO, the world's first high-performance computational grid. GUSTO pushes the technological envelope by using high-speed networks and software to provide global access to advanced supercomputers and other devices.