IP Library Granted Patent US 7,353,521
Granted Patent B1
US 7,353,521 · App. 10/340,812 · Granted Apr 1, 2008

Object oriented distributed software system with methodology for piggybacked reflective callbacks

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,353,521
App. No.
10/340,812
Granted
Apr 1, 2008
Kind
B1
Abstract

A distributed computing environment is described that provides an improved method for invocation of methods between remote objects. In one embodiment, the improved method comprises steps of: creating a first object having methods that may be invoked by other objects; defining a forward invocation interface for the first object, which allows the methods of the first object to be called in a forward direction; defining a callback method on the first object, for invocation of a method of the first object in a reverse direction; creating a callback handler for handling invocations of the callback method; receiving a callback invocation of the callback method by a callback caller; creating a local reflective target for each received callback; delegating the callback invocation on the callback handler with reference to the local reflective target as an input parameter; and at the first object, making a forward call on the local reflective target.

Claims (32)

1. In a distributed computing environment, an improved method for invocation of methods between remote objects, the method comprising:

creating a first object having methods invoked by other objects, in a manner that appears as if the first object is being invoked in the other objects' address space;

defining a forward invocation interface for the first object, which allows the methods of the first object to be called in a forward direction;

defining a callback method on the first object, for invocation of a method of the first object in a reverse direction;

creating a callback handler for handling invocations of the callback method;

creating a second object having a reflective target that supports said forward invocation interface on the first object;

receiving an invocation by the second object of the callback handler, said invocation including a reference to the reflective target; and

at the first object, downcasting the reflective target so that said invocation by the second object processed through the reflective target as if it were a forward invocation.

2. The method of claim 1 , wherein said reflective target supports said forward invocation interface.

3. The method of claim 1 , wherein invocation of the reflective target delivers a selected one of a request or a pickup of a reply.

4. The method of claim 1 , wherein said first object implements the callback handler.

5. The method of claim 1 , wherein the first object downcasts the reflective target to a desired typed stub and then makes a normal forward invocation on it.

6. The method of claim 5 , wherein said forward invocation made through the reflective target returns a selected one of a request to the second object or a reply from the second object.

7. The method of claim 1 , wherein said first object functions as the reflective target, with its own reference being passed as a reflective target reference for invocation by a callback caller.

8. The method of claim 1 , wherein the reflective target is collocated with the first object.

9. A computer-readable medium having processor-executable instructions for performing the method of claim 1 .

10. A downloadable set of processor-executable instructions for performing the method of claim 1 .

11. A distributed computing system with improved invocation of methods between remote objects, the system comprising:

at least one processor;

a memory coupled to the at least one processor;

a first object having methods invoked by remote objects, in a manner that appears as if the first object is being invoked in the remote objects' address space;

a forward invocation interface for the first object, which allows the methods of the first object to be called in a forward direction;

a callback interface for the first object that comprises a single callback, for handling another object's call to invoke a method of the first object in a reverse direction;

a second object having a reflective target that supports said forward invocation interface on the first object and for invoking the single callback, including passing a reference that includes a signature for the reflective target; and

program logic for downcasting the reflective target so that said invocation by the second object processed through the reflective target as if it were a forward invocation.

12. The system of claim 11 , wherein said reflective target supports said forward invocation interface.

13. The system of claim 11 , wherein invocation of the reflective target delivers a selected one of a request or a pickup of a reply.

14. The system of claim 11 , wherein said first object implements the callback interface.

15. The system of claim 11 , wherein the first object downcasts the reflective target to a desired typed stub and then makes a normal forward invocation on it.

16. The system of claim 15 , wherein said forward invocation made through the reflective target returns a selected one of a request to the second object or a reply from the second object.

17. The system of claim 11 , wherein said first object functions as the reflective target, with its own reference being passed as a reflective target reference for invocation by a callback caller.

18. The system of claim 11 , wherein the reflective target is collocated with the first 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 →