System and method for unified data access of financial data

Information

  • Patent Grant
  • 6606637
  • Patent Number
    6,606,637
  • Date Filed
    Tuesday, August 1, 2000
    24 years ago
  • Date Issued
    Tuesday, August 12, 2003
    21 years ago
Abstract
A system for accessing financial data that is suitable for data of different formats from disparate sources. Real-time financial information or data is stored and arranged in a data model with table and column schema in a standard suitable for use with an OLE DB provider programmed to access financial information. Accordingly, different types of financial information from disparate sources may be integrated and readily accessed. Specifically, the present invention is directed to a real-time OLE DB provider data model that is divided into different tables categorized into records, pages, time series and context information.
Description




FIELD OF THE INVENTION




The present invention relates to a method and system for real-time access of data and in particular to real-time access of financial data from disparate data sources.




DESCRIPTION OF RELATED ART




Real-time access to information is a primary focus of technological development in commercial activity today. A wide range of different data storage formatting environments are available to store information. With the abundant amount of information available, it is becoming increasingly important to be able to bridge these diverse environments and integrate data from disparate data sources, regardless of data type.




Database software technology is currently being developed to enable common data access from diverse formatted data sources, irrespective of data type. Universal Data Access (UDA) is a software technology developed by Microsoft for accessing data. An Object Linking and Embedding database (OLE DB) specification is the underlying programming model for accessing multi-dimensional data through a Component Object Model (COM). Specifically, the OLE DB defines a set of COM interfaces that permit uniform access to data stored in diverse sources, regardless of location or type. Thus, the OLE DB application program interface (API) is a flexible and efficient means for achieving universal data integration and accessability.




The basic concept of the OLE DB specification is to arrange data in a standard, tabular form comprising rows and columns. The OLE DB specification is described in


Microsoft OLE DB


2.0


Programmer's Reference and Data Access SDK


, Microsoft Press, (1999), and is hereby incorporated by reference.




It is therefore desirable to implement the OLE DB technology for real-time accessing of financial data from disparate data sources.




SUMMARY OF THE INVENTION




An object of the present invention is develop a method and system for accessing financial data that is suitable for data of different formats from disparate sources.




In accordance with the present invention, real-time financial information or data is stored and arranged in a data model with table and column schema in a standard suitable for use with an OLE DB provider programmed to access financial information. Accordingly, different types of financial information from disparate sources may be integrated and readily accessed. Specifically, the present invention is directed to a real-time OLE DB provider data model that is divided into different tables categorized into records, pages, time series and context information.




One aspect of the present is directed to a data model for providing real-time access to financial information using an Object Linking and Embedding database provider, wherein the data model includes a real-time record table, a time series table, a page table, and/or a context table.











BRIEF DESCRIPTION OF THE DRAWINGS




The foregoing and other features of the present invention will be more readily apparent from the following detailed description and drawings of illustrative embodiments of the invention wherein like reference numbers refer to similar elements throughout the several views and in which:





FIG. 1

is an exemplary data model structure for real-time access of financial data in accordance with the present invention; and





FIG. 2

is a high level diagram of the system used to run the data model structure of FIG.


1


.











DETAILED DESCRIPTION OF THE INVENTION




For the purposes of the description of the system in accordance with the present invention the title or name used to identify a particular table is written in capital letters, whereas the title or name used to identify a particular attribute or column within a table is denoted by quotations with the first letter of each word capitalized. The names and titles associated with the tables, attributes, row and columns have no impact on the scope of the invention.




In accordance with the present invention, real-time financial information or data is stored and arranged in a data model with table and column schema in a standard suitable for use with an OLE DB provider. Accordingly, different types of financial data from disparate sources may be integrated and readily accessed.





FIG. 2

is a high-level diagram of the system including the OLE DB provider data model in accordance with the present invention. An OLE DB provider


205


is programmed specifically to access financial market data and includes the data model structure shown in FIG.


1


and discussed in detail below. The financial market data OLE DB provider utilizes a Market Data System


210


used to access various sources of financial market data. User applications


215


access the financial market data via standard OLE DB provider programming interfaces developed by Microsoft and the specific financial market data OLE DB provider in accordance with the present invention. The standard forms of OLE DB provider access are through Microsoft ADO, Microsoft SQL Server, and third party and user developed OLE DB Consumers.




An exemplary data model for storage of financial information or data in accordance with the present invention is shown in FIG.


1


. By way of example, the data model is divided into 19 tables. It is however, within the intended scope of the present invention to use any number of tables, as desired. In the exemplary embodiment in

FIG. 1

, the tables of the data model are arranged or categorized into one of four different groups. In a preferred embodiment, the tables of the data model are classified or categorized into respective groups based on the information, such as real-time record, time series, page, and context, stored therein. One of ordinary skill would be able to modify the data model to include more or less than four groups.




