WO2002023334A2 - Extended asynchronous messaging - Google Patents

Extended asynchronous messaging Download PDF

Info

Publication number
WO2002023334A2
WO2002023334A2 PCT/US2001/028847 US0128847W WO0223334A2 WO 2002023334 A2 WO2002023334 A2 WO 2002023334A2 US 0128847 W US0128847 W US 0128847W WO 0223334 A2 WO0223334 A2 WO 0223334A2
Authority
WO
WIPO (PCT)
Prior art keywords
component
message
reply
data
accessor
Prior art date
Application number
PCT/US2001/028847
Other languages
French (fr)
Other versions
WO2002023334A3 (en
Inventor
David Carpenter
Lori Clark
Harold Weir
Derek Jones
Original Assignee
Learnframe, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Learnframe, Inc. filed Critical Learnframe, Inc.
Priority to AU2001290971A priority Critical patent/AU2001290971A1/en
Publication of WO2002023334A2 publication Critical patent/WO2002023334A2/en
Publication of WO2002023334A3 publication Critical patent/WO2002023334A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Definitions

  • This invention generally relates to computing systems, and more particularly to a system and method for improving messaging between objects in software applications. 2. The Relevant Technology
  • FIG. 1 illustrates a traditional synchronous component call between a first component 100 and a second component 104.
  • a call 102 is directed at component 100 which requests, in a call 106, the services of another component 104 in order to service the call.
  • Component 104 performs the requested functionality while the resources associated with the instantiation of component 100 remain engaged.
  • a return value in the form of a reply 110 is sent back to component 100, which is further returned in a reply 112 to the requestor.
  • a reply 112 to the requestor.
  • the instantiation of component 100 and all of the associated resources remain inefficiently engaged while awaiting the return value from component 104.
  • FIG 2 illustrates such a messaging service example wherein a component 200 interacts with a component 202 upon the receipt of a call request 208.
  • Component 200 processes the call 208 and formulates a send message 210 to an intermediary service object such as messaging service 204, illustrated as a Java Messaging Service (JMS) message.
  • Messaging service 204 performs the necessary transport and routing services to locate component 202 and issues a method call 212 to component 202.
  • Component 202 performs the requested service in step 206 and issues a send message 214 to messaging service 214.
  • Messaging service 204 prepares a method call 216 and routes it to component 200 which returns a reply 218 in response to request 208.
  • the inter-component calling of Figure 2 illustrates utilization of a messaging service, however, the operation involves synchronous calls which require component 200 to remain instantiated until delivery of reply 218 occurs.
  • FIG. 3 illustrates yet another example of utilization of a messaging service, however, the present example utilizes an asynchronous mode in the messaging service.
  • this asynchronous example also depicts use of JMS.
  • the asynchronous nature of the present example results in loss of state information as such a mode does not provide state or more complex message handling.
  • asynchronous messaging approaches simply marshal a message from a requestor to one listener and then lets the requestor know that the listener received the message successfully. This is called an acknowledgement and is the most information that can be retrieved from a typical messaging service such as JMS.
  • Figure 3 illustrates call 302 coming into component 300 in a first instantiation which sends message 306 to messaging service 308, which in turn, issues a method call 310 to component 312. Meanwhile, instantiation of component 300 is terminated allowing the resource to be reallocatable while component 312 performs functionality 314 and issues a send message 316 when complete. Similarly, messaging service 308 issues a method call 318 to the object which creates a second instantiation of the original component, illustrated as component 320. While asynchronous communications may alleviate some of the resource reallocatable shortcomings of synchronous communications, is still does not address the need to provide state information when returning to another instatiation of the requesting component.
  • the present invention operates as an asynchronous messaging system with persistence capability for state and other information.
  • the present invention provides a message object that holds the state of the request, data required to fulfill the request, replies to extension request for the original request and additional data and information as needed.
  • Each time a component is invoked by receiving a message the message object as referenced by a handle is provided so that state can be restored.
  • Each message using the present invention contains several parts, namely an interface, required data, an implementation of the definition interface, a set of replies to the message, and a parent message identifier.
  • the messaging service provides the ability to handle multiple types of messages.
  • One preferred implementation utilizes an existing messaging service, such as the Java Messaging Service (JMS), for providing distributive communications.
  • JMS Java Messaging Service
  • the present invention extends such an implementation in order to improve messaging capability between components.
  • the preferred embodiment of the present invention achieves improved performance by extending traditional messaging to include the ability to facilitate retention of state for implementing a state-capable messaging system configuration, which means that a component does not store information about what it was doing from one invocation to the next.
  • Stateless objects or components are normally used to perform actions that require saved information, such as calculating sales tax on an order, while the order contents are normally determined using a stateful object or component.
  • the present invention implements all components as stateless which dictates that state information must be saved in a place remote from the components.
  • the messaging service of the present invention retains state information by providing a message object that holds the state of the request, data required to fulfill the request, replies to extension requests for the original request and additional data and information as needed. Each time a component is invoked by receiving a message, the message object is employed so that the state can be restored.
  • Figure 1 illustrates synchronous inter-component interaction, in accordance with the prior art
  • FIG. 2 illustrates synchronous inter-component interaction utilizing a messaging service, in accordance with the prior art
  • FIG. 3 illustrates asynchronous inter-component interaction utilizing a messaging service, in accordance with the prior art
  • Figure 4 illustrates the flow of control in an inter-component asynchronous extended messaging service, in accordance with a preferred embodiment of the present invention
  • Figure 5 is a block diagram of the respective functional blocks comprising a preferred embodiment of an extended messaging service, in accordance with the present invention
  • Figure 6 illustrates and exemplary flow diagram of inter-component messaging wherein a reply is received back at the requesting component, in accordance with a preferred embodiment of the present invention
  • Figure 7 illustrates and exemplary flow diagram of inter-component messaging wherein no reply is expected at the requesting component, in accordance with a preferred embodiment of the present invention
  • the present invention implements communication between objects using asynchronous communications.
  • Asynchronous communication means that when a request is made to an object, the requester does not wait for a reply. In such an implementation, the requestor resources may shut down, be recycled, or continue on with other processing, depending upon the implementation or usage.
  • Using an asynchronous messaging system provides the ability to communicate with other objects or components in an efficient manner that makes the best use of resources.
  • One preferred implementation utilizes an existing messaging service, such as the Java Messaging Service (JMS), for providing distributive communications.
  • JMS Java Messaging Service
  • the present invention extends such an implementation in order to improve messaging capability between components.
  • the preferred embodiment of the present invention achieves improved performance by extending traditional messaging to include the ability to facilitate retention of state for implementing a stateless-capable messaging system configuration, which means that a component does not store information about what it was doing from one invocation to the next.
  • Stateless objects or components are normally used to perform actions that are require saved information, such as calculating sales tax on an order, while the order contents are normally determined using a stateful object or component.
  • the present invention implements all components as stateless which dictates that state information must be saved in a place remote from the components.
  • the messaging service of the present invention retains state information by providing a message object that holds the state of the request, data required to fulfill the request, replies to extension requests for the original request and additional data and information as needed. Each time a component is invoked by receiving a message, the message object is employed so that the state can be restored.
  • Figures 4 and 5 will be discussed together and references between the related figures will not necessarily be differentiated as Figure 4 illustrates the flow control relative to the functional elements illustrated in Figure 5.
  • Figures 4 and 5 illustrate an extended messaging system 400 comprised of a messaging component 402 and a message accessor 404.
  • Messaging component 402 is preferably comprised of a component 406 and a messaging bean 408.
  • Messaging bean 408 is the base class for any component for interfacing with the extended messaging service of the present invention. Messaging bean 408 further provides the API that enables component 406 to utilized the extended messaging services.
  • messaging bean 408 is implemented in a "lightweight" or pared- down, minimal-processing manner.
  • Messaging component 402 further includes a messenger 410 which is also implemented as a "lightweight" and efficient element. Additionally, messaging component 402 also includes a message broker 412 which operates as a pass-through class acting as the gateway to the message accessor 404. Message broker 412 assumes responsibility for making all remote method calls to message accessor 404. [028] Remote method invocation 414 facilitates remote method calls to classes which are provided on remote or local services.
  • Message accessor 404 provides the mechanism for retaining state information relating to specific requests and replies that are physically facilitated through the transport functionality of a messaging service such as JMS.
  • Message accessor 404 is comprised of a message accessor EJB 416 and a table manager 418.
  • Message accessor 416 performs preprocessing for table manager 418.
  • Table manager 418 manages tables 420 that derive from the table class.
  • Tables 420 in a preferred embodiment, are comprised of five tables:
  • a message table 422 provides persistent storage for the message data
  • a reply table 424 provides persistent storage for the reply data
  • a component table 426 provides persistent storage for the component configuration
  • a message type table 428 provides persistent storage for the message configuration details (e.g., receiver list);
  • a timer table 430 provides persistent storage for scheduled events.
  • Message accessor 404 further includes a database access 432 for persisting the data.
  • Database access 432 includes a backup database 434 for storing to the database while restore database 436 is for retrieving from a data store 438.
  • Database access 432 provides the interface to the physical data store 438.
  • Figure 6 illustrates a typical message flow wherein a reply is generated back to the requesting component using the extended messaging service, in accordance with a preferred embodiment of the present invention.
  • Figure 6A illustrates sending a message from component 1 to component 2 while
  • Figure 6B illustrates sending a reply from component 2 to component 1.
  • component 600 receives a call 602 for specific services.
  • component 600 creates a skeleton message and creates a message accessor 404 and issues a create message call in a step 606.
  • message accessor 404 looks up the message type and receiver list, creates skeleton replies, creates expiration time, and stores the updated message data in the persistent message store 438.
  • Message accessor in a step 610, returns the updated message data to the caller, component 600. Thereafter, component 600, in a step
  • Component 600 in a step 614, sends the message handle via a messaging service 500, which according to a receiver or listener list stored therewith, delivers in a step 616 the message to each component, such as component 618, in the receiver list.
  • component 600 returns the message handle to the caller and component 600 can now be removed with the corresponding resources being freed for other uses.
  • step 616 component 618 is created and its message handle method called.
  • Component 618 creates a message accessor 404 in a step 622 and calls a get message handle to the message accessor 404.
  • message accessor 404 looks up the message corresponding to the message handle and in a step 626, returns the message to the caller, component 618 allowing component 618, in a step 628, to process the message and completes the process of sending a message from component 1 to component 2.
  • Figure 6B illustrates sending a reply from component 2 to component 1.
  • component receives a call and in a step 650, component 618 creates a skeleton reply data message.
  • component 618 creates an instance of message accessor 404 and call a save reply method.
  • message accessor 404 looks up the skeleton reply and saves the reply data in the persistent message/data store 438.
  • message accessor 404 returns the updated reply data to the caller and in a step 658, component 618 checks the reply priority and determines whether to send the reply immediately. If immediate is selected, component 618 creates a reply handle from the reply data returned.
  • component 618 sends the reply handle via the messaging service in a step 660.
  • component 618 returns the reply handle to the caller and the instantiation of component 618 may be removed thereby freeing the resources for future allocation.
  • component 600 is created and its reply handle method is called.
  • Component 600 in turn creates, in a step 666, a message accessor 404 and calls to get the reply handle.
  • message accessor 404 looks up the reply corresponding to the reply handle and returns the reply to the caller in a step 670. Thereafter, in a step 672, component 600 processes the reply.
  • Figure 7 illustrates sending a message from component 1 to component 2 according to the extended messaging of the present invention wherein a reply is not dispatched back to the requesting component.
  • a component 700 receives a call whereupon component 700 engages the services of another component 702. To do so, component 700 creates a message accessor 404 and calls a get handle method from message accessor 404 in a step.
  • message accessor 404 looks up the receiver list of the original message corresponding to the handle and in a step 708 returns the list to the caller.
  • component 700 creates an alert message with the receiver list.
  • component 700 sends the alert via a messaging service 500 to each component in the receiver list.
  • a step 714 control is returned to the caller and component 700 may now be removed, hi a step 716, component 702 is created and the alert method is called followed by the processing of the alert by component 702 in a step 718.

Abstract

The present invention implements communication between objects using asynchronous communications utilizing a messaging service for providing distributive communications. The present invention extends such an implementation to include the ability to facilitate retention of state for implementing a stateless-capable messaging system configuration through the use of a message accessor which provides a data store for retaining persistent data such as state information. The messaging service retains state information by providing a message object that holds the state of the request, data required to fulfill the request, replies to extension requests for the original request and additional data and information as needed. Each time a component is invoked by receiving a message, the message object is employed so that the state can be restored.

Description

EXTENDED ASYNCHRONOUS MESSAGING
CROSS-REFERENCE TO RELATED APPLICATIONS [01] The present application claims priority from and is a continuation-in-part of U.S. Provisional Patent Application No. 60/233,070, entitled EXTENSIBLE DEVELOPMENT PLATFORM, which was filed on September 15, 2000, and is hereby incorporated by reference in its entirety. Additionally, the present application is related to and includes the disclosure of Assignee's co-pending U.S. Patent Application Serial No. entitled EXTENSIBLE SOFTWARE DEVELOPMENT USING ASYNCHRONOUS MESSAGING (Attorney Docket No. 15016.30), which is hereby incorporated by reference in its entirety; and Assignee's co-pending U.S. Patent Application Serial No. , entitled CONSTRUCTION OF VIRTUAL OBJECTS BASED
ON RUN-TIME TYPE INFORMATION (Attorney Docket No. 15016.31), which is hereby incorporated by reference in its entirety.
BACKGROUND OF THE INVENTION 1. The Field of the Invention
[02] This invention generally relates to computing systems, and more particularly to a system and method for improving messaging between objects in software applications. 2. The Relevant Technology
[03] Software applications are developed using a modularity concept wherein an overall software application is partitioned into separate functional blocks, objects, or components which accomplish a specific task and lend themselves to software reuse and parallel programming. While it is desirable for components to be independent, there exists a need for communicating between components to accomplish the overall objective of the software application.
[04] Communication between components has generally taken the form of synchronous communications which means that processing stops while waiting for a reply from the object. In very large scale systems this is a performance and resource problem because resources are in process waiting on a return these waiting resources cannot be reused cr recycled, thereby limiting available resources and causing processes to block or wait. [05] Figure 1 illustrates a traditional synchronous component call between a first component 100 and a second component 104. In the example of Figure 1, a call 102 is directed at component 100 which requests, in a call 106, the services of another component 104 in order to service the call. Component 104 performs the requested functionality while the resources associated with the instantiation of component 100 remain engaged. Upon completion of the functionality within component 104, a return value in the form of a reply 110 is sent back to component 100, which is further returned in a reply 112 to the requestor. During such a dedicated resource scenario, the instantiation of component 100 and all of the associated resources remain inefficiently engaged while awaiting the return value from component 104. [06] Another inter-component communication approach utilizes a messaging configuration wherein a standardized messaging protocol is defined and supported allowing components to issue calls to one another through and intermediary messaging service that handles the more mundane transport and other similar routing functionality. Figure 2 illustrates such a messaging service example wherein a component 200 interacts with a component 202 upon the receipt of a call request 208. Component 200 processes the call 208 and formulates a send message 210 to an intermediary service object such as messaging service 204, illustrated as a Java Messaging Service (JMS) message. Messaging service 204 performs the necessary transport and routing services to locate component 202 and issues a method call 212 to component 202. Component 202 performs the requested service in step 206 and issues a send message 214 to messaging service 214. Messaging service 204 prepares a method call 216 and routes it to component 200 which returns a reply 218 in response to request 208. The inter-component calling of Figure 2 illustrates utilization of a messaging service, however, the operation involves synchronous calls which require component 200 to remain instantiated until delivery of reply 218 occurs.
[07] Figure 3 illustrates yet another example of utilization of a messaging service, however, the present example utilizes an asynchronous mode in the messaging service. As with the synchronous example, this asynchronous example also depicts use of JMS. The asynchronous nature of the present example results in loss of state information as such a mode does not provide state or more complex message handling. By contrast with synchronous messaging, asynchronous messaging approaches simply marshal a message from a requestor to one listener and then lets the requestor know that the listener received the message successfully. This is called an acknowledgement and is the most information that can be retrieved from a typical messaging service such as JMS.
[08] Figure 3 illustrates call 302 coming into component 300 in a first instantiation which sends message 306 to messaging service 308, which in turn, issues a method call 310 to component 312. Meanwhile, instantiation of component 300 is terminated allowing the resource to be reallocatable while component 312 performs functionality 314 and issues a send message 316 when complete. Similarly, messaging service 308 issues a method call 318 to the object which creates a second instantiation of the original component, illustrated as component 320. While asynchronous communications may alleviate some of the resource reallocatable shortcomings of synchronous communications, is still does not address the need to provide state information when returning to another instatiation of the requesting component.
[09] Therefore, there exists a need to provide a messaging service that does not require processing to stop while waiting for a reply from an object. Furthermore, it would be desirable to free-up resources for reuse during processing by an object.
BRIEF SUMMARY OF THE INVENTION [010] The present invention operates as an asynchronous messaging system with persistence capability for state and other information. The present invention provides a message object that holds the state of the request, data required to fulfill the request, replies to extension request for the original request and additional data and information as needed. Each time a component is invoked by receiving a message, the message object as referenced by a handle is provided so that state can be restored. Each message using the present invention contains several parts, namely an interface, required data, an implementation of the definition interface, a set of replies to the message, and a parent message identifier. [Oil] The messaging service provides the ability to handle multiple types of messages. One preferred implementation utilizes an existing messaging service, such as the Java Messaging Service (JMS), for providing distributive communications. The present invention extends such an implementation in order to improve messaging capability between components. The preferred embodiment of the present invention achieves improved performance by extending traditional messaging to include the ability to facilitate retention of state for implementing a state-capable messaging system configuration, which means that a component does not store information about what it was doing from one invocation to the next. Stateless objects or components are normally used to perform actions that require saved information, such as calculating sales tax on an order, while the order contents are normally determined using a stateful object or component. To enhance performance, the present invention implements all components as stateless which dictates that state information must be saved in a place remote from the components.
[012] The messaging service of the present invention retains state information by providing a message object that holds the state of the request, data required to fulfill the request, replies to extension requests for the original request and additional data and information as needed. Each time a component is invoked by receiving a message, the message object is employed so that the state can be restored.
[013] These and other objects and features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter. BRIEF DESCRIPTION OF THE DRAWINGS [014] To further clarify the above and other advantages and features of the present invention, a more particular description of the invention will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. It is appreciated that these drawings depict only typical embodiments of the invention and are therefore not to be considered limiting of its scope. The invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
[015] Figure 1 illustrates synchronous inter-component interaction, in accordance with the prior art;
[016] Figure 2 illustrates synchronous inter-component interaction utilizing a messaging service, in accordance with the prior art;
[017] Figure 3 illustrates asynchronous inter-component interaction utilizing a messaging service, in accordance with the prior art;
[018] Figure 4 illustrates the flow of control in an inter-component asynchronous extended messaging service, in accordance with a preferred embodiment of the present invention; [019] Figure 5 is a block diagram of the respective functional blocks comprising a preferred embodiment of an extended messaging service, in accordance with the present invention; [020] Figure 6 illustrates and exemplary flow diagram of inter-component messaging wherein a reply is received back at the requesting component, in accordance with a preferred embodiment of the present invention; and [021] Figure 7 illustrates and exemplary flow diagram of inter-component messaging wherein no reply is expected at the requesting component, in accordance with a preferred embodiment of the present invention
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [022] The present invention implements communication between objects using asynchronous communications. Asynchronous communication means that when a request is made to an object, the requester does not wait for a reply. In such an implementation, the requestor resources may shut down, be recycled, or continue on with other processing, depending upon the implementation or usage. Using an asynchronous messaging system provides the ability to communicate with other objects or components in an efficient manner that makes the best use of resources.
[023] One preferred implementation utilizes an existing messaging service, such as the Java Messaging Service (JMS), for providing distributive communications. The present invention extends such an implementation in order to improve messaging capability between components. The preferred embodiment of the present invention achieves improved performance by extending traditional messaging to include the ability to facilitate retention of state for implementing a stateless-capable messaging system configuration, which means that a component does not store information about what it was doing from one invocation to the next. Stateless objects or components are normally used to perform actions that are require saved information, such as calculating sales tax on an order, while the order contents are normally determined using a stateful object or component. To enhance performance, the present invention implements all components as stateless which dictates that state information must be saved in a place remote from the components.
[024] The messaging service of the present invention retains state information by providing a message object that holds the state of the request, data required to fulfill the request, replies to extension requests for the original request and additional data and information as needed. Each time a component is invoked by receiving a message, the message object is employed so that the state can be restored.
[025] Figures 4 and 5 will be discussed together and references between the related figures will not necessarily be differentiated as Figure 4 illustrates the flow control relative to the functional elements illustrated in Figure 5. Figures 4 and 5 illustrate an extended messaging system 400 comprised of a messaging component 402 and a message accessor 404. [026] Messaging component 402 is preferably comprised of a component 406 and a messaging bean 408. Messaging bean 408 is the base class for any component for interfacing with the extended messaging service of the present invention. Messaging bean 408 further provides the API that enables component 406 to utilized the extended messaging services. In a preferred implementation, messaging bean 408 is implemented in a "lightweight" or pared- down, minimal-processing manner.
[027] Messaging component 402 further includes a messenger 410 which is also implemented as a "lightweight" and efficient element. Additionally, messaging component 402 also includes a message broker 412 which operates as a pass-through class acting as the gateway to the message accessor 404. Message broker 412 assumes responsibility for making all remote method calls to message accessor 404. [028] Remote method invocation 414 facilitates remote method calls to classes which are provided on remote or local services.
[029] Message accessor 404 provides the mechanism for retaining state information relating to specific requests and replies that are physically facilitated through the transport functionality of a messaging service such as JMS. Message accessor 404 is comprised of a message accessor EJB 416 and a table manager 418. Message accessor 416 performs preprocessing for table manager 418. Table manager 418 manages tables 420 that derive from the table class. [030] Tables 420, in a preferred embodiment, are comprised of five tables:
1) a message table 422 provides persistent storage for the message data;
2) a reply table 424 provides persistent storage for the reply data;
3) a component table 426 provides persistent storage for the component configuration;
4) a message type table 428 provides persistent storage for the message configuration details (e.g., receiver list);
5) a timer table 430 provides persistent storage for scheduled events.
[031] Message accessor 404 further includes a database access 432 for persisting the data. Database access 432 includes a backup database 434 for storing to the database while restore database 436 is for retrieving from a data store 438. Database access 432 provides the interface to the physical data store 438.
[032] Figure 6 illustrates a typical message flow wherein a reply is generated back to the requesting component using the extended messaging service, in accordance with a preferred embodiment of the present invention. Figure 6A illustrates sending a message from component 1 to component 2 while Figure 6B illustrates sending a reply from component 2 to component 1.
[033] As illustrated, component 600 receives a call 602 for specific services. In a step 604, component 600 creates a skeleton message and creates a message accessor 404 and issues a create message call in a step 606. In a step 608, message accessor 404 looks up the message type and receiver list, creates skeleton replies, creates expiration time, and stores the updated message data in the persistent message store 438. Message accessor, in a step 610, returns the updated message data to the caller, component 600. Thereafter, component 600, in a step
612, creates a message handle from the message data returned.
[034] Component 600, in a step 614, sends the message handle via a messaging service 500, which according to a receiver or listener list stored therewith, delivers in a step 616 the message to each component, such as component 618, in the receiver list. In a step 620, component 600 returns the message handle to the caller and component 600 can now be removed with the corresponding resources being freed for other uses.
[035] In step 616, component 618 is created and its message handle method called.
Component 618 creates a message accessor 404 in a step 622 and calls a get message handle to the message accessor 404. In a step 624, message accessor 404 looks up the message corresponding to the message handle and in a step 626, returns the message to the caller, component 618 allowing component 618, in a step 628, to process the message and completes the process of sending a message from component 1 to component 2.
[036] Figure 6B illustrates sending a reply from component 2 to component 1. As illustrated, component receives a call and in a step 650, component 618 creates a skeleton reply data message. In a step 652, component 618 creates an instance of message accessor 404 and call a save reply method. In a step 654, message accessor 404 looks up the skeleton reply and saves the reply data in the persistent message/data store 438. In step 656, message accessor 404 returns the updated reply data to the caller and in a step 658, component 618 checks the reply priority and determines whether to send the reply immediately. If immediate is selected, component 618 creates a reply handle from the reply data returned. [037] Utilizing a messaging service 500, component 618 sends the reply handle via the messaging service in a step 660. In a step 662, component 618 returns the reply handle to the caller and the instantiation of component 618 may be removed thereby freeing the resources for future allocation.
[038] In a step 664, component 600 is created and its reply handle method is called. Component 600 in turn creates, in a step 666, a message accessor 404 and calls to get the reply handle. In a step 668, message accessor 404 looks up the reply corresponding to the reply handle and returns the reply to the caller in a step 670. Thereafter, in a step 672, component 600 processes the reply.
[039] Figure 7 illustrates sending a message from component 1 to component 2 according to the extended messaging of the present invention wherein a reply is not dispatched back to the requesting component. A component 700 receives a call whereupon component 700 engages the services of another component 702. To do so, component 700 creates a message accessor 404 and calls a get handle method from message accessor 404 in a step. In a step 706, message accessor 404 looks up the receiver list of the original message corresponding to the handle and in a step 708 returns the list to the caller. In a step 710, component 700 creates an alert message with the receiver list. [040] In a step 712, component 700 sends the alert via a messaging service 500 to each component in the receiver list. In a step 714, control is returned to the caller and component 700 may now be removed, hi a step 716, component 702 is created and the alert method is called followed by the processing of the alert by component 702 in a step 718. [041] The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims

