IP Library Granted Patent US 8,316,083
Granted Patent B2
US 8,316,083 · App. 12/400,633 · Granted Nov 20, 2012

System and method for client interoperability

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,316,083
App. No.
12/400,633
Granted
Nov 20, 2012
Kind
B2
Abstract

Disclosed herein is a system and method for client interoperability. In one embodiment, a method for client interoperability comprises establishing a network connection between a client and a proxy. The client requests a connection factory from the proxy. The proxy then obtains the connection factory from an application server using a Java Naming and Directory Interface (JNDI). Using the connection factory, a connection to a connection host from the client is created. When the client sends a message, the proxy receives the message and routes the message to a destination server. Similarly, when the client receives a message, the proxy receives the message from a destination server and passes the message to the client. The client can be specifically configured to extend JMS operability to a desired language. In one embodiment the client is a .NET client.

Claims (49)

1. A system for client interoperability between a non-Java software application and a JMS server, comprising:

a computer which includes a computer readable medium, processor, and one or more Java Message Service (JMS) servers executing thereon, wherein each JMS server is associated with a connection host and connection factory;

a plurality of non-Java software applications written using a non-Java JMS API such that the plurality of non-Java software applications can communicate using JMS;

one or more non-Java clients, each of which is configured to mimic functionality of a Java client, and enable the plurality of non-Java software applications to access the destination services at the one or more JMS servers;

a proxy associated with the one or more JMS servers, which includes a service index of the destination services and a JMS API, wherein the proxy enables an exchange of messages between the one or more non-Java clients and the destination services, by using the service index of the destination services and the JMS API to route operations between the non-Java clients to the JMS servers;

wherein when one of the non-Java software applications sends a message, one of the one or more non-Java clients

receives, from the non-Java software application, the message including application objects in the programming language other than Java,

transforms the received application objects into Java-compatible application objects, and

communicates the Java-compatible application objects to the proxy; and

wherein when the proxy receives the Java-compatible application objects, the proxy routes operations included in the application objects using its service index and its JMS API to and from the destination services, such that the application objects received from the non-Java software application appear to the JMS server to be originating from a Java client.

2. The system of claim 1 wherein said one of the one or more non-Java clients communicates the Java-compatible application objects to the proxy using a communication medium which is capable of transporting low level representation data which includes bytes, byte arrays and primitive types.

3. The system of claim 1 wherein the plurality of servers include JMS servers and connection host servers.

4. The system of claim 1 wherein the proxy invokes services on the plurality of servers using a numbered service index.

5. The system of claim 1 wherein: said one of the one or more non-Java clients is written in C# and is running in a .NET Framework Common Language Runtime (CLR); and the application objects are .NET application objects.

6. The system of claim 1 wherein said one of the one or more non-Java clients converts the application objects to a low level representation, which includes bytes, byte arrays and primitive types, and transforms the low level representation to be a normalized Java-compatible low level representation.

7. The system of claim 1 wherein said one of the one or more non-Java clients produces messages to destinations.

8. The system of claim 1 wherein said one of the one or more non-Java clients consumes messages from destinations.

9. A method for client interoperability comprising:

providing a computer which includes a computer readable medium, processor, and one or more Java Message Service (JMS) servers executing thereon, wherein each JMS server is associated with a connection host and connection factory;

providing a plurality of non-Java software applications written using a non-Java JMS API such that the plurality of non-Java software applications can communicate using JMS;

providing one or more non-Java clients, each of which is configured to mimic functionality of a Java client, and enable the plurality of non-Java software applications to access the destination services at the one or more JMS servers;

providing a proxy associated with the one or more JMS servers, which includes a service index of the destination services and a JMS API, wherein the proxy enables an exchange of messages between the one or more non-Java clients and the destination services, by using the service index of the destination services and the JMS API to route operations between the non-Java clients to the JMS servers;

wherein when one of the non-Java software applications sends a message, one of the one or more non-Java clients

