Każdy jest innym i nikt sobą samym.

The environment is extensive and covers almost every part of the enterprise space. At the same time, the capabilities are not limited to the enterprise application; you can use them in any type of application.
We have covered the following areas of J2EE in this chapter:
An introduction to the concepts involved in developing an enterprise application.

The new capabilities the J2EE specification introduces to the Java programming environment.

How to set up your own programming environment to start programming with J2EE.

17
Chapter 2: Introducing Enterprise Applications
Overview
To complement Chapter 1, we will now take an extended look at the types of applications you will find in an enterprise setting. Specifically for the newcomer to enterprise programming, this chapter will outline the basic structure and architecture of a number of standard application types. This should enable you to decide on the right approach early on, and then focus on tweaking the standard model to fit your particular needs.
It is often hard to classify an application as belonging to a single design style. When you look at the goal of your project, you will probably find that you need more than one application to do the job. Not all the applications will belong to the same classification we discuss in this chapter. When building a new system, you will probably need to build a number of applications — with at least one from each of these classifications. And, depending on your perspective, that application will fall into one of two categories: business−to−consumer or business−to−business.
Something else to keep in mind is that what we are calling an "application" here is probably not what you are used to thinking of as an application in traditional software engineering. An application may in fact be a number of identifiably individual processes all occurring simultaneously in the traditional sense. For example, a Web site that offers a catalogue and online purchasing system would have two separate servlets running inside the Web server. These are two separate processes not linked in the traditional application sense, but they use a common internal middleware piece. Building enterprise−type applications requires you to rethink your traditional guidelines and terminology.
In this chapter, we will introduce the basic architectures used by each of the application types. While these should be taken as a good guide on the highest level of architecture design, you should also consider how you could modify these architectures to deal with your own particular situation. Once you feel comfortable with these breakdowns, you may wish to wander off to Chapter 24 for further discussions.
As you read through these examples, you will notice a single recurring theme — almost without fail, there is a database at the center of every enterprise application. Why? Well, an enterprise has to keep a lot of information. This information has to be accessed quickly, sorted, examined, and used to keep track of what the business is doing in every fundamental way. When someone places an order online, you need to know that he or she has placed the order and how much the order was for (so you can work out how much profit you're making), and then you need to send on the relevant information to downstream systems. You need a permanent store of information about every single thing the business does. The best method of doing this is with a database.
Note In most cases, a database is really a relational database such as Oracle or Informix. Here we try not to treat them as specifically relational but instead to be more open−minded about the correct solution for any given problem. However, that said, by far the majority of database−driven applications are relational and use SQL to interface with the databases, so we spend quite some time dealing with them in Part III,
"Finding Things with Databases and Searches."
Business−to−Consumer Applications
18
Chapter 2: Introducing Enterprise Applications