CLAIMS What is claimed is:
1. In an object-oriented program, a method of communicating a message as requested by a caller between a first component and a second component using an asynchronous messaging service, comprising the steps of: a. said first component providing persistent data to a message accessor having a data store therein to form message data, said persistent data including state information; b. said message accessor retrieving from said persistent data messaging configuration including a receiver list including at least said second component; c. said first component creating a message handle directed at said message data; d. said first component via said asynchronous messaging service sending said message handle to each receiver on said receiver list including said second component; and e. said second component retrieving said message according to said message handle from said message accessor.
2. The method as recited in claim 1, wherein said providing persistent data step further comprises the steps of: a. said first component creating a framework for said message data; and b. said message accessor populating said framework of said message data with said persistent data to return to said first component.
3. The method as recited in claim 1, wherein said second component retrieving said message step further comprises the steps of: a. said second component creating said message accessor; b. said second component retrieving said message from said message accessor corresponding to said message handle; and c. said message accessor returning said message to said second component.
4. The method as recited in claim 1, further comprising the step of: a. said second component generating a reply including state information to said first component for delivery to said first component over said asynchronous messaging service.
5. The method as recited in claim 4, wherein said generating a reply step further includes the steps of: a. said second component obtaining updated persistent data from said message accessor to form updated reply data including state information; b. said second component creating a reply handle directed at said updated reply data; c. said second component via said asynchronous messaging service sending said reply handle to said first component; and d. said first component retrieving said updated reply data according to said reply handle from said message accessor.
6. The method as recited in claim 5 wherein said obtaining updated persistent data step further comprises the steps of: a. said second component creating a reply framework for said updated reply data; and b. said message accessor populating said reply framework of said updated reply data with said persistent data to return to said second component.
7. The method as recited in claim 5, wherein said first component retrieving said updated reply data step further comprises the steps of: a. said first component creating said message accessor; b. said first component retrieving said reply from said message accessor corresponding to said reply hand; and c. said message accessor returning said reply to said first component.
8. The method as recited in claim 1, wherein said asynchronous messaging service is a Java messaging service.
9. A computer-readable medium having computer-executable instructions for communicating a message as requested by a caller between a first component and a second component using an asynchronous messaging service, said instructions performing the steps of: a. said first component providing persistent data to a message accessor having a data store therein to form message data, said persistent data including state information; b. said message accessor retrieving from said persistent data messaging configuration including a receiver list including at least said second component; c. said first component creating a message handle directed at said message data; d. said first component via said asynchronous messaging service sending said message handle to each receiver on said receiver list including said second component; and e. said second component retrieving said message according to said message handle from said message accessor.
10. The computer-readable medium, as recited in claim 9, wherein the computer-executable instructions for performing the step of providing persistent data step further comprises computer-executable instructions for performing the steps of: a. said first component creating a framework for said message data; and b. said message accessor populating said framework of said message data with said persistent data to return to said first component.
11. The computer-readable medium, as recited in claim 9, wherein the computer-executable instructions for performing the step of said second component retrieving said message further comprises computer-executable instructions for performing the steps of: a. said second component creating said message accessor; b. said second component retrieving said message from said message accessor corresponding to said message handle; and c. said message accessor returning said message to said second component.
12. The computer-readable medium, as recited in claim 9, further comprising computer-executable instructions for performing the steps of: a. said second component generating a reply including state information to said first component for delivery to said first component over said asynchronous messaging service.
13. The computer-readable medium, as recited in claim 12, wherein said computer-executable instructions for performing the step of generating a reply further includes computer-executable instructions for performing the steps of: a. said second component obtaining updated persistent data from said message accessor to form updated reply data including state information; b. said second component creating a reply handle directed at said updated reply data; c. said second component via said asynchronous messaging service sending said reply handle to said first component; and d. said first component retrieving said updated reply data according to said reply handle from said message accessor.
14. The computer-readable medium, as recited in claim 13, wherein said computer-executable instructions for performing the steps of obtaining updated persistent data step further comprises computer-executable instructions for performing the steps of: a. said second component creating a reply framework for said updated reply data; and b. said message accessor populating said reply framework of said updated reply data with said persistent data to return to said second component.
15. The computer-readable medium, as recited in claim 13, wherein said computer-executable instructions for performing the step of said first component retrieving said updated reply data step further comprises computer-executable instructions for performing the steps of: a. said first component creating said message accessor; b. said first component retrieving said reply from said message accessor corresponding to said reply hand; and c. said message accessor returning said reply to said first component.
16. The computer-readable medium, as recited in claim 9, wherein said assyncronous messaging service comprises computer-exeuctable instructions for implementing said asynchronous messaging service in accordance with a Java messaging service.
PCT/US2001/028847 2000-09-15 2001-09-14 Extended asynchronous messaging WO2002023334A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001290971A AU2001290971A1 (en) 2000-09-15 2001-09-14 Extended asynchronous messaging

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US23307000P 2000-09-15 2000-09-15
US60/233,070 2000-09-15
US95298301A 2001-09-14 2001-09-14
US09/952,983 2001-09-14