receives, from the non-Java software application, the message including application objects in the programming language other than Java at a non-Java client,

transforms the received application objects into Java-compatible application objects, and

communicates the Java-compatible application objects to the proxy;

receiving the Java-compatible application objects at the proxy from the non-Java client; and

when the proxy receives the Java-compatible application objects, routing, by the proxy using its service index and its JMS API, operations contained in the Java-compatible application objects to and from the destination services such that the application objects received from the non-Java software application appear to the JMS server to be originating from a Java client.

10. The method of claim 9 wherein said one of the one or more non-Java clients communicates the Java-compatible application objects to the proxy using a communication medium which is capable of transporting low level representation data which includes bytes, byte arrays and primitive types.

11. The method of claim 9 wherein the plurality of servers include JMS servers and connection host servers.

12. The method of claim 9 wherein the proxy invokes services on the plurality of servers using a numbered service index.

13. The method of claim 9 wherein: said one of the one or more non-Java clients is a .NET client, written in C#, and running in a .NET Framework Common Language Runtime (CLR); and the application objects are .NET application objects.

14. The method of claim 9 wherein said one of the one or more non-Java clients converts the application objects to a low level representation, which includes bytes, byte arrays and primitive types, and transforms the low level representation to be a normalized Java-compatible low level representation.

15. The method of claim 9 wherein said one of the one or more non-Java clients produces messages to destinations.

16. The method of claim 9 wherein said one of the one or more non-Java clients consumes messages from destinations.

17. A computer program product which is a non-transitory storage medium including instructions thereon that when executed by a computer cause the computer to:

provide a computer which includes a computer readable medium, processor, and one or more Java Message Service (JMS) servers executing thereon, wherein each JMS server is associated with a connection host and connection factory;

provide a plurality of non-Java software applications written using a non-Java JMS API such that the plurality of non-Java software applications can communicate using JMS;

provide one or more non-Java clients, each of which is configured to mimic functionality of a Java client, and enable the plurality of non-Java software applications to access the destination services at the one or more JMS servers;

provide a proxy associated with the one or more JMS servers, which includes a service index of the destination services and a JMS API, wherein the proxy enables an exchange of messages between the one or more non-Java clients and the destination services, by using the service index of the destination services and the JMS API to route operations between the non-Java clients to the JMS servers;

wherein when one of the non-Java software applications sends a message, one of the one or more non-Java clients

receive, from the non-Java software application, the message including application objects in the programming language other than Java at a non-Java client,

transform the received application objects into Java-compatible application objects, and

communicate the Java-compatible application objects to the proxy;

receive the Java-compatible application objects at the proxy from the non-Java client; and

when the proxy receives the Java-compatible application objects, route, by the proxy using its service index and its JMS API, operations contained in the Java-compatible application objects to and from the destination services such that the application objects received from the non-Java software application appear to the JMS server to be originating from a Java client.

18. The computer program product of claim 17 wherein said one of the one or more non-Java clients communicates the Java-compatible application objects to the proxy using a communication medium which is capable of transporting low level representation data which includes bytes, byte arrays and primitive types.

19. The computer program product of claim 17 wherein: said one of the one or more non-Java clients is a .NET client, written in C#, and running in a .NET Framework Common Language Runtime (CLR); and the application objects are .NET application objects.

20. The computer program product of claim 17 wherein said one of the one or more non-Java clients converts the application objects to a low level representation, which includes bytes, byte arrays and primitive types, and transforms the low level representation to be a normalized Java-compatible low level representation.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2010
From: BEA SYSTEMS, INC.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 025192/0244 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2009
From: XIAO, DONGBO; BARNES, THOMAS E.; PATEL, RAJESH; GAMBINO, SALVATORE ANTHONY; SENGODAN, KATHIRAVAN; CHANG, SHEAN-GUANG; PEI, SHAUAGXI; STRAUSBERG, HAL
To: BEA SYSTEMS, INC.
Reel/Frame 022883/0919 →