Open Source Linux: Web Programming
Author: Christopher A. Jones and Drew Batchelor
Publisher: M&T Books, an imprint of IDG Books Worldwide, Inc.
Price: $39.99 US
Reviewer: Daniel Lazenby
The ability to create easily maintained and easily updated web applications is crucial in today's fast-changing, browser-centric world. Rapidly changing business demands drive the need for rapid web site content updates/changes. Competing artistic factors supply a constant challenge to keep the web site's visual design interesting. Seldom does one individual possess all the talents required to meet each of these challenges. Open Source Linux: Web Programming addresses these types of challenges.
In this book, the reader is guided through an extensible and scalable web application development methodology. The tools used to carry out the methodology include Perl, CGI, HTML and XML. The recommended methodology is based on object-oriented and decoupled functionality concepts. By the time you reach the book's end, you will have developed and examined a series of web applications that apply each design concept or programming convention.
The authors assume the reader possesses at least an intermediate level of experience with computing and programming technologies. With this framework, the book states the concept to be applied or the task to be performed. The rationale for why each concept or task is important is also presented. What you will not find is a list of the steps required to perform the tasks. Extending what you learn to your own applications is where the intermediate to advanced experience comes in. What's presented will generally get you up and running. Other resources are required if you want more specific details.
The book is divided into two sections, “The Modern Internet Application” and “Going Beyond Today's Internet Model”. The first section (and majority of the book) is devoted to programming an Internet application. Each chapter opens with a few paragraphs on what you are going to build and why the way it will be built is important. Systems or functionality programmed in one chapter is often the foundation for systems or additional functionality presented in later chapters. For those who dislike typing, all program listings are available on the CD-ROM.
The first section opens with a quick review of distributed systems and an introduction to the Apache HTTP server. In the chapter titled “Using Perl to Implement CGI on Linux”, the authors present just enough Perl for the reader to understand the forthcoming application programs. A simple Perl-based CGI module that analyzes Apache logs is programmed in this section.
The “Separating Content and Logic with Objects” chapter further explores a modular and dynamic web site design. Decomposing application content, program and business logic and presentation into objects are discussed. Techniques presented facilitate coding an easily maintained site-wide look and feel. Here, “easily maintained” means a non-programmer can update content and change graphics. These designs and techniques result in coding a simple on-line catalog application.
The next three chapters focus on using XML. “Using HTML to Create Well-Structured Objects” walks one through basic XML syntax and structure. Writing XML-driven CGI scripts that translate XML to HTML is the focus of the “Handling XML with a CGI Application Server” chapter. The discussion on XML continues in “Creating a Client-Based Web Content Administrator”. This chapter concludes with the coding of a Perl, CGI, HTML and XML web content administrator application. This application enables a non-technical person to update web page content. All the concepts and coding techniques presented in these chapters may be put to use today.
In the book's second section, the authors pause to look a short distance into the future. They then close the book out with two very critical subjects. This section's opening chapter discusses limitations and issues related to the stateless transaction nature of HTTP and CGI. The authors offer a rationale for moving to a state-based transaction and an open-source XML application server.
Chapter 9, “Developing Java Applets on Linux”, presents Java basics through the construction of simple Java applets. Chapter 10, “Creating a Java/XML Web Application”, pulls together previously presented design principles and techniques to code a network chat and whiteboard application.
The last two chapters cover error handling and web deployment applications. Poor error handling can easily destroy the user's experience. Poor site deployment can ruin the user's experience and negatively impact the application's post-implementation performance and maintainability. An error-handling system is constructed in the “Bulletproofing Your Site with Error Handling” chapter. As in the previous projects, the authors begin by applying object-oriented concepts to the error-handling system. In this example, they decouple error messages from the error codes. Both objects are decoupled from the error handler and the actions to be taken upon an error situation. Nothing stresses an application, or its implementation, more than a real user. Next to the user, nothing can cripple a web site faster than coding techniques incompatible with the implementation strategy.
The chapter entitled “Deploying Your Linux Web Application” reviews how implementation decisions can reach back and negate application development and coding decisions. This chapter briefly discusses the need to consider various factors affecting throughput, scalability, system resource consumption and the need to avoid vendor-specific language extensions. General guidelines for identifying bottleneck and bandwidth problems are suggested.
By the time you reach the end of this book, you will have explored conceptual constructs, models and tools you can use to develop web sites. These sites should be easier to deploy, update and maintain. More importantly, web site content changes will not always require programming expertise to implement.
Daniel Lazenby (firstname.lastname@example.org) first encountered UNIX in 1983 and discovered Linux in 1994.
Fast/Flexible Linux OS Recovery
On Demand Now
In this live one-hour webinar, learn how to enhance your existing backup strategies for complete disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible full-system recovery solution for UNIX and Linux systems.
Join Linux Journal's Shawn Powers and David Huffman, President/CEO, Storix, Inc.
Free to Linux Journal readers.Register Now!
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- Profiles and RC Files
- Astronomy for KDE
- Understanding Ceph and Its Place in the Market
- Maru OS Brings Debian to Your Phone
- OpenSwitch Finds a New Home
- Git 2.9 Released
- SoftMaker FreeOffice
- What's Our Next Fight?
- The Giant Zero, Part 0.x
With all the industry talk about the benefits of Linux on Power and all the performance advantages offered by its open architecture, you may be considering a move in that direction. If you are thinking about analytics, big data and cloud computing, you would be right to evaluate Power. The idea of using commodity x86 hardware and replacing it every three years is an outdated cost model. It doesn’t consider the total cost of ownership, and it doesn’t consider the advantage of real processing power, high-availability and multithreading like a demon.
This ebook takes a look at some of the practical applications of the Linux on Power platform and ways you might bring all the performance power of this open architecture to bear for your organization. There are no smoke and mirrors here—just hard, cold, empirical evidence provided by independent sources. I also consider some innovative ways Linux on Power will be used in the future.Get the Guide