Enterprise Application Model
Java Technology Foundation
Security
The Middle Layer
Client Layer
J2EE Enterprise Application Platform
Java Technology Standards
Enterprises today need to extend their reach, reduce their costs, and lower their response times by providing
easy-to-access services to their customers, partners, employees, and suppliers.
Typically, applications that provide these services must combine existing enterprise legacy systems or more
commonly called enterprise information systems (EIS) with new business functions that deliver enterprise services
to a vast variety of users. To deliver the promise, these enterprise services should contain:
Reliability & Scalability, insuring accuracy processing business transactions.
High availability, a must have in today’s global business environment.
Secure architecture, protecting client privacy without comprimising the integrity of enterprise data.
These services are generally designed as distributed applications consisting of several tiers, including clients on
the front end (client layer), data resources on the back end (legacy layer), and one or more middle tiers between them
(middle layer). At the middle layer where the majority of the application development work is done. The middle layer
implements the new services that integrate existing EISs with the business functions and data of the new service. The
middle tier shields the client tier from the complexities of the enterprise and takes advantage of rapidly maturing Internet
technologies to minimize communication costs, user administration and training.
Enterprise applications reduce the cost and complexity of developing these multi-tier services, resulting in services that
can be rapidly deployed and easily enhanced as the enterprise responds to ever changing competitive pressures.
Enterprise applications achieve these benefits by defining a standard architecture that is delivered as Enterprise Application
Model (Standard application model for developing multi-tier, thin-client applications) and Enterprise Application
Platform (Standard platform for hosting enterprise applications, specified as a set of required APIs and policies).
The following sections of this document describe each of these elements in greater detail.
|
Enterprise Application Model |
Originally, the two-tier, client-server application model promised improved scalability and functionality. Unfortunately, the
complexity of delivering EIS services directly to every user and the administrative problems caused by installing and maintaining
business logic on every user machine have proved to be major limitations. With these client-server model, ever changing
business conditions and logic required enormous maintenance efforts and costs. Supporting such different layers of applications
and potentially accessing data from a vast variety of sources and distributing it to multitude of clients proved to be inherently
complex, costly and time consuming.
These inherent limitations of client-server architecture (two-tier) are avoided by implementing enterprise services as
multi-tier applications. Multi-tier applications provide the increased accessibility that is now demanded by all elements of an
enterprise. A multi-tier Enterprise Application Model should be designed to support applications that implement the enterprise
services for enterprise's business actors, to name a few: customers, employees, suppliers, partners, and others who make
demands on or contributions to the enterprise. As depicted in Figure-1, this strategic
shift in enterprise backbode is driving major investments in the development of the middle-tier software.
To better control and manage the enterprise data, applications, and the business functions to support vast variety of users
are conducted in the middle layer. The middle layer represents an environment that is closely controlled by an enterprise's information
technology department. The middle layer is typically run on dedicated server hardware and has access to the full services of the
enterprise.
Enterprise applications often rely on the EIS-Tier to store the enterprise's business-critical data. This data and the systems
that manage it are at the inner-core of the enterprise.
 |
