Services Provided By Java Ee 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 enables applications to access data, apply business logic, add presentation layers, and communicate with external systems thus minimizing on cost.

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 a superset of the Java SE platform.

The Java EE runtime environment defines four types of components:

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

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 enables 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.

To be deployed in a container, components have first to be packaged in a standard formatted archive. Java SE defines Java Archive (jar) files. An EJB module contains one or more session and/or message-driven beans (MDBs) packaged in a jar file (often called an EJB jar file). A web application module contains servlets, JSPs, JSF pages, and web services, as well as any other web-related files (HTML and XHTML pages, Cascading Style Sheets (CSS), Java-Scripts, images, videos, and so on). Since Java EE 6, a web application module can also contain EJB Lite beans (a subset of the EJB API described in Chapter 6). All these artifacts are packaged in a jar file with a .war extension (commonly referred to as a war file, or a 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:

Lady using a tablet
Lady using a tablet

Comprehensive

Writing Services

Lady Using Tablet

Plagiarism-free
Always on Time

Marked to Standard

Order Now

Specification

Version

JSR

Java EE

6

316

Web Services Specifications:

Specification

Version

JSR

JAX-RPC

1.1

101

JAX-WS

2.2

224

JAXB

2.2

222

JAXM

1.0

67

StAX

1.0

173

Web Services

1.2

109

Web Services Metadata

1.1

181

JAX-RS

1.0

311

JAXR

1.1

93

Web Specifications:

Specification

Version

JSR

JSF

2.0

314

JSP

2.2

245

JSTL (JavaServer Pages Standard)

1.2

52

Servlet

3.0

315

Expression Language

1.2

245

Enterprise Specifications:

Specification

Version

JSR

EJB

3.1

318

JAF

1.1

925

JavaMail

1.4

919

JCA

1.6

322

JMS

1.1

914

JPA

2.0

317

JTA

1.1

907

Management, Security, and Other Specifications:

Specification

Version

JSR

JACC

1.1

115

Bean Validation

1.0

303

Common Annotations

1.0

250

Java EE Application Deployment

1.2

88

Java EE Management

1.1

77

Java Authentication Service Provider Interface for Containers

1.0

196

Debugging Support for Other Languages

1.0

45

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: Changes and upgrades can be performed without affecting other components.

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 derive all the benefits of a 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.

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

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?

Microsoft .NET framework is made up of:

C#

Common Language Runtime (CLR)

ASP.Net, Web Forms

ADO.Net

.Net Remoting

MSMQ

PInvoke/COM Interop

Assemblies

Java EE platform is made up of:

Java language

Java Virtual Machine/Java Runtime Environment (JVM/JRE)

JSP/Servlets

EJB

JDBC

RMI

JMS

JNI

JAR/WAR/EAR

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.

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:

Microsoft .Net:

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

CLR uses several criteria to determine the security permissions of executing code and some security information is obtained from XML files.

The base classes determine the permissions of the caller thus controlling access to resources like file system, etc.

Java EE Security:

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