Tools for Client Server Computing Bill Davey and Arthur Tatnall RMIT and Victoria University of Technology Melbourne, Australia
[email protected]
[email protected]
Abstract 2:
Designers of software engineering curriculum must be constantly aware of changes in practice that indicate fundamental new concepts. Clieiit server architectures are coming to dominate much application development, but surveys indicate that finding experienced people to design client server systems remains a problem. Clearly there is an unJ1led market for graduates with good client server skills. We see client server as a nieans to an end, that of the production of integrated systems involving an enterprise-wide database. This paper asserts that the teaching of client server architectures and applications is important and that suitable tools are now available to deliver effective client server education in Business Computing courses. We have found Visual Basic a useful tool for developing client server concepts.
There have been negative reports in the computing press of some particular client server implementations, but nevertheless client server computing appears to be an important direction in which many information systems applications are moving. There are two trends which point out the importance of client server architectures and the need for more graduates with training in the area: the rapid increase in products from solution developers, and the extent to which the growth in the use of client server technologies in applications is not being met by available graduates. As evidence that the industry is moving to client server, Marc Myers [ l ] reports that “IBM is currently pouring 75% of its development efforts into client server related projects.” When placed against a survey of the number and variety of client server technologies being released in the market place this indicates that the industry see client server as an important direction. Julia King [2], in the April 1995 Computenvorld, reports on a survey of 400 IS executives carried out by Deloitte Touche of New York. This showed “50% of IS executives who expected benefits from client server tools actually realised them. On average the IS budget is 16% higher in companies where 25% of applications run on advanced client server architectures. In 1994 43% of all applications ran under client server compared with 27% in 1993” This shows that client server is expanding rapidly, despite not meeting expected cost and time savings. It seems that the benefit of client server has little to do with cost or time savings. Regardless of this apparent contradiction the survey also determined that “Finding experienced people to
1: Introduction In teaching client server computing in our respective business computing courses the authors have found that new tools such as Visual Basic add a new dimension. Use of ‘industry standard’ server engines, such as Oracle, aod the connectivity offered by Visual Basic allow ‘hands on’ teaching of formerly dry theoretical concepts. The experience reported in this paper was of Business Computing students, but we suspect that much is transferable to more tecliiiically oriented students. The teacher taking on client server concepts in the classroom should be aware that there are a number of preconditions to successful practice and we discuss some of these later in the paper. One of the most important of these preconditions is that the teacher have a simple, but intellectually honest model of client sewer architecture that students can adopt.
280 0-8186-7379-6/96 $05.00 0 1996 IEEE
The rise of client server computing
design client server systems remains a problem.” In fact “Last year 79% of IS managers had difficulty recruitling technical architects and distributed database experk.” Clearly there is an established market for client server graduates, especially if they are able to provide ithe intangible benefits that are increasing the spread of this architecture. The increasing maturity of client server is leading curriculum planners to consider including client server applications in a Business Computing course. The authors, both of whom teach Businless Computing in1 their respective universities, have each introduced client server concepts into ithe implementation subjects in which they are involved.
2:
toolset exists; that makes client server application programming accessible to our students. Client server technologies have become accessible to the classroom due to a proliferation of powerfid tools, some of which are relatively inexpensive. Toolsets range from simple PC based products such as front end GUI like Borliind Delphi and Microsoft Visual Basic, to fully integrated packages such as IBM Visual Age, Gupta SQLWindows, Oracle, Cognos Axiant, Bluestone dBUIM/X and the HP Smalltalk products. This prolifkration and diversity of tools enables us to distil the common attributes and hence determine those concepts that are central to client server and so should form part of an information systems curriculum. We have chosen Visual Basic (VB) and Oracle since VB interacts in this fuzzy picture through ODBC, a Windows API, and through SQL. Many commercial VI3 applications use the database sewer model of client server computing, with the VB Client sending requests to a database such as Oracle or SQL Server through SQL statements. Hence the server executes the SQL command ancl returns the result set to the VB client application.
Defining client server
Given that we are teaching client server applications, what are the components we see as important in1 a Business Computing course? To answer this question requires us to develop a mental model of client server computing around which students can form important concepts.
3: Client server applications
Communications
\
Client Server computing
Client server computing is based on the notion that some functions are best handled on a local basis while other are better done centrally. It us thus a blend of the central, timesharing approach, with distributed processing which emphasises local use. Client server computing involves the use of a mixture of PCs and mainframe (mini) computers, typically connected by a wide area network (WAN). Application processing is shared between PC clients, and one or more servers (often mainframes or minicomputers). To make full use of client server computing, application software must be designed specifically to run in such an environment. Unfortunm:ly there are many views of what constitutes clilent-server. A definition provided by Jeff Schulman [3] of the US-based consultancy Gartner Group says that: “Client server is the splitting of an application into tasks that are performed on separate computers, one of which is a pirogrammable workstation (eg a PC)”.A similar ‘popular’ definition is: “A client server architecture is one where the application is split up into a back end, running on a powerfbl server that stores, retrieves and processes data; and a front-end, running on a local client Workstation that handles user interactioin.” [4]
Client server architectures
Figure 1: Client server concepts A naive view of client server would include at least the three areas of: client server architecture, client server communications and client server applications. Since we are involved in teaching Busintss Computing, we have restricted ourselves to the latler area of applications written in a client sewer environment. Our esperienice has shown that a rich
281
Distributed presentation
results
Server
Client
data management application logic presentation
presentation
Re mote present at ion
results
Client
Server
presentation
data management application logic
Distributed logic
e---
results
m Server
Client application logic presentation
L..ta management application logic
Remote data management
+--results
Client
Server
application logic presentation
data management
Distributed database
Client
Server
data management application logic presentation
data management
Figure 2 : Types of client server systems
282
The use of VB makes client interface design easy. VI3 has the added advantage off being one of the most commonly u:jed tools for this purpose. In a classroom sense, \ h a 1 Basic works, and students are able to perform at a high level when using this tool. VB is also useful in showing the need for distributed processing since it is easy to contrive circumstances where VB cannot perform at acceptable levels. VB can also be justified for this purpose as it fits in very well with other aspects of QW’ courses. In terms of servers, we have tried DB2, Rally and traditional COBOL servers and have decided upon Oracle. Students need to have some knowledge of the nature of the data source. They also need to come to an appreciation of the power available in a server and hence why client server systems are used. We have found SQL a very useful language since it is available across platforms and hides the complications of client server architectures. When using a server, students need to experience the failure of standalone PCs to cope adequately with large databases. In many of our courses students tend to spend most o f their time using PCs and so need lo be made aware of their limitations. In our teaching we have found that there are conceptual difficulties related to rhe logical connection between client and server [ 5 ] . This has nothing to do with the ‘pure’ communications between client and server. Students have difficulty with data formats, initiating logical connections and controlling messages between client and server, even if a physical connection is presunned. The i,ssue of where we design the processing to take place in a client server system can be addressed with our toolset. If a large database is used students can be easily shown the need for SQL passthrough for best performance. Careful design of teaching examples can be used to shown the problems of scalability and the need to distribute processing carefully between client and server. We see client server computing purely as a means to an end: the production of integrated systems involving an enteirprise-wide database. Executive Information Systems @IS;) appear to be an important application type in the future of our students. EIS require the use of client sewer architecture and i s an important reason for teaching client server concepts [6].
RobertsonDunn [4] also provides a more technical definition of client-server computing: “A model of computing is which a system is partitioned into modules where commands and responses pass between moduler; such that one module acts as a request agent (the client) and another acts as a service provider (the server). The: server keeps no requester specific information or states This means that each command is complete and is no!. dependant on previous or future commands. It is possible for a server to also act as a client by requesling services of another server.” The word ‘process’ is very important here as it is no!. the mainframe itself that is the server, but a software process running on the mainframe. Likewise the clienl is a process running on the PC. Thus the server software accepts requests for data firom the client and returns the: results to the client. The client software processes this data so that it is in a suitable form for presentation to the: user. Many forrns of client server systems exist. At one extreme are those where the server does alniosl everything and at the other, systems where the cliienl does most of the work. In looking at which parts of the application run on the server and which on the client, il is useful to consider the folllowing three components of a typical application: data management, applicatioin logic, and 0 presentation The Gartner model [3]1 suggests that there are I h e types of clienl server system which they classify as: 0 distributed presentation, 0 remote presentation, 0 distributed logic, 0 remote data management and distributed database. Although considered by some to be somewhat simplistic, the Gartner model allows students to visualise important possibilities for the residence of logic in a client server application.
4:
Client server classroom activities
In our courses we have iidcntified five important areas of which we want students to have csperience: 0 Designing client applications. e Designing client interfaces. e Designing server applications. Communicating from client to server. 0 The concept of integrated information systems.
5:
Introductory classroom examples
To begin, we make use of a very simplified simulation in which a bank branch client obtains data
283
the complication of multiple platforms. Students develop the functionality of the application in Visual Basic code with a local database in a foreign format. A structurally compatible database is then developed in Oracle using SQL Plus. Connectivity is then established in Visual Basic using ODBC to either of these databases. By the third assignment students produce a system that provides management with graphical reports across hotels locally in B A S E and remotely in Oracle. The assignment requires students to produce elements of an EIS accessing data from multiple platforms. This progression makes possible a deep understanding of client server applications.
from a head office server. This simple example [6] removes the complexities of inter-platform communication by having both client and server applications written in Visual Basic to run on the student's own PC. Our experience has shown that students find the event driven programming that an application like this requires is quite a difficult concept on its own, and one which is best not complicated further in the initial stages [7] [SI . The server application that the students construct simulates changing exchange rates and bank assets using Visual Basic timers coupled with a random number generator. It is thus clearly only a simulation, and this point is made clear to the students. The Visual Basic program for the server is compiled and later accessed from the client program.
1
1
Beeblebrox Bank - Mainframe .......... .. .. .. .. .. .. .. .. .. .. .Exchawe . . . . . . .rale . . . .: . .: .Bank . . . .assets: ..... : :
6:
It is a lot more difficult to show students ways of implementing client server systems that it is just to talk about client server theory. The toolsets available, however, make showing client server applications a possibility, but teachers need to think through the issues to avoid just 'teaching the tools'. In a university teaching environment issues of technical support are an important consideration in deciding whether to use a particular technology. Client server is a complex technology and, particularly when crossing platforms, requires a high level of network support. Unless this high support is available considerable difficulties will be experienced. To properly come to grips with these issues data sources should not be trivial in size. Unfortunately, creating large data sources is not a simple exercise. Our advice is to prepare databases along with good teaching examples before embarking on such a course. Before students are ready to tackle the concepts of client server they need to have a good understanding of issues related to programming, databases and user interfaces. This probably means that client server should be handled later in a course - probably at third year level. In our experience there are a number of conceptual design issues in client server that do not fit in with any mature design methodologies. In particular, documentation of the dynamics of a client server system presents difficulties in this regard.
........
Message from client . . . . .. .. .. .. .. .. .. ..
Figure 3: Server application The client application is written in Visual Basic as an entirely separate program. When the client program executes it uses Dynamic Data Exchange @DE) to communicate with the server program.
1:
................. . .: .: .: .: .:.:.:.:.:.:. :. :. :.. :.. :.. :.. ..Beeblebrox,Bank .......... .. .. .. .. .. .. .. .. .. .. .. .. . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ....... .. .. .. .. .. .. .. .. .. ....... .. .. .. . 7 1 : : 0 Hal Link
:::::::/I
............. . .: :. :. :. :. . . . . . . . . . . . . . . . ..........
- PC"
' '1)
F ii 1 x 1. . .
tale ...... i :.. ..Exchange .. .. .. .. .. .. .. .. . . . .. . .. ... .. . .. . .. . .. ... .. . .. . .. . . . . . . . . . . . . . . . .
:. Ass&: . . . . . . . :. . :. :. :. Uesrsage . . . . . . . .l o. .server. . . . . .:...:.. . : .
Problems
. . . . . . . . . . . . .. .. .. .
Figure 4: Client application This simple example brings home the point that client server is not just a hardware issue, and that it is a process running on the mainframe that is the server and not the mainframe itself. Later we extend examples such as this to become simple Executive Information drawing data from a variety of sources. Another teaching example we have used is a booking system for a hotel chain. The example starts with a transaction file in dBASE IV, accessed through Visual Basic. This simple beginning again shows students the elements of client server on a single computer, without
7:
Conclusion
A Business Computing course should include at least the applications programming aspects of client server computing since these are both important in business
284
situations and, given modern software tools, ilccessible to business students. There are some clearly identifiable client senrer computing concepts that should form part of the general knowledge of all computing graduates. These are best taught through student personal experience. It is possible to design classroom activities using Visual Basic and Oracle that clearly illustrate design of clients and servers, communication between client and serverl and the concept of integrated information systems. A student with a well founded concept of an enterprise wide database seems to us to be clearly more employable that one without. To take advantage of this potential requires a supportive p1i:ysical environment: thoughtful teachers, considerable technical support, large databases, and an effective set of tools. Visual Basic, has thus been a successful tool for developing client server concepts. We have developed an approach to the teaching of client server concepts which, we believe, has resulted in satisfied students with some highly developed client server application skills. The use of Oracle and Visual Basic using QDBC as the communication medium has addressed the scalability question satisfactorily. Teaching client server applications in Business Computing is both possible, using appropriate tools and examples, and important to the future of our students.
8:
RelTeremces
1. Myers, Marc (1995); Examining IBMs Clientherver blueprint jbr the future, in Network World, Vol 12 issue 2 1, hilarch 13, 1995. 2. King, Julia1 (1995); IS undeterred by complexities of client/sewcr, in Computerworld, Vol 29, issue 17, April 24, 1995. 3 . Schulman, Jeff (1993), Quoted from an article by Philipson, Graeme (1993); In Search of client server, in Informatics, August 1993. 4. Robertson-Dunn, Bernard (1993); Cautionary tule of client-server, in Informatics, October 1993 5 . Tatnall, Airthur; Davey, Bill and McConville, Doug (1995:); Information Systems: Design and ImpPementcrrtion (2nd edition), Data Publishing, Melbourne. 6. Tatnall, Airthur; Davey, Bill and McConville, Doug (1995:); A Guide to Visual Basic, Data Publishing, Melbourne. 7. Davey, Bill and Tatnall, Airthuir (1994); Introducing Object Environments: Cognitive Difficulties, in Purvis, Martin (Ed) (1995); Software Engineering Conference:, E E E Computer Society Press, Los Alamitos. 8. Tatnall, Arthur and Davey, Bill (1995); Concept Development in an Event-driven Environment, Victoria Uiniversity of Technology, Occasional Paper of the Department of Business Computing.
285