Figure-1 Two-Tier vs Multi-Tier Enterprise Application Models
|
Developing multi-tier services has been complicated by the need to develop both the service's business function and the
more complex infrastructure code required to access databases and other system resources. Because each multi-tier server
product had its own application model, it was difficult to hire and train an experienced development staff. In addition, as service
volume increased it was often necessary to change the whole multi-tier infrastructure, resulting in major porting costs and
delays.
Enterprise Application Model defines a multi-tier architecture for implementing enterprise services that avoid problems
associated with client-server model while delivering much needed scalability, accessibility, and manageability.
An important goal of the Enterprise Application Model is to minimize application programming. This is accomplished by
shifting the burden of implementing common tasks from developers to the Enterprise Application Patform. These common tasks
include enforcing an application’s security roles, implementing its transaction semantics, and linking its components to the
resources and other components they require. Enterprise application model partitions the work needed to implement a multi-tier
service into two parts: the business and presentation logic to be implemented by the developer, and the standard system services
provided by the enterprise application platform. The developer can rely on the platform to provide the solutions for the hard
systems-level problems of developing a middle-tier service.
|
Java Technology Foundation & J2EE |
The Java 2 Enterprise Edition (J2EE) application platform provides the benefits of Enterprise Application Model, at the same
time it provides the Write Once, Run Anywhere(tm) portability and scalability for multi-tier applications. This standard model minimizes
the cost of developer training while providing the enterprise with a broad choice of J2EE servers and development tools. The J2EE
application model is a major step forward in simplifying and expediting application development, by minimizing the complexity of
building multi-tier applications.
J2EE application model begins with the Java programming language and the Java virtual machine. With proven portability,
security, and developer productivity, Java environment provide the basis of the enterprise application model.
The application model also includes the JavaBeans(tm) component model. JavaBeans components make it easy to componentize
the Java technology-based code for common functions, then customize and combine these components visually with JavaBeans
development tools.
|
Security |
While two-tier client-server application models require platform-specific security measures in each application, enterprise
application platform's security environment enables security constraints to be defined at deployment time. By shielding applications
from the complexity of implementing security, the enterprise application platform makes them portable to a wide variety of security
implementations.
J2EE platform defines standard declarative access control rules to be defined by the application programmer/assembler and
interpreted when the application is deployed on the enterprise platform. It also requires platform vendors to supply standard login
mechanisms so applications do not have to incorporate these mechanisms into their logic. The same program works in a variety of
different security environments without change to the source code.
As an example, an enterprise application developer can specify several levels of security (say user, super-user, and administrator),
then write code to check the current user's permission level when accessing secure operations. At deployment time, the Application
Deployer assigns groups of users to the appropriate security levels, enabling the application to easily verify permission level before
performing the restricted operations.
|
The Middle Layer |
The major benefit of the enterprise application model is in the middle layers of multi-tier applications. In the enterprise application
platform, middle-tier business functions are implemented as Enterprise JavaBean(tm) (EJB) components, as shown in
Figure-2 These enterprise beans allow service developers to concentrate on the business logic and let the EJB server
handle the complexities of delivering a reliable, scalable service. JavaServer Pages(tm) (JSP) technology and Java servlets present
middle-tier functions to the client tier as simple-to-access Internet-style services.
 |
Figure-2 EJB Components Implement Business Logic in the Middle Layer
|
In multi-tiered enterprise platforms, implementation of middle tier is greatly scalable. Almost all enterprise platforms, it makes
sense to separate the business logic layer from the presentation layer. As seen in Figure-3, separating the business
layer from the complexities of dealing with constantly changing client layer (HTTP clients, wireless devices, Java programs, applets,
etc.) without effecting the performance and/or integrity of the business logic. This strategy allows business logic layer to concentrate
on enterprise rules with a clear vision of the business itself.
 |
Figure-3 Middle Tier Scalability
|
|
Client Layer |
Enterprise application platform supports variety of clients. Many enterprise services can be designed to support web browser
clients interacting with clients via dynamically generated HTML pages and forms. Different and more sophisticated services can
interact with the clients by directly exchanging business data. Here, Java Server Pages (JSP) and JavaServlets are used to format
enterprise business data in a way that is easy for clients to work with. JSP technology makes it easy for developers to present
dynamically generated user interface pages to any client with a browser. Java Servlets give more sophisticated developers of
Java technology-based applications the freedom to implement dynamic presentations completely in the Java programming language.
In addition, clients can be both Java applets running in a web browser and Java technology-based programs.
Again, it is important to note that security is an integral part of all multi-tiered enterprise services. In most cases, in an enterprise
application platform, security is handled almost entirely by the platform itself and the administrators without requiring developer written
security logic for the application services nor its clients.
Now, lets look at some of the most commonly used client types:
Web (HTML) Based Clients
A service can be presented directly to a user's web browser as dynamically generated HTML pages. JavaServer Pages technology
is an easy way to dynamically compose these pages using a familiar scripting paradigm that combines HTML and Java technology-based
code, as shown in Figure-4. In some cases, a service may require some fairly complex code. This can be handled by placing
code in a JavaBeans component and calling it from a JSP. A service can also be directly programmed in the Java programming language
using a Java servlet.
 |
