Chapter 1. Introducing BEA Jolt

The BEA Jolt product is a Java-based interface to the BEA TUXEDO system that extends TUXEDO services to the Internet. Jolt allows you to build client programs and applets that can remotely invoke existing BEA TUXEDO services allowing application messaging, component management, and distributed transaction processing.

The following BEA Jolt topics are discussed in this chapter:


What is BEA Jolt?

BEA Jolt is a Java class library and API that provides an interface to BEA TUXEDO from Java clients. The BEA Jolt product consists of several components for creating Java-based client programs that access TUXEDO services and for enabling secure, reliable access to servers inside corporate firewalls. These Jolt components are as follows:

The separation of BEA Jolt into these components permits the transactional and Internet components of client/server applications to be implemented separately with the security and scalability required for large-scale Internet and intranet services.


Key Features

With BEA Jolt, you can leverage existing TUXEDO services and extend your transaction environment to the corporate intranet or world-wide Internet. The key feature of the Jolt architecture is its simplicity. Using Jolt, you can build, deploy and maintain robust, modular, and scalable electronic commerce systems that operate over the Internet.

BEA Jolt includes the following features.

Java-based API for Simplified Development. With its Java-based API, BEA Jolt simplifies application design by providing well-designed object interfaces. Jolt supports the Java JDK 1.02 and is fully compatible with Java threads. Jolt enables Java programmers to build graphical front-ends that use the TUXEDO application and transaction services without the need to understand detailed transactional semantics or without having to rewrite existing TUXEDO applications.

Pure Java Client Development. Using Jolt you can build a pure Java client that runs in any Java-enabled browser. Jolt automatically converts from Java to native BEA TUXEDO data types and buffers and from TUXEDO back to Java. As a pure Java client, your applet or application does not need resident client-side libraries or installation, allowing client applications to be downloaded via the network thereby simplifying software distribution.

Easy Access to TUXEDO Services via Jolt Repository. The BEA Jolt Repository facilitates Java application development by managing and presenting BEA TUXEDO service definitions that you can use in your Java client. A Jolt repository bulk loading utility lets you quickly integrate your existing TUXEDO services into the Jolt development environment. Jolt and TUXEDO simplify network and application scalability, while encouraging the reuse of application components.

GUI-based Maintenance and Distribution of TUXEDO Services. The Jolt Repository Editor lets you manage BEA TUXEDO service definitions such as service names, inputs and outputs. The Jolt Repository Editor provides support for different input and output names for services defined in the Jolt Repository.

Encryption for Secure Transaction Processing. BEA Jolt allows you to encrypt data transmitted between Jolt clients and the JSL/JSH.

When you enable encryption support, Jolt 1.1 uses a combination of DES and RC4 encryption algorithms to encrypt all data that is transmitted between a Jolt client and a Jolt server. DES (56-bit) encryption is used for key exchange and authentication, and RC4 is used for all subsequent data exchanges. Jolt 1.1 features two versions of encryption support: one allows a 128-bit key for data encryption, the other allows a 40-bit key.

The 128-bit version generates a 128-bit RC4 session encryption key at logon time, and this session key is transmitted over the network in a message protected by 56-bit DES encryption. The temporary session key is then used to encrypt the session's data. The overall security level achieved is equivalent to 56-bit DES encryption, even though the data encryption is using a 128-bit key.

Note: The 56/128-bit version of Jolt 1.1 cannot be used outside the United States without proper approval from the United States government.

Jolt encryption addresses the issue of security that is essential for reliable Internet transaction processing.

Added Security via Internet Relay. BEA Jolt features an Internet Relay component that allows network administrators to separate their Web Server and TUXEDO application server. Web servers are generally considered insecure as they often exist outside a corporate firewall. The Jolt Internet Relay gives you greater flexibility to locate your BEA TUXEDO server in a secure location or environment on your network, yet still be able to handle transactions from Jolt clients on the Internet.

