From WikiFAQClient-Server FAQRelated Topics
Sponsor Links
Description
Client-Server.
What is Client-server Computing?The short answer: Client/server is a computational architecture that involves client processes requesting service from server processes. The long answer: Client/server computing is the logical extension of modular programming. Modular programming has as its fundamental assumption that separation of a large piece of software into its constituent parts ("modules") creates the possibility for easier development and better maintainability. Client/server computing takes this a step farther by recognizing that those modules need not all be executed within the same memory space. With this architecture, the calling module becomes the "client" (that which requests a service), and the called module becomes the "server" (that which provides the service). The logical extension of this is to have clients and servers running on the appropriate hardware and software platforms for their functions. For example, database management system servers running on platforms specially designed and configured to perform queries, or file servers running on platforms with special elements for managing files. It is this latter perspective that has created the widely-believed myth that client/server has something to do with PCs or Unix machines. What is a Client process?The client is a process (program) that sends a message to a server process (program), requesting that the server perform a task (service). Client programs usually manage the user-interface portion of the application, validate data entered by the user, dispatch requests to server programs, and sometimes execute business logic. The client-based process is the front- end of the application that the user sees and interacts with. The client process contains solution-specific logic and provides the interface between the user and the rest of the application system. The client process also manages the local resources that the user interacts with such as the monitor, keyboard, workstation CPU and peripherals. One of the key elements of a client workstation is the graphical user interface (GUI). Normally a part of operating system i.e. the window manager detects user actions, manages the windows on the display and displays the data in the windows. What is a Server process?A server process (program) fulfills the client request by performing the task requested. Server programs generally receive requests from client programs, execute database retrieval and updates, manage data integrity and dispatch responses to client requests. Sometimes server programs execute common or complex business logic. The server-based process "may" run on another machine on the network. This server could be the host operating system or network file server; the server is then provided both file system services and application services. Or in some cases, another desktop machine provides the application services. The server process acts as a software engine that manages shared resources such as databases, printers, communication links, or high powered-processors. The server process performs the back-end tasks that are common to similar applications. What is a Two-Tier Architecture?A two-tier architecture is where a client talks directly to a server, with no intervening server. It is typically used in small environments (less than 50 users). A common error in client/server development is to prototype an application in a small, two-tier environment, and then scale up by simply adding more users to the server. This approach will usually result in an ineffective system, as the server becomes overwhelmed. To properly scale to hundreds or thousands of users, it is usually necessary to move to a three-tier architecture. What is a Three-Tier Architecture?A three-tier architecture introduces a server (or an "agent") between the client and the server. The role of the agent is manyfold. It can provide translation services (as in adapting a legacy application on a mainframe to a client/server environment), metering services (as in acting as a transaction monitor to limit the number of simultaneous requests to a given server), or intellegent agent services (as in mapping a request to a number of different servers, collating the results, and returning a single response to the client. What is Middleware?Connectivity allows applications to transparently communicate with other programs or processes, regardless of their location. The key element of connectivity is the network operating system (NOS). NOS provides services such as routing, distribution, messaging, file and print, and network management services. NOS rely on communication protocols to provide specific services. The protocols are divided into three groups: media, transport and client-server protocols. Media protocols determine the type of physical connections used on a network (some examples of media protocols are Ethernet, Token Ring, Fiber Distributed Data Interface (FDDI), coaxial and twisted-pair). A transport protocol provides the mechanism to move packets of data from client to server (some examples of transport protocols are Novell's IPX/SPX, Apple's AppleTalk, Transmission Control Protocol/ Internet Protocol (TCP/IP), Open Systems Interconnection (OSI) and Government Open Systems Interconnection Profile(GOSIP)). Once the physical connection has been established and transport protocols chosen, a client-server protocol is required before the user can access the network services. A client-server protocol dictates the manner in which clients request information and services from a server and also how the server replies to that request (some examples of client-server protocols are NetBIOS, RPC, Advanced Program-to-Program Communication (APPC), Named Pipes, Sockets, Transport Level Interface (TLI) and Sequenced Packet Exchange (SPX)). What is Cooperative Processing?Cooperative processing is computing which requires two or more distinct processors to complete a single transaction. Cooperative processing is related to both distributed and client/server processing. It is a form of distributed computing where two or more distinct processes are required to complete a single business transaction. Usually, these programs interact and execute concurrently on different processors. Cooperative processing can also be considered to be a style of client/server processing if communication between processors is performed through a message passing architecture. What is Distributed Processing?The distribution of applications and business logic across multiple processing platforms. Distributed processing implies that processing will occur on more than one processor in order for a transaction to be completed. In other words, processing is distributed across two or more machines and the processes are most likely not running at the same time, i.e. each process performs part of an application in a sequence. Often the data used in a distributed processing environment is also distributed across platforms. What is an "Intranet"?The explosion of the World Wide Web is due to the world-wide acceptance of a common transport (TCP/IP), server standard (HTTP), and markup language (HTML). Many corporations have discovered that these same technologies can be used for internal client/server applications with the same ease that they are used on the Internet. Thus was born the concept of the "Intranet": the use of Internet technologies for implementing internal client/server applications. One key advantage of Web-based intranets is that the problem of managing code on the client is greatly reduced. Assuming a standard browser on the desktop, all changes to user interface and functionality can be done by changing code on the HTTP server. Compare this with the cost of updating client code on 2,000 desktops. A second advantage is that if the corporation is already using the Internet, no additional code needs to be licensed or installed on client desktops. To the user, the internal and external information servers appear integrated. A rapidly-disappearing disadvantage is that there is limited ability to provide custom coding on the client. In the early days of the Web, there were limited ways of interacting with the client. The Web was essentially "read-only". With the release of code tools such as Java and JavaScript, this limitation is no longer a major issue. What are the characteristics of client/server architecture?The basic characteristics of client/server architectures are:
What are the different types of servers?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. What are the different client/server processing styles?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. What is distributed or remote presentation?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. What is Remote Data Management?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. What is distributed function processing?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. What is IBM's System Application Architecture?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:
What is APPLE's VITAL architecture?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. What is Sun's Open Network Computing Architecture?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, PCNFS, AIX/6000, Solaris, UNIX/SVR4, AIX/ESA. NetWise developed the TI-RPC Application Toolkit source code generation technology. What is Digital's Network Application System (NAS) architecture?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:
What are Distributed Object Management Systems (DOMS)?DOMS provide a way of pulling diverse components together and managing their communications. They are aimed at addressing the following:
What is CORBA?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. What is DAE?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. What is Business-Focused Client/Server Architecture?When analysing a business there are three views of the organisation:
What are Client/Server Business Application Architectures?Traditional applications architectures have been based on function. Today, to meet the needs of the business an application architecture should reflect the complete range of business requirements. Therefore, client/server computing demands a three layer view of the organisation.
It should be noted that this application architecture does not demand multiple hardware platforms, although such technology can be utilised, if the environment is robust and reliable enough and the business is prepared to pay the additional costs associated with workstation and LAN technology. What are the Business Drivers?Client/server computing has arisen because of a change in business needs. Businesses today need integrated, flexible, responsive and comprehensive applications to support the complete range of business processes. Problems with existing systems include:
Information technology, which is an enabling factor in systems building, has almost reached the stage where these systems can be designed and created. Unfortunately, most businesses have existing systems based on older technology, which must be incorporated into the new, integrated environment. The development and implementation of client/server computing is more complex, more difficult and more expensive than traditional, single process applications. The only answer to the question "why build client/server applications?" is "because the business demands the increased benefits. What are the Business Benefits?
What does business expect from IT?
What is Business Process Reengineering?Reengineering is the organizational process required to align people, processes and technology with strategies to achieve business integration. It can also be thought of as taking a business in its current state and forming an organizational and operational blueprint to redirect skills, policies, information (data), cultural values, organizational structures, processing and incentives towards targeted improvements.
Sponsor Links
Page Statistics
|
||||
