Introduction to Enterprise Application Development

An enterprise application is a business application, obviously. As most people use the term, it is a big business application. In today’s corporate environment, enterprise applications are complex, scalable, distributed, component-based, and mission-critical. They may be deployed on a variety of platforms across corporate networks, intranets, or the Internet. They are data-centric, user-friendly, and must meet stringent requirements for security, administration, and maintenance. In short, they are highly complex systems.

Designing and developing such enterprise applications means satisfying hundreds or thousands of separate requirements. What’s more, every development decision you make to satisfy each requirement affects many other requirements, often in ways that are difficult to understand or predict — and the failure to meet any of these requirements can mean the failure of the entire project!

The Enterprise Application Model introduced in this document gives you a way to look at the enterprise application "whole cloth," to bring some order out of this complexity. It organizes an application’s requirements into a small set of distinct but interdependent categories, and shows how each requirement interacts with the others. By balancing the effects of each design choice against all the other requirements, you can avoid the nasty shock of discovering too late that you’ve overlooked or underestimated some important design consideration. Later chapters will use this model to break up the complex task of enterprise development into a small set of more manageable sub-tasks.