Tables are OLE DB provider objects that contain all the data available through the provider. A table is defined by a set or collection of columns. Data in each table is arranged in a row-and-column format similar to that of a spreadsheet, wherein each column is representative of an attribute of the table and each row represents a unique data item associated therewith.




In

FIG. 1

, the relationships between the tables in the data model are illustrated by dotted lines terminating in either an addition symbol (“+”) or an open circle (“∘”) with multiple spokes. The addition symbol represents a single item from a table, whereas the open circle represents multiple items from a table. Thus, symbols may be used to denote a one-to-many relationship or a one-to-one relationship between any two tables in the data model. By way of example, in

FIG. 1

a one-to-many relationship exists between RECORD SERVICE table


105


and RECORD table


110


. A plurality of records may therefore be associated with each record service.




Each group of tables in

FIG. 1

will now be described in detail. The Real-Time Record group of tables associated with real-time record information includes RECORD SERVICE, RECORD, RECORD CHAIN, RECORD CHAIN ITEM, FIELD DEFINITION, FID DB, and FIELD TYPE tables. Table I below summarizes the real-time record column attributes and data type for each table in the Real-Time Record group.












TABLE I











REAL-TIME RECORD COLUMNS














Column




Column




Column




Description/






Name




Type




Description




Comments









RECORD









SERVICE






NAME




String




Service Name




Name of the record service.






ACTIVE




Boolean




Service Active




True when the record service is








Flag




active, false otherwise.






STALE




Boolean




Service Stale




False when the record service is








Flag




able to send market data to its









clients, true otherwise. Usually,









STALE is true when there is a









failure on the network.






TEXT




Boolean




Service Status




Description of the current








Text




diagnostic state of the service.






RECORD






NAME




String




Record Name




Name of the record.






SERVICE




Boolean




Service Name




Name of the service from which






NAME






the record was requested.






ACTIVE




Boolean




Record Active




True if the record is active, i.e., the








Flag




service accepted the request and is









expected to provide data for the









record. False if the request was









denied, for example, if the user









was not authorized to receive









data for the record.






STALE




Boolean




Record Stale




False when the record has valid up-








Flag




to-date data, true otherwise.






HAS




Boolean




Record has




True when the record has data,






DATA





Data Flag




false otherwise.






TEXT




String




Record Status




Description of the current state of








Text




the record. Provides additional









diagnostic information.






TEM-




String




Record




Record template number, provided






PLATE





Template




by the record service, is a grouping






NUMBER





Number




factor for the records with the same









set of fields.






<field




<data




<field




This column allows access to






name>




type>




long name>




market data fields by name. The









data type and field long name are









determined by the field definition.






FID <field




<data




<filed long




This column allows access to






number>




type>




number>




market data fields by field number.









The data type and field long name









are determined by the field









definition.






RECORD






CHAIN






NAME




String




Record Chain




Name of the record chain.








Name






SERVICE




String




Service




Name of the service from which






NAME





Name




the record chain was requested.






ACTIVE




Boolean




Chain Active




True if the chain is active, i.e., the








Flag




service accepted the request and is









expected to provide data for the









chain. False if the request was









denied, for example, if the user









was not authorized to receive









data for the record chain.






HAS




Boolean




Chain Has




True if the record chain has data,






DATA





Data Flag




false otherwise.






STALE




Boolean




Chain Stale




False when the record chain has








Flag




valid up-to-date data, true









otherwise.






MAX




Long




Number of




Number of items comprising the






COUNT




Integer




Chain Records




chain.






TEXT




String




Chain Status




Description of the current status of








Text




the record chain. Provides









additional diagnostic information.






RECORD






CHAIN






ITEM






NAME




String




Record Item




The record chain items are records








Name




comprising the record chain. Name









of the record chain item is name of









the corresponding record.






SERVICE




String




Service Name




Name of the record service the






NAME






item is requested from.






CHAIN




String




Record Chain




Name of the record chain that






NAME





Name




contains the item.






ACTIVE




Boolean




Record Active




True if the item is active, i.e., the








Flag




service accepted the request for









this item, false otherwise.






INDEX




Long




Record Chain




Index of the item in the chain.







Integer




Item Index






HAS




Boolean




Record Has




True if the item has data, false






DATA





Data Flag




otherwise.






STALE




Boolean




Record State




False when the record chain item








Flag




has valid up-to-date data, true









otherwise.






TEXT




String




Record Status




Description of the current status of








Text




the record chain. Provides









additional diagnostic information.






TEM-




String




Record




Similar to TEMPLATE NUMBER






PLATE





Template




in the RECORD table. Record






NUMBER





Number




chain items with the same set of









fields will have the same template









number, if supported by the record









service.






<field




<data




<field long




This column allows access to






name>




type>




name>




market data fields by name. The









data type and field long name are









determined by the field definition.






<field




<data




<field long




This column allows access to






number>




type>




number>




market data fields by number. The









data type is determined by the field









definition.






