An infrastructure for enabling grid applications for J2EE
Original Publication Date: 2005-Apr-21
Included in the Prior Art Database: 2005-Apr-21
The system disclosed herein exploits WebSphere Asynchronous Beans, HA Manager and WPF in order to provide a simple J2EE-based system to deliver Grid processing capabilities with greatly reduced programming effort.
An infrastructure for enabling grid applications for J 2EE
Java* 2 Enterprise Edition (J2EE) provides a programming model enabling the construction of robust, scalable enterprise quality IT solutions. Products such as IBM** WebSphere*** product set delivers an industrial strength J2EE execution platform with significant workload management, availability and scalability characteristics - notably Asynchronous Beans, the High Availability (HA) Manager and WebSphere Partitioning Facility (WPF). This combination of programming model and runtime environment is well suited to running traditional transaction-oriented applications, such as those providing self-service customer Web Sites, where members of a potentially very large user population submits single requests for relatively simple processing.
Certain business scenarios require applications with grid-like characteristics. In contrast to transaction-oriented applications, grid applications have two key characteristics:
Each individual user request requires significant processing activity
The processing activity can be decomposed into a number of
independent processing steams, executing in parallel. Examples of such parallel processing are:
Searches aggregating a set of results drawn from a number of different datasets; the searches can execute in parallel A computation of the total predicted value of a portfolio of stocks. Each predicted value calculation can be executed in parallel.
The system disclosed herein exploits WebSphere Asynchronous Beans, HA Manager and WPF in order to provide a simple J2EE-based system to deliver Grid processing capabilities with greatly reduced programming effort. The system is used in the context where some processing logic is described as a callable service, typically in an EJB. In the absence of the system the client code can invoke the service a number of times in sequence.
The system (termed herein as a ReactiveReceiver pattern) exploits WebSphere's capabilities to permit a configurable number of Service instances to be activated across a potentially large number of physical computers. The pattern permits the client and service code to run with minimal change in a large-scale environment and for the service invocations to be executed in parallel.
The effect of such parallel processing is to give improved response times for client requests. The deployment is scalable, accommodating the addition of more computers as workload or size of requests increase.
The ReactiveReceiver pattern allows a developer to control the following aspects of the parallel processing solution:
The number and identity of distinct Service instances.
Delivery of requests to the computers on which the instances are
Execution of the request by the all, or selected, service instances The receipt and aggregation of the individual service responses to provide a single response to the client The React...