Home Page  
ENTERPRISE JAVA
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.

    Click for ---> Service Delivery Process!
    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.