Event Subscription Support. Jolt Event Subscription is used to receive event notifications from either TUXEDO services or other TUXEDO clients. Jolt Event Subscription lets you handle two types of TUXEDO application events:


How It Works

BEA Jolt connects Java clients to applications built using the BEA TUXEDO system. The TUXEDO system provides a set of modular services, each offering specific functionality related to the application as a whole. For example, a simple banking application might have services such as INQUIRY, WITHDRAW, TRANSFER, and DEPOSIT. Typically, service requests are implemented in C or COBOL as a sequence of calls to a program library. Accessing a library from a native program means installing the library for the specific combination of CPU and operating system release on the client machine, a situation Java was expressly designed to avoid. The Jolt Server implementation acts as a proxy for the Jolt client, invoking the TUXEDO service on behalf of the client. The BEA Jolt Server accepts requests from the Jolt clients and maps those requests into TUXEDO service requests.

Figure 1-1 BEA Jolt Architecture

Figure 1-1 illustrates the end-to-end view of the BEA Jolt architecture, as well as related TUXEDO components and their interactions.

Jolt Servers

The Jolt Server has several components that act in concert to pass Jolt client transaction processing requests to the TUXEDO application. The components are as follows:

Figure 1-2 illustrates the Jolt Server and Jolt Repository components.

Figure 1-2 Jolt Server Components

Jolt Class Library for Java

The BEA Jolt Class Library is a set of classes you can use in your Java application or applet to make service requests to the TUXEDO system from a Java enabled client. These Jolt classes allow you to access TUXEDO transaction services using objects.

When developing a Jolt client application, you only need to know about the classes that Jolt provides and the TUXEDO services that are exported by the Jolt Repository. Jolt hides the underlying application details. Using Jolt and Jolt's Class Library, you do not need to understand: the underlying transactional semantics, the language in which the services were coded, buffer manipulation, the location of services, or the names of databases used.

The Jolt API is a Java class library and has the benefits that Java provides: applets are downloaded dynamically and are only resident during runtime. As a result, there is no need for client installation, administration, management, or version control. If services are changed, the client application becomes aware of the changes at the next call to the Jolt Repository.

Figure 1-3 shows the flow of activity from a Jolt client to and from the TUXEDO system. The call-out numbers correspond to descriptions of the activity in Table 1-1.

Figure 1-3 Using the Jolt Class Library to access TUXEDO services

The following table briefly describes the flow of activity involved in using the Jolt Class Library to access TUXEDO services.

Table 1-1 Using the Jolt Class Library

Process Step Action

Connection

1

A Java enabled Web browser downloads an HTML page using the HTTP protocol.

...

2

A Jolt applet is downloaded and executed in the Java Virtual Machine on the client.

...

3

The first Java applet task is to open a separate connection to the Jolt Server using a private protocol.

Request

4

The Jolt client now knows the signature of the service (such as, name, parameters, types) and can build a service request object based on Jolt class definitions, and make a method call.

...

5

The request is sent to the Jolt Server, which translates the Java based request into TUXEDO requests and forwards the request to the TUXEDO environment.

Reply

6

The TUXEDO system processes the request and returns the information to the Jolt Server, which translates it back to the Java applet.

Jolt Server and Jolt Client Communication

The Jolt system handles all communication between the Jolt Server and the Jolt client using the BEA Jolt Transaction Protocol. The communication process between the Jolt Server and the Jolt client applet or applications functions as follows:

  1. TUXEDO service requests and associated parameters are packaged into a message buffer and delivered over the network to the Jolt Server.

  2. The Jolt Server unpacks the data from the message, and performs any data conversions necessary, such as numeric format conversions or character set conversions.

  3. The Jolt Server makes the appropriate service request to the application service requested by the Jolt client.

  4. Once a service request enters the BEA TUXEDO system, it is executed in exactly the same manner as requests issued by any other TUXEDO client.

  5. The results are then returned to the BEA Jolt Server, which packages the results and any error information into a message that is sent to the Jolt client applet.

  6. The Jolt client then maps the contents of the message into the various Jolt client interface objects, completing the request.

