> >
Client/server Considerations
CHAPTER SYNOPSIS
Today almost every business systems analysis projects must consider the use of microcomputer or client/server network as the primary residence for any new system. At the very least they must consider the use of microcomputers to augment both existing mainframe (or “legacy”) systems and primarily manual systems. This chapter provides discussions of the various types client/server systems, the various platform options and the impact of networks and communications.
The Changing Micro Environment
During the intervening period since it became generally available, we have witnessed an explosive growth not only in the power and capacity of personal computers but also in their use by both firms and individuals. While they started as little more than novelty items and offered their owners word processing and spreadsheet capabilities, now many firms implement all but their largest and most data- and communications-intensive applications on them. The increasing proliferation of software packages in all areas of business support will continue as the power and capacity of the machines grow.
This explosive growth and the place of personal computer usage on the growth curves (especially with respect to mainframe systems; (see Figure 20.1) is placing a strain on information systems management and on developers.
Because of the rapid increase in the capacity and use of these machines and the rapidly increasing sophistication of the software available for them, it is difficult to stabilize the environment long enough to do a thorough analysis and to make valid software selections.
The lack of generally accepted hardware and software standards within most firms, the vast variety of manufacturers, and the availability of specialty add-on boards make almost every machine unique. Few firms have sufficient control or sufficient hardware and software standards in place to ensure that an application developed for one machine, and for one user can even be moved to another machine for the same user, much less to another user's machine. The rapid changes in both hardware and software make even "standard machines" outdated almost before they are installed.
One last issue of major concern is that of transportability. Although there are widely touted standards, and many products claim compatibility both on a hardware and software level, the analyst should be wary of any mixed system environments. Each package is unique in some respects and tailored to specific hardware and, in some cases, to a model. Certainly the packages are designed to work with a specific set of operating system and peripheral software products, and then only certain versions and releases of those products. This uniqueness may prevent movement of either package, or data, or both. This lack of transportability extends even to various versions of a product produced by the same vendor.
Microcomputer Systems
Microcomputer systems, when compared to mini and mainframe systems are relatively inexpensive, and using the same base of comparison, they are extremely powerful. The low cost, power, and small size of these machines make them ideal for use in running low-transaction-volume single-user applications, small department systems or even large corporate-wide systems. Applications which were uneconomic to develop in the mainframe, or even the minicomputer environments
Aside from running a vast array of personal and business applications these machines are used to:
Many of these capabilities may also be combined with locally programmed application functions mainly for retrieval, transmission and transfer of data between locations.
Since their introduction in the late 1970s and the early 1980s the quantity, quality, range, and sophistication of the packages available for these small machines have increased almost geometrically. As of this writing there are literally hundreds of thousands of packages available commercially. These packages cover almost every conceivable type of application and range in price from a few dollars to a few thousand dollars. Many are available free on public "bulletin boards."
The range of special use applications is too numerous to cover in this work, nor is it our intent to do so. It is sufficient to say that with the wide spread use of these machines as personal workstations and small office machines has created a demand for every type of mainframe application and mainframe facility written for the personal computer or for a client/server or network implementation.
A Definition
Client/Server refers to that combination of common use, sharable machines which provide a variety of services to a network of personal workstations know as clients. Server machines may be dedicated to providing file storage or peripheral device management (such as printers, scanners, etc.) services, or they may also function as personal workstations.
Client machines must have some method of communication with the server machines. The combination of clients, servers and communications devices are known as a network, or more commonly a Local Area Network (LAN).
The client machines must have some network communications and network management software installed, and must have some direct physical connection to allow the two way communications
Client/server environments are characterized by combinations of workstations, minicomputers or servers and mainframes sharing and interchanging processing, communications and data. We view each of these as a layer or platform on which we can built a portion of a system. The term platform has come to be used when referring to a specific processing, communications or data layer.
Network communications
Communications between client and server, between network and network and between network and mainframe, are enabled by communications software in conjunction with associated communications hardware. Both hardware and software are usually installed within the personal computers and the network servers themselves. The various machines that comprise the networks machine are linked by a variety of physical lines enabling both continuous connect and dial-up communications.
Developer Tool Kits
Most vendors of operating systems, database and other packages that are used as development foundations or platforms, make available a developer’s tool kit to application developers. These tool kits are libraries of reusable software routines, and utilities which permit the developers to incorporate into their products such items as:
Many of these tool kits are only usable in a single environment and are intended to provide a consistent user interface (“look and feel”) across all products on a particular machine. Other tools kits are designed to operate in a multi-platform environment, and although they provide the same features and services they do not look or operate the same way. User satisfaction with applications may be dependent on the level to which the “look and feel” of the application is familiar and similar to other tools on their machine.
These cross-platform tool kits however make it easier to build an application in one environment and to “port” it or move it from one vendor hardware or software platform to a different hardware or software platform without substantial re-coding. This portability is especially useful in environments where potential user’s of the same application users may have machines with different architectures, or where the potential application users may be using different operating systems.
Table-driven or Rules-driven Applications
Unlike mainframe applications which receive data in blocks micro computers receive and can access data one character at a time. Each character entered can be processed individually and immediately. It is this capability that enables such features as word wrap in text processing applications. In many applications processing of data being entered is tailored to the specific data, where some is processed immediately (e.g. text for word wrapping) some are processed when the cursor moves to a new field, and some processing is only performed after all the data has been entered. In analyzing the user’s requirements it is helpful to recognize which data can be processed as it is input as opposed to which data must be retained until all entry is complete.
For those applications where processing can be performed field by field, rules files can be built which can direct both editing and automatic population of other fields based on the contents of the entered data. Rules files vary in complexity from simple editing to complex editing, validation and data population.
Rules take many forms, but on a simplistic basis, they are tests where each particular result or sequence or series of results causes a specific action to be taken:
e.g.
IF a
IF <>a, AND b AND NOT c
These tests may be augmented by tables which contain test results and processing directions, or module names to be performed based on the results of a specific test.
Because of the availability of local data files (resident either on the LAN server or (very infrequently) on the workstations themselves) which can be easily refreshed, and which may have the same structure but different contents based on user requirements, tables are often incorporated into application processing to provide them with flexibility, ease of maintenance and change, and to allow local variations in standard applications.
Many client/server systems have critical variables, and constants stored in these local tables and these constants and variables tailor the application to the local user. They also allow a certain degree of local user administration and control over the application. The kinds of data that are typically stored in local tables are:
Network communication issues:
Client/server applications exist because of the ease of interconnection and communications between common and user workstations made possible by network technology. The combination of network management systems, network operating systems, and network protocols facilitate the transfer of information and messages between client and server on a LAN.. File transfer protocols facilitate the transfer of large amounts of data and application programs between workstations or servers and other LANs or between workstation or server and one or more Mini- or mainframe-computers. For an application to operate effectively in a multi-LAN, multi-platform environment, system and network software must be compatible wherever there is an interface between separate components.
Aside from the issues raised by software and hardware compatibility, network communication issues for each client/server system or proposed client/server system include the following:
Client/server databases:
Almost all client/server systems, or systems that incorporate client/server architecture somewhere in the mix are based on a database package. The issues concerning database systems in a client/server environment include:
Client/server Issues
There are a wide variety of issues that are specific to client/server environments including:
Although the above issues are phrased in the future tense, implying systems yet to be developed, they apply equally to existing client/server systems.
Facilities Management and Outsourcing
Because of the vast array of products, development tools, languages, and machines, no single firm normally develop client server applications using in-house staff. The existing personnel in most organizations were trained in the development and maintenance of mainframe systems and spend most of their time maintaining and enhancing those systems. In most cases they have received no training to upgrade their skills to use new technologies. As a result new systems built using the rapidly changing client/server technologies are left to external consultants many of whom specialize in these new and evolving products.
Consultants, or contractors, are normally hired to build the first client/server application. A secondary, but no less important task is to bring specialized knowledge to the firm and transfer that knowledge to existing staff.
The analyst should assess the level of education and experience in developing client sever systems and well as the level to which any of the firm’s have sufficient knowledge to modify, trouble shoot (diagnose), and maintain client server software. Even if the firm brings in outside staff or an outside firm to build this new system, can it be supported with internal resources.
In order to use the same staff to maintain both mainframe and client server systems, a firm must \provide extensive cross-training, which is expensive, time-consuming and of dubious value. The tendency to view older systems (both mainframe and early client server systems) as legacy systems has cause many information systems personnel to view them with distaste, and as something to be avoided, if possible. They are attracted instead to the newer, GUi-based, client server systems. This desire top work on newer technology has also made it more difficult to hire qualified personnel.
In response to this, and as a result of cost cutting initiatives on the part of management, many firms are contracting with specialized, or general-purpose service firms to take over the operations and maintenance of their legacy systems, or in some cases all of their Information Systems activities. These contracts take two basic forms, both of which have an impact on existing personnel. These forms are known as “Facilities Management” and “Outsourcing”
A Definition
“Outsourcing” is the process whereby one firm (the contracting firm) enters into a fixed length contract with another (the contractor) where the contractor agrees to operate and maintain the contracting firm’s information systems. The Contractor firm agrees to buy all or a specified part of the contracting firms Information Systems equipment and supplies, and to hire as their own employees all or a specified part of the contracting firm’s Information Systems employees.
In some cases the contracting firm’s equipment may sold by the contractor and the work is processed on centrally operated and centrally maintained machines. In other cases the contractor will integrate the contracting firm’s equipment into its own inventory. The contractor agrees to operate and maintain the contracting firm’s systems, and normally charges the contracting firm for each transaction processed. Maintenance and (in some cases) enhancement of the systems being outsourced become the responsibility of the contractor. All operational software costs are assumed by the contractor, however the ownership of the contracting firm’s application software and it’s documentation remain the property of the contracting firm.
Normally the contracting firm retains the right to review and approve all requirements, specifications and designs for new or enhanced systems, and retains the right to refuse delivery of any such system that does not meet with their approval. Aside from this limited review and approval the contracting firm forgoes all rights of oversight over and management participation in any decisions regarding the outsourced work.
These contracts normally provide for the contractor to provide the contracting firm with sufficient materials and updated software at the end of the contact period such that the contracting firm can transfer their applications to another contractor if necessary.
The contracts also call for the contractor to assume responsibility for transfer and impose penalties for non-performance, slipped schedules, missed deliveries, etc.
A Definition
“Facilities Management” is the process whereby one firm (the contracting firm) enters into a fixed length contract with another (the contractor) where the contractor agrees to operate and maintain the contracting firm’s information systems. The Contracting firm normally agrees to provide all or a specified part of the necessary Information Systems equipment and supplies, and the contractor provides its own employees and management. The contractor operates the contracting firm’s equipment, on the contracting firm’s premises. Some or all of the contractor’s employees may be located on the contracting firm’s premises.
In some cases the contractor may be required to provide some or all of the equipment and supplies that its employees. The contractor agrees to operate and maintain the contracting firm’s equipment and supplies.
Facilities Management contractors may be paid for time and materials used (e.g. operating the contracting firm’s computing equipment, or operating and staffing a help desk), plus a management fee (profit) or they may be paid by the task (e.g. enhance a specific program or system, develop a new application, install and test a new piece of equipment or a new piece of software.). In the former case maintenance and enhancement of the systems being managed become the responsibility of the contractor, but with oversight, advice and guidance and review by personnel from the contracting firm. All operational software costs are managed by the contractor, but are paid for by the contracting firm, on an as-incurred basis. Ownership of the contracting firm’s equipment, supplies, application software and it’s documentation remain the property of the contracting firm.
These contracts normally provide for the contractor to provide the contracting firm with sufficient materials and updated software at the end of the contact period such that the contracting firm can transfer responsibility for their applications and systems operations and support to another contractor if necessary.
The contracts also normally call for the contractor to assume responsibility for transfer and impose penalties for non-performance, slipped schedules, missed deliveries, etc.
In the outsourcing example, the contracting firm’s remaining employees are free to develop new systems, and the contracting firm has substantially reduced or eliminated many of its Information Systems personnel and equipment costs.
In the Facilities Management example, certain costs have been reduced, and a few have been eliminated. The firm must till remain heavily involved in its Information Systems operations, and its won personnel may or may not work alongside those of the contractor on certain tasks, although for contractual reasons most tasks assigned to the contractor are staffed and managed by the contractor.
It is very difficult for either the outsourcing or facilities management approach to address client server systems development, operations and maintenance, since they neither the data nor the processing are easily separable from end user applications and end user systems. Since client server applications reside on the firm’s network servers and are interconnected with, and intercommunicate with the firm’s other servers and workstations, it is almost impossible to assign responsibility for them to an outside firm.
A Professional's Guide to Systems Analysis, Second Edition
Written by Martin E. Modell
Copyright © 2007 Martin E. Modell
All rights reserved. Printed in the United States of America. Except as permitted under United States Copyright Act of 1976, no part of this publication may be reproduced or distributed in any form or by any means, or stored in a data base or retrieval system, without the prior written permission of the author.