9781584504245

Grid Computing for Developers

by
  • ISBN13:

    9781584504245

  • ISBN10:

    1584504242

  • Edition: CD
  • Format: Paperback
  • Copyright: 2005-12-30
  • Publisher: Cengage Learning

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $49.95 Save up to $12.49
  • Buy Used
    $37.46
    Add to Cart Free Shipping Icon Free Shipping

    USUALLY SHIPS IN 2-4 BUSINESS DAYS

Supplemental Materials

What is included with this book?

Summary

Many industry analysts believe that grid computing will be the next big technology wave. It is so promising that major technology companies such as IBM, Microsoft, Oracle, and Sun are allocating significant resources for grid research and development. Grid Computing for Developers explores the evolution of grid computing from the early distributed computing paradigm to the modern grid environments. Most of today's grid environments will be examined including OGSA, Resource Managers, and MPI. The book also explores today's de-facto standards for grid computing including a comprehensive guide to the Globus Toolkit for developers covering installation, system administration, development guides for grid services, open grid services architectures for OGSI and OGSA-DAI, commodity grid kits for Java, Perl, and OGSA-C, and performance evaluation tests. A significant amount of source code samples accompany each chapter. Grid Computing for Developers is an ideal resource for computer scientists and researchers, graduate students, and IT professionals looking to further expand their grid computing skills.

Table of Contents

