The present invention relates to computer systems. The invention more particularly relates to a method, device and computer program medium for setting up a part of a computer system as well as to such a computer system.
In complex computer systems, such as in trading systems, it is known that different modules providing different functionalities share data in various data fields that are stored in a database. One example of such a module is a market module where an actual trading application is provided. A module then includes a data handling unit for handling these data fields. There is also required data field handling functionality in relation to the database.
In order to provide such data handling units it is then necessary to provide data field definitions for the data fields in the system.
However, the way that such data field definitions are provided for many such systems is often not well organised. This means that an updating of the system is hard to make, in that if new modules and/or data field definitions are introduced, the handling of data by other modules and data handling units may be influenced. This means that with the introduction of new modules and new data field definitions already existing modules would have to be updated. This is often costly and requires quite a bit of effort. It is also not simple to let a customer who purchases such a system have their own special implementation of the system applied.
There is therefore a need for enabling the provision of new modules, functionality and data field definitions in a controlled way while limiting the influence on already existing modules and data handling functionality.
US 2006/0075396 and U.S. Pat. No. 7,124,145 describe trading systems where new rules can be dynamically added to the trading systems by a user.
However, for a supplier of a system, like the supplier of a trading system, it is in many cases not desirable to give the users the possibility to dynamically change the system, because then it is often hard to support the changes that have been made to the system, since they may be unknown
There is therefore a need for a system, where updates in relation to different data field definitions can be provided in an efficient and controlled manner without having to change the whole system, i.e. so that the efforts put down into the design of the system can be reused, while still avoiding uncontrolled additions to the system.
A first aspect of the present invention concerns a method for setting up a part of a computer system, which system includes a number of modules of different types using data of a number of data fields provided in a system data set, comprising the steps of: reading data field definitions for the data fields of said system data set, said data field definitions being provided in a system data definition structure, where said system data definition structure groups the various data field definitions for the data fields of the system data set into data packages according to which modules are to use them, and generating, based on said data field definitions, data handling units for handling data in said system data set, where each data handling unit receives functionality indicated by data field definitions in at least one data package.
A second aspect of the present invention concerns a device for setting up a part of a computer system, which system includes a number of modules of different types using data in a number of data fields provided in a system data set, arranged to: read data field definitions for the data fields of said system data set, said data field definitions being provided in a system data definition structure, where said system data definition structure groups the various data field definitions for the data fields of the of the system data set into data packages according to which modules are to use them, and generate, based on said data field definitions, data handling units for handling data in said system data set, where each data handling unit receives functionality indicated by data field definitions of at least one data package.
A third aspect of the present invention concerns a computer program medium for providing a part of a computer system, which system includes a number of modules of different types using data of a number of data fields provided in a system data set, comprising computer program code providing,
data field definitions for the data fields of said system data set, said data field definitions being provided in a system data definition structure, where said system data definition structure groups the various data field definitions for the data fields of the system data set into data packages according to which modules are to use them, and
said data field definitions include data enabling the generating of data handling unit for handling data in the data fields of said system data set.
A fourth aspect of the present invention concerns a computer system comprising:
a number of modules of different types each using data of at least one of a number of data fields provided in a system data set,
at least one data handling unit for handling data in said system data set, and
at least one database comprising said data of the system data set,
wherein each data handling unit includes functionality associated with data field definitions for at least one data field of the system data set, where data field definitions for the data fields of the system data set are provided in a system data definition structure, where said system data definition structure groups the various data field definitions for the data fields of the system data set into packages according to which modules are to use them.
The present invention has the advantage of simplifying the implementation of updates in a computer system, since then only the structure concerned with modules and data fields that are of interest to update need to be updated. It is also easy to provide new modules and new data fields without modifying the basic structure. This is possible to do both for the system provider as well as various customers that purchase the system. In this way it is ensured that updates do not more than necessary influence the various functionalities that are provided. In this way it is possible to provide a flexible computer system that is easy to maintain and update. Updating can furthermore be provided in a cost-efficient manner.
It should be emphasized that the term “comprises/comprising” when used in this specification is taken to specify the presence of stated features, steps or components, but does not preclude the presence or addition of one or more other features, steps, components or groups thereof.
The present invention will now be described in more detail in relation to the enclosed drawings, in which:
In the following description, for purposes of explanation and not limitation, specific details are set forth such as particular architectures, interfaces, techniques, etc. in order to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced in other embodiments that depart from these specific details. In other instances, detailed descriptions of well known devices, circuits, and methods are omitted so as not to obscure the description of the present invention with unnecessary detail.
In the system 10 there are a number of modules 16 and 18. Each of the modules is of a different type that provides a number of activities for a number of actors related to the system. Actors in a trading system can be such entities such as trading agents, stock exchanges, companies for which trading instruments are provided, authorities, information vendors etc. In
According to one variation of the present invention, the system data set in the database 14 is made up of reference data for the different modules, where such reference data may be definition of instruments traded, definitions of specific instruments, various limits for instruments etc. For this reason the central data handling unit 12 is often also denoted reference data manager and the specific data handling units 20 and 22 are often also denoted reference data caches.
In the figure there is furthermore provided an end user data handling unit 24, which is a graphical user interface unit GUI, via which a user of the system can access and monitor the various system data in the system data set of the data base 14.
The system data set SD in the database is shown in
In order to provide data enabling the implementing of the system in a structured way, there is provided a system data definition structure SDD. Such a system data definition structure is generally outlined in
Each data package includes information regarding the data fields that are supported and the data types of these data fields. The data field definitions in a data package this gives information in the form of structural language expressions, which may be XML, that enables the provision of all data handling units in case of the Core Common data package or a specific data handling unit in the case of Core Market CM or Core Info CI data package and the creation of the database for the data fields covered by this package. In
Now the setting up of a system according to the present invention will be described in relation to
According to the invention the source code generator 28 reads the system data definition structure SDD from the medium 26. It then reads the data packages/files one by one and creates one big file in which the above described information of each package is provided together with an indication of the data handling unit that is to be created. When all data package files have been read the generator 28 generates code that provides functionality for the various data handling units as well as for creating the database. The generator 28 thus generates code C1 that handles the data fields in the GUI 24, code C2 for creating the database 14, i.e. for building the tables in the database 14, code C3 for handling all the data fields in the central data handling unit 12 as well as code C4 for handling the data in the specific data handling units. Here there is only shown how code C4 is generated for the first specific data handling unit 20 of the market module. It should however be realised that the source code generator also generates code for the second specific data handing unit.
The central data handling unit 12 here handles all of the data fields of the system data set. It is therefore based on the data field definitions of all data packages. The specific data handling units are on the other hand only based on data field definitions in data packages that are associated with the corresponding module. This means that for instance the customer specific data handing unit of the market module is generated based on only the common data package, like Core Common and Customer Specific Common, and data packages that are specific to this module, like Core Market and Customer Specific Market. The above generated code is here normally provided as source code.
In this way the data handling units and the data base have been generated by the generator 28 based on the data field definitions. Each data handling unit has also received the functionality indicated by the various data packages. As this has been done the specific data handling units are also provided to the modules.
Thereafter the source code is compiled into binary code and after the database has been filled with the relevant reference data, the system can be put to use.
The end-user data handling units may here be accessed by an end user or exported to an end user device.
The reference data generator furthermore provides the data fields for various users of the corresponding module in views according to the system data definition structure.
With this type of organising, it is possible to easily make extensions to the system data set since then only the module that is of interest to extend can be updated, while the others remain unchanged. It is also easy to provide new modules and new data fields without modifying the basic structure. This is possible to do both for the system provider as well as various customers that purchase the system. In this way it is ensured that updates do not more than necessary influence the various functionalities that are provided. In this way it is possible to provide a flexible computer system that is easy to maintain and update. Updating can furthermore be provided in a cost-efficient manner. Since updating is done prior to the system being put in operation, it is furthermore ensured that unauthorized additions cannot be added in an uncontrolled way.
In the above described embodiment it is not possible to see where the different data field definitions from the different data packages are provided in the binary code. According to one variation of the present invention it is possible to know in what part of the binary code, the functionality associated with a certain data package is located. This enables the replacing of only this code when an update is performed. In this way further updating is simplified.
The data handling units of the present invention are, as has been described above, implemented through one or more processors together with computer program code for performing their functions. Also the source code generator is with advantage provided in this way.
While the invention has been described in connection with what is presently considered to be most practical and preferred embodiments, it is to be understood that the invention is not to be limited to the disclosed embodiments, but on the contrary, is intended to cover various modifications and equivalent arrangements. The invention is for instance not limited to reference data. It is possible to apply to any data fields that are used in a system. As mentioned above it is not necessary with customer specific packages. These are thus optional. The invention also enables the possibility to plug in a business validation function for validating the inserted data of a specified data field, with little effort. Therefore the present invention is only to be limited by the following claims.