System and method for performing external procedure calls...

Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C709S241000

Reexamination Certificate

active

06192418

ABSTRACT:

A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
FIELD OF THE INVENTION
The present invention generally relates to external procedure calls in a computer system executing a program, and in particular to a method for performing external procedure calls from a client program to a server program while both are running simultaneously in a heterogeneous computer system that shares a common memory. The term “External Procedure Calls” (or “EPC”) is used herein to refer to the making of a function call from one operating environment to another in such a heterogeneous computer system. The term “heterogeneous multiprocessing system” refers to a single computer system having two or more Central Processing Units (CPUs) that operate with a shared memory and utilize two or more different operating systems.
BACKGROUND OF THE INVENTION
In general computer programs include a number of internal functions, plus computer codes which call these functions in a specific order. This approach works well when all of the necessary functions are available within a single program. However, there are times when a required function is located elsewhere. Such functions are normally referred to as remote, or external functions.
One way to make these remote or external functions available to a program is to incorporate them into the local program. When feasible, this is the most efficient approach. However, remote or external functions sometimes depend upon other things (e.g., data, operating systems, hardware, etc.), which may not be available to the local program. In such situations, importing the remote or external function to the local program is not possible. Hence, the only alternative is to invoke the desired function remotely. These are known as Remote Procedure Calls (RPC's), which are available for such use. RPC's operate much, much slower than internal functions, in fact they are four or more orders of magnitude slower.
Some systems provide a streamlined RPC mechanism for use in shared memory environments, which are referred to as Local Procedure Calls (LPC). This capability eliminates the overhead of moving a function call across a network and reduces the per call overhead to less than 1 microsecond with today's microprocessors. Local Procedure Calls, however, are only available when all of the functions are running under the control of one single operating system. In a heterogeneous multiprocessing (HMP) system, there is a desire to have two different operating systems closely cooperating to carry out certain tasks.
Technologies are available for carrying out this cooperation, which are variants of Remote Procedure Calls (RPCs). RPCs operate over a network transport of some sort, and serve to physically move a request from one environment to another. At best, they operate in the range of 100 microseconds overhead per call. While this overhead is acceptable for some long operations, it is excessive for short operations, making cooperation impractical. In addition, the 100 microsecond or greater overhead must be incurred by each function call, further reducing the desirability of RPCs. A function calling sequence with drastically reduced overhead is required.
In shared memory HMP environments, there is no need to physically move the function from the memory of one operating environment to the memory of the other. Both operating environments share a single memory. External Procedure Calls take advantage of the shared memory in an HMP system to expedite the calling sequence between operating environments, allowing overheads of less than 1 microsecond using today's Instruction Processors or as referred to herein Central Processing Units (CPU's). This overhead reduction allows EPCs to be used for cooperative processing where RPCs would be impractical. Examples of potential uses for EPCs include: direct use of DMSII verbs from NT applications and direct use of NT security and encryption algorithms from MCP environments.
SUMMARY OF THE INVENTION
In accordance with the above and other objects, features and advantages of the invention there is provided a system and method in a heterogeneous multiprocessing system for performing external procedure calls from a Client Program to a Server Program, both of which are stored in a common memory. The Client Program is executed by a first CPU under control of a first operating system and the Server Program is executed by a second CPU under control of a second operating system. The first and second operating systems are also stored in the common memory. The Client Program includes a Proxy Procedure for invoking a Server program function, and a Stub Procedure for converting parameter and result data from the first to the second operating system. The Client Program further includes a Protocol Procedure for passing data between the Client and Server CPUs.
An object of the present invention is to provide a direct calling sequence from a program running in one operating system environment to another program running in another operating system environment. This includes the direct mapping of parameters and return values.
A feature of the present invention is that a function being called is written in standard Windows NT languages (primarily C or C++, although Java, Delphi, Visual Basic and other languages are possible). The functions need not be aware that they are being called from a foreign environment. It is noted at this juncture of the description that the term NT or NT Operating System is used to mean the Windows NT Operating System available from Microsoft Corporation of Redmond, Wash.
An advantage of the present invention is that the called functions are packaged in the same way they would be for use in the native environment, and are fully usable in the native environment. For NT, functions are packaged in a standard DLL format, and are fully usable by both NT programs, and (once set up) by MCP programs as well. MCP is the name of the operating system for A Series Computers available from Unisys Corporation of Blue Bell, Pa., assignee of this patent application.
Another advantage of the present invention is that the mechanism supports all parameter types that can be readily mapped from the initiating environment to the target environment. This is a subset of all possible parameter types. Simple on-stack parameter types are supported (word values, such as int, long, unsigned, float, INTEGER, REAL are all supported). Simple off-stack arrays are also supported (char*, int*, long*, INTEGER ARRAY, REAL ARRAY, EBCDIC ARRAY). Array contents can either be translated, or left in native format, at the option of the developer.
By use of the present invention, modern computers can execute in excess of 1,000,000 External Procedure Calls per second, using the ClearPath HMP systems available from Unisys Corporation, assignee of this patent application. These speeds are well within one order of magnitude of local function calls, and are a full three orders of magnitude faster than the prior art Remote Procedure Calls. This speed allows programmers to use remote or external functions for many more purposes than were possible using standard Remote Procedure Calls.


REFERENCES:
patent: 4297743 (1981-10-01), Appell et al.
patent: 4590551 (1986-05-01), Mathews
patent: 4722048 (1988-01-01), Hirsch et al.
patent: 4862354 (1989-08-01), Fiacconi et al.
patent: 5027271 (1991-06-01), Curley et al.
patent: 5222215 (1993-06-01), Chou et al.
patent: 5230065 (1993-07-01), Curley et al.
patent: 5329619 (1994-07-01), Page et al.
patent: 5339422 (1994-08-01), Brender
patent: 5357612 (1994-10-01), Alaiwan
patent: 5442791 (1995-08-01), Wrabetz et al.
patent: 5619685 (1997-04-01), Schiavone
patent: 5659701 (1997-08-01), Amit et al.
patent: 5793965 (1998-08-01), Vanderbilt et

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

System and method for performing external procedure calls... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method for performing external procedure calls..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for performing external procedure calls... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2586081

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.