Java Platform Enterprise Edition Implementation Computer Science Essay

Published:

Describe the Java EE platform in detail. What makes an application server Java EE compliant? Describe the importance of the separation of web containers, EJB containers and integration layers in this platform. How is an n-tier distributed model afforded by the Java EE platform? What types of user-facing client interfaces are typically used with this platform? Consider scalability, transactional context, security, application software structure, packaging and deployment requirements in your discussion. Briefly describe how this platform compare and contrasts with Microsoft's .NET platform?

Java Platform, Enterprise Edition (Java EE) 6 is the industry standard for enterprise Java computing.

Java Enterprise Edition is a robust software platform for enterprise development. It was created with distributed systems in mind. It uses Remote Method Invocation in distributed environment. Web services use Java Messaging Services (JMS) for sending messages.

Java EE is a collection of APIs that are used to build component-based multi tier applications.

Lady using a tablet
Lady using a tablet

Professional

Essay Writers

Lady Using Tablet

Get your grade
or your money back

using our Essay Writing Service!

Essay Writing Service

Java EE is an extension to Java SE. This platform allows enterprise applications to span across multiple tiers to achieve the following:

Develop presentation layers,

Implement business logic,

Access data,

Communicate with interfacing systems.

Application written using Java EE services is portable across application servers.

The latest release of Java EE 6 added new significant technologies thus simplifying and extending the usability of Java EE platform.

Java EE is in itself a set of specifications which are implemented by different containers. Containers are nothing but Java EE runtime environments. They provide life cycle management, object persistence, transaction, security, dependency injection, etc. to the components.

Java EE is an extension of the Java SE platform.

The Java EE runtime environment defines following components:

"Applets are GUI applications that are executed in a web browser. They are implemented using Swing API to provide user interfaces." [1]

These applications are GUIs executed on client side. They are have access to the middle tier.

Web applications are executed in web container. They are made up of servlets, web event listeners, JSPs and JSFs, and respond to HTTP requests.

Enterprise Java Beans are server side components that enable distributed, portable, secured and transactional applications based on Java EE specifications.

Below is the diagram describing various runtime components and services of Java EE:

Fig 1: Services provided by Java EE:

(Reference: Beginning Javaâ„¢ EE 6 Platform with GlassFishâ„¢ 3 From Novice to Professional)

Java EE 6 implements the concept of annotations, POJO programming, and the configuration-by-exception mechanism in all its tiers.

Transaction, security, stateful components, object persistence, dependency injection, etc are implemented by various commercial or open source frameworks like WebLogic, MQSeries, GlassFish, JBoss, Hibernate, etc.

Components are packaged in a standard format archive before deploying in a container. Java SE defines Java Archive (jar) files. EJB module contains session and/or message driven beans (MDBs) packaged in a EJB jar files.

A web application module is made up of servlets, JSPs, JSF pages, and web services, as well as HTML and XHTML, CSS, Java Scripts, images, etc. All these artifacts are packaged in a jar file with a .war extension called as Web Archive.

PRESENTATION

Java Server Faces (JSF)

Pages and Components

Processing and Navigation

BUSINESS LOGIC

Enterprise Java Beans

Session Beans

Callbacks and Interceptors

Transaction and Security

INTEROPERABILITY

Sending Messages

SOAP Web Services

RESTful Web Services

PERSISTENCE

Java Persistence

Object-Relational Mapping

Managing Persistent Objects

Callbacks and Listeners

Fig 2: Java EE 6 services can be categorized in the respective tiers as follows:

(Reference: Beginning Javaâ„¢ EE 6 Platform with GlassFishâ„¢ 3 From Novice to Professional)

What makes an application server Java EE compliant?

Java EE 6 is an umbrella specification defined by JSR 316 that contains 28 other specifications. An application server that aims to be Java EE 6 compliant has to implement all these specifications.

Java Enterprise Edition Specification:

Specification

Version

Java EE

6

Web Services Specifications:

Specification

Version

JAX-RPC

1.1

JAX-WS

2.2

JAXB

2.2

JAXM

1.0

StAX

Lady using a tablet
Lady using a tablet

Comprehensive

Writing Services

Lady Using Tablet

Plagiarism-free
Always on Time

Marked to Standard

Order Now

1.0

Web Services

1.2

Web Services Metadata

1.1

JAX-RS

1.0

JAXR

1.1

Web Specifications:

Specification

Version

JSF

2.0

JSP

2.2

JSTL (JavaServer Pages Standard)

1.2

Servlet

3.0

Expression Language

1.2

Enterprise Specifications:

Specification

Version

EJB

3.1

JAF

1.1

JavaMail

1.4

JCA

1.6

JMS

1.1

JPA

2.0

JTA

1.1

