SURPRISE 95

Article 2

by Albert Yau

submitted on 30th May 1995

Where is Client-Server Software Headed?


Contents

Introduction

Software Trends in relation with the Client-Server Architecture

Classification of Distributed Computing

Document-Centric Middleware

The Role of Object Technology

References


Introduction

Client-Server Computing is merely a transitional phase in the larger trend toward fully distributed computing. The eventual goal is to place task-oriented computing ( the current mode) with document-centric computing, where the documents and code that can process the documents are spread across many networked systems. The core technology to do this is middleware; hence, the clamor for supremacy deepens among vendors of middleware products. Along the way, these competitors will advocate a flurry of standards and transform object technology from a language concept into a system concept. The main benefactors will be the new breed of so-called end-user programmers.

Software Trends in relation with the Client-Server Architecture

In order to stay abreast of the new trends in Client-Server, we must start by looking at what is happening in the software trends as a whole. In the 1960s and 1970s was the era of centralized computing, with IBM mainframe occupied over 70% of the world's computer business. Throughout the 1980s, many functions once performed by the omnipresent IBM behemoths were systematically taken over by PCs. The result of this gravitational shift toward personal computers makes two significant remarks on the computer industry:

1. Propel the then little known Microsoft, Oracle, Lotus Development, and other small, undercapitalized, companies into the market mainstream and ,as a consequence,

2. Shift the emphasis from mainframes to desktops.

The PC shift made corporations to reset their IT organizations in a number of ways. We are currently in the Client-Server phase of the software development and will eventually move towards the truly distributed computing environment. In IT manager's point of view: distributed computing can be used as a tool for business process reengineering, corporate right-sizing, and customer responsiveness. The new software developments can be characterized as follows:

- Distributed: The main operating force in the software industry is the drive toward distributed computing, currently in its Client-Server phase.

- Multiphased transition: Client-Server is merely an intermediate step toward distribution. The ultimate goal is collaborative computing based on peer-to-peer networks.

- Enabling technologies: Prominent supporting technologies are object-oriented components, document-centric software architectures, data warehouse technology, standards, and the end-user programming trend.

On the other hand all the above software developments cannot afford to become set in its ways and without taking considerations or meeting the business needs as follows:

- Isolated desktop software solutions are no longer sufficient. The software industry must respond to consumer demand for portable, interoperable, distributed software solutions or else becomes extinct like their mainframe-only predecessors.

- Open Systems for Computing: the pressure on software vendors to establish interoperable, distributed, easy-for-end-user-programmers-to-use tools and standards upon which enterprise-wide architectures can be built.

-Business process reengineering increased consumer expectation, and networked distributed hardware, as well as numerous second-order complications are driving software complexity through the roof.

The software industry will, out of necessity, respond to the above pressures by forming forums, consortia, and back-room alliances in order to establish market-leading architectural infrastructure standards, interfaces, and middleware for the express purpose of shifting the balance of power in favour


Classification of Distributed Computing

Distributed Computing can be categorized by two principal parts: Decision Support Systems (DSS) and On-Line Transaction Processing (OLTP) . On one side DSS means that data is mined for trends , quick answers, and summaries. It is less demanding of resources than OLTP. On the other hand, OLTP means the distributed system must deliver fast, secure, reliable, and scalable results.

Within DSS, it can subdivide into several categories: The simplest of these is called database front end. Typically implemented through some kind of front-end GUI designer tool such as Visual Basic, or SQLWindows, these applications query the database for simple requests such as lookups and updates. No massive database joins here. The next step in sophistication is workflow software and groupware. They provide automatic routing of documents among desktops, file format conversions, and event-driven agents that wake up and notify the user when work needs to be done. Workflow documents are usually stored on a server and dished out to users at appropriate times. Groupware is typically more decentralized, using a peer-to-peer model. Finally, remote access/control is an additional step up in complexity because the client software is typically run from a mobile computer and therefore must handle disconnect-connect phases.

On the OLTP side, we have 2 choices: dumb terminals or terminal emulation, such as FTP Software's VT100 emulator, and TP monitor software that does much more than simply connect a client to a server. They handle load balancing and query optimizations necessary to keep overhead low.


Document-Centric Middleware

Middleware is a class of software that ties together nodes in a network of distributed computers. It can range from low-level software for sending messages from one PC to another, called lower middleware, to high-performance TP-monitor middleware for OLTP, called upper middleware. Middleware is key to the fortunes of software manufacturers because it will become the infrastructure of all applications, from home computers to large-scale enterprise computers. Futhermore, there are two middleware architectural approcahes that cannot be ignored by the software architect: - OLE /COM from Microsoft - OpenDoc/ DSOM from Component Integration Laboratories By 1997, both architectures will seek reconciliation.In fact, both have been criticized as being inadequate for OLTP, leaving them with only the DSS ( Decision Support Systems) market segment. This DSS/database front-end architecture illustrates the driving market factors that will define how IT builds modern distributed systems. These factors are:

1. End-User Application Development- An end-user programming tool, such as Microsoft Access and Visual Basic, or simple C/C++ application generator, is employed at the desktop.

2. Reusable Components- reusable components from third-party parts vendors are added to the dynamic link library (DLL) to provide low-level Client-Server connectivity in addition to GUI and processing functionality.

3. Standards- Off -the-shelf components are assembled at client and server ends of the system until it all works together, and the application solves the business process problem.

4. Document-Centric Design- The document-centric approach also lowers complexity because the application is no longer a large monolithic maintenance nightmare. Instead, components are strung together to form a much more complex system than monolithic programming allows.


The Role of Object Technology

Object Technology is in the news principally because it offers hope of combating complexity and, through reuse and lower bug rates, reducing development and maintenance costs. As a consequence , the CORBA (Common Object Request Broker Architecture ) which is the interface definition language for specifying subject services and a model of distributed object-oriented computing must be closely followed. OT ( Object Technology) has evolved not only as a programming language or style, but it also meet the needs of current system architectures, from client-server, peer-to-peer to mobile/collaborative architecture. OT are becoming redefined as components and servers A server is a process( typically lightweight) that executes one or more methods of an object. Thus an object with N methods defined on it may support N concurrent processes; each process belongs to one or more servers.

References

Orfali, Robert, et. al. Essential Client/Server Survival Guide New York : Van Nostrand Reinhold

Berson, Alex Client-server architecture / Alex Berson. New York : McGraw-Hill, c1992.

Smith, Patrick. Client/server computing Carmel, Ind. : SAMS, c1992.

Computing Archive, Department of Applied Science, Johns Hopkins University

Byte Magazine , Issue 6 1993 & Issue 4 1995

INSPEC - CD ROMS titles by IEE

IEEE Computer Society Magazine April, May p.49-55


Albert Yau
on 30th May, 1995