Figure-4 Presenting Services Directly to a Web Client
|
XML & HTTP Content Based Clients
XML allows enterprises to define standard data formats for exchanging data between disparate heterogeneous systems. Data
formats are created by defining semantically rich tags that are able to describe the information they contain. In many respects the
J2EE platform provides a heterogeneous framework for deploying distributed applications, while XML provides a cross-platform
framework for manipulating information. It is often useful to provide functionality directly at the client that helps a user organize and
interact with the service's information. In this case, the service exchanges raw content with the client instead of HTML pages.
This content is typically in the form of XML documents that are exchanged between the client and the service using the HTTP protocol.
Typically this XML content can be handled in the client layer by JavaBeans components that are provided by the service in an applet
that is downloaded into a user's browser. Furthermore, the same XML content can be formatted by combination of JSP and XSLT
documents to create additional XML pages or presentation of enterprise data on Wireless devices (WML). As shown in Figure-5,
this flexible model provides the developer with a broad range of choices for presenting a distributed application's user interface on the
Internet.
 |
Figure-5 Combination of JSP and XML Technologies
|
Intranet Clients
Both HTML page based services and HTTP content based services can be effectively used on an enterprise's Intranet as well as the
Internet. In addition, the enterprise Intranet provides the extra infrastructure (high speed networks, etc.) that allows Java programs
to directly access EJBs within the intranet domain.
Other Client Types & Interoperability
Enterprise services presented via standard HTTP, HTML and XML are easily accessible to all clients including Microsoft products such
as Visual Basic and Office 200. One goal of Enterprise JavaBeans technology is to define CORBA standard RMI-IIOP as the required
interoperability mechanism. This will make any J2EE service available to any CORBA client, ensuring more complete integration between
the J2EE platform and existing enterprise information systems.
Sun Microsystems, in conjunction with J2EE, provides white papers and technology demonstrations that illustrate techniques for
integrating Microsoft COM objects with EJBs using RMI-IIOP. These whitepapers cover how to access EJBs from first-tier clients such
as Visual Basic and Windows 2000 via COM, as well as using EJBs in combination with middle-tier functions implemented in Microsoft
Transaction Server.
|
J2EE Enterprise Application Platform |
Btech Consulting Inc. uses the Java 2 Enterprise Edition (J2EE) platform by Sun Microsystems on Enterprise Relationship Management engagements, which is the standard environment for running J2EE applications. The J2EE platform is composed of the following standards:
Java technology standards for the J2EE platform - a set of standards that all J2EE platform products must support.
IETF standards for the J2EE platform - a set of standards defined by the Internet Engineering Task Force that all J2EE platform products must support.
CORBA standards for the J2EE platform - a set of CORBA standards upon which the J2EE platform bases its middle-tier interoperability.The J2EE platform defines the rich set of facilities that are needed to implement enterprise-class, multi-tier services. The J2EE platform is based on proven, open standards to deliver the broadest adoption and highest level of portability.
|
Java Technology Standards for the J2EE Platform |
The primary element of the J2EE platform is the list of Java technology standards that all J2EE products are required to support. Since the J2EE platform is focused on the end-to-end development of enterprise solutions, it goes beyond simply requiring that each Java API be supported. It requires that each API be fully integrated with the platform. This insures that the platform delivers a consistent end-to-end environment for the deployment of J2EE applications.
IETF Standards |
The emergence of the Internet has had a major impact on the way enterprise applications are developed. This revolution is
based on standards set by the Internet Engineering Task Force (IETF), including HTML, HTTP, and now XML, the Internet standard
for communicating structured data. The Java programming language, having grown up with IETF standards, has become the
preferred way of writing applications for them. The J2EE application model and the J2EE platform continue this trend. In its current
iteration, the J2EE platform supports HTML and HTTP clients, and can support XML clients. In addition, J2EE deployment descriptors
make use of XML to provide application information in a platform-independent way. Future versions of the J2EE platform will likely
define greater integration of XML for communicating data between tiers, thus further enhancing portability of J2EE applications.
|
CORBA Technology Standards |
The Object Management Group (OMG) in conjunction with Sun has produced the RMI-IIOP specification. This standard defines
how the CORBA IIOP protocol is used by the Java Remote Method Invocation (RMI) facility. The EJB specification uses the application
mapping for RMI-IIOP as its standard for calling EJBs. The J2EE platform strongly supports the use of RMI-IIOP. Sun is working closely
with the other OMG members on future directions involving EJB technology and CORBA.
|
|
API |
DESCRIPTION |
EJB |
The Enterprise JavaBeans API defines a server component model that provides portability
across application servers and implements automatic services on behalf of the application components. |
Servlets and JSP |
The Java Servlets and Java Server Pages APIs support dynamic HTML generation and session
management for browser clients. |
JNDI |
The Java Naming and Directory Interface API provides access to naming and directory services,
such as DNS, NDS, NIS+, LDAP, and COS Naming. |
RMI |
The Remote Method Invocation API creates remote interfaces for distributed computing on the
Java platform. |
JDBC |
The JDBC Database Access API provides uniform access to relational databases, such as DB2,
Informix, Oracle, SQL Server, and Sybase. |
JMS |
The Java Messaging Service API supports asynchronous communications through various
messaging systems, such as reliable queuing and publish-and-subscribe services. |
JTA |
The Java Transaction API provides a transaction demarcation API. |
JTS |
The Java Transaction Service API defines a distributed transaction management service based on
CORBA Object Transaction Service. |
Java IDL |
The Java Interface Definition Language API creates remote interfaces to support CORBA communication
in the Java platform. Java IDL includes an IDL compiler and a lightweight, replaceable ORB that supports IIOP. |
Enterprise Java APIs |
|
|
 |
 |
 |
