|
Data Exchanger Component for Information System of University |
|
Vlasta Leporská |
|
Czech Technical University in Prague, Computing and Information Centre Abstract The Data Exchanger is designated for the information system integration
purposes. This component serves as the central node of the system that
maintains and controls data flows between all separate components that the
system is consisting of. The Exchanger provides its own data structures
representing the union of all data exchanged among components and assures
the transfer of data from the source component to the target one(s) in the
real time. It stores the copy of all currently actual data being exchanged
within the system keeping their consistency. It prevents data transfer
process from providing more format conversions than is necessary. 1
Introduction The main goal of the Data Exchanger component is to bring more
efficiency and clarity to the process of the data exchange among
components of the information system. In principle the Exchanger is a kind
of middlewear solution, applied to not very large information system, like
university information systems used to be. In comparison to middlewear in
general it doesn't have to be so complex as usual solutions are but it
must solve some distinctions. What makes the task the Exchanger solves
easier is the fact the information system of our university works on one
database system namely Oracle and most components even use physically the
same database. What's non-standard it's for instance the problem with
several sources of data with the same meaning within the system,
especially data of the same subject coming from different source
components. It concerns mainly personal data of persons that study at the
university and at the same time they work for the university. Their
personal data in this case come from the information system of studies
component and they are also registered as employees in the standard
personal agenda of the university. When the student/employee changes
his/her data in one source component the other one might not have its data
of that person up to date. The Exchanger solution is trying to match to
the information system of Czech technical university environment and means
it offers. 2
Base Ideas of Solution The Data Exchanger Component implementation follows a few base ideas
that are general for solutions like that. These topics are discussed in
this section. 2.1 Data Source and Target In general a component of the information system works with data that
have the same meaning like data of one or more other components. Data like
that is necessary to exchange among components to make the system working
properly. From the data flow point of view we can define "the source
component" where data is created and "the target component"
that needs data coming from a source. In some cases can happen that more
than one component produces data of the same meaning and type within the
system, for example personal data as was presented in the Introduction
section. The Data Exchanger solution requires the only one source of data
that have the same meaning and type for further processing. It means that
in this case there is necessary to provide the Exchanger subcomponent that
collects such data assigning system wide unique identifier to every item
and guarantee that any change of data is distributed back in other source
components. This solution ensures that these data are any time up to date
and consistent within whole system and is ready for distribution. In case of data exchange between every source and every target component
the more data transfers are run than is optimal. The Data Exchanger
purpose is to take data from a source put them in its internal data
structure and then to distribute them in target components. 2.2 Common Data Structure Data that flow through the Exchanger are stored in the Exchanger's
internal data structure that is permanent even if it keeps just actual
state of data. The Exchanger has to provide its own data structures
representing the union of all actual data shared by at least two
components of the system. That data structures are independent from the
data formats provided by single components.
[S] – source component [T] – target component Fig. 1
Exchanger data structures idea This approach prevents data transfer from multiple format conversion
between component specific data formats. The only remaining conversion
will be the source component -> Exchanger, the Exchanger -> target
components. So for instance if a source component data format has changed,
only source component -> Exchanger conversion could be updated instead
of N conversions of the source -> target. 2.3 Real time data exchange
instead of batch processing The simplest philosophy of system integration on the database level is
providing "interface views" from a component's database to let
another component access data. Information system components usually
provide system integration support based on a set of views as the standard
interface. Using those views invokes the way of batch processing view data
that is provided usually once a day, best over the night when the
information system is 'sleeping'. That method has some disadvantages. The
first one is the time delay between entrance data in the system and their
delivering in a target component. In addition the batch data exchange
spends much time because of processing bigger amount of data than is
actually needed to process. The main disadvantage is that data are
distributed 'one to one' component within the system, what's just an
approach opposite to the Data Exchanger idea. Theoretically this approach could be accepted also in case of Data Exchanger solution. Data Exchanger can read data from component views, put them in its data structure and provide views towards target components. But when we are going to establish the 'system central data transfer node' why not to try the real time transfer approach? At the database level is a way to do it using database triggers providing transfer single records from the source component to the Exchanger data structures and then into appropriate target components when triggering event like insert or update data happen. Alternatively instead of trigger on the data source entity the interface procedure called by the component application when user makes an action can be provided. Anyway in both cases the data entered in a component are transferred in the Exchanger immediately in the real time and then depends on target components whether they need to let data flow in their data structures immediately too or if they prefer starting data transfer on a user action or if they load data from the Exchanger in a time interval. 3
Data Exchanger of the Information System of Czech technical
university in Prague The information system that Czech Technical University in Prague
provides, has been built in sequence by needs of particular areas like
economy, study, science and research regarding assets available.
Consequently this system is currently consisting of several independent
components like the Financial Information system component, the Personal
Record-keeping system component, Studies Maintenance component, the
component for Science, Research and External relationships and some else
ones each supplied by different vendor. The information system of the
university also provides its own part for providing student/employee smart
cards internally used for various purpose: entrance identification,
payment services within the University etc. The Data Exchanger component idea was worked out during the fall of
2003, so the design and development this component is currently in
progress. Regarding the fact the most of the Information System of Czech
Technical University in Prague is put in Oracle environment, procedures
providing Data Exchanger functionality, are implemented in Oracle using
PL/SQL programming language. The Data Exchanger is developed incrementally step by step where one
step represents one data flow. At first it is necessary to process data
that are most urgent to provide them efficiently, currently the data of
persons that are shared by almost all components of the system. Just in
case of personal data there are two source components that bring them in
the system (students and employees) and sometimes data conflict occurs
when the same person is stored in both components with different data. To
have the only one source component for one kind of data exchanged via
Exchanger there was developed the central Persons Register subcomponent
that collects basic personal data of all persons stored in the Information
System within whole university. 3.1 Central Persons Register
Subcomponent In detail the Persons Register works following way: both components - the Personal Record-keeping system component that maintains employees data and Studies Maintenance component that maintains students data, write a record to the Persons Register any time when some new person data is created or updated by the component. When a person is created first time, the Persons Register generates and assigns the personal number, unique within the system, to that person. When opposite component is going to create new person, it must ask Persons Register first whether that person already exists in the system being created with other component. There is used the personal identity number valid in the Czech republic like unique identifier of person for this purpose. If that person exists in Persons Register - i.e. a person having this identity number is found in Register, his/her data are shown in the form of component that is going to create that person's record in its database. Any change of data of a person is logged and if that person is kept also in the opposite component, the change is immediately announced to competent clerks. This solution enables to control all personal data consistency and prevents possible conflicts. Communication between components and Register is provided in real time via PL/SQL interface procedures called by components. 3.2 Common code-lists as a
part of the Data Exchanger The Data Exchanger as the central node of the system is the best place
where to put central code-lists common for all components. It concerns
various kind of common data used by many components like currency
code-list, degrees code-list, position names list etc. The Data Exchanger
of the Czech Technical University will maintain also the data structure
containing system wide general coding the organisation units that several
components work with and until Exchanger solution comes they have been
using its own coding each different from others. Data like that are not
exchanged between components but they are shared by components so that's
why we decided that functionality belongs to the solution of the Data
Exchanger. 4
Conclusion The Data Exchanger
information system component solution is probably simpler than standard
middlewear but more complex than some similar approach that many
institutions, solving system integration problem, apply. Most often
solution used to be providing not a real data transfer node but only some
'data collector' that brings data from various sources into one heap.
There are commercial products, that are able to collect and structure wide
sort of data from many different data sources and store them, but the
result data set is not distributed along the system, it is presented on
web or reported some way instead. Data kept by Exchanger internally also
can serve for analysis purpose or can be distributed or reported outside
of the university information system including web publication. The Data Exchanger represents a simple middlewear solution that could be interesting for another institutions, similar to our university, that need to integrate data of various components of an information system. |