US7917538B2ExpiredUtilityA1

Method and apparatus for data item movement between disparate sources and hierarchical, object-oriented representation

Assignee: BANK OF AMERICAPriority: Aug 12, 1998Filed: Sep 14, 2006Granted: Mar 29, 2011
Est. expiryAug 12, 2018(expired)· nominal 20-yr term from priority
G06F 9/543Y10S707/99931Y10S707/99944G06F 9/4493G06F 9/542G06F 16/25Y10S707/955Y10S707/956
89
PatentIndex Score
22
Cited by
44
References
31
Claims

Abstract

Data moves between multiple, disparate data sources and the object-oriented computer programs that process the data. A data access server is interposed between the object-oriented programs and the data sources, and acts as an intermediary. The intermediary server receives requests for data access from object-oriented computer programs, correlates each request to one or more interactions with one or more data sources, performs each required interaction, consolidates the results of the interactions, and presents a singular response to the requesting computer program. The consolidated response from the intermediary server contains data items requested by the computer program, information regarding the hierarchical topology that relates the data items, and an indication of the possible object types that might embody the data items. The application program receives the consolidated response and builds an object hierarchy to embody the data items and to interface them to the rest of the application program. The class of an object used to embody data items is selected at execution time from a list of possible candidates.

Claims

exact text as granted — not AI-modified
1. An article of digital data storage media encoded with instruction code that is operable on a data processing system for determining during program execution the class of an object to instantiate, the instruction code comprising:
 instruction code configured for ascertaining a set of input data items, the set defining a number of input data items; 
 instruction code configured for looping through members of a set of two or more candidate object classes, each member of the set defining a number of candidate data items; 
 instruction code configured for comparing the number of input data items with the number of candidate data items of each member of the set of candidate object classes, thereby determining whether each candidate object class is or is not a potentially successful candidate object class, those candidate object classes having a number of candidate data items equal to or greater than the number of input data items determined to be potentially successful candidate object classes; 
 instruction code configured for identifying a successful candidate object class from the set based at least in part on the determination whether each candidate object class is or is not a potentially successful candidate object class; and 
 instruction code configured for instantiating the object based at least in part on the identified successful candidate object class. 
 
     
     
       2. The article of  claim 1  wherein the successful candidate object class is assigned a degree of success and the identifying includes selecting a candidate object class having the greatest degree of success. 
     
     
       3. The article of  claim 2  wherein the degree of success is based, at least in part, on the capacity of a candidate object class to represent in excess of the number of input data items. 
     
     
       4. The article of  claim 1 , wherein two or more candidate object classes are determined to be potentially successful candidate object classes, and wherein the instruction code configured for identifying a successful candidate object class from the set comprises identifying the successful candidate object classes from the two or more candidate object classes determined to be potentially successful candidate object classes. 
     
     
       5. The article of  claim 1 , wherein the set of input data items further defines a plurality of input field types and each member of the set of two or more candidate object classes defines a plurality of candidate field types, and wherein the instruction code further comprises:
 instruction code configured for comparing the plurality of input field types with the plurality of candidate field types of each candidate object class determined to be a potentially successful candidate object class to further determine whether each potentially successful candidate object class should continue to be a potentially successful candidate object class or should not continue to be a potentially successful candidate object class based on one or more established criteria. 
 
     
     
       6. The article of  claim 5 , the instruction code further comprising:
 instruction code configured for recording any differences between the plurality of input field types and the plurality of candidate field types for any potentially successful candidate object classes. 
 
     
     
       7. The article of  claim 6 , wherein the instruction code configured for identifying the successful candidate object class from the set comprises instruction code for identifying the successful candidate object class from those candidate object classes determined to be potentially successful candidate object classes based at least in part on the recorded differences between the plurality of input field types and the plurality of candidate field types. 
     
     
       8. A method for use in a data processing system for determining during program execution the class of an object to instantiate, comprising:
 ascertaining a set of input data items, the set defining a number of input data items; 
 looping through, using a processing device, members of a set of two or more candidate object classes, each member of the set defining a number of candidate data items; 
 comparing, using a processing device, the number of input data items with the number of candidate data items of each member of the set of candidate object classes, thereby determining whether each candidate object class is or is not a potentially successful candidate object class, those candidate object classes having a number of candidate data items equal to or greater than the number of input data items determined to be potentially successful candidate object classes; 
 identifying, using a processing device, a successful candidate object class from the set based at least in part on the determination whether each candidate object class is or is not a potentially successful candidate object class; and 
 instantiating the object based at least in part on the identified successful candidate object class. 
 
     
     
       9. The method of  claim 8  wherein the successful candidate object class is assigned a degree of success and the identifying includes selecting a candidate object class having the greatest degree of success. 
     
     
       10. The method of  claim 9  wherein the degree of success is based, at least in part, on the capacity of a candidate object class to represent in excess of the number of input data items. 
     
     
       11. The method of  claim 8 , wherein two or more candidate object classes are determined to be potentially successful candidate object classes, and wherein the instruction code configured for identifying a successful candidate object class from the set comprises identifying the successful candidate object classes from the two or more candidate object classes determined to be potentially successful candidate object classes. 
     
     
       12. The method of  claim 8 , wherein the set of input data items further defines a plurality of input field types and each member of the set of two or more candidate object classes defines a plurality of candidate field types, and wherein method further comprises:
 comparing the plurality of input field types with the plurality of candidate field types of each candidate object class determined to be a potentially successful candidate object class to further determine whether each potentially successful candidate object class should continue to be a potentially successful candidate object class or should not continue to be a potentially successful candidate object class based on one or more established criteria. 
 
     
     
       13. The method of  claim 12 , the method further comprising:
 recording any differences between the plurality of input field types and the plurality of candidate field types for any potentially successful candidate object classes. 
 
     
     
       14. The method of  claim 13 , wherein identifying the successful candidate object class from the set comprises identifying the successful candidate object class from those candidate object classes determined to be potentially successful candidate object classes based at least in part on the recorded differences between the plurality of input field types and the plurality of candidate field types. 
     
     
       15. An article of digital data storage media encoded with program code that is operable on a data processing system for developing computer programs that determine during program execution the class of an object to instantiate, comprising:
 program code related to instruction code configured for ascertaining a set of input data items, the set defining a number of input data items 
 program code related to instruction code configured for looping through members of a set of two or more candidate object classes, each member of the set defining a a number of candidate data items; 
 program code related to instruction code configured for comparing the number of input data items with the number of candidate data items of each member of the set of candidate object classes, thereby determining whether each candidate object class is or is not a potentially successful candidate object class, those candidate object classes having a number of candidate data items equal to or greater than the number of input data items determined to be potentially successful candidate object classes; 
 program code related to instruction code configured for identifying a successful candidate object class from the set based at least in part on the determination whether each candidate object class is or is not a potentially successful candidate object class; and 
 program code related to instruction code configured for instantiating the object based at least in part on the identified successful candidate object class. 
 
     
     
       16. The article of  claim 15  wherein the successful candidate object class is assigned a degree of success and the identifying includes selecting a candidate object class having the greatest degree of success. 
     
     
       17. The article of  claim 16  wherein the degree of success is based, at least in part, on the capacity of a candidate object class to represent in excess of the number of input data items. 
     
     
       18. The article of  claim 15 , wherein two or more candidate object classes are determined to be potentially successful candidate object classes, and wherein the instruction code configured for identifying a successful candidate object class from the set comprises identifying the successful candidate object classes from the two or more candidate object classes determined to be potentially successful candidate object classes. 
     
     
       19. A method of mediating between transient and persistent copies of a plurality of data items in a system comprising a client computer, a plurality of independent data sources, and a server computer; said client computer executing a user object-oriented application program having program code which includes object-oriented program objects each embodying one or more transient working copies of persistent data items of which the persistent data items may be located in different independent data sources, and includes program code to initiate and respond to formatted transaction data streams exchanged with said server, said client computer providing service requests for accessing data items from said independent data sources;
 said plurality of independent data sources maintaining persistent data items; and said server computer having program code for mediating said service requests and having a configuration database storing information about the types of data access requests the application programs can make to the server, the data sources with which the server interacts, and the types of interactions that are possible; said method comprising: 
 receiving in the server computer a data stream from the client computer, said data stream comprising a request comprising a request for a client-server transaction and a set of input data items, the set defining a number of input data items; 
 processing in the server computer the request for a client-server transaction supplied by the client computer, wherein said program code for mediating utilizes information from said configuration database so as to permit the interpretation of the request for the client-server transaction and the resolution of the request for the client-server transaction into a corresponding set of atomic server-source transactions, the processing comprising: 
 looping through members of a set of two or more candidate object classes, each member of the set defining a number of candidate data items; 
 comparing the number of input data items with the number of candidate data items of each member of the set of candidate object classes, thereby determining whether each candidate object class is or is not a potentially successful candidate object class, those candidate object classes having a number of candidate data items equal to or greater than the number of input data items determined to be potentially successful candidate object classes; 
 identifying a successful candidate object class from the set based at least in part on the determination whether each candidate object class is or is not a potentially successful candidate object class; and 
 instantiating the object based at least in part on the identified successful candidate object class; 
 for each of the server-source transactions the server computer sending a request to a data source, receiving the response of the data source, isolating a response data item out of the response of the data source, and associating the successful candidate object class with the response data item from the response of the data source; 
 sending a data stream of response data items and their associated successful object class to the client computer. 
 
     
     
       20. The method of  claim 19 , wherein the set of input data items further defines a plurality of input field types and each member of the set of two or more candidate object classes defines a plurality of candidate field types, and wherein the processing in the server computer further comprises:
 comparing the plurality of input field types with the plurality of candidate field types of each candidate object class determined to be a potentially successful candidate object class to further determine whether each potentially successful candidate object class should continue to be a potentially successful candidate object class or should not continue to be a potentially successful candidate object class based on one or more established criteria. 
 
     
     
       21. The method of  claim 20 , wherein the processing in the server computer further comprising:
 recording any differences between the plurality of input field types and the plurality of candidate field types for any potentially successful candidate object classes. 
 
     
     
       22. The method of  claim 21 , wherein identifying the successful candidate object class from the set comprises identifying the successful candidate object class from those candidate object classes determined to be potentially successful candidate object classes based at least in part on the recorded differences between the plurality of input field types and the plurality of candidate field types. 
     
     
       23. An article of digital data storage media encoded with instruction code that is operable on a data processing system for determining during program execution the class of an object to instantiate, the instruction code comprising:
 instruction code configured for ascertaining a set of input data items, the set defining a plurality of input field types; 
 instruction code configured for looping through members of a set of two or more candidate object classes, each member of the set defining a plurality of candidate field types; 
 instruction code configured for comparing the plurality of input field types with the plurality of candidate field types of each candidate object class to determine whether each candidate object class is or is not a potentially successful candidate object based on one or more established criteria; 
 instruction code configured for identifying a successful candidate object class from the set based at least in part on the determination whether each candidate object class is or is not a potentially successful candidate object class; and 
 instruction code configured for instantiating the object based at least in part on the identified successful candidate object class. 
 
     
     
       24. The article of  claim 23 , the instruction code further comprising:
 instruction code configured for recording any differences between the plurality of input field types and the plurality of candidate field types for any potentially successful candidate object classes. 
 
     
     
       25. The article of  claim 24 , wherein the instruction code configured for identifying the successful candidate object class from the set comprises instruction code for identifying the successful candidate object class from those candidate object classes determined to be potentially successful candidate object classes based at least in part on the recorded differences between the plurality of input field types and the plurality of candidate field types. 
     
     
       26. A method for use in a data processing system for determining during program execution the class of an object to instantiate, comprising:
 ascertaining a set of input data items, the set defining a plurality of input field types; 
 looping through members of a set of two or more candidate object classes, each member of the set defining a plurality of candidate field types; 
 comparing the plurality of input field types with the plurality of candidate field types of each candidate object class to determine whether each candidate object class is or is not a potentially successful candidate object based on one or more established criteria; 
 identifying a successful candidate object class from the set based at least in part on the determination whether each candidate object class is or is not a potentially successful candidate object class; and 
 instantiating the object based at least in part on the identified successful candidate object class. 
 
     
     
       27. The method of  claim 26 , further comprising:
 recording any differences between the plurality of input field types and the plurality of candidate field types for any potentially successful candidate object classes. 
 
     
     
       28. The method of  claim 27 , wherein identifying the successful candidate object class from the set comprises identifying the successful candidate object class from those candidate object classes determined to be potentially successful candidate object classes based at least in part on the recorded differences between the plurality of input field types and the plurality of candidate field types. 
     
     
       29. A method of mediating between transient and persistent copies of a plurality of data items in a system comprising a client computer, a plurality of independent data sources, and a server computer; said client computer executing a user object-oriented application program having program code which includes object-oriented program objects each embodying one or more transient working copies of persistent data items of which the persistent data items may be located in different independent data sources, and includes program code to initiate and respond to formatted transaction data streams exchanged with said server, said client computer providing service requests for accessing data items from said independent data sources; said plurality of independent data sources maintaining persistent data items; and said server computer having program code for mediating said service requests and having a configuration database storing information about the types of data access requests the application programs can make to the server, the data sources with which the server interacts, and the types of interactions that are possible; said method comprising:
 receiving in the server computer a data stream from the client computer, said data stream comprising a request comprising a request for a client-server transaction and a set of input data items, the set defining a plurality of input field types; 
 processing in the server computer the request for a client-server transaction supplied by the client computer, wherein said program code for mediating utilizes information from said configuration database so as to permit the interpretation of the request for the client-server transaction and the resolution of the request for the client-server transaction into a corresponding set of atomic server-source transactions, the processing comprising:
 looping through members of a set of two or more candidate object classes, each member of the set defining a plurality of candidate field types; 
 comparing the plurality of input field types with the plurality of candidate field types of each candidate object class to determine whether each candidate object class is or is not a potentially successful candidate object based on one or more established criteria; and 
 identifying a successful candidate object class from the set based at least in part on the determination whether each candidate object class is or is not a potentially successful candidate object class; and 
 
 for each of the server-source transactions the server computer sending a request to a data source, receiving the response of the data source, isolating a response data item out of the response of the data source, and associating the successful candidate object class with the response data item from the response of the data source; 
 sending a data stream of response data items and their associated successful object classes to the client computer. 
 
     
     
       30. The method of  claim 29 , wherein the processing in the server computer further comprising:
 recording any differences between the plurality of input field types and the plurality of candidate field types for any potentially successful candidate object classes. 
 
     
     
       31. The method of  claim 30 , wherein identifying the successful candidate object class from the set comprises identifying the successful candidate object class from those candidate object classes determined to be potentially successful candidate object classes based at least in part on the recorded differences between the plurality of input field types and the plurality of candidate field types.

Join the waitlist — get patent alerts

Track US7917538B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.