FIELD






DEFINI-






TION






NAME




String




Field Name




Name of the field.






SERVICE




String




Service Name




Name of the record service that






NAME






provided the field definition









database.






FID




Integer




FID




Number of the field.






LENGTH




Integer




Field Name




Size of the field.








Length






LONG




String




Field




Description of the field.






NAME





Description






DOES




Boolean




Field Does




True if this field “ripples”, false






RIPPLE





Ripple Flag




otherwise. See the RIPPLE TO









FIELD NAME below for more









information on “ripple-to” fields.






RIPPLE




String




Ripple to Field




Name of the field that the current






TO





Name




field “ripples” to “Ripple” means






FIELD






here that after update has been






NAME






received for the current field, its









previous value will be assigned to









the “ripple-to” field.






TYPE




String




Field Type




Type of the field from the field









type table.






FID DB




String




FID DB Name




Name of the field definition






NAME






database, if available.






FID DB






SERVICE




String




Service Name




Name of the record service that






NAME






provided the field definition









database.






NAME




String




FID DB




Name of the field definition








NAME




database (FID DB), if available.






MIN FID




Integer




Min FID




The lowest field number in the FID









DB.






MAX FID




Integer




Max FID




The highest field number in the









FID DB.






FIELD






TYPE






TYPE




String




Field Type




Type of the field as a string.






DE-




String




Field Type




Descriptive name of the field type.






SCRIP-





Descriptive






TION





Name






TYPE




Integer




Field Type




Enumerated value of the field type.






VALUE





Value














In Table 1, RECORD SERVICE table


105


includes the “Name” and associated attributes of a particular record service or source of financial information. Attributes identified with each service or source of financial information include whether the service is “Active” and/or “Stale”. A particular record service is stale when it is unable to send market data to its clients, for example, due to a network failure. Thus, the record service may be active but unable to send information due to a network failure. The “Active” and “Stale” attributes are represented in boolean form. “Text” is an attribute that provides additional information concerning the current diagnostic state of the record service, such as, “trying to connect”, “ready” or “unavailable”.




Each record service or source of financial information contains one or more data records. As shown in

FIG. 1

, this one-to-many relationship is depicted by the dotted line connecting RECORD SERVICE table


105


and RECORD table


110


. RECORD table


110


includes information concerning each record, such as the name of each record (“Name”) and the name of the record service(“Service Name”) from which the record was requested. The RECORD table also includes “Active” and “Stale” attributes. A record service is active if the service accepted the request. The record service is not active and the request will therefore be denied if the user that issued the request is not authorized to receive data for the requested record. The record service is stale when the record does not have valid up-to-date data. Other attributes of RECORD table


110


includes “Has Data” which indicates whether the record has any data, “Text” that provides additional information concerning the current diagnostic state of the record, “Template Number” which is a unique number assigned by the record service as a grouping factor for records with the same set of fields. The <field name> and <field number> attributes allow access to market data fields by field name and field number, respectively. The field name and number are determined by the field definition.




Multiple records may be grouped into a record chain, wherein each record in the chain is referred to as a record chain item. The name of each record chain, name of the record service from which the records in the record chain were requested are identified in RECORD CHAIN table


115


as attributes “Name” and “Service Name”, respectively. Other associated real-time attributes are identified in RECORD CHAIN table


115


include “Active” which is true if the service has accepted the request. Otherwise, the flag is not active if the request is denied, for example, when a user is not authorized to receive data for the record chain. The “Has Data” attribute is a boolean value used to indicate whether the record chain has data, while the “Stale” attribute identifies whether the record chain has valid up-to-date data. Since the record chain comprises multiple records, the RECORD CHAIN table includes a “Max Count” attribute, which is an integer value of the number of items comprising the record chain. Lastly, the “text” attribute is a string variable that provides additional information concerning the current diagnostic status of the record chain.




RECORD CHAIN ITEM table


120


in

FIG. 1

stores each record item in a given record chain. Thus, RECORD CHAIN table


115


is distinguishable from that of the RECORD CHAIN ITEM table


120


in that the former provides real-time access to the record chain as a whole, while the latter provides real-time access to the individual items or records comprising a record chain. In the example shown in

FIG. 1

, the record attributes of the chain as a whole and those attributes of the individual elements of the chain are divided into two separate tables, but these could alternatively be integrated into a single table. Referring to Table 1, the information stored in RECORD CHAIN ITEM table


120


includes the name of each record chain item (“Name”), the name of the record service from which the record item was requested (“Service Name”), and the name of the record chain that contains the record chain item (“Chain Name”). Other attributes include an “Active” flag which is active if the service accepted the request, “Index” is a unique non-negative integer value indexing the item in the record chain, “Has Data” is a boolean value that indicates whether the item has data, “Stale” is a boolean value that represents whether the item has valid up-to-date values; “Text” is a descriptive data string that provides additional information concerning the current diagnostic status of the record chain; the “Template Number” attribute represents a unique number provided by the record service and used to identify records with the same set of fields. The “<field name>” and “<field number>” attributes allow access to market data fields by field name and field number, respectively. The field name and number are determined by the field definition. Field names may vary for different services and records.




