Architectures are of great importance in the design and realisation
of information systems. In information
technology there are two meanings to the term architecture: the
architecture of a specific computer system and architecture as the style
of building.
The architecture of a specific system
The architecture is a model indicating how a system is roughly divided
into components and how these components collaborate to realise the
functions of the system. Usually, there is a collection of models that
together represent the complete architecture of a system. In case of
the application of
IT in business operation, separate models are needed for the architectures
of the business processes
and business objects, the applications
and the hardware configuration. The models may be static, like a data
model and hardware configurations. Nowadays, simulation tools also allow
for dynamic models, such as the simulation of how a business process
works, or how hardware components work.
Architecture as the style of building
An architecture as the style of building is a set of rules indicating
how we can construct systems from components. There are standards for
the way components should work and especially for the way they should
connect.
This section goes into architectures as the style of building, and
especially application architectures. As a result of the advent of network
systems there is a strong interest in application architectures. The
hardware of a network system consist of workstations (e.g. personal
computers) that are connected to server computers (e.g. mid-range computers
or a mainframe) via a network.
A network architecture of the hardware allows for the development of
applications that consist of different components which run on different
computers in the network and exchange messages.
To be able to build this type of applications, it must be agreed on
beforehand which components applications may consist of, on which computers
they may run and how they communicate. You therefore need an application
architecture, a style of building, prescribing how developers should
construct these distributed applications.
Figure 4.5 Network architecture of the hardware.
We here discuss two application architectures for network systems.
The first one is the, currently booming,
client/server architecture. As a starting point, this architecture
uses applications in the form of existing on-line programmes, indicating
how these applications can be distributed among workstations and servers/
The second architecture we discuss is based on object orientation. Typical
of this architecture are autonomous active
objects (agents) on different computers, that collaborate. We have
called this architecture the Collaborative Object Architecture.
4.5.1 Client/Server Architecture
In the client/server architecture, an application at least consists
of a component on the workstation - the client - that uses the services
of components - the servers - on mid-range computers or the mainframe.
In the client/server architecture, clients and servers are separate
programmes. To execute an application, the user starts the client on
his workstation. The client calls the server on the server computer
and starts it.
The Gartner Group distinguishes five types for the division of tasks
among clients and servers. These are based on the fact that an application
consists of three functions, being the presentation to the user, the
application logic of the actual processing and the data management for
retrieval and editing of data in the
database.
Figure 4.6 Five different types of client/server architecture (source:
Gartner Group).
The five types of client/server are briefly described below.
Distributed Presentation
In this type, almost all the intelligence is located in the server.
The workstation only handles part of the presentation. An example of
this is an application running on the mainframe with the presentation
handled by a Character User Interface on the workstation. This is not
a particularly interesting form of client/server, since it is, for example,
impossible for a server on a mainframe to control a Graphical User Interface
on a personal computer.
Remote Presentation
In this type, the client handles the presentation on the workstation,
preferably via a GUI, while the server handles the application logic
and the data management. A condition is that the application logic is
able to properly control the presentation on the GUI. This is not possible
if the server is a conventional transaction programme on the mainframe.
Distributed application logic
This type splits the application logic into two parts. Besides the presentation,
the client mainly handles the process logic of the application, such
as displaying and handling windows via the GUI. Besides the data management,
the server also handles the data logic of the application, such as reading
and editing data and verification and security. This type of client/server
can be used very well with a client on the personal computer with a
GUI for the presentation and one or more servers on a mainframe or on
mid-range computers, in the form of a conventional on-line programme
(without presentation, though). The server can also be realised as a
so-called remote procedure of a relational DBMS.
Remote DBMS
In this type, all the intelligence of the application is placed in the
client. The server is in fact a DBMS. This type is currently much used
in PC-LAN environments with a PC or mid-range computer for a server.
A relational DBMS has been installed on the server. The clients on the
workstations communicate with a relational DBMS through SQL-queries.
Distributed DBMS
This type of client/server is hardly ever applied, since DBMSs do not
yet properly support a distributed database.
Which type of client/server architecture is the best one, strongly
depends on the situation.
4.5.2 Collaborative Object Architecture
A disadvantage of the types of client/server architecture described
above, is the fact that they can only be used for one type of application,
namely on-line transactions with which the user retrieves and edits
data in databases. They exclude two important types of applications:
- 'groupware' applications, which for example support the
communication and collaboration between different users;
- distributed applications with (massive) parallel processing, which
can also serve to replace existing batch applications.
Both cases concern applications which can be very well supported by
network systems.
Another point is the fact that in the client/server architecture an
application is still a programme, in which the data are stored separately
in a DBMS. This implies that we have to distribute programmes as well
as data over the network separately. Especially in a distributed environment
there are therefore advantages to having objects as applications. We
can then distribute objects over the network as units of data, functions
and interfaces.
We have to aim for an architecture in which the various application
components collaborate in a different form. In the current client/server
architecture this collaboration has the form of Co-operative Processing.
This is the name for the collaboration in an application between a client,
for example on a workstation, and one or more servers on for example
a mainframe or mid-range computer. The user starts the client, which
in turn calls the servers, so there is a 1 to n co-operation
between client and servers. This is a form of hierarchic co-operation.
The client and the user usually wait for the server to answer. The server
is not capable of executing an assignment independently during a long
period of time, or of calling in the help of another user, if it receives
an order it cannot execute.
What we are aiming for is an architecture with Collaborative Processing.
This is the name for a n to m relationship between independent
application components. This type of co-operation can be realised between
autonomous, self-operating objects which are located on one computer
or on different computers in a network and communicate with each other.
Such autonomous objects are called agents. Typical of an application
consisting of agents is the fact that the agents can be active parallel
on different locations in the network. Agents that function as servers
can decide for themselves when they execute the user's orders. Agents
can communicate with each other, they make requests of each other and
return answers. Agents are also able to contact the user via the interface
and ask him specific questions or display messages.
Figure 4.7 shows the architecture that supports collaborative processing
between objects. We have called this architecture Collaborative Object
Architecture.
Figure 4.7 Collaborative Object Architecture.
In this architecture, the applications consist of three different
types of objects: interface objects, process objects and domain objects.
Interface objects
The interface objects handle the man/computer interaction via a GUI
or a multimedia interface. There
are also interface objects that support the communication with printers
and scanners.
Process objects
The process objects support the processes the users execute. An example
of a process object is an electronic work file that supports the execution
of an administrative process by various users. Process objects can communicate
with each other, which makes them able to support communication between
processes and between users. A process object can be active in the foreground,
communicating with the user via interface objects, or in the background,
communicating with other process objects.
Many process objects correspond with business processes, of which they
handle the automated part of the execution.
Domain objects
The domain objects contain data related to a certain application domain,
for example customers, products and
contracts. Users want to keep these data for a long period to use them
in the processes they execute. Domain objects therefore are of a persistent
nature.
Many domain objects correspond with business objects, of which they
handle the execution of the automated functions, including the recording
of data.
The Collaborative Object Architecture is in fact a client/server/server
architecture consisting of clients in the form of interface objects,
process servers in the form of process objects and data servers in the
form of domain objects. It is a variation on the 'distributed application
logic', in three layers:
- the presentation logic for a GUI or a MUI;
- the process logic;
- data and the logic for retrieval and editing.
Agents
The essential difference between the architectures is found in the additional
layer of process logic, consisting of process objects. These process
objects are agents that handle their own real-time operation. The difference
between agents and ordinary 'passive' objects lies in the way they handle
requests from the user, via interface objects, or requests from other
objects.
Passive objects immediately handle a request and then returns a result.
Making requests of passive objects works like a subroutinecall, the
requester has to wait for the object to answer.
An agent is able to 'tell time', and can therefore decide for itself
when it handles a request. Passive objects and agents regard the requests
made of them as events they have to handle. Passive objects do so immediately,
but agents decide for themselves when they do so. As a results, applications
not only become event-driven, but also are of a real-time nature. Agents
handle two types of events: external events and internal events.
External events
An external event is a request the agent receives from a user, through
an interface object, or from another agent. An agent may receive several
requests at once and can decide for itself when it handles a request
or when it returns the answer. The user or agent making the request,
does not wait for an answer. When the agent has handled the request,
it displays an answer to the user through an interface object, or it
returns an answer to the requesting agent.
Various possibilities are open to the agent as to when it handles a
request. Like a passive object, it can handle requests immediately,
or it can collect requests of the same type and handle them in batches.
It can also handle a request at a later point in time. This gives the
user the possibility to make requests of the agent which it handles
for instance the next day, or weekly. Agents can deal with requests
which take a long time to handle, since the user does not have to wait
for an answer.
An agent can also control processes involving several users. The first
user starts the agent, which then handles the process according to 'schedule',
involving other users via interface objects.
Internal events
Agents may also be activated by so-called internal events. If an agent
has a request to handle at a certain point in time, it places a reminder
in an internal diary. As the moment arrives, the agent becomes active
and handles the request. The same mechanism can be used for a request
to handle something periodically, for example a request to calculate
the interest on a savings account on a yearly basis.
When an agent makes a request of another agent without waiting for an
answer, it places a reminder in the diary as to when it expects an answer.
If the answer is returned in time (an external event), the reminder
is cancelled. If the answer is late, the passing of the moment becomes
an internal event, and an error procedure is started. This mechanism
can also be applied to make sure customers are answered in time.
Supporting functions for agents
Figure 4.8 shows the working of an automated system according to the
Collaborative Object Architecture. The implementation uses three functions
that support the agents in working as described above. These supporting
functions are available on every computer in the network. This allows
for the distribution of the objects among workstations and server computers.
Figure 4.8 Automated system with agents.
The supporting functions referred to are the Object Base Management
System (OBMS), the communication function and the transaction monitoring
function.
Object Base Management System (OBMS)
All applications are also supported by an OBMS in which all of the data
and functions of the objects are stored. The OBMS serves as a parking
lot for all agents and objects that are temporarily inactive, for example
agents waiting for other objects to answer their requests. The operating
system restarts the agent as soon as the answer is received, or when
at a certain time an answer has not yet been received.
The communication function
The communication function supports the communication between agents.
The agents may either be located on one computer or on different computers
in the network. The communication function supports queues of requests
and answers between agents. This is necessary because agents may receive
requests from different sides, and may also have requests pending with
other objects, the answers to which may also return simultaneously.
An agent needs queues to be able to decide for itself when to handle
requests or returning answers. The communication function can also offer
all kinds of functions for telecommunications, such as locating people
and places in the network.
Transaction monitoring
There must be a general transaction monitoring function (preferably
as part of the operating system) which handles the starting of agents
at the occurrence of internal or external events. The transaction monitor
starts an agent in the OBMS when the communication function places a
request or an incoming answer in a queue for the agent. This starting
may happen on a priority basis or when the queue contains a certain
number of requests. The transaction monitor also starts an agent when
a user, through the interface object, asks a question for the first
time. Moreover, the transaction monitor handles the starting of an agent
in the OBMS when an action that is in the diary has to be executed.
The transaction monitor provides the 'clock', as it were, in which the
agent can see it is time to perform certain actions. It also has an
alarm clock function which activates the agent when it has to do something
at a certain time.
Composition of an agent
Like an ordinary object, an agent consists of data and functions, but
besides operational behaviour, the agent also has controlling behaviour.
For this, besides operational data and the corresponding operational
functions it also contains control data and control functions. An agent
is in fact a cluster of objects, a flexible construction of control
objects and operational objects.
Objects an agent uses may be for instance:
- a 'diary', in which the agent keeps track of the requests it still
has to handle;
- a 'journal' in which the agent keeps track of the requests it has
handled;
- a 'schedule' for a process to be executed (for agents managing complete
processes);
- an 'acquaintance circle' of users, other agents, interface objects
and domain objects that agent knows and is allowed to communicate
with;
- geographical knowledge about locations in the computer network;
- the 'composition' of the agent from control objects and operational
objects.
Possible applications for agents
The possibilities of agents are best illustrated by a number of possible
applications.
Electronic work dossier
An agent in the form of an electronic work dossier supports the work
flow and the execution of an administrative process carried out by various
employees. Chapter 3 contains a full description of an electronic work
dossier.
Electronic
In an agent in the form of an electronic diary, the user can keep a
record of his appointments. The diary keeps track of the user's whereabouts,
knows at which workstation he is working and knows whether the user
can be reached by telephone or fax.
Complex searches
Users can use process server agents to perform complex searches in the
network. They may concern searches for data, people or locations. From
its own location, an agent then sends requests to agents on other locations,
for example to trace certain data traced and have it retrieved from
the various locations.
Process control and monitoring
Agents can also perform functions such as process control and monitoring.
In an industrial environment, an agent is linked to the manufacturing
process to be controlled through interfaces. The agent keeps a record
of the progress of the process and controls it on the basis of time,
prescribed procedures and conditions that occur during the process.
Electronic markets
A network of agents can also form an electronic market, in which the
agents act as suppliers on behalf of a supplying party, or as requesters
on behalf of a requesting party.
Parallel processing
Agents support parallel processing. An agent can make parallel requests
of other agents or of domain objects. If these objects run on different
processors, parallel processing of the requests is possible. The agent
waits until it has received all the answers from the various objects,
and then continues its process. This parallel distributed processing
may also serve to replace existing large batch systems on one central
computer, such as bank entry systems. A number of these systems will
be facing the problem that the are incapable of handling the growing
amount of daily transactions in 24 hours.
4.5.3 Middleware
In order to realise applications according to the client/server architecture
and the Collaborative Object Architecture, special software is needed
to bridge the gap between operating systems of computers and networks
and the clients and servers of the applications. This software is called
middleware. Middleware is supposed to support the design, development,
management and execution of distributed applications over various hardware
platforms.
The main ingredients of middleware for the client/server architecture
are:
- a relational DBMS;
- a TP monitor for transaction monitoring (if this is not handled
by the DBMS or the operating system);
- software for network communication between clients and servers;
- tools for network management;
- GUI software;
- development tools for clients and servers;
- tools for distributed configuration management and version management
of software and databases;
- tools for remote installation and management of software and databases.
Currently, there is an ample choice of middleware from a large number
of suppliers. The choice is a difficult one for users, and there is
no standardisation whatsoever. Moreover, with respect to a number of
essential aspects, middleware is still being developed. This concerns:
- the support of distributed server logic by DBMSs (possibly in combination
with a distributed TP monitor);
- configuration and version management;
- software distribution;
- security of both the network and the distributed database;
- portability of the software, to allow for the simple installation
of clients and servers on different types of hardware;
- combining custom applications with software packages.
4.5.4 Summary
The development of application systems according to client/server
and object-oriented architectures is still in full swing. The middleware
to support the development, management and use of these systems does
not yet offer all of the functionality required. On top of this, there
are too many suppliers who all have their own standards. This obstructs
the combination of applications of different backgrounds (custom and
package) into one system. There are also limits to the portability of
applications over hardware from different suppliers.
As soon as these barriers have been lifted and developers have gained
more experience, a strong growth of distributed applications can be
expected. The reason for this is the fact that there are advantages
to the distribution of applications over the computer network, such
as increased functionality for the end user, more flexible applications
and a better use of the available hardware capacity.
The further growth of networks into an
information superhighway will eventually lead to the connection
of the computer systems of companies and people's home systems, thus
creating world-wide distributed applications. The first world-wide application,
already available on the Internet, is World Wide Web. At their personal
computers, by means of a client programme running under Microsoft Windows,
users can open documents other participants have made available on the
network. The documents consist of texts and pictures and can refer to
each other by means of hyperlinks.
|