Publications (2)

Publication Number Publication Date
WO2002023334A2 true WO2002023334A2 (en) 2002-03-21
WO2002023334A3 WO2002023334A3 (en) 2003-12-18

Family

ID=26926604

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/028847 WO2002023334A2 (en) 2000-09-15 2001-09-14 Extended asynchronous messaging

Country Status (2)

Country Link
AU (1) AU2001290971A1 (en)
WO (1) WO2002023334A2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5652888A (en) * 1993-11-16 1997-07-29 Microsoft Corporation System for interconnecting software components in an object oriented programming environment using a separate editor object for each run-time object instantiated for each selected component
WO1999046674A1 (en) * 1998-03-12 1999-09-16 Crossworlds Software, Inc. Isolation levels and compensating transactions in an information system
US6105052A (en) * 1997-08-29 2000-08-15 Sony Corporation Data processing method, recording medium, and data processing apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5652888A (en) * 1993-11-16 1997-07-29 Microsoft Corporation System for interconnecting software components in an object oriented programming environment using a separate editor object for each run-time object instantiated for each selected component
US6105052A (en) * 1997-08-29 2000-08-15 Sony Corporation Data processing method, recording medium, and data processing apparatus
WO1999046674A1 (en) * 1998-03-12 1999-09-16 Crossworlds Software, Inc. Isolation levels and compensating transactions in an information system