Management, Security, and Other Specifications:

Specification

Version

JACC

1.1

Bean Validation

1.0

Common Annotations

1.0

Java EE Application Deployment

1.2

Java EE Management

1.1

Java Authentication Service Provider Interface for Containers

1.0

Debugging Support for Other Languages

1.0

Web Profile 1.0 Specifications:

Specification

Version

JSR

JSF

2.0

314

JSP

2.2

245

JSTL

1.2

52

Servlet 3.0 315

3.0

315

Expression Language

1.2

 

EJB Lite

3.1

318

JPA

2.0

317

JTA

1.1

907

Common Annotations

1.0

250

Please refer to below link for more details on Java EE 6 specification and JSR 316:

http://www.jcp.org/en/jsr/summary?id=316

Describe the importance of the separation of web containers, EJB containers and integration layers in this platform.

Separation of containers facilitates simplification of development and deployment. Separation of containers is a good design practice. This means a JSF application will be deployed in web container and not in an EJB container. Further changes pertaining to a specific container becomes easy as we need not change the entire design.

EJB containers are more complex to develop and deploy hence these containers should only be used wherever required.

Integration layer facilitates a common platform for the Java EE components to interact in a loosely coupled manner.

Benefits:

Simple to make future changes.

Reusability.

Each area can be concentrated on separately and doesn't require simultaneous development.

They are easy to maintain, to scale. They are loosely coupled and easy to manage.

Manageability: Every tier can be managed and upgraded independently. Different people can have with defined responsibilities.

Scalability: Horizontal scaling can be implemented i.e. more hardware can be added and clustering can be implemented.

Maintainability: Since components are loosely coupled, changes and upgrades can be performed independently.

Availability: Clustering and load balancing can provide high availability.

Extensibility: Additional features can be easily added.

Security: Each tier/component can implement security framework and hence make the application more secured using security roles and deployment descriptors. Further JVM also supports security through code management, class loader and security manager. Java security employs concept of sandbox.

How is an n-tier distributed model afforded by the Java EE platform?

Applets, HTML, JavaScript, Application Server, etc

Client Tier

Presentation Tier: CSS, GIF Files, etc. (Static Content)

JSF, Servlets, Tag Library and other UI elements (CSS, GIF, etc)

EJB, Java Classes, Business Objects, etc

JMS, JDBC, Connectors (JCA) and Legacy

Middle Tier

Web Server

Application Server

Data Tier

(XML, RDBMS)

Database, CRM Systems, Legacy Systems, etc.

Fig 3: J2EE Tiers

(Reference: http://allu.wordpress.com/2007/08/18/j2ee-3-tier-or-n-tier-architecture/)

Java EE is a collection of APIs that are used to build component-based multi tier applications.

As shown above, Java EE components can be built and deployed across various tiers of n-tier architecture and hence derives all the benefits of n-tier architecture.

What types of user-facing client interfaces are typically used with this platform?

The following components are being used in the client interfaces/client tier:

Applets - Java Swing.

Web

Servlets

JSP

JSF

Java EE based framework like Struts, Spring, etc.

Briefly describe how this platform compares and contrasts with Microsoft's .NET platform?

.NET

J2EE

Middleware vendors

Microsoft

Multiple

Interpreter

CLR

JRE

Dynamic pages

ASP.NET

JSP

Middle tier components

.NET managed components

EJB

Lady using a tablet
Lady using a tablet

This Essay is

a Student's Work

Lady Using Tablet

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Examples of our work

Database access

ADO.NET

JDBC, SQL/J

SOAP, WSDL, UDDI

Yes

Partial implementations

Load balancing etc

Yes

Yes

Speed of development

Religious wars over different development environments, support frameworks, etc. Developer skill & familiarity is key issue.

To some degree, Microsoft has excelled at development environments where J2EE platforms have excelled at platform support (scalability etc)

Vendor independence

More assured with J2EE, but only if vendor-specific extensions are avoided.

Legacy integration

JMS & JCA offer scope for independent vendors. MSMQ, BizTalk do similar from .NET perspective.

Maturity

J2EE now a mature general platform, but .NET vision for web services is more advanced.

Platform support

J2EE supports multiple h/w & o/s platforms. .NET doesn't.

Scalability

.NET platform supports Win 32. Hence as compared to J2EE deployment, large no. of machines is required for deployment due to processor limits.

The large number of machines may be difficult for organizations to maintain.

Security

The CLR and base classes handles security functions in large part in .Net framework.

Security is a part of Java EE specification document. It specifies the details of security management and its architecture.

Although the two platforms complement each other in the form of architecture and component/services, there is much fundamental difference in the way the two platforms evolved and adopted. The programming languages of both the platforms (Java and C#) have lot of things in common that includes the core API.