Claims
- 1. A system for use in a distributed object environment for allowing a local client application to invoke upon a remote server service, comprising:
a concentrator, which binds a request from the client application to invoke upon the remote service, identifies the remote server, and operably connects the client to that remote server.
- 2. The system of claim 1 wherein the concentrator further comprises:
at least one connection handler, which handles the connection from the client to the server; and, a listener which determines which connection handler to use to handle the connection.
- 3. The system of claim 2 wherein the listener and connection handler communicate via a shared memory.
- 4. The system of claim 3 wherein the shared memory comprises a list of currently connected servers, and the connection handler handling each connection.
- 5. The system of claim 2 wherein the concentrator comprises a plurality of connection handlers.
- 6. The system of claim 5 wherein the listener determines which connection handler to use based on the entries in the shared memory.
- 7. A method for use in a distributed object environment for allowing a local client application to invoke upon a remote service on a remote server, comprising:
binding a request from the client application invoking upon the remote service; identifying the remote server; and, operably connecting the client to that remote server through a connection handler.
- 8. The method of claim 7 further comprising:
referencing a shared memory space to see if the remote server is currently connected to a connection handler.
- 9. The method of claim 8 further comprising:
if the remote server is not currently connected to a connection handler, then connecting the remote server to a connection handler and updating the shared memory.
- 10. The method of claim 9 wherein the step of updating the shared memory comprises updating a list of currently connected servers, and the connection handler handling each connection.
- 11. The method of claim 7 wherein one of multiple connection handlers may be used to handle the connection.
- 12. The method of claim 11 further comprising the step of:
determining which connection handler should handle the connection by referencing the entries in the shared memory.
- 13. A system for use in a distributed object environment for allowing a local client application to invoke upon a remote server service, comprising:
a concentrator, for binding an invoke request from a client application upon the remote service, said concentrator further including a plurality of connection handlers, for handling the connection from the client to the server; a listener which determines a particular connection handler of said plurality of connection handlers to handle the connection; and, a shared memory for allowing communication between said listener and said plurality of connection handlers, said shared memory including a list of currently connected servers, and the connection handler handling each connection.
- 14. The system of claim 13 wherein the local client application performs the steps of:
determining, at object reference bind time, whether the object reference is remote, and if so initializing the ORB with client information from the object reference; if a bind flag is present binding the service and storing returned ISH client information and listener information in said shared memory; if a bind flag is not present storing client information in said shared memory; searching within said shared memory for a client identifier and invoking upon it; and, when the connection is torn down searching within said shared memory for the appropriate entry, and using said entry to unbind the service.
- 15. The system of claim 13 wherein said connection handler performs the steps of:
receiving a message from the message queue; switching the handler to either a client context or a handler context based on the client; making a copy of the IIOP request, and replacing the IIOP request id with a unique id; placing the request on a list of outstanding requests for this context; if the context is a client context, and if paired second connection and the connection does not yet exist, then creating one, and sending the IIOP request to the client; if the context is the handler context, using a connection index to determine the outbound connection, and if one does not exist then creating one, and sending the IIOP request to the client; and, when a reply comes back from a connection, searching the list of outstanding requests for the corresponding request, replacing the unique id with the original request id, and sending the reply back to the client.
- 16. The system of claim 13 wherein said listener performs the steps of:
calling a service routine to bind the object reference, together with host, port, and client identifier parameters; searching within the shared memory to determine if the host/port is already in use; incrementing a user multiplex reference count; if an existing handler can handle the connection, then assigning the existing handler to handle the request; and, if no existing handler can handle the connection, then starting a new handler.
- 17. The system of claim 13 wherein the client is any one of a native C++ client a Java client, a notification service, or a native server acting as a client.
- 18. The system of claim 13 wherein the remote server is any one of a native server, a native client registered for events, or a non-native CORBA-compliant ORB server.
- 19. A method for use in a distributed object environment for allowing a local client application to invoke upon a remote server service, comprising:
providing a plurality of connection handlers, for handling the connection from the client to the server; determining, at a listener, which particular connection handler of said plurality of connection handlers to handle the connection; and, binding a request from the client application invoking upon the remote service, said step of binding includes;
identifying the remote server, and, operably connecting the client to that remote server through said particular connection handler.
- 20. The method of claim 19 wherein said local client application performs the additional steps of:
determining, at object reference bind time, whether the object reference is remote, and if so initializing the ORB with client information from the object reference; if a bind flag is present binding the service and storing returned ISH client information and listener information in said shared memory; if a bind flag is not present storing client information in said shared memory; searching within said shared memory for a client identifier and invoking upon it; and, when the connection is torn down searching within said shared memory for the appropriate entry, and using said entry to unbind the service.
- 21. The method of claim 19 wherein said connection handler performs the additional steps of:
receiving a message from the message queue; switching the handler to either a client context or a handler context based on the client; making a copy of the IIOP request, and replacing the IIOP request id with a unique id; placing the request on a list of outstanding requests for this context; if the context is a client context, and if paired second connection and the connection does not yet exist, then creating one, and sending the IIOP request to the client; if the context is the handler context, using a connection index to determine the outbound connection, and if one does not exist then creating one, and sending the IIOP request to the client; and, when a reply comes back from a connection, searching the list of outstanding requests for the corresponding request, replacing the unique id with the original request id, and sending the reply back to the client.
- 22. The method of claim 19 wherein said listener performs the additional steps of:
calling a service routine to bind the object reference, together with host, port, and client identifier parameters; searching within the shared memory to determine if the host/port is already in use; incrementing a user multiplex reference count; if an existing handler can handle the connection, then assigning the existing handler to handle the request; and, if no existing handler can handle the connection, then starting a new handler.
- 23. The method of claim 19 wherein the client is any one of a native C++ client a Java client, a notification service, or a native server acting as a client.
- 24. The method of claim 19 wherein the remote server is any one of a native server, a native client registered for events, or a non-native CORBA-compliant ORB server.
Parent Case Info
[0001] This application claims priority from provisional application “SYSTEM AND METHOD FOR CONCENTRATION AND LOAD-BALANCING OF REQUESTS, Application No. 60/221,057, filed Jul. 27, 2000, and incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60221057 |
Jul 2000 |
US |