Web Service Development Tools Computer Science Essay

Published: Last Edited:

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

With the rising interest to Web service, the development of Web Service became another concern. To meet the demand and facilitate Web Service development many Web Service Development Tools evolved. This part of the document presents a survey of the current Web Service Development Tools such as J2EE.


Java 2 Platform, Enterprise Edition (J2EE), refer to a group of technology, framework, specification, etc. which are use for building distributed system and it do not refer to any specific language. The Java platform can be classified into the following structure

The Java 2 Platform, Micro Edition (J2ME) which is use mostly in conjunction with lower-end device such as mobile device.

The Java 2 Platform, Standard Edition (J2SE) which is primarily use on desktop machine or laptop (Netbook, Notebook)

The Java 2 Platform, Enterprise Edition (J2EE) which is use on workstation or server.

J2EE comprise a number of programming and scripting language including Java, XML, JSP, HTML, and SQL amongst other. The advantages of Java include cross-platform portability, availability of open-source libraries, a huge server-side deployment, and coverage for most W3C standard.

J2EE is a programming platform which is platform-independent. It is mainly use for developing, building, deploying and running the distributed multi-tier architecture web-based enterprise application.

This technology allows the developer to create an enterprise application that is portable between platforms and scalable, while integrating with legacy technology.

J2EE Architecture

J2EE consist of a set of service, protocol and several API such as JDBC, RPC, client-side applets for developing multi-tiered.

For client side, J2EE support HTML, as well as Java applet or application. Servlet code to create HTML or other formatted date to the client.

The Java servlet API enhances consistency for developer without require a graphical user interface.

JavaServer Pages (JSPs): JavaServer Pages are used to generate dynamic content for web browsers similar to HTML.

Servlet: Servlet are use in conjunction with JSP’s in order to build control and navigation logic into J2EE application, while following a Model-View-Controller design pattern.

Enterprise JavaBeans (EJBs): These form the mainstay of the J2EE platform and are mainly of two types â€" the session beans which are used to model business logic and the entity beans that model persistent data. EJBs provide transparent scaling, a security framework, a transaction model, and a container-managed life cycle. It provides another layer where the platform logic is store. An EJB server provides function such as threading, concurrency, security and memory management. These services are transparent to the user.

Java Connectivity Architecture (JCA): This allows Java enterprise applications to interface with existing non-Java enterprise applications such as SAP.

Java Message Service (JMS): It is use to provide asynchronous messaging capabilities to the J2EE platform.

Java Management Extensions (JMX): It is used in the management of J2EE server and application.

Java Naming and Directory Interface (JNDI): An integral part of the J2EE platform, this provide standard access to a directory service resource such as LDAP or Novell Directory Service and component location transparency in a clustered J2EE environment.

Although the following components are technically part of J2SE, they prove important for J2EE application as well:

Java Database Connectivity (JDBC): The java database connectivity API provide connectivity to relational database system equivalent to ODBC, the standard interface for Java database. It is use to handle all database input/output through SQL.

The Virtual Machine: It can be run in server mode to better profile long-running application with stringent requirement for thread and memory management. The VM has addressed most of the initial concerns about J2EE's performance.

RMI â€" The Remote Method Invocation allows methods to be called on remote, distributed Java objects as if they were local. It is the primary mechanism used by the Enterprise JavaBeans framework for inter-process method invocation.

Normally, thin-client multi-tiered application are hard to write because they involve many line of code to handle transaction and state management, resource pooling, and multithreading. The platform-independent and component-based J2EE architecture make J2EE application easy to write because business logic is organize into reusable component. Moreover, the J2EE server provides underlying service in the form of a container, which is an interface between a component and the low-level platform-specific functionality that support the component for every component type.

Application Architecture

The presentation layer can be built using servlet and JSPs which incorporate code along with HTML. The business logic is implemented by session beans which can either be stateless or stateful. The entity beans are then use to communicate with a relational database.

HTML generation

HTML for J2EE application is generated by servlet and JSPs whose container include such features as session state, a security framework, and configuration. Tag libraries allow the developer to cleanly separate presentation code from control and business logic and also make the JSPs readable to HTML coders. The used of JavaServer Face aim to extend JSPs to allow developer to specify user interface component, event handling for HTML widget, data validation, and navigation, which are currently handle by presentation framework such as Struts.


Transaction is a mean for developer to provide system with atomicity, consistency, isolation, and durability, which ensure that the system data is coherent in case of error.

There is a choice for developer to either explicitly code transaction management that is user define or manual, else specify the require behavior and hand off the management to the container.

Calling remote object

Location transparency is a core J2EE feature. JNDI find server-side component such as EJBs or JMS Queue, which, if running in a clustered environment, may or may not reside in the same VM. In practical term, most application server attempt to keep communicating EJBs in the same VM to minimize network traffic and the associate marshaling overhead. The developer can enforce in VM execution with local interface.

Data Access

All business logic application revolve around their data, often store in multiple, heterogeneous data store. Both technologies provide data access and persistence strategies:

Two main type of entity beans are use to model persistent data which are container-manage and bean-manage. Both allow developer to use container-provide service such as transaction management, a persistence framework with intelligent database update and caching, and a security framework, as well as scalability and fault tolerance.

Execution Engine

Java source code compiles into machine-independent byte code, which the JVM interpret at runtime. As a result, the particular install JVM proves crucial to performance and scalability. As it name suggest, HotSpot look for repeatedly execute code section, then intensively optimize them. In addition to great scalability and performance; it also supplies the standard configurable security model for code loading and execution. Also, Java JVM made use of their host machines strength. For example, JVM optimize for Solaris will take advantage of that operating system special feature, such as thread management.

Cross-platform portability

J2EE offer complete cross-platform portability. If a JDK exist for your target platform, then J2EE can run on it. The ability to support Window and mainframe and everything in between represent a big J2EE attraction.


The J2EE security architecture is define as part of the platform specification document. It detail security management role, and specifies goal of the security architecture, but do not specify security policy or implementation detail (such as the use of a particular security technology to meet the described goal)

Language support

This is in direct contrast to the previous criteria. Currently, only Java is support. In order to use another language, an interface technology like the Java Native Interface (JNI) or web service need to be use.

Tool support

Java feature a plethora of tool, which is both good and bad: the developer has a great deal of choice, but might have difficulty choosing the right tool for a given job, such as choosing the best working IDE from numerous options. Support for debugging is good via the Java Platform Debugging Architecture (JPDA), and the arrival of Ant and JUnit has given the Java community a standard build tool and unit testing framework, respectively.

Vendor support

Vendor support represents one of the major strongholds of J2EE. A wide variety of vendor offer numerous J2EE product.