A Technology Reference Model for Client/Server Software Development
Total Page:16
File Type:pdf, Size:1020Kb
A Technology Reference Model for Client/Server Software Development. by RITA CHARLOITE NIENABER Submitted in part fulfilment of the requirements for the degree of MASTER OF SCIENCE in the subject INFORMATION SYSTEMS at the UNIVERSITY OF SOUTH AFRICA SUPERVISOR: PROF AL STEENKAMP 15 JUNE 1996 II ABSTRACT In today's highly competitive global economy, information resources representing enterprise-wide information are essential to the survival of an organization. The development of and increase in the use of personal computers and data communication networks are supporting or, in many cases, replacing the traditional computer mainstay of corporations. The client/server model incorporates mainframe programming with desktop applications on personal computers. The aim of the research is to compile a technology model for the development of client/server software. A comprehensive overview of the individual components of the client/server system is given. The different methodologies, tools and techniques that can be used are reviewed, as well as client/server-specific design issues. The research is intended to create a road map in the form of a Technology Reference Model for Client/Server Software Development. KEYWORDS Client/Server, Open Systems, Software Development, Software Standards, Interoperability, Object-orientation, Middleware, Groupware, Reference Model, Distributed Systems. •' :_~ : iii ACKNOWLEDGEMENTS I would like to thank the Foundation for Research Development for their financial assistance in providing the equipment to realize this dissertation. A special word of thanks to Professor Lerine Steenkamp, my supervisor, for her guidance, inspiration and advice, for which I am grateful. My sincere gratitute and appreciation to my husband, Sare!, for his encouragement and assistance throughout the project. I would also like to thank my daughters, Marie-Louise, Karen and Tanya for their support. iv TABLE OF CONTENTS ABSTRACT ................................................................ 11 ACKNOWLEDGEMENTS . 111 TABLE OF CONTENTS ....................................................... iv PREFACE ................................................................ VI LIST OF FIGURES VIII LIST OF TABLES ........................................................... x LIST OF ACRONYMS . xi GLOSSARY OF TERMS ...................................................... xv TRADEMARKS ........................................................... xvii CHAPTER 1 - INTRODUCTION TO RESEARCH TOPIC . 1 INTRODUCTION ............................................................ 2 THE PROBLEM AND ITS RELEVANCE ............................................ 3 STATE OF THE ART ......................................................... 4 WHY CLIENT/SERVER? ..................................................... 5 PROPOSED SOLUTION ........................................................ 8 FORMAT OF THE DISSERTATION ............................................... 9 CHAPTER 2 - RATIONALE FOR CHANGE ......................................... 11 INTRODUCTION . 12 A BRIEF HISTORY OF COMPUTING SYSTEMS. 13 SOFTWARE DEVEWPMENT ADVANCES ........................................ 19 THE CHANGING ROLE OF INFORMATION SYSTEMS ................................ 23 OPEN SYSTEMS AND SYSTEMS INTEGRATION. ................................... 25 STANDARDS .............................................................. 27 BUSINESS PROCESS REENGINEERING ........................................... 30 SOFTWARE ENGINEERING CONCEPTS .......................................... 30 SUMMARY ............................................................... 32 v CHAPTER 3 - CLIENT/SERVER TECHNOLOGY ..................................... 34 INTRODUCTION ............................................................ 35 THE CLIENT/SERVER SYSTEM ................................................ 35 CATEGORIES OF CLIENT/SERVER APPLICATIONS ...................... , .......... 40 SUMMARY ............................................................... 46 CHAPTER 4 - TECHNOWGICAL COMPONENTS OF CLIENT/SERVER SYSTEMS ........... 47 INTRODUCTION ............................................................ 48 THE CLIENT ............................................................ 48 THE SERVER PLATFORM .................................................... 62 THE NETWORK PLATFORM ................................................. 73 THE APPLICATION ......................................................... 94 SUMMARY ............................................................... 98 CHAPTER 5 - KEY ASPECTS IN CLIENT/SERVER APPLICATION DEVEWPMENT .......... 100 INTRODUCTION ........................................................... 101 BUSINESS PERSPECTIVES AND STRATEGIC PLANNING ............................. 102 DEVEWPMENT PROCESS ................................................. 112 ROLE PLAYERS .......................................................... 143 SUMMARY .............................................................. 148 CHAPTER 6 - SUMMARY AND CONCLUSION .................................... 150 INTRODUCTION . 151 SUMMARY OF INVESTIGATION ............................................... 152 CONCLUSION ............................................................ lil AREAS FOR FURTHER INVESTIGATION ......................................... 154 APPENDIX A ............................................................ 156 APPENDIX B ............................................................. 160 REFERENCE LIST ....................................................... 168 VI PREFACE This dissertation has been done in part fulfilment of the requirements of the M.Sc. degree in Information Systems at the University of South Afiica. The other part of the degree requirements was the completion of five study modules, which were: Object-Orientation: The module covered object-oriented software development. An object-oriented approach, comprising a life-cycle methodology with modelling and design techniques and notations was studied and implemented as a prototype. Software Specification Techniques: The module covered formal specification techniques proposed in recent years. General principles of software specification and specific techniques were studied. Actual experience was obtained in using these specifications. Human-Computer Interaction: The module covered the study of human cognitive and physical capabilities to the purpose of incorporating this knowledge into the design of technology components. Models to support interface design, including task analysis, dialogue design, on-line help, cognitive models and software engineering notations were studied. Effective implementation and evaluation of interactive systems were considered. Open Systems: A special-topic module which comprised a study of the planning and implementation of open systems. Key issues were identified, reviewed, interpreted and evaluated. The study included the rationale for open systems, concepts and principles, the role of standards as well as a strategy for migrating to open systems. Client/Server Application Development: A special-topic module which provided practical experience in using application development environments such as Microsoft Visual Basic and Access for developing a client/server event-driven application in LAN s. The opportunity to define, design, and implement tools for developing and maintaining client/server applications was given. The research presented in the dissertation is concerned with the area of software development, with special emphasis on a growing new paradigm, namely client/server application development. Client/server application development has emerged as a research field which focuses on this development environment. The study explores the rationale for the VII development of client/server applications. Various trends in the industry are identified as drivers for client/server systems. The purpose of the research is to compile a Technology Reference Model for the development of client/server software. Thus the meta-primitives of client/server systems are identified, as well as the basic components of a typical client/server application. A comprehensive overview of the individual components of the client/server system is given, including key aspects and design issues in the development of a client/server application. The methodologies that can be used are reviewed, and tools and techniques are considered. The study was executed in accordance with the Object-Oriented Information Systems Engineering Environment (OOISEE) project undertaken by the Department of Computer Science and Information Systems at UNISA, which is aimed at establishing a foundation within which research projects may be undertaken at postgraduate level. V1ll LIST OF FIGURES Figures Description Page 1.1 Preliminary conceptualisation of client/ server model ......... 7 2.1 Centralized multi-user architecture . ....... 15 2.2 Local area network . 17 2.3 Client/server application . 19 2.4 Driving forces for client/server systems ........ 32 3.1 Components of client/server computing ........ 36 3.2 Classes of client/server applications . 41 3.3 Database access . 4 3 3.4 Two-tier and three-tier approaches to client/server . 46 4.1 The client ................................ ; . 48 4.2 Partial taxonomy of distributed software . ....... 59 4.3 Market for client/server front-end tools . ....... 60 4.4 Server components . 63 4.5 Symmetric multiprocessing . 66 4.6 Server software . 68 4. 7 Network topologies . 78 4.8 Middleware ........................................