Higher-order components for grid programming. Making grids more usable. (English) Zbl 1179.68015

Berlin: Springer (ISBN 978-3-642-00840-5/hbk; 978-3-642-00841-2/ebook). xiii, 186 p. (2009).
Dünnweber and Gorlatch’s book provides an in-depth view of grid computing – the technology allowing for sharing and accessing various resources located over the Internet. The authors successfully present the challenges of software development in grid environments consisting of servers located far from each other and requiring reliable communication. The problems addressed in this book are critical ones, since processing demands of grid applications often significantly exceed the capabilities of recent mainframes and even supercomputers. They point out several complex aspects that the developers have to consider, e.g., the distribution of data and computations, parallel computations between different sites and processors, heterogeneity of the involved computers, as well as load balancing. In general, these objectives are difficult to fulfill owing to the unreliable nature of Internet communication caused by potential data delivery failures, as well as varying latencies. Another difficulty is caused by parallelization of operations. Since several stages of application must be executed in a particular order, it becomes challenging to properly coordinate the distributed actions, when using the grids at their full capacity.
The main achievement of this book is a component-based programming methodology for grid computing, based on a model called Higher-Order Components (HOCs). The authors developed the components that can be parametrized with data, as well as with application-specific code. These components offer various types of parallel as well as distributed processing, e.g., farm, pipeline, or divide-and-conquer. The advantage of HOCs is that they are accessible to the programmers via a high-level, Internet-accessible service interface. All the low-level aspects, such as parallelization and synchronization, middleware setup, as well as internal communication, are internal parts of their implementation. Therefore, they remain hidden from the programmer. The programmer has only to customize them for a particular use.
The book has six chapters. The first chapter presents a consistent introduction to grid programming issues. In particular, it presents several recent approaches, e.g., RMI, CORBA, Tomcat, or Globus and demonstrates the benefits of using them. Chapter 2 describes the design details of HOCs – software components for grid programming. By means of comparison of two case studies (with and without HOCs), it proves the advantage of the latter approach. The ease of application-specific adaptation of HOCs implies that they may be utilized for a much broader range of distributed systems, compared to contemporary solutions. The architecture of Higher-Order Components (HOC-SA) is presented in detail in Chapter 3, with special focus on the management and configuration issues. Example applications of HOCs are given in Chapter 4. They include the issue of genome similarity detection (bioinformatics), and a physical simulation of deforming objects (car crash test simulation). Several complex aspects of HOCs adaptation, e.g., embedded scheduling and loop parallelization, are outlined in Chapter 5. Chapter 6 concludes the book with a short analysis of HOCs utilization for performance-critical applications.
For beginners, this book provides a necessary introduction to the grid programming issues. For professionals, it provides solutions to particular, important problems. To conclude, Dünnweber and Gorlatch’s book may be a proper reference in the area of grid programming for students, researchers, as well as distributed software developers for the years to come.


68M14 Distributed systems
68M11 Internet topics
68N15 Theory of programming languages
68N19 Other programming paradigms (object-oriented, sequential, concurrent, automatic, etc.)
68N99 Theory of software
68P15 Database theory
68-01 Introductory exposition (textbooks, tutorial papers, etc.) pertaining to computer science
68-02 Research exposition (monographs, survey articles) pertaining to computer science
Full Text: DOI