Also Published As

Publication number Publication date
AU2001290971A1 (en) 2002-03-26
WO2002023334A3 (en) 2003-12-18

Similar Documents

Publication Publication Date Title
US6408342B1 (en) Communications framework for supporting multiple simultaneous communications protocols in a distributed object environment
US9923975B2 (en) Session handling based on shared session information
US7945677B2 (en) Connection manager capable of supporting both distributed computing sessions and non distributed computing sessions
US6189046B1 (en) Mechanism and method for merging cached location information in a distributed object environment
US6157927A (en) Methods and apparatus for enabling a component in a first transaction processing environment to access a resource in another environment that is under the control of an Xatmi complaint transaction manager
US7673307B2 (en) Managing transactions in a messaging system
US7454755B2 (en) Smart stub or enterprise Java™ bean in a distributed processing system
US6282581B1 (en) Mechanism for resource allocation and for dispatching incoming calls in a distributed object environment
US7334232B2 (en) Clustered enterprise Java™ in a secure distributed processing system
US8707323B2 (en) Load balancing algorithm for servicing client requests
US6804818B1 (en) Integration mechanism for object-oriented software and message-oriented software
US7500133B2 (en) Connection manager for handling message oriented protocol-based requests
US6317773B1 (en) System and method for creating an object oriented transaction service that interoperates with procedural transaction coordinators
US6038589A (en) Apparatus, method and computer program product for client/server computing with a transaction representation located on each transactionally involved server
WO1997019411A1 (en) Registry communications middleware
GB2348985A (en) Centralized affinity maintenance in a workload managed client/server system
EP1202174A2 (en) Stub search loading system and method, server apparatus, client apparatus, and computer-readable recording medium
USRE41706E1 (en) Moving objects in a distributed computing environment
US6141679A (en) High performance distributed transaction processing methods and apparatus
WO1999030456A2 (en) A method and apparatus relating to messaging in a distributed communication system
US7188111B2 (en) System and method for connectivity to structured query language database
US6138169A (en) System and method for creating an object oriented transaction service that achieves interoperability with encina procedural transactions
JP2001056767A (en) Method for cleaning up internal state by using transaction service synchronous interface
GB2346983A (en) Minimising inter-machine data transfers in a distributed transaction processing system
WO2002023334A2 (en) Extended asynchronous messaging

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP