IP Library Granted Patent US 7,543,304
Granted Patent B2
US 7,543,304 · App. 10/013,339 · Granted Jun 2, 2009

Method for efficient location of corba objects based on an unmarshaled object key in a request

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 7,543,304
App. No.
10/013,339
Granted
Jun 2, 2009
Kind
B2
Abstract

Disclosed are methods and threads for responding to a request to perform an operation on a server object as may be provided in software form within an object request broker (ORB) server library or an ORB server. The specified object is identified by a marshaled object key in a conventional manner. The method improves upon prior art techniques by directly locating the object using the marshaled object key free of any unmarshaling step. The specified operation can then be invoked on the located object. The method applies to both in-process and out-of-process requests. In a preferred implementation, the marshaled object key is utilized as a hash key to directly access a pointer to the object.

Claims (22)

1. In an object request broker library of an object request broker server residing on a computer, a method for optimally responding to an out-of-process request by a remote client to perform an operation on a particular object selected from a plurality of objects each having an associated object key, the particular object residing on a computer-readable medium and being capable of being identified by an associated marshaled object key, wherein the associated marshaled object key includes a byte array computed by transforming the associated object key, comprising the steps of:

a) locating the particular object specified by the out-of-process request by an object request broker utilizing the associated marshaled object key free of any computation that would reverse the transformation of the associated object key and a mapping of a plurality of marshaled object keys to associated ones of the plurality of objects, the mapping generated by unmarshaling one or more of the plurality of marshaled object keys, locating the associated objects identified by the one or more unmarshaled object keys, and creating an association in the mapping between the one or more marshaled object keys and the associated located objects; and

b) invoking the requested operation on the located particular object by the object request broker.

2. The method as in claim 1 , wherein the mapping includes a hash table and the locating step includes the step of applying the associated marshaled object key as a hash key to the hash table so as to directly locate the particular object.

3. The method as in claim 1 , wherein the method is performed by a server side library.

4. The method of claim 1 wherein the request to perform an operation on an object is initiated by a process, and the object resides external to the process which initiated the request to perform an operation.

5. The method of claim 4 , wherein the object and the process which initiated the request to perform the operation reside on different computers.

6. An object request broker server residing on a computer having a computer readable medium, running a thread that executes instructions encoded in the computer readable medium, and being of the type which handles out-of-process requests to perform operations on server objects, each having an object key, the thread executed instructions comprising the steps of

a) responding to an out-of-process operation request from one of a client computer and a client computer sub-system;

b) matching a particular marshaled object key in the request against entries in a table associating marshaled object keys with server objects, each marshaled object key including a byte array computed by transforming the respective object key, and the table being generated by mapping a plurality of marshaled object keys to associated ones of the server objects, the mapping generated by unmarshaling one or more of the plurality of marshaled object keys, locating the associated server objects identified by the one or more unmarshaled object keys, and creating an association in the mapping between the one or more marshaled object keys and the associated located server objects; and

c) responding to any match by locating a particular server object associated with the particular marshaled object key, and invoking the requested operation on the particular located server object.

7. The thread as in claim 6 , wherein the particular server object is located free of any traversal of a portable object adapter hierarchy at the object request broker server.

8. A computer-implemented system for an object request broker server of the type which handles requests to perform operations on server objects, each having an object key, comprising:

a computer having a processor; and

a computer-readable medium encoded with a computer program, the computer program being configured to:

a) receive a first request from one of a first client and a first client sub-system, the first request including a requested operation and a marshaled object key wherein at least a part of the marshaled object key includes a byte array computed by transforming the object key;

b) unmarshal the marshaled object key from the first request to compute an unmarshaled object key;

c) create an entry in a table using the unmarshaled object key to associate the marshaled object key with a server object;

d) receive a second request from one of a second client computer and a second client sub-system computer, the second request including the marshaled object key;

e) match the marshaled object key in the second request with the corresponding entry in the table;

f) locate the server object; and

g) invoke the requested operation on the located server object.

Assignments (6)
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →