IP Library Granted Patent US 7,669,209
Granted Patent B2
US 7,669,209 · App. 11/066,269 · Granted Feb 23, 2010

Method for optimizing remote procedure call (RPC) and program execution method by use of the optimized RPC

Assignee: Hitachi, Ltd.
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,669,209
App. No.
11/066,269
Granted
Feb 23, 2010
Kind
B2
Abstract

A method for rapidly executing a series of remote procedure calls between a client and a server, comprising an RPC optimizer ( 101 ) that inputs an IDL source code ( 103 ) and client source codes ( 102, 102 ′, . . . ) so as to define as a new remote procedure a group of remote procedures to be performed by the client in an additional server source code ( 107 ). In turn, the RPC optimizer outputs a new IDL source code ( 106 ) to which an interface of the remote procedure is added, and new client source codes ( 105, 105 ′, . . . ) modified so as to use the remote procedure. This reduces communications involving a plurality of remote procedures to a single communication pass, thereby implementing high-speed communication between the client and the server.

Claims (22)

1. A remote procedure call (RPC) optimizing method that optimizes RPCs between a server that offers at least one remote procedure, and a client that carries out processing by use of a RPC calling said at least one remote procedure, said remote procedure call optimizing method being implemented on a computer that executes at least one program or one program part, when an interface definition language (IDL) description for said at least one remote procedure is provided, said remote procedure call optimizing method comprising steps of:

inputting a source code of said client and said IDL description;

detecting from said client source code a processing part that is separable from a remaining instruction sequence of said client source code and that includes a set of RPCs that are highly likely to be executed successively, by detecting an RPC in a repletion loop which does not contain a call function other than the RPC from said client source code;

calculating, by said computer, a first procedure causing said server to perform a process equivalent to said processing part;

replacing said processing part of said client source code with a call to said first procedure, thereby generating a new client source code;

adding an interface of said first procedure to said IDL description, thereby generating a new IDL source code,

wherein a new RPC of the call is established in accordance with the new IDL source code and the new client source code; and

adding a definition of said first procedure to a source code of said server to allow the new RPC frequently occurring on the client side to be extended to the server to take care of the processing;

wherein said step of calculating said first procedure further comprises the steps of:

estimating transfer data quantities of input and output arguments necessary for said call to said first procedure; and

stopping the replacing of said processing part with said call to said first procedure if the estimated transfer data quantities exceed a predetermined level.

2. A remote procedure call (RPC) optimizing method that optimizes RPCs between a server that offers at least one remote procedure, and a client that carries out processing by use of a RPC calling said at least one remote procedure, said remote procedure call optimizing method being implemented on a computer that executes at least one program or one program part, when an interface definition language (IDL) description for said at least one remote procedure is provided, said remote procedure call optimizing method comprising steps of:

inputting a source code of said client and said IDL description;

detecting from said client source code a processing part that is separable from a remaining instruction sequence of said client source code and that includes a set of RPCs that are highly likely to be executed successively, by detecting two RPCs sequentially appearing in said client source code without interposing other call functions;

calculating, by said computer, a first procedure causing said server to perform a process equivalent to said processing part;

replacing said processing part of said client source code with a call to said first procedure, thereby generating a new client source code;

adding an interface of said first procedure to said IDL description, thereby generating a new IDL source code,

wherein a new RPC of the call is established in accordance with the new IDL source code and the new client source code; and

adding a definition of said first procedure to a source code of said server to allow the new RPC frequently occurring on the client side to be extended to the server to take care of the processing,

wherein said step of calculating said first procedure further comprises the steps of:

estimating transfer data quantities of input and output arguments necessary for said call to said first procedure; and

stopping the replacing of said processing part with said call to said first procedure if the estimated transfer data quantities exceed a predetermined level.

Priority Claims (1)
JP 10-270890 · Sep 25, 1998 · national
Continuity (2)
Continuation 0940508900 · Sep 27, 1999
Related Publication 20050273792A1 · Dec 8, 2005