Jolt Repository

The Jolt Repository is a database where TUXEDO services are defined, such as name, number, type, parameter size, and permissions. The Repository functions as a central database of definitions for TUXEDO services and permits new and existing TUXEDO services to be made available to Jolt client applications. A TUXEDO application can have many services or service definitions such as ADD_CUSTOMER, GET_ACCOUNTBALANCE, CHANGE_LOCATION, and GET_STATUS. All or only a few of these definitions may be exported to the Jolt Repository. Within the Jolt Repository, the developer or system administrator can export these services to the Jolt client application.

All Repository services that are exported to one client are exported to all clients. TUXEDO handles the cases where subsets of services may be needed for one client and not others. Figure 1-4 illustrates how the Jolt Repository brokers TUXEDO services to multiple Jolt client applications. The diagram shows four TUXEDO services, however the WITHDRAW service is not defined in the Repository and the TRANSFER service is defined but not exported.

Figure 1-4 Distributing TUXEDO Services via Jolt

Jolt Repository Editor

The Jolt Repository Editor is a Java-based GUI administration tool that gives the application administrator access to individual BEA TUXEDO services. With the Jolt Repository Editor you can define, test, and export services to Jolt clients.

The Jolt Repository Editor enables you to extend and distribute TUXEDO services to Jolt clients without having to modify many lines of code in widely distributed client applications. With the Jolt Repository Editor, you can modify parameters for TUXEDO services, logically group TUXEDO services into packages, and remove services from created packages. You can also make the services available to Web browser-based Jolt applets or Jolt applications by exporting the services.

Note: The Jolt Repository Editor only controls services for Jolt client applications. It cannot be used to make changes to the TUXEDO application.

Jolt Internet Relay

The Jolt Internet Relay is a component that routes messages from a Jolt client to a JSL or JSH. The Jolt Internet Relay consists of the Jolt Relay (JRLY) and the Jolt Relay Adapter (JRAD). The Jolt Relay is not a TUXEDO client or server. JRLY is a stand-alone software component that routes Jolt messages to the Jolt Relay Adapter. Requiring only minimal configuration to allow it to work with Jolt clients, the Jolt Relay eliminates the need for the TUXEDO system to run on the same machine as the Web server.

The JRAD is a TUXEDO application server, but does not include any TUXEDO services. It requires command-line arguments to allow it to work with the JSH and the TUXEDO system. JRAD receives client requests from JRLY, and forwards the request to the appropriate server. Replies from the server are forwarded back to JRAD, which sends the response back to the requesting client. A single Jolt Internet Relay (JRLY/JRAD pair) handles multiple clients concurrently.


How to Jolt your TUXEDO Applications

Figure 1-5 illustrates how to Jolt-enable your new and existing TUXEDO-based applications. The process for creating Jolt clients is described in the following steps.

Figure 1-5 Creating a Jolt Application

The following steps show just how quickly and easily Jolt clients can be created and deployed.

  1. Begin the process with a TUXEDO system application.

    For information about installing TUXEDO and creating a TUXEDO application, refer to the TUXEDO System 6 documentation set.

  2. Install the Jolt system.

    For information about installing Jolt components, refer to "Installing Jolt" in Chapter 2.

  3. Configure and define services using the Jolt Repository Editor.

  4. For information regarding configuring the Jolt Repository Editor and making TUXEDO services available to Jolt, refer to:

  5. Create a client application using the Jolt Class Library.

    The following documentation shows you how to program your client application using the Jolt Class Library:

  6. Run the Jolt-based client applet or application.

    Refer to "Using the Jolt Class Library" in Chapter 6 to assist you in installing a Jolt Class Library on a Web Server.