← Back to Patent Explorer
US5848273A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for generating OLE automation and IDL interfaces from metadata information

Assignee: Unisys Corp
•
Filing: 1995-10-27
•
Granted: 1998-12-08
•
Expires: 2015-10-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method in a repository coupled to a computer system that generates OLE automation and Interface Definition Language ("IDL") interfaces from metadata (i.e., information about data). Visual Basic programming language is used to develop a tool that generates the automation binding from the metadata in the repository. The method extends C++ programming language binding across networks, independent of the Object Request Broker (ORB) being used. A schema is provided that maps the types and features of a repository to OLE automation and member functions for Windows. The method also integrates the Application Programming Interface (API) of a repository with Windows scripting programming languages through Object Linking and Embedding (OLE).

Inventors

  • 👤 James Albert Fontana
  • 👤 Srinivasan Govindarajan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 22:59
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/465

Claims Analysis

Total Claims: 17
Claim 1
Independent Claim 188 words
In a computer system having a server including a CPU and a memory, a client including a CPU and a memory and a local area network connected therebetween, a repository program operating in said server and a method operating in said client for generating OLE automation in said client and IDL interfaces for each of said server and said client, said method comprising the steps of: a. generating IDL from metadata information about models within said repository program; b. generating OLE automation from said IDL independently of ORB and without involving ORB; c. generating server software from said IDL so that no user written code is required; d. setting up data type mapping for mapping repository data types to OLE data types and generating code to map those data types properly; e. generating OLE header files; f. generating OLE C++ files; g. determining if there are more classes in a current one of said models, and if so; h. repeating steps e and f above until there are no more classes in said current model; i. generating ORB independent header files; and, j. generating ORB specific C++ files.
Claim 2
Dependent Claim 188 words
In a computer system having a server including a CPU and a memory, a client including a CPU and a memory and a local area network connected therebetween, a repository program operating in said server and a method operating in said client for generating OLE automation in said client and IDL interfaces for each of said server and said client, said method comprising the steps of: a. generating IDL from metadata information about models within said repository program; b. generating OLE automation from said IDL independently of ORB and without involving ORB; c. generating server software from said IDL so that no user written code is required; d. setting up data type mapping for mapping repository data types to OLE data types and generating code to map those data types properly; e. generating OLE header files; f. generating OLE C++ files; g. determining if there are more classes in a current one of said models, and if so; h. repeating steps e and f above until there are no more classes in said current model; i. generating ORB independent header files; and, j. generating ORB specific C++ files.
Claim 3
Dependent Claim 96 words
The method as in claim 1 wherein said step of generating said IDL further comprises the steps of: k. including required models within said repository program; l. generating data types; m. generating forward references; n. generating proxy and factory; o. determining if a current one of said models is a repository service model, and if so generating non-persistent classes; p. if said current model is not a repository service model, then generating sub-model collections; q. generating IDL interfaces for all classes in said current model; r. splitting IDL files into classes; and, s. compiling each class.
Claim 4
Dependent Claim 61 words
The method as in claim 2 wherein said step of generating IDL interfaces further comprises the steps of: t. generating interface with inheritance; u. generating IDL find files; v. generating IDL calls; w. inquiring if there are more classes in said model, and if so; x. repeating all of the steps above until there are no more classes in said model.
Claim 5
Dependent Claim 98 words
The method as in claim 3 wherein said step of generating IDL calls further comprises the steps of: y. inquiring if feature is a meta attribute, and if so; z. determining if attribute is overridden, and if so; aa. prepending "<class name>" to attribute; ab. generating IDL calls per rules given in C++ binding; ac. inquiring if feature is a meta reference, and if so; ad. determining if reference is overridden, and if so; ae. prepending "<class name>" to said reference; and, af. if said reference is not overridden, generating IDL calls per rules given in C++ binding.
Claim 6
Dependent Claim 96 words
The method as in claim 4 further including the steps of: ag. inquiring if feature is an operation, and if so; ah. determining if feature is overridden, and if so; ai. prepending "<class name>" to said operation; aj. determining return type of operation; ak. inquiring if operation is overloaded, and if so; al. appending "<integer>" to end of operation; am. generating parameter list; an. determining if operation is a classfeature; ao. determining if parameter is in/out; ap. inquiring if there are more classes in feature, and if so; aq. returning to step y of claim 4.
Claim 7
Dependent Claim 101 words
The method as in claim 2 wherein said step of generating IDL find files further comprises the steps of: t. inquiring if there are more meta attributes in class, and if so; u. inquiring if said attribute is an index key, and if so; v. generating "find -- <attriubte name>" call; w. inquiring if said attribute is a string attribute, and if so; x. generating "find -- string" call; y. inquiring if said attribute is a text attribute, and if so; z. generating "find -- text" call; aa. repeating the steps above for each meta attribute found in step a hereof.
Claim 8
Dependent Claim 57 words
The method as in claim 1 wherein said step of generating OLE header files further comprises the steps of: k. determining inheritance; l. generating necessary OLE macros; m. generating method signature; and, n. inquiring if there are more methods in class, and if so: o. repeating step m above until there are no more methods in class.
Claim 9
Dependent Claim 77 words
The method as in claim 1 wherein said step of generating OLE C++ files further includes the steps of: k. generating include statements; l. determining inheritance; m. generating external statements; n. generating miscellaneous functions; o. generating OLE automation signature macro for method; p. generating code for method; q. inquiring if there are more methods in class interface, and if so; r. repeating said steps o and p hereinabove until there are no more methods in class interface.
Claim 10
Dependent Claim 372 words
In a computer system having a server including a CPU and a memory, a client including a CPU and a memory and a local area network connected therebetween, a repository program -- operating in said server and a method operating in said client for generating OLE automation in said client and IDL interfaces for each of said server and said client, said method comprising the steps of: a. generating IDL from metadata information about models within said repository program by: i) including required models within said repository program; ii) generating data types; iii) generating forward references; iv) generating proxy and factory to handle object creation and to house static functions; v) determining if a current one of said models is a repository service model, and if so generating non-persistent classes; vi) if said current model is not a repository service model, then generating sub-model collections to handle C++ template interfaces (not available in OLE); vii) generating base classes to allow compiling independently of any dependent models and to bind to dependent models at run time; viii) generating IDL interfaces for all classes in said current model; ix) splitting IDL files into classes and removing inheritance to support said method (passing class handle through one ORB object); x) compiling each class; b. generating OLE automation from said IDL independently of ORB and without involving ORB by: i) setting up data type mapping for mapping repository data types to OLE data types and generating code to map those data types properly; ii) generating OLE header files; iii) generating OLE C++ files; iv) determining if there are more classes in a current one of said models, and if so; v) repeating steps b and c above until there are no more classes in said current model; vi) generating ORB independent header files; vii) generating ORB specific C++ files; and, c. generating server software from said IDL so that no user written code is required by: i) determining inheritance and mapping single and multiple inheritance correctly onto OLE; ii) generating necessary OLE macros; iii) generating method signature; and, iv) inquiring if there are more methods in class, and if so; v) repeating steps c.iii) and c.iv) above until there are no more methods in said class.
Claim 11
Dependent Claim 372 words
In a computer system having a server including a CPU and a memory, a client including a CPU and a memory and a local area network connected therebetween, a repository program -- operating in said server and a method operating in said client for generating OLE automation in said client and IDL interfaces for each of said server and said client, said method comprising the steps of: a. generating IDL from metadata information about models within said repository program by: i) including required models within said repository program; ii) generating data types; iii) generating forward references; iv) generating proxy and factory to handle object creation and to house static functions; v) determining if a current one of said models is a repository service model, and if so generating non-persistent classes; vi) if said current model is not a repository service model, then generating sub-model collections to handle C++ template interfaces (not available in OLE); vii) generating base classes to allow compiling independently of any dependent models and to bind to dependent models at run time; viii) generating IDL interfaces for all classes in said current model; ix) splitting IDL files into classes and removing inheritance to support said method (passing class handle through one ORB object); x) compiling each class; b. generating OLE automation from said IDL independently of ORB and without involving ORB by: i) setting up data type mapping for mapping repository data types to OLE data types and generating code to map those data types properly; ii) generating OLE header files; iii) generating OLE C++ files; iv) determining if there are more classes in a current one of said models, and if so; v) repeating steps b and c above until there are no more classes in said current model; vi) generating ORB independent header files; vii) generating ORB specific C++ files; and, c. generating server software from said IDL so that no user written code is required by: i) determining inheritance and mapping single and multiple inheritance correctly onto OLE; ii) generating necessary OLE macros; iii) generating method signature; and, iv) inquiring if there are more methods in class, and if so; v) repeating steps c.iii) and c.iv) above until there are no more methods in said class.
Claim 12
Dependent Claim 57 words
The method as in claim 9 wherein said step of generating OLE header files further comprises the steps of: d. determining inheritance; e. generating necessary OLE macros; f. generating method signature; and, g. inquiring if there are more methods in class, and if so: h. repeating step f above until there are no more methods in class.
Claim 13
Dependent Claim 77 words
The method as in claim 9 wherein said step of generating OLE C++ files further includes the steps of: d. generating include statements; e. determining inheritance; f. generating external statements; g. generating miscellaneous functions; h. generating OLE automation signature macro for method; i. generating code for method; j. inquiring if there are more methods in class interface, and if so; k. repeating said steps h and i hereinabove until there are no more methods in class interface.
Claim 14
Dependent Claim 61 words
The method as in claim 9 wherein said step of generating IDL interfaces further comprises the steps of: d. generating interface with inheritance; e. generating IDL find files; f. generating IDL calls; g. inquiring if there are more classes in said model, and if so; h. repeating all of the steps above until there are no more classes in said model.
Claim 15
Dependent Claim 98 words
The method as in claim 12 wherein said step of generating IDL calls further comprises the steps of: i. inquiring if feature is a meta attribute, and if so; j. determining if attribute is overridden, and if so; k. prepending "<class name>" to attribute; l. generating IDL calls per rules given in C++ binding; m. inquiring if feature is a meta reference, and if so; n. determining if reference is overridden, and if so; o. prepending "<class name>" to said reference; and, p. if said reference is not overridden, generating IDL calls per rules given in C++ binding.
Claim 16
Dependent Claim 96 words
The method as in claim 13 further including the steps of: q. inquiring if feature is an operation, and if so; r. determining if feature is overridden, and if so; s. prepending "<class name>" to said operation; t. determining return type of operation; u. inquiring if operation is overloaded, and if so; v. appending "<integer>" to end of operation; w. generating parameter list; x. determining if operation is a classfeature; y. determining if parameter is in/out; z. inquiring if there are more classes in feature, and if so; aa. returning to step i of claim 13.
Claim 17
Dependent Claim 102 words
The method as in claim 9 wherein said step of generating IDL find files further comprises the steps of: d. inquiring if there are more meta attributes in class, and if so; e. inquiring if said attribute is an index key, and if so; f. generating "find -- <attriubte -- name>" call; g. inquiring if said attribute is a string attribute, and if so; h. generating "find -- string" call; i. inquiring if said attribute is a text attribute, and if so; j. generating "find -- text" call; k. repeating the steps above for each meta attribute found in step a hereof.

References Cited (Backward Citations)

US5493680A Cited
US5517645A Cited
US5581755A Cited
US5644764A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-12-07 2002-06-08 2002-12-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-12-07 2006-06-08 2006-12-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-12-07 2010-06-08 2010-12-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag