Method for packing/unpacking C operations to/from RPC compatible format using the RPC protocol to operate remotely with an object-oriented repository
First Claim
1. In a computer system having a server including a CPU, a memory, at least one disk drive and an object-oriented repository, a client remotely located from said server and connected thereto by means of an RPC link, said client including a CPU, a memory, at least one disk drive, and a program operating with said Server for remotely accessing a model stored in said object-oriented repository, said program executing a method for packing and unpacking C functions to and from, respectively, RPC compatible format using RPC protocol, said program comprising the steps of:
- a. for each type in said model, determining if a current one of said types is valid for C binding, and if so;
b. generating function numbers for said current type, including;
1) generating object initializer function numbers for said current type;
2) determining if there are more properties for said current type, and if so;
3) for each property for said current type, determining if a current one of said properties is valid for C binding, and if so;
4) generating accessor function numbers for said current property;
5) determining if said current property is not read-only, and if so;
6) generating mutator function numbers for said current property;
7) if there are no more properties for said current type, determining if there are more operations for said current type, and if so;
8) for each operation for said current type, determining if a current one of said operations is valid for C binding, and if so;
9) resolving operation name for said current operation;
10) generating operation numbers for said current operation;
11) if there are no more operations for said current type, generating special function numbers for said current type; and
,12) returning to said program at step b hereof;
c. generating C client interface packing functions for said current type;
d. generating C server interface unpacking functions for said current type;
e. determining if there are more of said types in said model, and if so, repeating steps a through e hereof;
f. if there are no more types, then;
g. for each data type in said model, determining if a current one of said data types is valid for C binding, and if so;
h. generating C function numbers for said current data type;
i. generating C client interface packing functions for said current data type;
j. generating C server interface unpacking functions for said current data type;
k. determining if there are more data types in said model, and if so, repeating steps h through m hereof; and
,l. if there are no more data types in said model, stopping said program.
9 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a C interface program that remotely operates with an object oriented repository by making the public properties and operations of the types in the repository available to Client programs written in the C language, or accessed via DLLs, or shared objects from other languages. Hence, Client program can execute all the operations on a repository, which is operating on a remotely located Server. The Client program source code can be created on the Server and recompiled on the Client platform without the necessity of making any changes to the code.
-
Citations
31 Claims
-
1. In a computer system having a server including a CPU, a memory, at least one disk drive and an object-oriented repository, a client remotely located from said server and connected thereto by means of an RPC link, said client including a CPU, a memory, at least one disk drive, and a program operating with said Server for remotely accessing a model stored in said object-oriented repository, said program executing a method for packing and unpacking C functions to and from, respectively, RPC compatible format using RPC protocol, said program comprising the steps of:
-
a. for each type in said model, determining if a current one of said types is valid for C binding, and if so; b. generating function numbers for said current type, including; 1) generating object initializer function numbers for said current type; 2) determining if there are more properties for said current type, and if so; 3) for each property for said current type, determining if a current one of said properties is valid for C binding, and if so; 4) generating accessor function numbers for said current property; 5) determining if said current property is not read-only, and if so; 6) generating mutator function numbers for said current property; 7) if there are no more properties for said current type, determining if there are more operations for said current type, and if so; 8) for each operation for said current type, determining if a current one of said operations is valid for C binding, and if so; 9) resolving operation name for said current operation; 10) generating operation numbers for said current operation; 11) if there are no more operations for said current type, generating special function numbers for said current type; and
,12) returning to said program at step b hereof; c. generating C client interface packing functions for said current type; d. generating C server interface unpacking functions for said current type; e. determining if there are more of said types in said model, and if so, repeating steps a through e hereof; f. if there are no more types, then; g. for each data type in said model, determining if a current one of said data types is valid for C binding, and if so; h. generating C function numbers for said current data type; i. generating C client interface packing functions for said current data type; j. generating C server interface unpacking functions for said current data type; k. determining if there are more data types in said model, and if so, repeating steps h through m hereof; and
,l. if there are no more data types in said model, stopping said program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. In a computer system having a server including a CPU, a memory, at least one disk drive and an object-oriented repository, a client remotely located from said server and connected thereto by means of an RPC link, said client including a CPU, a memory, at least one disk drive, and a program operating with said Server for remotely accessing a model stored in said object-oriented repository, said program executing a method for packing and unpacking C functions to and from, respectively, RPC compatible format using RPC protocol, said program comprising the steps of:
-
a. for each type in said model, determining if a current one of said types is valid for C binding, and if so; b. generating function numbers for said current type by; 1) generating object initializer function numbers for said current type; 2) determining if there are more properties for said current type, and if so; 3) for each property for said current type, determining if a current one of said properties is valid for C binding, and if so; 4) generating accessor function numbers for said current property; 5) determining if said current property is not read-only, and if so; 6) generating mutator function numbers for said current property; 7) if there are no more properties for said current type, determining if there are more operations for said current type, and if so; 8) for each operation for said current type, determining if a current one of said operations is valid for C binding, and if so; 9) resolving operation name for said current operation; 10) generating operation numbers for said current operation; 11) if there are no more operations for said current type, generating special function numbers for said current type; c. generating C client interface packing functions for said current type; d. generating C server interface unpacking functions for said current type received from said client; e. determining if there are more of said types in said model, and if so, repeating steps a through e hereof; f. if there are no more types, then; g. for each data type in said model, determining if a current one of said data types is valid for C binding, and if so; h. generating C function numbers for said current data type; i. generating C client interface packing functions for said current data type; j. generating C server interface unpacking functions for data types; k. determining if there are more data types in said model, and if so, repeating steps h through m hereof; and
,l. if there are no more data types in said model, stopping said program. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. In a computer system having a server including a CPU, a memory, at least one disk drive and an object-oriented repository, a client remotely located from said server and connected thereto by means of an RPC link, said client including a CPU, a memory, at least one disk drive, and a program operating with said Server for remotely accessing a model stored in said object-oriented repository, said program executing a method for packing and unpacking C functions to and from, respectively, RPC compatible format using RPC protocol, said program comprising the steps of:
-
a. for each type in said model, determining if a current one of said types is valid for C binding, and if so; b. generating function numbers for said current type; c. generating C client interface packing functions for said current type; d. generating C server interface unpacking functions for said current type; e. determining if there are more of said types in said model, and if so, repeating steps a through e hereof; f. if there are no more types, then; g. for each data type in said model, determining if a current one of said data types is valid for C binding, and if so; h. generating C function numbers for said current data type; i. generating C client interface packing functions for said current data type; j. generating C server interface unpacking functions for said current data type by; 1) generating RPC server interface unpacking object initializer functions for said current type; 2) determining if there are more properties for said current type, and if so; 3) determining if a current property for said current type is valid for C binding, and if so; 4) generating C server interface unpacking code for accessor functions for said current property; 5) determining if said current property is not read-only, and if so; 6) generating C server interface unpacking code for mutator functions for said current property; 7) if there are no more properties for said current types, determining if there are more operations for said current type, and if so; 8) determining if a current operation for said current type is valid for C binding, and if so; 9) resolving operation name for said current operation; 10) generating a C server interface unpacking function for said current operation; 11) if there are no more operations for said current type, generating RPC server interface unpacking functions for special operations; and 12) generating a function such that an appropriate C server interface unpacking function for said current type is called; k. determining if there are more data types in said model, and if so, repeating steps h through m hereof; and
,l. if there are no more data types in said model, stopping said program.
-
-
28. In a computer system having a server including a CPU, a memory, at least one disk drive and an object-oriented repository, a client remotely located from said server and connected thereto by means of an RPC link, said client including a CPU, a memory, at least one disk drive, and a program operating with said Server for remotely accessing a model stored in said object-oriented repository, said program executing a method for packing and unpacking C functions to and from, respectively, RPC compatible format using RPC protocol, said program comprising the steps of:
-
a. for each type in said model, determining if a current one of said types is valid for C binding, and if so; b. generating function numbers for said current type; c. generating C client interface packing functions for said current type; d. generating C server interface unpacking functions for said current type; e. determining if there are more of said types in said model, and if so, repeating steps a through e hereof; f. if there are no more types, then; g. for each data type in said model, determining if a current one of said data types is valid for C binding, and if so; h. generating C function numbers for said current data type; i. generating C client interface packing functions for said current data type by; 1) generating RPC client interface packing object initializer functions for said current type; 2) determining if there are more properties for said current type, and if so; 3) for each property for said current type, determining if a current one of said properties is valid for C binding, and if so; 4) generating C client interface packing code for accessor functions for said current property, 5) determining if said current property is not read-only, and if so; 6) generating C client interface packing code for mutator functions for said current property; 7) if there are no more properties for said type, determining if there are more operations for said type, and if so; 8) for each operation for said type, determining if a current one of said operations is valid for C binding, and if so; 9) resolving operation name for said current operation; 10) generating a C client interface packing function for said current operation; 11) if there are no more operations for said type, generating an RPC client interface packing function for any special operations; j. generating C server interface unpacking functions for said current data type; k. determining if there are more data types in said model, and if so, repeating steps h through m hereof; and
,l. if there are no more data types in said model, stopping said program. - View Dependent Claims (29, 30, 31)
-
Specification