Académique Documents
Professionnel Documents
Culture Documents
______________________________________________________________________
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
Definition
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.
Features
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.
Architecture
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).
Patterns
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.
Actors
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
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
Problem:
To integrate the information generated by the “Producers” information actors
into the system.
Interaction Integration
w ith client Manager
Information
Integrator
Mensaje
[Datos[Info]]
DataBase
Distributing information
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.
? Info-distributing pattern
Problem:
Distributing information to the users.
Solution:
...
Information Database I
Request
Database II
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.
Common Structure
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.
?? 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.
Solution
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.
Additional notes
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:
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.
Logical architecture
Nowadays, the logical architecture follows a basic scheme , formed by three primary
layers: user interface , logic domain , and data source.
User
Interface
Domain Logic
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 .
Presentation
User Interface
Interface Logic
Domain Logic
Domain Logic
Data Mapping
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.
Physical Architecture
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.
-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.
Final Note
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;-))