ENTERPRISE JAVABEANS™ TECHNOLOGY |
Enterprise JavaBeans™ (EJB) technology is a fundamental software architecture that combines web technologies, distributed
architecture, and platform-independent development into a more effective way of designing, developing, deploying and maintaining
enterprise applications.
As the latest outgrowth of the Java technology-based development efforts, the Enterprise JavaBeans component architecture
combines the Java™ technology, JavaBeans™ components, Java servlets, and the Java Servlet Pages (JSP) technology. EJBs
are components that allow applications to communicate and collaborate across multi-tiered environments, and across common
structures like the Internet and Intranet. Together with Java, JavaBeans, Java servlets, and Java Server Pages, the EJB
technologies and EJB application framework may provide the most fundamental architectural change in enterprise software
development efforts in recent years.
Enterprise JavaBeans technology is applied when there is a need for distributed objects to communicate and collaborate with
each other across the networks without the associated limitations of client-server or the server-server architectures. EJB technology
enables enterprises to develop, implement, and benefit from multi-tier (also called as N-tier) architectures. Multi-tier architecture defined
as where pieces of an application, distributed across the client-tier, the middle-tier server(s), and the enterprise legacy systems or the
enterprise backend, perform together to partition business tasks.
|
|
EJBs & FUTURE |
Today we are witnessing the very important developments in standardization of the object-oriented programming
techniques and the emergence of the multi-tier applications. These developments will lead to multi-tier application
partition in the creation of distributed network applications.
As far as our current knowledge goes, every conceivable functionality can be created with Java and EJB technologies.
The older C/C++ technologies also provide the same flexible functionality. The difference between the C/C++ and Java/EJB
technologies is that enterprises can develop business functions considerably faster using Java and EJB technologies,
and have far fewer worries about memory leakage and pointer allocation errors that make C/C++ programmers waste
away their efforts. Furthermore, enterprise code can be used in a multi-vendor, heterogeneous environment because
of the platform independent structure of the Java and Enterprise JavaBeans technologies.
The usage of EJB technology have articulated the benefits seen and expected by the enterprise IT managers.
These include:
Reduction in the time that it takes to bring a new application to market, and at a lower cost
Shortening of the software revision cycle so that smaller, more incremental changes can be brought to market more quickly
Simplifying the tasks of creating and modeling business eliminating the need to implement backend functions like
transaction monitoring, messaging, and security maintenance.
Moving forward, we will see a mass progression toward EJB technology adoption by the enterprises as already
deployed enterprise applications bring down the development experience curve and associated development costs to
the point where top management will feel comfortable committing more and more resources to this technology.
Finally, in our judgment, both Java and EJB technologies will play vital role in the global distributed enterprise applications
for some time to come.
|
|