The introduction of
client/server architectures and the further growth towards
networks of applications
have enormous consequences for the development and management of business
applications. Work methods have to meet different and higher demands
than was the case for with central systems that run on mainframes.
4.8.1 Application Development
Below, an overview is give of the most important requirements that
have to be met in application development.
Faster development
Software development still takes up too much time. This does not only
apply to the development of custom-made business applications. Software
suppliers, too have great difficulties supplying their
products at the agreed time. Client/server applications require
much more software than conventional mainframe applications, because
of the middleware that is needed and because of the increased functionality
of the custom part of the applications.
Development in stages
The current development methods work according to the so-called 'waterfall'
principle. Applications are all realised in their entirety in four phases:
preliminary study, analysis, design and realisation.
In the future, application systems will be networks of applications
with a much greater functionality, supporting far more
business processes. These systems will be so large that we will
not be able to realise them as a whole all at once. We need new ways
of developing, enabling us to realise the application system in stages
and at the same time to change the
business processes and the human
organisation of companies in
stages.
Easy maintenance
The current, monolithic information
systems are difficult to maintain. Changes in business processes
usually mean that the information system has to be changed in several
places. Often, it is difficult to find where the changes must be made
and to establish what consequences the changes will have for the rest
of the system. As a result, application maintenance takes too much time
and takes place at the cost of new application development. Maintenance
could be greatly simplified if we were able to relate part of the applications
on a one-to-one basis to certain parts of the
business operation, as with business processes and business objects.
In short, there is a need for an evolutionary development of companies
and of their IT applications. Applications have to be constructed in
such a way that they can evolve along with changes in the company. The
company, in turn, must be able to evolve because of new or improved
business applications.
The solution of the problems with application development is supported
by a number of developments, which are listed below.
The use of development tools
The development process is speeded up considerably if automated development
tools are used.
Client/Server architecture
A client/server architecture,
and particularly the Collaborative Object Architecture, simplifies the
incremental construction of applications considerably. Moreover, it
is relatively easy to update the applications and application components
independent of each other during maintenance sessions.
The Object Paradigm
If applications are realised according to the object paradigm, it is
easy to translate changes in business processes into changes in the
applications.
Software Factory
Object orientation also provides the basis for a factory-like approach
to the production an delivery of software components, from which user
can construct their own applications.
This provides the best method to create custom solutions for business
applications that use multimedia
documents and a graphical or multimedia user interface. Developers will
not be able to completely programme these complex applications. They
must have generic software at their disposal for the standard functions
of the interface and the multimedia documents, so that they only have
to add the company specific functions.
Visual tools
With the increasing popularity of GUIs, more and more development tools
enter the market which visually support designing and programming. The
visual work method is considerable faster than programming applications
in lines of code. When we switch to the construction of applications
out of software components these visual tools help the developer to
see which objects he uses to construct his application and to test the
application.
Iterative development methods
Development methods must also focus more on distributed applications,
which grow in time and gain functionality.
Currently, methods are being developed for Iterative Application Development
(IAD), which focus on the design of distributed systems according to
client/server architectures and on the use of object orientation in
order to obtain reusable software components. These methods are based
on a development plan for the realisation of applications in the long
run, and on a phased plan for the realisation of the applications in
small projects.
4.8.2 Application Management
The distributed architecture of network systems makes heavy requirements
of the management of both the hardware and the applications. The first
experiences with client/server have shown that the main bottleneck for
the further growth of network systems is currently formed by the distributed
management and the security of software as well as
data. Tools are now available for the distributed management of
hardware and especially networks. Tools for the distributed management
of applications and databases are still under construction, however.
It may be several years before these tools have reached the level of
management and security now offered for example on DBMSs on central
systems.
The management of distributed computer systems faces a number of specific
problems for which the management tools are to provide solutions. The
switch from alphanumeric fields to documents also involves certain specific
problems. An overview of the main problems is given below.
Configuration management and version management
Configuration management involves installation, management and registration
of configurations of the following components:
- hardware, such as computers and networks;
- middleware, as the bridge between operating systems and applications;
- databases, containing the definitions of the data that can be stored;
- application software (packages as well as custom-made applications);
- if objects are used, the previous two items do not apply. In that
case, the configuration is managed of the types of objects (classes)
used in the applications.
Of all these components it must at all times be known where, in which
combinations and especially in which versions they have been installed.
Obviously, this will become a highly complex task, since configurations
are becoming larger and larger and consist of more and more components,
due to the growth of the networks. The management must therefore be
organised in such a way, that managers are allocated different areas
of attention. The entire configuration should be divided into parts
that can be managed fairly independently. The support of automated management
tools is imperative. These tools should at least support the registration
of the configurations, the license registration of the software packages
and the remote installation of software and databases.
Configurations and document versions
Applications increasingly use documents that consist of objects, such
as texts, pictures, spreadsheets, video and sound. A problem that must
be solved is the management of the configuration of objects in different
documents, for example when the same picture occurs in different documents.
A possibility is to have one picture to which all the documents refer.
Another possibility is to embed pictures in documents. This leads to
the necessity of version management of both the objects and the documents.
We have to know which versions of certain objects are used in which
versions of certain documents by means of references and which versions
of objects are embedded in documents. Software packages are available
that support this for environments in which several people work on publications
that are constantly subject to change, like for instance aircraft manuals,
which are constantly being updated.
If we are going to build applications in which we use documents made
up of objects, instead of the alphanumeric fields used nowadays, there
will be a need for the configuration management and version management
of the contents of these documents and objects. Take for example a long-term
insurance contract, consisting of various subcontracts and clauses.
This contract may be revised during its term, resulting in subsequent
versions. Each version has its own configuration which in turn contains
certain versions of subcontracts and clauses.
Authorisation and ownership
Authorisation management and ownership management present big problems
in a distributed environment. This applies to the use of objects as
well as to the use of the functions of these objects. At the moment,
these things are still taken care of separately for programmes and data.
A user has the right to start a certain application programme and has
access to certain data. It then depends on the DBMS which kind of modifications
the user is allowed to make on these data. Since most documents are
not stored in databases but in separate files, at the moment there is
little or no protection against third parties modifying or copying documents.
In future, each separate document or object must know which user it
belongs to and which users are allowed to perform certain functions
on it. Each object must also know whether it is the original object
or a copy of a certain date which may not be edited. User licenses will
no longer concern complete programmes, they will concern the use of
separate functions or tools for certain types of objects.
Distributed control and monitoring
As a result of the distribution of applications over the hardware, operators
need automated support to monitor and control the processes in the entire
network. This means that the application processes must be monitored
and presented to the operators. The control concerns automatic correction
or manual intervention by the operator in case of performance problems
or breakdowns, for instance. Interventions may consist of temporarily
running an application on another computer, or of offering alternative
routes in the network. It is also possible to have the configuration
manager permanently adjust the distribution of the applications. When
the performance problems are of a permanent nature, it may be decided
to extend the hardware configuration.
4.8.3 Towards One Platform For All Applications
The growth of network systems both within companies and between companies
will eventually lead to the existence of one IT infrastructure, serving
as a platform for the applications of all companies. Via the
Digital Highway, this platform will also cover the home systems
and applications of private individuals.
Thus, we see the development of a shared application platform, per company
at first, but eventually world-wide, supporting users, managers and
developers of applications.
Figure 4.10 The application platform
From bottom to top, the platform consists of:
hardware components, such as workstations, server computers and networks;
the basic software and middleware necessary to run the applications;
a database for data storage with a repository for the definitions and
the functions (software), to replaced in time by an OBMS for the objects.
The platform 'carries' the active user applications, management tools
and development tools, which are used by users, managers and developers.
Eventually these applications will consist of interface objects, process
objects and domain objects.
The application platform as described here has a number of important
consequences for the nature of the applications.
A shift from specific to generic
Relatively speaking, applications will become more and more generic
and less specific. The reason for this is that the middleware performs
many standard functions and that applications are increasingly often
constructed out of standard generic objects.
Flexibility and re-use
Constructing applications out of standard components enhances the flexibility.
Developers can quickly change formally prescribed parts of an application
simply by changing the composition. Many applications work with flexibly
composed documents. The user can decide which objects he includes in
the documents. This supports the informal aspects of the user's work,
such as including comments, annotations and conversations. Constructing
applications out of standard components also stimulates the re-use of
components.
A shift in the development results
To a computer system the rule will apply that there is 'more and
more infrastructure and less and less structure'. Hardware and generic
software constitute an increasingly large part of the application. Besides
supporting the formal, structured part of the business processes, the
applications themselves are increasingly supporting the informal, unstructured
part.
Standardisation through self-organisation
The growth of the platform will also lead to more standardisation of
hardware, software components and applications. This is imperative,
since otherwise co-operation between hardware and software of different
suppliers and applications of different owners will be impossible. These
standards will develop through self-organisation rather than being imposed.
The users and suppliers themselves will standardise things in order
to be able to co-operate.
The application platform reinforces another trend. There will be a
stronger separation between user organisations and organisations involved
with the organisation and operation of IT facilities. The IT organisations
are the suppliers of an IT platform consisting of hardware, middleware
and generic and specific application components. The user organisations
are the purchasers of this IT platform. User organisations enter into
service contracts with the IT organisations (so-called service level
agreements) which contain agreements on the service level the IT organisations
are supposed to deliver in the form of products and
services.