services. The following middleware frameworks are commonly used to build
large-scale distributed systems.
Java 2 Enterprise Edition (J2EE) (Sun Microsystems 2000) is a middle-
ware framework specifically designed for developing enterprise applications. It
builds on the Enterprise Java Beans (EJB) component-based technology,
whose basic concept is the EJB Container, a database management appli-
cation that provides persistence and transaction services to the enterprise
beans. There are two types of enterprise beans. Session beans offer services on
demand to the container's clients and are usually stateless. Entity beans
represent data maintained in a database and are persistent. The J2EE platform
is structured as three-tier architecture. In reality, the middle tier is made up
of two distinct but tightly coupled tiers: the web tier and the business tier.
The client tier typically consists of a web browser or a standalone appli-
cation that displays information and collects data from the users. Web
clients interact through the HTTP protocol with the web tier exchanging
XML data, while standalone clients interact with the EJB containers of the
business tier through the RMI mechanism.
The web tier manages the dynamic content creation of the web pages
available to the web clients. Servlets map JavaBeans components to the
HTML presentation format.
The business tier hosts the EJB components that implement application-
specific business logic. It represents the core J2EE infrastructure
implementing system-level services such as transaction management,
concurrency control and security.
The server tier builds on the J2EE Connector Architecture, which is the
bridge between the business tier and heterogeneous enterprise informa-
tion systems such as enterprise resource planning, mainframe transaction
processing and database systems.
The Common Object Request Broker Architecture (CORBA) (Vinoski
1997) is a standard for distributed middleware defined by the Object
Management Group (OMG) (www.omg.org), a consortium of more than 700
organizations including software industry leaders such as Sun, HP, IBM,
Microsoft and Rational. This architecture has reached a good level of
maturity and is now implemented in more than ten commercial products.
The basic component of the architecture is the object request broker
(ORB), which should be installed on each connected host. The ORB uses the
stub-skeleton mechanism for remote communication between client and
server objects. The stub and the skeleton of a server object are generated at
compile time from a declarative specification of the server's interface in the
language-neutral interface definition language (IDL). The interface describes
which methods the server object supports, which events the object can
trigger, and which exceptions the object raises. The server object can be
implemented in any programming language (C, C!!, Java, etc.). The ORB
installed on the server side is in charge of translating the incoming IDL
service requests from remote clients into the server's method invocations.