Client/Server Technical Issues
------------------------------ Subject: Part 3: Client/Server Technical Issues ------------------------------ Subject: 3.1 What are the characteristics of client/server architecture? From: Ravi KalakotaThe basic characteristics of client/server architectures are: 1) combination of a client or front-end portion that interacts with the user, and a server or back-end portion that interacts with the shared resource. The client process contains solution-specific logic and provides the interface between the user and the rest of the application system. The server process acts as a software engine that manages shared resources such as databases, printers, modems, or high powered processors. 2) the front-end task and back-end task have fundamentally different requirements for computing resources such as processor speeds, memory, disk speeds and capacities, and input/output devices. 3) the environment is typically heterogeneous and multivendor. The hardware platform and operating system of client and server are not usually the same.Client and server processes communicate through a well-defined set of standard application program interfaces (API's) and RPC's. 4) An important characteristic of client-server systems is scalability. They can be scaled horizontally or vertically. Horizontal scaling means adding or removing client workstations with only a slight performance impact. Vertical scaling means migrating to a larger and faster server machine or multiservers. ------------------------------ Subject: 3.2 What are the different types of servers? From: Ravi Kalakota The simplest form of servers are disk servers and file servers. With a file server, the client passes requests for files or file records over a network to the file server. This form of data service requires large bandwidth and can slow a network with many users down considerably. Traditional LAN computing allows users to share resources, such as data files and peripheral devices, by moving them from standalone PCUs onto a Networked File Server (NFS). The more advanced form of servers are database servers, transaction server and application servers (Orfali and Harkey 1992). In database servers, clients passes SQL (Structured Query Language) requests as messages to the server and the results of the query are returned over the network. The code that processes the SQL request and the data resides on the server allowing it to use its own processing power to find the requested data, rather than pass all the records back to a client and let it find its own data as was the case for the file server. In transaction servers, clients invoke remote procedures that reside on servers which also contains an SQL database engine. There are procedural statements on the server to execute a group of SQL statements (transactions) which either all succeed or fail as a unit. The applications based on transaction servers are called On-line Transaction Processing (OLTP) and tend to be mission-critical applications which require 1-3 second response time, 100% of the time and require tight controls over the security and integrity of the database. The communication overhead in this approach is kept to a minimum as the exchange typically consists of a single request/reply (as opposed to multiple SQL statements in database servers). Application servers are not necessarily database centered but are used to server user needs, such as. download capabilities from Dow Jones or regulating a electronic mail process. Basing resources on a server allows users to share data, while security and management services, which are also based in the server, ensure data integrity and security. ------------------------------ Subject: 3.3 What are the different client/server processing styles? From: Ravi Kalakota Gartner group came out with the five ways of describing the different c/s styles based on how they split the three components of any application: user interface, business or application logic, data management. The five styles are distributed presentation, remote presentation, distributed function, remote data management, and distributed data management. (Note: This is an arbitary classification and others may do it differently) ------------------------------ Subject: 3.4 What is distributed or remote presentation? From: Ravi Kalakota For people whose roots are embedded in the mainframe IBM world, client-server is essentially distributed or remote presentation. This style maps a workstation Graphical User Interface (GUI) front end onto an existing application's text-based screen. This is also called Remote, Mapping, Front-ending or HLLAPI (High-Level Language Application Programming Interface). The mode of operation is typically intelligent workstations intercepting and interrogating text-screen (e.g. 3270) data streams sent from a host for display in a windowed environment.This is "frontware" solution, where a GUI front end is added to an IBM/MVS 3270/5250 application and is placed on a workstation. However, most processing remains on the host or server, with the exception of user interface translation logic and possibly validation logic. For example, data from an application program is sent to a 3270 screen program on the mainframe to be displayed. The merged data is sent to the workstation as a 3270 data stream.The workstation interprets the data and converts it to graphical form in a window. (Typically every mainframe screen used by the application has a corresponding window on the workstation and vice versa). When the user enters the data in a GUI window, it is transformed by the frontware application into a corresponding 3270 data format and is sent to the host computer. ------------------------------ Subject: 3.5 What is Remote Data Management? From: Ravi Kalakota In remote data management, the entire application resides on the client and the data managment is located on a remote server/host. Remote Data Management is relatively easily to program for because there is just one application program. The client communicates with the server using SQL, the server then responds with data that satisfies the query. RDBMS products that offer remote data management provide a layer of software on the client to handle the communication with the DBMS server.This style represents a more traditional LAN database server or file server approach. Workstations support the presentation and function logic and interface with the data server through the data manipulation language.Distributed data management is an extension of remote data management and uses the distributed facilities of the DBMS to access distributed data in a manner transparent to users. This is most relevant for architectures having data spread across several servers and when access to a DBMS on another server is required. ------------------------------ Subject: 3.6 What is distributed function processing? From: Ravi Kalakota Here the split occurs in the application functionality, one part going to the client, other to the server. Distributed function applications are the most complex of the three typologies since two separately compiled application programs must be developed. Developers must analyze where each function should reside and what type of dialog must occur between the two programs. The underlying communications facilities may implement either a message-based or remote procedure call (RPC) mechanism for transfer of dialog and data. However, there are many variants of this typology. One variant of the distributed function style is where data management and application function occur at both the client and server. In this instance, data management at the client would include referential, read-only data. Data frequently updated or accessed by many users would reside on the server. ------------------------------ Subject: 3.7 What is IBM's System Application Architecture? From: Ravi Kalakota SAA is a collection of selected software interfaces, conventions, and protocols that are used as a framework for developing consistent, integrated applications across the major IBM computing environments. Four major components of this architecture are: - Common User Access (CUA) defines conventions for GUI look and feel. - Common Programming Interface (CPI) provides languages, tools, and APIs that give applications greater portability and more consistent user interfaces across multiple platforms. - Common Communication Support (CCS) supports existing communications standards, such as LU 6.2. - Common Applications, written by IBM, will serve as demonstrations of SAA concepts and make it easy for users to migrate between systems. ------------------------------ Subject: 3.8 What is APPLE's VITAL architecture? From: Ravi Kalakota VITAL provides a way of building information systems constructed from generalized modules that can be reused and shared.It specifies how to construct and provide interfaces for these modules. A cornerstone of Apple's client/server architecture is Data Access Language (DAL). DAL consists of software components for the client and the server (Macintosh System 7 includes the client component, DOS and Windows clients are sold separately). DAL sits between the client and server components. This approach allows varied clients to communicate with many different servers. With DAL, a change in the DBMS does not affect the front-end; it simply requires the appropriate DAL link. ------------------------------ Subject: 3.9 What is Sun's Open Network Computing Architecture? From: Ravi Kalakota Open Network Computing (ONC) is the Sun architecture, with third party alliances providing the missing pieces. Sun's RPC is licensed by more than 300 companies, including DEC, IBM, and Apple Computer. It is a lean, efficient RPC that is particularly effective for installations not requiring WAN support. Transport Independent Remote Procedure Calls (TI-RPC) were co-developed by Sun and AT&T. TI-RPC runs independent of the underlying network transport, allowing applications to run unmodified over multiple transport protocols including NetWare, PC\NFS, AIX/6000, Solaris, UNIX\SVR4, AIX/ESA. NetWise developed the TI-RPC Application Toolkit source code generation technology. NetManage developed ONC RPC-Dynamic Link Library, an implementation of RPC/XDR under windows 3.0. ------------------------------ Subject: 3.10 What is Digital's Network Application System (NAS) architecture? From: Ravi Kalakota NAS is a software suite that enables applications to be integrated across a distributed network of multivendor systems: NAS services are divided into four main groups: - Application Access Services which support user interface (forms based, graphical or character terminal based) - Communication and Central services which support communications using electronic mail and EDI - Information and resource sharing, which supports database access and compound documents (collection of images, graphics and conventional text) - System Access services which provides a standard operating system interface. ------------------------------ Subject: 3.11 What is OSF-DCE? From: Jon Mauney (Extracted, with permission, from the DCE FAQ, available at http://www.osf.org:8001/dce/faq-mauney.html) DCE is the Distributed Computing Environment, from the Open Software Foundation. (It is called "the DCE" by sticklers for grammatical consistency.) DCE consists of multiple components which have been integrated to work closely together. They are the Remote Procedure Call (RPC), the Cell and Global Directory Services (CDS and GDS), the Security Service, DCE Threads, Distributed Time Service (DTS),and Distributed File Service (DFS). The Threads, RPC, CDS, Security, and DTS components are commonly referred to as the "secure core" and are the required components of any DCE installation. DFS is an optional component. DCE is called "middleware" or "enabling technology." It is not intended to exist alone, but instead should be integrated or bundled into a vendor's operating system offering. DCE's security and distributed filesystem, for example, can completely replace their current, non-network, analogs. ------------------------------ Subject: 3.12 What are Distributed Object Management Systems (DOMS)? From: Ravi Kalakota DOMS provide a way of pulling diverse components together and managing their communications. They are aimed at addressing the following: - A single interface to manage the complexities of a heterogeneous environment - A uniform framework, based on standards and extensibility, to build, integrate, and deploy open distributed-computing applications - A method for creating location independence for client applications. ------------------------------ Subject: 3.13 What is CORBA? From: Lloyd Taylor CORBA stands for the Common Object Request Broker Architecture. It is a set of standard mechanisms for naming, locating, and defining objects in a distributed computing environment. (For technical details, peruse the Object Management Group ftp site at ftp://omg.org) ------------------------------ Subject: 3.14 What is DAE? From: Ravi Kalakota Distributed Application Environment is designed to allow businesses to use IBM's RISC System/6000 and PS/2 computers in a client/server network (or standalone) for their business applications. DAE consists (1) MESSAGING services; (2) DATABASE services ; (3) PRESENTATION services; (4) DEVICE services to capture data and to control a broad category of controllers, devices, equipment and sensors.