B.tech CS S8 Client Server Computing Notes Module 1
B.tech CS S8 Client Server Computing Notes Module 1
Distributed Computing - The costs of Client Server Computing - Advantages and Disadvantages - Client Server Databases
Introduction
Network communication is mainly based upon the interaction between the client and server. Heterogeneous computing is the term used for the description of the client server interaction .Heterogeneous computing is used in the divorce computing environment. There are many issues regarding the heterogeneous computing that face both programmers and MIS personnel. The three main components of any system are its hardware, software programs and operating system. The hardware platforms must be able to support multiple operating system, networks and protocols. The OS must deal with logical connections not only between their peer components, but with other OS. Application developers make code work over diverse hardware, OS and networks.
The server process or program listens for client requests that are transmitted via the network. Servers receive those requests and perform actions such as database queries and reading les. Server processes typically run on powerful PCs, workstations (q.v.), or mainframe (q.v.) computers.
Heterogeneous Computing
One factor facing information system personal and application developers alike is todays diverse computing environments. Large organizations and smaller companies have many computer systems installed in single and multiple sites. For Management Information Systems(MIS), the issue is how to make all the systems communicate and interoperate with each other. For application developers the issue is to provide their software as on as many platforms as possible and allow their applications to communicate with each other. Heterogeneous computing is the term used to describe the diverse computing environments. Many time organizations decide whether to purchase a software systems based on these criteria: Is it compatible with our existing software and hardware? Will it integrate with our current platform? Will it integrate with platforms we intend to use in the future? Developers are faced with the dilemma of how to make application software port from platform to platform with as little difficulty, expense and problems as possible.
Cross-Platform computing
An application program should run in more than a single platform. There is a diversity of systems and it is the job of the application developer to support each one. while doing so requires an increased amount of effort, the benefits far outweigh the sacrifice and costs on the developers side. When creating a cross-platform application, developers has to face many issues as follows. The application must run on multiple platforms. It must have same look and feel as on other platforms. It must integrate with the native operating environment. It must behave the same on all platforms.
Running on multiple platforms Application must be deployed on many computer systems. Applications should support hardware and operating systems to give users freedom of deployment. Many companies are making investment decisions based on application support of the platforms.
Maintaining the same look and feel on all platforms Application user should not be unfamiliar with a product because it is implemented on different system. Each operating system platform has similar graphical interface capabilities and majority of application program should provide similar interface to the users over these GUIs. It means that the functions and general feel of the application should be consistent between platforms, including features such as layout, menu items, dialog information. and other general usage characteristics. Supporting the native operative environment Applications must utilize native features of the target platform. By separating the native environment, the developer doesnt face any additional constraints or software on the user. For instance, if an application only supports TCP/IP for its client server communications, additional prerequisite software might need to be purchased installed and managed before the developers software is installed. This may be prohibitive factor in the deployment of a system, especially if there are large number of nodes requiing prerequisite software. Behaving the same on all platforms The software must behave similarly on all systems. It is very important for applications to provide consistency to users. If a feature or function is implemented on one platform, it should be on another as well. It may not always possible to implement all functions in all functions on all platforms, but it should remain a design goal.
Developers should ease the integration of their software into new environments by providing similar maintenance of application programs. Management interface change from system to system but the maintainability of program shouldnt place more burdens on this process.
Distributed computing
Distributed computing involves distribution of work among more than one machine. Distributed computing is processing work on behalf of client machines. Distributed computing is client server computing with one client and many servers. Advantages are increase of overall application throughput and the ability to multitask is tremendous benefits for the user. Distributed computing allows all system and network to operate as a whole. It is a complex architecture. It involves re-architecture of applications, redeployment of systems and increase difficulty in managing the network as a whole. Balancing the load of distributed computing If the management of distribution is performed at a central server, the network can effectively provide load balancing. By knowing current load of available distributed nodes, more logical dispatching can occur. Work may be dispatched to specific nodes, such as those logically nearest the requesting client. For example, when a client issues a request for a piece of work to be performed, the distributed server could route the request the request to the most idle or nearest distributed node. The processing node could either return results to the dispatching station or to the original client.
For implementing the client server technology, a substantial cost is required. The cost includes system support, maintenance, and training, labor costs. Labor costs compromise almost half of the total costs of a client server information system. Since there are tremendous benefits and advantages to the technology, it cannot implement economically feasible.
Implementing a client server system will prove to be a challenging yet rewarding process. Knowledge, experience, initial costs, and exposure to client server computing will provide a tremendous base for leveraging subsequent project. Initial exposures however will probably not yield a bottom line savings or make IS or application developers more productive.
Infrastructure 25 %
Implementing a client server system will prove to be a challenging yet rewarding process. Knowledge, experience, initial costs, and exposure to client server computing will provide a tremendous base for leveraging subsequent project. Initial exposures however will probably not yield a bottom line savings or make IS or application developers more productive.
The infrastructure costs of client server computing were less than those of a comparative minicomputer based solution. The difference lies in terms of networks, gateways, bridges and routers needed to be purchased for the initial installation. PCs are generally very low in cost and are always getting cheaper. In fact, this downward price trend, which is sure to be maintained into the future, will push the overall infrastructure costs of client server computing down even further. In addition, the component costs in microprocessor based environments are sure to decrease as well, effectively lowering the costs of OS for the client, the server and for associated peripheral hardware.
One of the greatest promises of client server computing is its development technology, methodologies, and tools. Comparative application development costs were 29% less expensive for client server implementations than for the minicomputer technologies. The cost difference is due to many factors including the development tools available and the inherent comparative ease of developing applications using those tools.
The labor costs attributed to a client server technology deployment are numerous and high. As with any new technology, the initial and ongoing training of programmers, IS staff and users is to be expected. Total labor costs are 34% less for a minicomputer system deployment than they are for a client server one, according to Forrester. Labor costs themselves account almost 50% of the total cost of a client server implementation. Skilled labor comes at a high premium, especially in the initial phase of the new technology.
The ongoing maintenance and support of client server networks is a major cost factor facing cooperations today. In fact, management costs are magnified with client server because of the inherent manageability problems associated with distributed networks. Traditional main frame and mini-computers provide or a central management strategy with a central machine whose tools are time tested and proven. Client server management tools are just
beginning to become robust enough to support large, disperse deployments. Managing distributed networks is a difficult task made worse by heterogeneous networks. Management solutions must be far reaching and well integrated for client-server technology to proliferate.
Economic constraints very often force companies to limit their spending on new computer resources and fully utilize existing ones. Weighing users productivity on outdated systems against the cost of replacing those systems is a delicate balancing act. Client-server promises both to preserve existing investments in computers and ease the pain of transition to newer systems. To do this, client hardware requirements are reduced and expensive server machines and peripherals are effectively shared. Client-server computing may benefit the bottom line of cooperations.
Client server architecture, which is designed to distribute functionality between two or more machines, reduces the clients hardware requirements. The introduction of the server place a significant role by decreasing the amount of client processing. Resource utilization is thus reduced at these client machines and, as a result, less powerful existing machines may have their life extended.
Many applications that use client-server technology spent a significant amount of execution time idling and waiting for the server. A notable change in client processing power makes only a slight improvement in client execution times. The client in effect, has become less dependent on machine capabilities when off-loading work to the server computers.
The significant reduction in client processing can be used in one of the two ways:
Systems with extra CPU cycles can be used to run other programs or process other work
at the client computer. Systems not capable of running multitasking OS can be preserved. These systems might
not be able to participate in some areas without the use of client-server, as they arent capable of the required amount of work in a client-only solution.
COST COMPONENT
CLIENT SERVER ( % )
MINICOMPUTER ( % )
Application Development
28
40
Infrastructure
25
27
System Support
40
30
Training
CLIENT SERVER COMPUTING Client server technology and the accompanying tools for the development provide the fundamental building blocks for high performance, highly leveraged and highly accessible information systems. Systems generated with client server computing have the potential to increase the productivity of end users. End users will have broader access to data and the ability to model it quickly.
Reduced total execution time. Reduced client CPU usage. Increased client CPU usage. Reduced client memory usage. Reduced network traffic.
Applications deployed as client only applications incur all processing on one CPU. The total execution time is sure to decrease when multiple machines are co-operating on the same program. If the server application becomes backlogged as it processes request from many clients, total execution time may actually increased. Thus it is very important for the application developer to develop scalable client server applications that avoid over burdening the server.
By offloading work to a server computer the workstation machine may see a reduction in the amount of CPU usage. There are many advantages to reducing client CPU usage. The first is client application may take advantages of the additional CPU cycles that become available. The second is the application developer may determine what mix of client and server code execution best suits the particular application and the system platform.
Distributed computing maximizes the efficiency of the network by using the available CPU cycles at client stations. In such a scenario, these would be thought of as distributed work
nodes. Client computers have the capacity to process information cooperatively should be utilized for that purpose. Client server efficiency is maximized in such an environment because CPU cycles at the client as well as the server are leveraged to create a more effective overall system. In order for clients operate in such a scenario; they probably need to use an advanced OS in order to provide multitasking and other capabilities. Clients that consist of such products and have enough horsepower will work very well to assist in cooperative processing.
Client applications employing client server technology may often gain additional advantages with client server computing. Memory usage may be decreased when implementing client server, because many pertinent features are to be deployed on another system. Another code as well as third party modules may be migrated to other platforms, thus benefiting the users of these systems. Memory constraints are very important to many users, so easing the memory crunch is much appreciated. When third party functions and features used by the applications are also migrated to the server platform, an inherent reduction in memory and processing usage is obtained.
LOCAL DATABASE
Storage
Database Interface
Database Requester
Database
Storage
Fig: A client reporting application with a local and client server database.
Another important benefit of client server computing is the reduced network traffic. The client server model is designed for the client to initiate a request and for the server process and respond to the request. With this model the actual data manipulation transpires on the server computer and is usually not transferred to the client station during processing. The client computer only receives data when the unit of work is completed. As a result fewer network transmissions are required to compute task.
Reduced network traffic may provide extremely significant benefit to the end user on a heavily used network. Network hardware systems have become faster, new topologies have emerged, bridging, and channel splitting have offered significant relief of network traffic. Anything that relieves the constraint of network resources is welcome, and the client-server model of computing may provide additional relief to over utilized network systems.
The client server communication is with the help of much application as logic components. Many application components will execute more efficiently on either the client or server. For instance, logic components that may be shared among the clients might be placed at server for efficiently. If one server is processing the shared logic, the client will be freed to process other application components. In addition, if many clients are active in the processing of the non centralized application logic, then the overall system becomes more scalable.
The efficient execution components for the client server communication are:
Server: Queries against shared resources Management: Application and data Transaction processing Centralized application logic Communications Computations
One of the keys to implementing successful client server applications is the proper distribution of functionality and programs between the client and the server machines. Choosing this application code mix is one of the most important architectural challenges to client server development. The correct distribution of code will produce the most optimal execution for both client and server. If either machine becomes overloaded, the benefits of the technology are reduced.