InfoCenter Home >
4: Developing applications >
4.7: Java Clients >
4.7.3: Java thin application client programming model

4.7.3: Java thin application client programming model

The Java application thin client provides the user a light weight, downloadable Java application runtime that is capable of interacting with Enterprise Java Beans. This client is designed to support those users who want a light weight Java client application programming environment without the overhead of the J2EE platform on the client machine. The programming model for this client is heavily influenced by the CORBA programming model but supports access to Enterprise Java Beans. When accessing Enterprise Java Beans from this client, the EJB object references can be considered CORBA object references by the client application.

There is no tooling support for this client for developing, assembling or deploying the client application. The user is responsible for developing the client application, generating the necessary client bindings for the EJB and CORBA objects, and bundling these pieces together to be installed on the client machine.

Client side bindings for Enterprise Java Beans are generated during the deployment phase of J2EE development using the Application Assembly Tool. A Java application can utilize these bindings or you can generate client side bindings using the rmic command that is part of the IBM JDK installed with WebSphere Application Server. See article Packaging and distributing Java clients for more information.

The Java application thin client provides the necessary runtime to support the communication needs between the client and the server.

The Java application thin client makes use of the RMI-IIOP protocol. The use of this protocol enables the client application to access not only EJB references and CORBA object references, but it also allows the client application to make use of any supported CORBA services. Use of the RMI-IIOP protocol and the accessibility of CORBA services can assist a user in developing a client application that needs to access both EJB references and CORBA object references. When users combine the J2EE and CORBA environments in one client application, they need to understand the differences between the two programming models, and they must use and manage each appropriately.

The Java application thin client runtime provides the necessary support for the client application for object resolution, security, RAS and other services. However, it does not support a container that provides ease of use to these services. For instance, there is no support for the use of "nicknames" for EJB or local resource resolution. When resolving to an EJB (using either JNDI or CosNaming) the client application must know the location of the name server and the fully qualified name that was used when the reference was bound into the namespace. When resolving to a local resource, the client application cannot resolve to the resource through a JNDI lookup. Instead the client application must explicitly create the connection to the resource using the appropriate API (JDBC, JMS, etc.). This client does not perform any initialization of any of the services that the client application might require. For instance, the client application is responsible for the initialization of the naming service, either through CosNaming or JNDI.

The following table describes the advantages and disadvantages of the Java thin application client:

Advantages Disadvantages
  • A light-weight client suitable for download
  • Requires access to CosNaming or JNDI interfaces for EJB or CORBA object resolution
  • Designed for use in an intranet environment
  • Lack of client runtime initialization of environment and services
  • Lack of built-in support for local resource resolution and configuration
  • Does not promote portability of client application code
  • Requires distribution of the application to the client machine.

Go to previous article: J2EE application client classloading overview Go to next article: Developing a Java  application thin client

 

 
Go to previous article: J2EE application client classloading overview Go to next article: Developing a Java  application thin client