The
Architecture of Enterprise Information Systems.
A
view based on patterns.
1. -Introduction
2. -Requirements and Information Systems Main
Processes
3. -Common Components
4. –Architecture
“... you can see a predefined structure that
remains from the source content to the resulting content...” Moisés D.
Díaz.
1. -Introduction
There
are plenty of software systems, being information a constant in all of them.
Information is not only a constant element in the systems we are going to focus
on, but the fundamental element. The relevance of information in software
systems is related to their function, that of managing this ungraspable element
(that we call information). That is why the main problems these systems have to
solve are related to information representation and persistence, data reception
and transmission, and to the devices that help us to transmit and communicate
this information.
Then, what is an information system?. We can
define an information system as the compound of components (or elements) that
operate together in order to catch, process, store, and distribute information.
This information is generally used for taking decisions, for the co-ordination,
the control, and the analysis in an organisation. In many occasions, the system´s
basic aim is the management of that information.
If we go further, we may wonder about the main
features of information systems. Then, let´s analyse them:
§
They
manage huge amounts of persistent data (concretely, they manage the data they store)
§
They
manage many users converging access to information (these users produce and
consume data that the system manages)
§
Information
system graphic interfaces are, in some aspect, defined in relation to the kind
of information the system manages (certainly, in many formulation screens and
reports)
§
Information
systems can integrate to many other enterprise and ofimatic applications.
It is said that function defines form, that is,
whatever system whose structure or architecture is closely related to what is
to be made.That is why the compound of information systems share a common
architecture, and well defined processes. Because all of them have equal aims
to achieve (not to forget: to integrate, to process, to store, and to
distribute information). As well as a compound of common features previously
commented.
The concept of architecture is frequently and
differently used, making change its meaning into something diffuse (Truly, I
can not assure if it has ever been clear).
In this article we understand architecture as
the structure that the compound of components that makes up a system. That is,
a high-level system structural view.
We can define a design pattern as the abstract
representation of a good solution (or design) for a concrete problem that is
delivered in one or more contexts.
What is what patterns do offer us? Those ones
have facilitates us the possibility of organising our categories, components,
and subsystems in common structures, correctly proved; Impacting in the system,
that is increasing its flexibility, modularity, and extensiveness. In other
words, patterns meliorate the design value, quality, and consequently they
meliorate the software itself.
Patterns have proved to be the ideal way to
transmit a structural knowledge, that is, design knowledge; as for example,
systems architecture, the subject we are dealing with.
I will present the different elements by means
of a documented structure, inspired upon design pattern, although much less
formal.
In the same way, patterns are frequently
grouped into language patterns. Generally, a compound of patterns is described
in these languages for a possible identification of a series of roles in the
particular context that is applied, and also to identify the way they are
related to each other. Then, we can completely describe the systems that appear
in such a context by means of language patterns. Either to solve the different
problems that can appear in a specific context.
In a certain way, this article
constitutes a language of patterns that describe all the components and
information system basic processes.
2.Requirements and Information system basic processes
We have
previously said that one of the information systems features is that of
managing the users access to the system.
This access can be produced due to different
causes: In order to add, modify or erase data. As well as to consult, and
manage the information system itself.
We will have different uses or actors depending
on the kind of access.
Information producers, information consumers,
and system managers.
An actor is an extern element to the system
that interact with it, being this actor a person, either a computer program.
Basic processes.
Three kinds of actors have been identified, and
three types of basic functions are to be achieved by an information system:
§
To
integrate the information to the system. The original data for this activity
will be given by information producers. This process can lead to an earlier
processing of such a data. They can be processed before they have been stored
in the system. .
§
To
distribute information to the users. Obviously, to the information consumers.
This process can also entail the stored data processing that we are going to
distribute.
§
To manage the system, to enrol and withdraw,
to modify new information producers and consumers, establishing permissions
regarding their activity. It is essential not to forget that whatever
information system is a real system, that requires administration, carried out
by the system managers.
As we can see a direct correspondence is
established among the actors and the interacting functionality of the system
itself.
After analysing this fact, let’s analyse in a
deeper way the two highest impactive architectonic processes.
Integrating information is one of the
fundamental processes that an information system must carry out.
At the same time this process can be divided
into a series of sub-processes that will have to be implemented depending on
the complexity of our system and on the tools we are working with.
Generally, to integrate information means to
process the data that producers generate, and incorporate this information to
our data store (normally, related data stores). Being more specific to storage
information means:
§
To
accept the information package (When speaking about information package we will
refer to the grouped and structured
data). The system can possibly contain modules generated by information
packages, by means of the information taken when actors interact.
§
To
verify the information package (for example, in a e-mail you have to verify
addressers, adjunct restrictions, etc.)
§
To
verify the structural validity of data that has been sent (for example, in a
xml, it would be to make it valuable against its xschema). And also verify
permissions (of the producers with respect to the data.
§
To
integrate and transform the information into data stores. Generally, it will
mean to incorporate that information into any table compound of any relational
data base Of a relational database (in this case verification processes can
occur between the producers and the kind of data that has been sent).
§
To
generate answers concerning those packages process to producers of such an
information.
This process would end up like this, if we
document it as a pattern
® Integration pattern.
Info-integration process
Problem:
To integrate the information
generated by the “Producers” information actors into the system.
Basic forces: Forces are functional
requirements themselves: Business necessities, structural validities, content
validities, answers generation.
To create a structure of components
that shows, maps, and covers the functional requirements of incorporating the
information to the system.
With a direct
correspondence between each requirement of the process and a component.
|
|
Distributing information is one of the main
processes that information system must carry out.
It would be worthless to obtain huge or little
amount of information if it was not going to be distributed (after being
processed or not) to those users that need it for their job.
But, not all the users share equal necessities
and privileges. There will be users capable of obtaining whatever kind of
information. Meanwhile, the other will only be able to access to a section of
it.
The same way, formats in which such an
information will be distributed can be very different, as well as the protocols
used for the transmission.
Then, distributing
information is a complex process that can be subdivided into different
subprocesses.
§
To
admit information petitions. The system can equipped with modules that
represent directly such an information to the consumer.
§
Information
petitions validaties.
§
Collecting
information.
§
Formatting-processing
of it.
§
Sending
information to the consumer.
Whose
pattern is the following one:
®Info-distributing pattern
Problem:
Distributing information to the
users.
Basic forces. Forces are the
functional requirements themselves:business necessities,(Distributing
information, a primary functional requirement),users and request validities
(restrictions), information formatting and sending, etc.
Solution:
We turn each subprocess into
a well-defined component concerning functionality. And it will possibly be
implemented depending on two facts:
§
First,
if it has or has not been previously implemented by our development
tools.
§
And
depending on the complexity required by the task.
|
|
Models of interaction:
I will finally add some notes about the models
of interaction between a system and its users:
§
Synchrone.
The “interacting customer” model and must communicate synchronically. The
compound of all interactions among components
must be of a low degree of latency. These solutions offer complete
surroundings for recording data, and for sending huge amounts of information.
N-layer Customer-server architecture, with communications framed in local webs,
in which components can interact by means of dcom or corba(Soap) is the current solution.
§
Synchrone
with latency. Another internet solution based on web, web activex crossing or
java Applets. Generally, Synchronic applications can be implemented in this
case, but featured with latency (due to the band width,...)and with a lower
level of interaction.
§
Light
Asynchrones: Systems in which communication is based on asynchronic messages
systems, in which answers can take even minutes in being originated. For
example: JMS, MSMQ, etc.
§
Heavy
Asynchrones: Systems in which communication is based on electronic mail.
Firstly, information is sent. Since
this information is processed, the integration manager sends a message to the sender
We have seen that both patterns are similar in
terms of structure well as they share components, that can be found in whatever
information system. Now, let´s focus on peripheral components.
3.-Common components
In the previous section we have taken into
account aspects about Integrating and Distributing patterns.We have basically
focused on their inside mechanics, that is, on the interior elements that make
up an information system.. Now, we will speak about the peripheral elements,
those that are found in the limits of the system itself, and interact with the
system information exterior.
®Peripheral Component Producer-System
Interface
Problem:
Mechanisms must be available
in order to incorporate the information (that exists in the dominion of the
problem,) to the system. And consequently it will processed by it.
§
The
producer produces information
§
This
information must be collected and treated by the system
§
Information
must be formatted for a correct treatment
§
There
must be mechanisms that send those information packages to those system
components, suitable for their treatment. These mechanisms must be transparent
to the producer user,
Solution:
An element is
constructed in order to assume this role. The purposes of this element are:
§
To
generate the information packages , by means of the interaction with the user
(This activity is generally called “data recording”
§
To
establish mechanisms that interact with the producer. This mechanism helps the
producer to incorporate information packages (that have already been
created or generated by other
devices) to the system.
§
To
transmit the information packages to the system components (created for the
information management and treatment)
This is the most sensitive part of the system
Examples: (All this will seen more specifically in the
following note)
§
This
role could be modelled in a bureau customer application, in a customer/server
application context.
§
In a
context of a local application, in which this application is carried out by a
data base manager (as for example, the Access),the application is already
implemented with all this functionality. All this functionality and the
interface itself are forms presented by
the manager to the user.They can be carried out automatically .
§
In the
context of a system distributed among
wider geographic areas: Packages transmission protocols must be chosen,
as well as formats, to structure such information, and then, to be treated by
the system. In many occasions, information comes from any other system, that
generates an information package (generally, a file) for our system, and uses
the mechanisms(interface applications),that are supplied to interact with the
system.
® Common Component:System-consumer
Interface
problem:
Mechanisms must be supplied in
order the consumer can send and process
the information that exists in the
information system.This activity generally avails the visualisation of the solicited information representation .And, it also avails the capacity to
export such an information to other systems.
§
The
consumer solicits and uses the information that the system has.
§
Information
that is given to the consumer can be processed and filtered, if before its
reception.
§
Information
must be delivered in a structured way (visually or by means of files)
§
There
must be mechanisms to avail the consumer to process the distributed
information, addressed to him. This can be achieved by means of mechanisms
supplied by the system itself, either exporting the information to other
surroundings.
To construct an element that assumes
this role, whose aims will be:
§
To
receive the information packages, that have been generated by the system.
§
To
establish mechanisms that help the consumer to interact with the information
system.
§
To
establish mechanisms that export the information to other systems.
This role can be implemented by
other components that establish a low latency communication with information
distributing mechanisms.
It could be considered the acting
part of the digital (nervious)system.
Examples: (All this will be seen in a more detailed way
in the following section)
§
Starting
point :A context with a customer/server application in the local dependencies
of the enterprise. The interface is a bureau application , made up of languages
and platforms that make all the
information sending and reception management questions invisible, even to the
developer. The programme accedes to the enterprise data base in the customer
computer. And it shows the result of
consults in the user´s screen, availing the user to carry out some defined
processing activities ,as well as to export the obtained data to spreadsheet
formats, and to personal data base managers(or to low degree data base
manager).
§
Starting
point: A context based on the internet
technologies. The interface component (plus the user) is a navigator that
presents and represents the information, as well as additional interface
elements, codified in html; either any other scripts language .We could add
plug-ins to the navigator , in order to provide more richness to the
executing-customer surrounding.
®Common Component: Central
information Store
Problem:
To store huge amounts of
information, in such a way that it is easy to integrate more
information(generated by the information producers ),either to distribute
it(towards the information consumers).
§
To
store huge amounts of information
§
To
modify the stored information.
§
To
extract and distribute the information that we have.
§
To
make possible various simultaneous interactions with the compound of data.
Solution:
To use a component or system that
can assume this role. There are several options. Data base managing systems are
the most used(commonly named data base).These systems are a compound of
applications or components that permit to store, modify , and extract
information from a data base. This data base is merely a huge compound of
information , organised into files and registers .There are different kinds of
data base managing systems(ranging from), covering from those tiny systems that work in a personal
computer, to those enormous systems that are executed in Mainframes.
4.-Architecture
How can we map all we have learnt by now about
contemporary standard architecture?.
Let´s
start saying that we will distinguish two kinds of architectures: a logic one,
made up by components, subsystems and applications and the physic one, made up
of computers or groups of computers.
Nowadays, the logical architecture follows a
basic scheme , formed by three primary layers: user interface , logic domain ,
and data source.

This scheme, though useful, is not enough to
show the logical architecture of the
contemporary enterprise applications. We can make the scheme evolve into a more precise and consistent one., in
accordance with the present reality.
This second scheme is made up of five logical
layers .


![]()
![]()
![]()
This model adds a mediating layer , that works
among the primary layers, to obtain a
higher independence among them.And, then, to permit their evolution or
substitution autonomously, decreasing considerably their impact in the other
parts of the system.
With a five logical layers architecture, how
will we map all the processes and components, that we have seen in this kind of
architecture? . The following diagram will show the solution
The following scheme shows the process to a
five logical layer architecture.
|
|
Five logical layers, info-integrating and
info-distributing process, the compound of components that belong to those
processes, and the information currents that are produced, have been shown in
this scheme.
This five logical layer architecture is changed
into a one, two, or three-layer architecture when it is physically implanted.
The monopositioned solutions (just one physical layer; for example, an
application carried out in Access that works upon/over a local data base) are
not frequently in /at enterprise surroundings, where applications are usually
complex, multipositioned, and, where data are usually protected, requiring a
considerable administration effort.
Consequently, architectures based on two or
three physical layers are the most frequent in enterprise surroundings.
If we focus on two or three physical layers
architecture, we will say that they are basically articulated into two
settings. Each one with its logical layers distribution, its components,
technologies, etc.
These settings are:the web architecture, and
the client-server architecture.
Let’s represent it graphically, assuming the
following premises: Each rectangle represents a node, that is, a computer. It
will be associated to a rounded angle rectangle, where we have written the
logical layers it would have, as well as the different technologies we can use
for its implementation. The thick arrows represent the connections among those
nodes, and they also are written with protocols and substitutes, that we can
use in these kinds of communications.
-Web Architectures.
|
|
We can watch two different variables: one,
formed by the navigator, the web server, and the data base; and, the other, in
which an application server would be added.
Web architectures have represented one of the
biggest changes in enterprise software applications of this last decade. These
have brought us a great quantity of benefits like: universal access by means of internet navigators (IE and
Netscape), standardization of communication protocols (http, Soap, etc),
standardization of languages of representation of graphical interfaces (html),
decrease of costs associated to the maintenance of the software in the PC.
-Client/Server Architectures.
|
|
Customers and servers are supposed to belong to the same
corporative web in this kind of architecture. This approach offers different
advantages. For example it supplies the chance of creating customers with
richer interfaces( very useful for recording and manipulating data), of using
the PC´s processing capacity, and it also offers a better applications agility,
for there is a bigger width band for each customer station when running
throughout private webs.
Several disadvantages are also involved, if
comparing to architectures based on web systems:
There is a much higher maintaining cost due to
the applications to construct and distribute in customer stations.
There are more connecting restrictions that in
the web. For the latter( and its associated technologies) have turned into an
ubiquitous and omnipresent environments. Web architectures are normally chosen
when possible.
Each problem is different, as well as each
solution. A series of patterns, components, and architecture, that are not new
at all, have been explained in this article. Otherwise, they try to supply a
structural and clear vision to the problem (and solution) of creating
Enterprise Information Systems. I hope they can help and be an useful guide,
when facing a project. Nevertheless, we must always take into account that
there is no pattern, neither architecture, nor tool or article, that can
substitute the human brain (at least, by now;-))
Links and e-Bibliography: