Book Review: The Apache Modules Book - Chapters Two Through Five (
Page 2 of 4 )
Chapter two looks at the architecture of Apache and the platform with respect to application programming; it describes in great detail the different operational phases of Apache, what MPMs are and how they interact with the platform. It discusses the basic concepts and structures of the server, looks at some of the configuration basics and gives an overview of how requests are processed by the server. Again, this chapter serves as an introduction to bring you up to speed with how the server works, but unlike chapter one, there are detailed examples of the underlying code of some of the Apache header files, which is a helpful start for people that have only a basic understanding of Apache.
Chapter three delves into the Apache Portable Runtime (APR), which provides a portable, platform-independent layer for applications. APR modules consist of APIs and implementations of the functions contained in the API, and provide a useful abstraction layer between the applications programmer and the native system. Each of the APR functions are listed and described in detail, often with basic examples of use. Information is also provided here that describes processes such as memory management and resource pooling, buckets and brigades and the database module.
Chapter four moves on to discuss programming techniques and best practices that should be used when developing custom Apache modules. This is another scenario-based chapter in which points that are made are reinforced with code examples. The information in these three chapters gives you the foundation you'll need before beginning modular application development using Apache as a platform. This is a complex subject and at least a fundamental understanding of C is required. Without the information in the first few chapters a lot of the examples later in the book wouldn't make sense, so it's great that Nick included this kind of information for newcomers to the field.
Chapter five sees the creation of an actual module that is used and executed by Apache. No programming manual that introduces developers to a new language or platform would be complete without the Hello World! application, so it's great to see this tradition continued here. Where the preceding chapters were a little complex in places, with some of the examples and topics referring to advanced features and practices, it's refreshing to come back to a chapter that serves as a beginning and where the examples require a little less brain power to follow.