Chapter 1: Introduction from Enterprise Curl, by Prentice Hall
Enterprise Curl: Introduction
Welcome and Purpose
This is an advanced level handbook intended for system architects, Web developers, and project managers looking for advice on developing full-featured enterprise applications written in Curl.
A word of warning, though; this book is not a beginner’s introduction to the Curl language, distributed application architecture, or development. These topics are covered in great detail elsewhere by other authors and journals, and it is outside the scope of this book to attempt to explain these subjects. Where necessary, I will describe the approaches and patterns used, but for the basis of this book, I will assume that you either are already familiar with these subjects, or will make use of the references I will provide to resources I have found useful.
Since the beginning of 2000, the business world has experienced an increased attention and awareness of a potential paradigm shift in the world of Internet applications. The research organizations, Gartner and Forester among others, have been talking about the need for a move away from a page-based Internet to one where small executable applications may be deployed and run locally. For such a technology to be successful, it must be based on requiring low bandwidths, using the local client computer processor, and employing far more usable, intuitive, and flexible desktop-style applications.
The current marketplace has a handful of competing technology offerings, but none are as well positioned as Curl. This language has been in development since 1995 at Massachusetts Institute of Technology (MIT). Computer scientists at MIT were awarded a grant by the U.S. Defense Advanced Research Project Agency (DARPA) to “develop the next generation of communication and computation software.” Curl has been built from the ground up to solve the problem of creating feature-rich Web-based applications.
This book takes the form of a case study, showing you how to develop both a framework that consists of powerful, reusable modules of typical application functionality, and then a working application based on this framework. Each chapter builds on the previous one, resulting in a fully functional system.
The objective of this book is to take you from your current basic or intermediate understanding of the Curl language and its syntax, gained from the Help documentation or introductory books, and introduce you to the concepts and design patterns associated with creating your first fully-featured, enterprise-ready Curl application.
Where We Are Today
It is important to take a quick look back at the software industry, particularly at the architectural solutions used in the past, and trace how they evolved to the Web application model used in 2002. If nothing else, this may provide valuable material to help argue your case for recommending the use of Curl within your organization!
In the 1970s applications running in large corporations typically ran on a mainframe model. In this scheme, a central machine acted as the processing center, data store, and user interface generator for a large number of dispersed internal clients. These were purely “dumb” terminals; they had no local processing power and only acted to display a screen to a user. These terminals enabled the user to review information and enter application instructions to continue functional processing. Corporations embraced this architecture because they could start utilizing the computational powers of these machines to provide better customer service and have an organized approach to managing the data in their business. However, the mainframe model was extremely costly, and this cost represented a significant barrier of entry for smaller firms.
Figure 1–1 illustrates the architecture of a mainframe application.
Created: May 2, 2003
Revised: May 2, 2003