Vision

The world of Tomorrow
Hans Goedvolk
 

4.8 Application Development And Application Management

previousnext

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.

previousnext
website: Daan Rijsenbrij