The remaining tables in the Real Time Record Group, namely FIELD DEFINITION, FID DB, and FIELD TYPE, all relate to a field information. Each record comprises one or more fields. Field names and their type, such as Time with seconds, Integer, Numeric, Date, Price, Alphanumeric, Enumerated, Time, Binary, and Long Alphanumeric, are maintained in a FIELD DEFINITION table


125


. A set of field definitions are grouped together as a Field Definition Database (FID DB) table


130


.




The FIELD DEFINITION table


125


includes such attributes as the name of the field (“Name”), the name of the record service that provided the field definition database (“Service Name”), the number of the field (“FID”), the size of the field (“Length”), and a description of the field (“Long Name”). The “Ripple To Field Name” attribute is a data string identifying the name of the field that the current field “ripples”. After an update has been received for the current field its previous value is assigned to the “ripple to” field. Additional attributes defining the FIELD DEFINITION table include the field type (“Type”) and the name of the field definition database (“Field Db Name”), if available.




The Field Definition database (FID DB) table


130


includes such attributes as the name of the field definition database (“Name”), the name of the record service that provided the field definition database (“Service Name”), the lowest field number in the field definition database (“Min FID”) and the highest field number in the field definition database (“Max FID”).




The last table in the Real Time Record Group is FIELD TYPE


135


. Attributes associated with the FIELD TYPE table include “Type”, which is an integer value representing the type of field. For example, the field type may be one of: Time with seconds, Integer, Numeric, Date, Price, Alphanumeric, Enumerated, Time, Binary, Long Alphanumeric. Other attributes specified include a descriptive name of the field type (“Description”) and a “Type Value” which is an integer value corresponding to a selected field type. By way of example, “0” may be assigned for Time with seconds, “1” for Numeric, etc.




In the exemplary data model shown in

FIG. 1

, the tables in the Time Series Group represent historical data over a predetermined time period, wherein each data record is a sample. The Time Series Group, in the exemplary data model shown in

FIG. 1

, includes TIME SERIES SERVICE


140


, TIME SERIES


145


, TIME SERIES SAMPLE


150


, ACTION TYPE


155


, ELEMENT STATUS


160


, ELEMENT ERROR


165


, ELEMENT DEFINITION


190


and PERIOD TYPE


170


. Table II below summarizes the time series record column attributes and data type for the Time Series Group.












TABLE II











TIME-SERIES COLUMNS














Column




Column




Column




Description/






Name




Type




Description




Comments









TIME









SERIES






SERVICE






NAME




String




Service Name




Name of the time series









service.






ACTIVE




Boolean




Service Active




True when the time series








Flag




service is active, false









otherwise.






STALE




Boolean




Service Stale




False when the time series








Flag




service is able to send









market data to its clients,









true otherwise. Usually,









STALE is true when there









is a failure on the network.






TEXT




String




Service Status




Description of the current








Text




state of the service.









Provides additional









diagnostic information.






TIME






SERIES






NAME




String




Time Series




Name of the item for which








Record Name




time series is requested.









Item name is the same as









record name in the









RECORD and RECORD









CHAIN item tables.






SERVICE




String




Service Name




Name of the time series






NAME






service that is used to









provide time series data.






ACTIVE




Boolean




Time Series




True if the time series








Active Flag




service accepts the request









for the time-series, false









otherwise.






COM-




Boolean




Time Series




True if the time series






PLETE





Complete Flag




service successfully









finished the time series data









request.






PERIOD




Integer




Time Series




Duration of the requested






LENGTH





Period Length




period.






PERIOD




String




Time Series




Period type, such as Daily






TYPE





Period Type




Weekly, Monthly, etc.






MAX




Long




Maximum




Maximum number of






COUNT




Integer




number of




samples available for this








samples




item from the time series









service.






TEXT




String




Time Series




Description of the current








Status Text




state of the time of the time









series service. Provides









additional diagnostic









information.






TIME






SERIES






SAMPLE






RECORD




String




Time Series




Name of the item for which






NAME





Record Name




the time series is requested.






SERVICE




String




Service Name




Name of the time series






NAME






service for which the time









series is requested.






INDEX




Long




Time Series




Index of the time series







Integer




Sample Index




sample.






TIME-




Time




Time Series




Time stamp of the time






STAMP




Stamp




Sample




series sample.








TimesStamp






PERIOD




Integer




Time Series




Length of the period in days






LENGTH





Period Length




for the requested time series






PERIOD




Integer




Time Series




Type of the time series






TYPE





Period Type




period, such as Daily,









Weekly, Monthly, etc.






VALID




Boolean




Time Series




True if the sample is valid,