Dedication v
Preface xxi
Part I Theory and Foundations
1(48)
The Roadmap to High-Performance Computing
3(14)
Evolution of Grid Technologies
3(2)
The Grid in a Nutshell
5(1)
What Can Be Called a Grid Application
6(1)
Distributed Computing Models
6(5)
Internet Computing
6(1)
Peer-to-Peer (P2P)
7(1)
Grid Architectures
8(3)
Computing on Demand (COD)
11(1)
How It Works
11(1)
User Authorization
12(1)
Limitation
12(1)
Grids in Science and Technology
12(3)
Grid Consortiums and Open Forums
12(1)
Grids in Science and Engineering
13(2)
Summary
15(2)
Enterprise Computing
17(22)
Existing Enterprise Infrastructures
18(1)
Integration with Grid Architectures
19(4)
Workload and Policy Management
20(1)
Shared Services
21(1)
Stateless Business Components
21(1)
Client State Management
21(1)
Pooled Resources and Lightweight Server Processes
22(1)
Database Concurrency Maximization
22(1)
Grid-Enabled Resource Management Models
23(2)
Hierarchical
24(1)
Abstract Owner Model (AO)
24(1)
Economy/Market Model
25(1)
Enter Open Grid Services
25(4)
Grids on the Enterprise
26(2)
Challenges Facing Grid Computing on the Enterprise
28(1)
The Jump to Web Services Resource Framework (WSRF)
29(1)
The Competitive IT Organization
29(1)
Computational Economy
30(5)
Why Computational Economy?
30(2)
Economy-Driven Grid Resource Management
32(1)
Resource Management Models
33(1)
Grid Architecture for Computational Economy (GRACE)
34(1)
Summary
35(4)
Core Grid Middleware
39(10)
P2P
41(4)
Definition
41(1)
Advantages and Disadvantages
41(1)
P2P vs. the Client-Server Model
42(1)
P2P Architectures
43(2)
Globus
45(1)
Grid Computing and Business Technologies (GRIDBUS)
46(1)
Summary
46(3)
Part II Grid Middleware
49(168)
Grid Portal Development
51(68)
Resource Management
52(47)
Apache Jetspeed
53(1)
A Resource Management JSP Portlet for Jetspeed
53(36)
WebSphere® Portal Server v5.0 (WPS)
89(1)
IBM Portlet API
89(2)
Job Submission Portlet for WPS
91(1)
Portlet Program
91(4)
Portlet View JSP
95(3)
Testing
98(1)
Data Management Portlets
99(16)
Global Access to Secondary Storage (GASS)
99(1)
GridFTP
100(1)
Remote I/O
100(1)
Globus Executable Management (GEM)
100(1)
Remote Data Access Portlet for Jetspeed
100(7)
Remote Data Access Portlet for IBM WPS
107(8)
Troubleshooting
115(1)
Certificate Not Yet Valid Errors
115(1)
Defective Credential Errors
115(1)
Summary
116(3)
Schedulers
119(62)
An Overview of Popular Schedulers and Grid Middleware Integration
120(1)
Job Schedulers versus Job Managers
121(1)
Portable Batch System---OpenPBS
121(13)
Overview
121(1)
OpenPBS in Red Hat Linux (RHL) 9
122(1)
Configuring PBS on a Single Machine Cluster
123(1)
Tweaking PBS GUIs for RHL 9
124(1)
Configuring the Globus Toolkit 3.2 PBS Job Scheduler
125(1)
Customizing the PBS Job Manager
126(1)
Troubleshooting PBS MMJFS Runtime Errors
127(4)
Customizing PBS Scheduler Execution Parameters with RSL
131(3)
Silver/Maui Metascheduler
134(3)
Reservations
135(1)
Fairshare
135(1)
Backfill
135(1)
Job Prioritization
136(1)
Throttling Policies
136(1)
Quality of Service (QoS)
136(1)
Node Allocation
136(1)
Sun Grid Engine (SGE)---N1 Grid Engine 6
137(6)
Workload Management
137(1)
Architecture
137(1)
Step-by-Step SGE Installation Transcript
138(2)
Installation Troubleshooting Tips
140(2)
Installation Verification
142(1)
Condor-G
143(4)
Condor Features
143(1)
Condor-MMJFS Installation Transcript
144(3)
MMJFS Integration with Other Job Schedulers
147(31)
Step 1: Create a Job Manager Script
148(13)
Step 2: Update the GT 3.2 Deployment Descriptors
161(4)
Step 3: Verification
165(5)
Integration Troubleshooting
170(6)
Packaging Advice
176(2)
Factors for Choosing the Right Scheduler
178(2)
Features
178(1)
Installation, Configuration, and Usability
178(1)
User Interfaces
178(1)
Support for Open Standards
178(1)
Interoperability
179(1)
Organization's Requirements
179(1)
Support for Grid Middleware
179(1)
Summary
180(1)
Open Grid Services Architecture (OGSA)
181(36)
Web Services versus Grid Services
182(2)
OGSA Service Model
184(1)
Standard Interfaces
184(1)
Other Service Models
185(1)
Service Factories
186(1)
Lifetime Management
187(1)
Handles and References
187(1)
Service Information and Discovery
187(1)
Notifications
188(1)
Network Protocol Bindings
188(1)
Higher-Level services
189(1)
Other Interfaces
189(1)
Hosting Environments
189(1)
Virtual Organizations (VOs)
190(1)
The Globus Toolkit
191(2)
Core Services
192(1)
Security
192(1)
Data Management
192(1)
Sample Grid Services: Large Integer Factorization
193(21)
Overview: Large Integer Factorization and Public Key Cryptosystems
193(3)
Service Implementation
196(1)
Factorization with the Quadratic Sieve
196(1)
Service Architecture
197(1)
Step 1: Obtaining the Factorization code
197(1)
Step 2: Building a Factorization Service Interface
198(1)
Step 3: Creating the Service Implementation
198(2)
Step 4: Creating a Service Deployment Descriptor
200(1)
Step 5: Creating the Schema Files and Grid Archives (GARs)
201(9)
Step 6: Deploying the Service to the GT3 Container
210(1)
Step 7: Writing a Service Client
211(3)
Step 8: Running the Factorization Client
214(1)
Summary
214(3)
Part III The Globus Toolkit
217(214)
Core
219(12)
Concepts
219(1)
Architecture
220(1)
Hosting Environments
221(8)
Apache Tomcat
222(1)
WebSphere™ Application Server v5.1
222(5)
Troubleshooting WebSphere
227(2)
Other Hosting Environments
229(1)
Summary
229(2)
Security
231(38)
Grid Security Infrastructure (GSI) Overview
232(1)
Certificate Basics
232(15)
Understanding X.509 Certificates
232(1)
Typical Public Key Infrastructure (PKI) Model
233(1)
Certificate Fields
234(1)
GSI Proxies
235(1)
Certificate Generation
236(1)
Creating a Self-Signed User Certificate and Private Key
237(1)
Creating Credentials from User Certificates
238(3)
Creating a Certificate Request
241(6)
Java Certificate Services---Web Tools for X509 Certificates
247(5)
Overview
247(1)
Installing JCS on a Windows or Linux host
248(1)
Deploying the Web-Based Tool on Tomcat
248(1)
Accessing the Web-Based Tool
248(1)
Creating a Certificate Request
248(2)
Signing a Certificate Request
250(1)
Creating a self-Signed (CA) Certificate and Private Key
250(1)
Using the Command-Line--Based Tools
250(1)
Creating a Certificate Request from the Command Line
251(1)
Signing a Certificate Request from the Command Line
251(1)
Getting Information on a X509 Certificate
251(1)
Creating a Binary Distribution from Source
251(1)
Globus Toolkit 3 Security Libraries
252(16)
Creating Proxies from Default Certificates Within a Web Application
252(7)
Configuring Local Certificates for Testing
259(1)
Creating Certificates and Private Keys
260(7)
Troubleshooting: Security Provider Problems
267(1)
Summary
268(1)
Resource Management
269(34)
Web Services GRAM Architecture (GT3)
270(21)
Fault Tolerance
271(1)
Resource Specification Language (RSL)
272(2)
MMJFS Configuration
274(1)
Troubleshooting
275(3)
A Custom GRAM Client for MMJFS
278(2)
Listening for Job Status Updates and Job Output
280(2)
The GASS Server
282(1)
RSL Submission
282(5)
Security
287(3)
MMJFS Performance
290(1)
Pre Web Services GRAM Architecture (GT2)
291(10)
Jobs in GT2
291(1)
Job Submission Modes
291(1)
Resource Specification Language (RSL)
292(1)
Security Infrastructure
292(1)
A Java Program for Job Submission on GT2
292(2)
Listening for Job Output
294(1)
Handling Received Output
295(2)
Sending the GRAM Job Request
297(2)
Job Submission Test
299(2)
Summary
301(2)
Data Management
303(18)
GridFTP
304(12)
Overview
304(1)
Connecting to a GridFTP Server
305(2)
Converting Legacy Proxies to GSS Credentials
307(1)
Transferring Data
307(2)
Transferring Multiple Files
309(1)
Parallel Transfers
309(2)
Testing the Transfer
311(4)
Troubleshooting Tips
315(1)
Transferring Files Using Multiple Protocols
316(3)
Summary
319(2)
Information Services
321(60)
WS Information Services (MDS3)
322(2)
Information Model
322(1)
Data Collection
322(1)
Aggregation
322(1)
Queries
323(1)
User Interfaces
323(1)
Security
324(1)
Querying Default Data Providers
324(2)
Enable the ServiceDataProvider and DataAggregation in the Service Browser GUI
324(1)
Test the default SystemInformation Service Data Provider via the OGSA Service Browser GUI
325(1)
Custom MDS3 Data Providers
326(36)
GT 3.2 Core Data Providers
326(1)
Provider Interfaces
327(1)
The Simplest Case
328(2)
The Real World: An MDS3 Information Provider for Remote Schedulers Using SSH
330(32)
Pre-WS Information Services (MDS2)
362(17)
Architecture: GRIS and GIIS
362(1)
Implementing a Grid Information Provider for MDS2
363(10)
Custom MDS2 clients
373(6)
Summary
379(2)
Commodity Grid Kits (CoGS)
381(20)
Overview
382(1)
Language Bindings
382(1)
Java
383(14)
Installation Requirements and Configuration
383(1)
Basic Java CoG Services
383(1)
Security
384(9)
Resource Management
393(1)
Data Management
393(3)
Data Transfer Troubleshooting
396(1)
Other Language Bindings
397(2)
Python
397(1)
PERL
398(1)
Summary
399(2)
Web Services Resource Framework (WSRF)
401(30)
Understanding WSRF
402(1)
Stateless versus Stateful Services
402(1)
WS-Resource
402(1)
WSRF and OGSI
403(2)
OGSI Evolution
403(1)
From OGSI to WSRF
404(1)
WSRF Normative Specifications
405(6)
WS-ResourceProperties
406(2)
WS-Addressing
408(1)
WS-Resource Lifecycle
409(1)
WS-ServiceGroup
410(1)
WS-BaseFaults
410(1)
WS-Notification
410(1)
WS-Resource Security
411(1)
GT4 and WSRF: Stateful Services for Grid Environments
411(3)
Overview
411(1)
Newcomers: WS-Components
411(1)
Old Protocols, New Faces
412(2)
Service Example: A WSRF Large Integer Factorization (LIF) Service
414(15)
Web Service Description (WSDL) File
414(3)
Resource Implementation
417(4)
Service Implementation
421(2)
Service Client
423(5)
Enabling Security
428(1)
Build and Deployment
428(1)
Runtime Test
428(1)
Summary
429(2)
Part IV The Message Passing Interface (MPI) Standard
431(106)
The Message Passing Interface (MPI) Standard
433(28)
Overview
434(1)
Procedures and Arguments
435(1)
Data Types
435(1)
Opaque Objects
435(1)
Arrays and Constants
436(1)
Other Data Types
436(1)
Processes
436(1)
Error Handling
437(1)
Platform Independence
437(1)
Point-to-Point Communication
437(11)
Message Datatype Conversions
439(1)
Message Envelopes
440(1)
Data Type Matching and Conversion
441(1)
Communication Modes
442(1)
Buffering
442(1)
Nonblocking Communication
443(1)
Probe and Cancel
444(2)
Derived Data Types
446(1)
Pack/Unpack
447(1)
Collective Communication
448(7)
Barrier synchronization (MPI_Barrier)
449(1)
Broadcast (MPI_Bcast)
449(1)
Gather (MPI_Gather)
449(1)
Scatter (MPI_Scatter)
450(1)
Gather-to-All (MPI_Allgather)
451(1)
All to All (MPI_Alltoall)
451(1)
Global Reduction
451(3)
Reduce Scatter (MPI_Reduce_Scatter)
454(1)
Scan
454(1)
Avoiding Deadlocks
454(1)
Cyclic Dependencies
454(1)
Groups, Contexts, and Communicators
455(3)
Predefined Communicators
456(1)
Miscellaneous Group and Communicator Examples
456(2)
Intra-Communicators versus Inter-Communicators
458(1)
Process Topologies
458(1)
Overview
458(1)
Virtual Topologies
459(1)
Summary
459(2)
Message Passing Interface (MPI) Standard 2.0
461(28)
Overview
462(1)
Changes Since Version 1
462(1)
Deprecated Names and Functions
462(1)
Processes
463(1)
Miscellaneous Enhancements
463(4)
The MPI-2 Process Model
463(1)
Process Management and Resource Control
464(1)
Memory Allocation
464(1)
New Predefined Data Types
464(1)
MPI-I/O
465(1)
File Views
466(1)
MPI Examples: Common Parallel Algorithms
467(19)
Prime Generation---The Sieve of Eratosthenes
467(4)
Sparse Matrix Multiplication
471(9)
MPI-IO: Parallel Writes and Reads
480(6)
Summary
486(3)
MPICH2--A Portable Implementation of MPI
489(48)
Overview
490(1)
Language Bindings
490(1)
Quick Start Installation Transcript
490(4)
Software Prerequisites
490(1)
Unpack the Tar File into a Temporary Directory
491(1)
Create an Installation Directory (Default Is /usr/local/bin)
491(1)
Configure MPICH2, Specifying the Installation Directory
491(1)
Build and Install MPICH2
491(1)
Add the bin Subdirectory of the Installation Directory to Your Path
491(1)
Test the MPICH2 Daemon Ring
491(1)
Check the Sanity of your MPD Daemon
492(1)
Create a MPD Ring and Test It
492(1)
Run Simple Commands
493(1)
Run the Sample MPI Programs
493(1)
Large Integer Factorization Revisited: The Number Field Sieve (NFS)
494(25)
GNFS Algorithm
494(2)
Public Domain GNFS---Sieving Over a Factor Base
496(1)
Sieve Algorithm
496(5)
LIF Execution Times
501(1)
Parallel Sieve Implementation in MPI
502(13)
Avoiding Interleaved Messages
515(4)
Compilation and Runtime Data
519(1)
MPICH2--WS-GRAM Integration
519(13)
Scheduler Interface for MPICH2
519(6)
MMJFS Service Configuration
525(3)
Packaging advice
528(1)
Testing and Troubleshooting
529(3)
MPICH2---MDS3 Integration
532(3)
An Information Service Script for MPICH2
532(2)
Configuration and Testing
534(1)
Summary
535(2)
Appendix A Source Code
537(2)
Program Name: SimpleCA.java
537(1)
Creating a Certificate Request
537(1)
Signing a Certificate Request
537(1)
Getting Information on a X.509 Certificate
537(1)
Program Name: CertGenerator.java
538(1)
Program Name: CertSigner.java
538(1)
Program Name: CertManaager.java
538(1)
Program Name: Certrq.jsp
538(1)
Program Name: self-sign.jsp
538(1)
Program Name: userhost.jsp
538(1)
Appendix B About the CD-ROM
539(2)
Index 541

Rewards Program

Reviews for Grid Computing for Developers (9781584504245)