Sample Valid




false otherwise. The








Flag




sample is invalid if the data









was unavailable or









corrupted for the sample.






TEXT




String




Time Series




Description of the current








Sample Text




state of the time series









sample. Provides additional









diagnostic information.






<element




String




<element




Name of the time series






name>





name>




element. Valid element









names are determined after









the time series is received.






<element




String




<element




Status of the element. The






name>





name>




name of the column is






STATUS





Status




combined from element









name (see above) and the









string “STATUS”. The









ELEMENT STATUS table









contains supported elements









status.






<element




String




<element




Error code, if element had






name>





name>




errors. The name of the






ERROR





Error Code




column is combined from






CODE






the element name (see









above and string “ERROR









CODE”. The ERROR









CODE table contains









supported error codes.






ACTION






TYPE






TYPE




String




Summarization




Summarization action type








Action Type




specifying the criteria for








Code




which the data was









summarized, such as, for









example, “Sum” or









“Average”.






DE-




String




Summarization




Description of the






SCRIP-





Action Type




Summarization action.






TION





Description






TYPE




Integer




Summarization




Enumerated value






VALUE





Action Type




corresponding to the action








Value




type.






ELE-






MENT






STATUS






STATUS




String




Element Status




Element status value, such








Code




as, for example, “Valid”,









“Invalid”, “Edited”, or









“Deleted”.






DE-




String




Element Status




Description of the element






SCRIP-





Description




status.






TION






STATUS




Integer




Element Status




Numeric Value






VALUE





Value




corresponding to the status.






ELE-






MENT






ERROR






ERROR




String




Element Error




Element error code, such as,








Code




for example, “No Activity”,









“Holiday”, etc.






DE-




String




Element Error




Description of the error






SCRIP-





Description




code.






TION






ERROR




Integer




Element Error




Integer error number.






VALUE





Value






ELE-






MENT






DEFINI-






TION






NAME




String




Element Name




Name of the element.






SERVICE




String




Service Name




Name of the time series






NAME






service that provided the









element definition.






SOURCE




String




Source Field




Name of the field that






FIELD






corresponds to the element.






SUM-




String




Summarization




Summarization action for






MARIZA-





Action




the element, such as “Sum”






TION






or “Average”. The






ACTION






ACTION TYPE table is









used to maintain supported









summarization actions.






PERIOD






TYPE






TYPE




String




Period Type




Period type code, such as








Code




“Daily”, “Weekly”, etc.






DE-




String




Period Type




Description of the period.






SCRIP-





Description






TION






TYPE




Integer




Period Type




Numeric value of the period






VALUE





Value




type.














Referring to Table II, the attributes associated with TIME SERIES SERVICE table


140


include the name of the time series service (“Time Series Service Name”), a boolean value indicating whether the time series service is active (“Active”), a data string parameter (“Stale”) used to indicate whether the time series service is stale and therefore is unable to send market data to its clients, e.g. during a failure on the network, and a description of additional information concerning the current diagnostic state of the time series service (“Text”).




TIME SERIES table


145


attributes include the name of the item (“Name”) for which time series is requested and the name of the time series service (“Service Name”) that provided the time series data. The item name is the same as the record name in the RECORD and RECORD CHAIN ITEM tables, described above. An “Active” flag is used to indicate whether the time series service has accepted the request for the time series data. Additional attributes used to define the TIME SERIES table include “Complete” which indicates whether the time series service is actively being collated or has completed the time series request, “Period Length” defines the interval between samples, “Period Type” defines the unit for the interval between individual samples, e.g., daily, weekly, monthly. By way of example, “Period Type”=daily and “Period Length”=7 are equivalent to “Period Type”=weekly and “Period Length”=1. A maximum number of samples available for the item from the time series service is identified by the “Max Count” attribute, and the “Text” attribute provides additional information concerning the current diagnostic state of the time series service.




The next table identified in Table II is TIME SERIES SAMPLE


150


, which represents individual data samples during a predetermined time period. The column attributes associated therewith include the name of the item for which the time series is requested (“Record Name”), the name of the time series service for which the time series is requested (“Service Name”), an index of the time series sample (“Index”), the time stamp of the time series sample (“Timestamp”), the period as measured in days for the requested time series (“Period Length”), and the type of time series period, e.g., daily, weekly, monthly. A time series sample valid flag (“Valid”) is used to identify whether the sample is valid. A sample is invalid if the data is unavailable or corrupted. The TIME SERIES SAMPLE table also has a text attribute (“Text”) for providing additional information concerning the current diagnostic state of the time series sample. Three additional attributes are associated with the TIME SERIES SAMPLE that relate to an element of the time series. In particular, “<element name>” identifies the name of the time series element, “<element name> Status” provides the status of each associated element name, e.g., “valid”, “invalid”, “edited” or “deleted”, and “<element name> Error Code” identifies whether the time series element has any errors.




Another table in the time series group is ACTION TYPE


155


. The attributes associated with the ACTION TYPE table include a summarization action type (“Type”) specifying the criteria for which the data was summarized, e.g., “sum” or “average”, a description of the summarization action (“Description”), and a predetermined enumerated value corresponding to a particular action type (“Type Value”).




The next table listed in the time series group is ELEMENT STATUS


160


which includes “Status” and “Description” attributes that provide a data string representing the element status, e.g., “valid”, “invalid”, “edited”, or “deleted”, and a description of the element status. An integer value corresponding to the status is identified in the “Status Value” attribute column.




Another table in the time series group is ELEMENT ERROR


165


which identifies the element error code (“Error”), e.g. “no activity”, “holiday”, a description of the error code (“Description”), and an “Error Value” which is a numeric value corresponding to the error code in the “Error Code” attribute column.




ELEMENT DEFINITION


190


includes the name of the element (“Name”), the name of the time series service that provided the element definition (“Service Name”), the name of the field that corresponds to the element (“Source Field”), and summarization action specifying the criteria for which the element was summarized, such as, for example, “Sum” or “Average”.




The last table in the time series group is PERIOD TYPE which identifies the period over which the time series samples are collated. The attributes or columns associated with this table include “Type” to identify the particular period type code, e.g., “daily”, “weekly”, “monthly”, a written description of the type of period over which the data is being collated (“Description”), and “Type Value” which is a numeric value corresponding to the period type code in the “Type” attribute column.




The exemplary data model shown in

FIG. 1

also includes real-time page tables. Source data is stored as individual pages comprising an array or matrix of characters, e.g., 80×250 characters. Each page is assigned a unique identification number. The Real-Time Page group includes PAGE SERVICE table


170


, PAGE table


180


, and PAGE AREA table


185


, which identify the service from which the page data originates and the number of rows and columns of characters on a page, respectively. Table III below summarizes the page column attributes and data type for the Page Group.












TABLE III











PAGE COLUMNS














Column




Column




Column




Description/






Name




Type




Description




Comments









PAGE









SERVICE






NAME




String




Service Name




Name of the page service.






ACTIVE




Boolean




Service Active




True when the page service








Flag




is active, false otherwise.






STALE




Boolean




Service Stale




False when the page service








Flag




is able to send market data









to its clients, true otherwise.









Usually, STALE is true









when there is a failure on









the network.






TEXT




String




Service Status




Description of the current








Text




state of the service.









Provides additional









diagnostic information.






PAGE






NAME




String




Page Name




Name of the real-time page.






SERVICE




String




Page Service




Name of the service from






NAME





Name




which the page was









requested.






MAX




Integer




Maximum




Maximum number of






COL-





Number




columns on the page,






UMNS





of Columns




usually 80.






MAX




Integer




Maximum




Maximum number of rows






ROWS





Number of




on the page, usually 25.








Rows






ACTIVE




Boolean




Page Active




True if the page is active,








Flag




i.e., the service accepted









the request for the page and









is ready to provide page









data, false if the request was









rejected, for example,









because the user does not









have permission to see the









page.






HAS




Boolean




Page Has Data




True if the page has data,






DATA





Flag




false otherwise.






TEXT




String




Page Text




Descriptive status of the









page, can be used for









verification and diagnostic.






STALE




Boolean




Page Stale




False if page data is valid








Flag




and up-to-date, true









otherwise.






NEXT




String




Next Page




Name of the next page.






PAGE





Name






NAME






PRE-




String




Previous Page




Name of the previous page.






VIOUS





Name






PAGE






NAME






PAGE






AREA






PAGE




String




Page Name




Name of the page from






NAME






which the area is requested.






SERVICE




String




Page Service




Name of the respective page






NAME





Name




service.






START




Integer




Page Area




Starting column of the page






COLUMN





Start Column




area.






END




Integer




Page Area End




Ending column of the page






COLUMN





Column




area.






ROW




Integer




Page Area Row




Row of the page area.






VALUE




String




Page Area




Text contained in the








Text Value




specified are of the page.














PAGE SERVICE table


175


includes attributes that specify the name of the page service (“Name”), whether the page service is active (“Active”), whether a failure on the network prevents the page service from sending market data to its clients (“Stale”), and a written description of additional information concerning the current diagnostic state of the page service.




A real-time page includes alphanumeric characters. The position of a character on the page is defined by a particular row and column. PAGE table


180


includes such attributes as the name of the real-time page (“Name”), the name of the service from which the real-time page was requested (“Service Name”), the maximum number of columns on the page (“Max Columns”), e.g., 80 columns, the maximum number of rows on the page (“Max Rows”), e.g., 25 rows. Like other tables described above, the PAGE table identifies when the real-time page is active, that is, whether the page service has accepted the request for the page data. A request for page data is rejected and real-time page is inactive, for example, when the user is not authorized to receive the page data. Other attributes provided in the PAGE table include whether the page has data (“Has Data”), a written description of additional information concerning the current diagnostic state of the page (“Text”), whether the page data is valid and up-to-date (“Stale”), and the names of the next and previous pages (“Next Page Name”) and (“Previous Page Name”), respectively.




The PAGE AREA table


185


identifies the name of the page from which the information is requested and the name of the associated page service (“Page Name”) and (“Page Service”), respectively. In addition, the PAGE AREA table also has several columns associated with defining the page area. Specifically, “Start Column” and “End Column” are integer values used to define the first and last column that bound or define the page area. A particular row from within a particular page area is identified by an integer value in the “Row” attribute, while the associated text located within the specified area of the page is represented by the data string “Value”.




Context information is the last grouping in the data model shown in FIG.


1


. CONTEXT table


185


provides configuration, mount and diagnostic status information. Table IV below lists the attributes associated with the Context table.












TABLE IV











CONTEXT COLUMNS














Column




Column




Column




Description/






Name




Type




Description




Comments









HOST




String




Host List




List of hosts to try to






LIST






connect. The hosts are









tried in the order they









appear in the list.






POST




Long




Port Number




Port number to connect to.






NUMBER




Integer






USER




String




User Name




Name of the user, used for






NAME






authentication purposes.






MOUNT




Long




Mount Wait




Timeout, used to






WAIT




Integer




Time




established a connection.






TIME






CON-




String




Connected




Name of the currently






NECTED





Host




connected host, in case






HOST






there is no active









connection this column









represents the previously









connected host name.






FID DB




String




FID DB




MS-Windows registry key






KEY





Registry Key




that contains names of the









FID DB files.






AP-




String




Appendix A




Name and location of






PENDIX





file name




Appendix A file. This file






A NAME






is a FID DB file. It









contains definitions of









fields, their type and









lengths.






ENUM-




String




EnumType.def




EnumType.def file. This






DEF





File Name




file is a FID DB file. It






NAME






contains extended









definitions for the fields of









enumerated type.






DE-




String




Default Record




Name of the default record






FAULT





Service Name




service. This name is used






RECORD






when no service name is






SERVICE






specified in a query to one









of the tables of the record









group.






DE-




String




Default Page




Name of the default page






FAULT





Service Name




service. This name is used






PAGE






when no service name is






SERVICE






specified in a query to one









of the tables of the page









group.






DE-




String




Default Time




Name of the default time






FAULT





Series




series service. This name






TIME





Service Name




is used when no service






SERIES






name is specified in a






SERVICE






query to one of the tables









of the time series group.














The CONTEXT table, includes an enumerated list of potential hosts (“Host List”). In a preferred embodiment, connection to the hosts are attempted in the order in which they are listed. Also provided in the CONTEXT table is the port number with which to connect (“Port Number”) , the name of the user (“User Name”) for authentication purposes, and a time period to establish a connection (“Mount Wait Time”). The name of the currently connected host is represented by the “Connected Host” attribute. If no active connection is established, the previously connected host name is identified in this column. Other attributes include a registry key (“FID DB Key”) that contains the names of the Field Information Definition Database (FID DB) files. The name and location of an appendix file that contains definitions of fields, their types and lengths is represented as an “Appendix Name” attribute, while the name and location of a definition file that contains extended definitions for the enumerated types of fields is specified in the “Enumdef Name” attribute. Both the appendix and definition files are Field Information Definition Database files. A series of default attributes are also specified in CONTEXT table


185


. In particular, the table identifies a default record service name, a page service name and a time series service name to be relied on when no service name is identified in a query to one of the tables of the respective record, page or time series group.




The description of the exemplary embodiment in accordance with the present invention is for illustrative purposes only and is not intended to be limit the scope of the invention. The names used to identify the groups, tables, attributes, rows and columns may be renamed, as desired. Furthermore, the number of groupings, the number of tables in each group and the attributes associated with each table may also be modified, as desired.




The data model in accordance with the present invention in conjunction with the OLE DB specification permits financial data from disparate sources to be integrated, while at the same time providing an inexpensive low-tier data distribution solution and a generic application program interface that can be readily adapted by developers of varying levels of expertise.




Thus, while there have been shown, described, and pointed out fundamental novel features of the invention as applied to a preferred embodiment thereof, it will be understood that various omissions, substitutions, and changes in the form and details of the devices illustrated, and in their operation, may be made by those skilled in the art without departing from the spirit and scope of the invention. For example, it is expressly intended that all combinations of those elements and/or steps which perform substantially the same function, in substantially the same way, to achieve the same results are within the scope of the invention. Substitutions of elements from one described embodiment to another are also fully intended and contemplated. It is also to be understood that the drawings are not necessarily drawn to scale, but that they are merely conceptual in nature. It is the intention, therefore, to be limited only as indicated by the scope of the claims appended hereto.



Claims
  • 1. A computer-readable medium having stored thereon a data model for providing real-time access to financial information using an Object Linking and Embedding database provider, comprising;a real-time record table comprising a record service for a source of financial information, the record service comprising information concerning one or more records each having a record name; a time series table comprising an item having an item name, the item name being substantially the same as one of the record names; a page table comprising a service name for the source of financial information; and a context table comprising at least one of the record service, the time series service, and the page service.
  • 2. The computer-readable medium in accordance with claim 1, further comprising a plurality of real-time record tables in a real-time record group.
  • 3. The computer-readable medium in accordance with claim 2, wherein the real-time record group comprises a plurality of tables including information relating to a record service, a record, a chain of records, items in a record chain, a field definition, a field information definition database, and a field type.
  • 4. The computer-readable medium in accordance with claim 1, wherein the time series table includes historical data over a predetermined period of time.
  • 5. The computer-readable medium in accordance with claim 4, further comprising a plurality of time series tables in a time-series group.
  • 6. The computer-readable medium in accordance with claim 5, wherein said time series group comprises a series of tables including information relating to a time series service, times series records, time series samples, action type, element status, element error, element definition, and period type.
  • 7. The computer-readable medium in accordance with claim 1, wherein the page table includes information concerning at least one text page.
  • 8. The computer-readable medium in accordance with claim 7, further comprising a plurality of page tables in a page group.
  • 9. The computer-readable medium in accordance with claim 8, wherein the page group comprises a plurality of tables including information relating to a page service, a page, and a page area.
  • 10. The computer-readable medium in accordance with claim 1, wherein the context table includes configuration and diagnostic information.
  • 11. A computer-readable medium having stored thereon a data model for providing real-time access to financial information using and Object Linking and Embedding database provider, comprising;real-time record tables for providing information concerning financial data records, each one of the data records corresponding to a financial information source; time series tables for providing information concerning historical data over a predetermined time period for one or more of the financial data records; and page tables for providing information for text pages concerning one or more of the financial data records.
  • 12. The computer-readable medium in accordance with claim 11, further comprising a context table for providing configuration and diagnostic information.
  • 13. The computer-readable medium in accordance with claim 11, wherein the financial information is accessible using a Structured Query Language.
  • 14. The computer-readable medium in accordance with claim 13, wherein the Structured Query Language is ANSI SQL-92.
  • 15. The computer-readable medium in accordance with claim 11, wherein the financial information is accessible using ActiveX Data Objects (ADO).
  • 16. A method for accessing financial information comprising:receiving financial information from a first financial service; and storing the first service financial information on a computer-readable medium having stored thereon a data model, the data model comprising: real-time record tables providing information concerning financial data records; time series tables providing information concerning historical data over a predetermined time period; and page tables providing information concerning text pages.
  • 17. The method in accordance with claim 16, wherein the data model further comprises a context table providing configuration and diagnostic information.
  • 18. The method in accordance with claim 16, further comprising:receiving financial information from a second financial service; storing the second service financial information on the computer-readable medium in the data model.
  • 19. The method in accordance with claim 16, further comprising providing access to the first service financial information through a programming interface.
  • 20. The method in accordance with claim 19, wherein the programming interface comprises an Object Linking and Embedding database (OLE DB) programming interface.
  • 21. The method in accordance with claim 20, wherein the OLE programming interface comprises one of ActiveX Data Objects (ADO) and Structured Query Language (SQL) programming.
  • 22. The method in accordance with claim 21, wherein the SQL programming comprises ANSI SQL-92.
  • 23. A database provider for accessing financial market data comprising:a computer-readable medium; and a processor in communication with the computer-readable medium, the processor performing steps according to instructions stored on the computer-readable medium comprising: receiving financial information from a first financial service; and storing the first service financial information on the computer-readable medium in a data model comprising: real-time record tables providing information concerning financial data records; time series tables providing information concerning historical data over a predetermined time period; and page tables providing information concerning text pages.
  • 24. The database provide in accordance with claim 23, wherein the data model stored on the computer-readable medium further comprises a context table providing configuration and diagnostic information.
  • 25. The database provider in accordance with claim 23, wherein the processor performs further steps comprising:receiving financial information from a second financial service; and storing the second service financial information on the computer-readable medium in the data model.
  • 26. The database provider in accordance with claim 23, wherein the processor performs further steps comprising providing access to the first service financial information through a programming interface.
  • 27. The database provider in accordance with claim 23, wherein the database provider comprises an Object Linking and Embedding database provider.
US Referenced Citations (4)
Number Name Date Kind
5546455 Joyce et al. Aug 1996 A
5696925 Koh Dec 1997 A
5740053 Iwama Apr 1998 A
6173289 Sonderegger et al. Jan 2001 B1
Non-Patent Literature Citations (1)
Entry
Exemplary pages from the website “www.MICROSOFT.COM” concerning the OLE DB system (as of Jun. 1, 2000).