Agenda Evolution of client computing Mainframe computers Personal computers File server• Client –Server Computing• Two-tier Architecture• Three-tier Architecture• N-tier Architecture• Evolution of c-s computing in future• Conclusion
DUMP TERMINALMAINFRAME STILL PROCESSING ON MAIN FRAME PERSONAL COMPUTERS FILE SERVERCLIENT/SERVER 2-TIER 3-TIER N-TIER
Mainframe –based Environment In these networks, one large server (a mainframe computer) handled all aspects of the network, while each user accessed the main server from a terminal. The data is processed on the mainframe and then delivered to the terminal. The data transfer between the terminal and the mainframe increases network traffic and slows down requests from other terminals.
Mainframe –based Environment contd… There are some major problems with this approach: Mainframe system are very inflexible. Centralized DP department was unable to keep up with the demand for new applications. high cost of purchase, maintenance and support.
Personal Computer Through the years, personal computers started to evolve and replaced these terminals but the processing is still process on the mainframes. With the improvement in computer technology, the processing demands started to split between personal computers and mainframes.
Contd… The first PC networks were based on the file sharing. In file sharing, the server simply downloads or transfers files from the shared location to your desktop File sharing is simple and works as long as shared usage is low, update contention is very low, and the volume of data to be transferred is low compared with LAN capacity.
Driving Forces Behind Client/server computing• Forces that drives the move to Client/Server computing widely can be classified in two general categories based on: Business perspective. Technology perspective.
Business Perspective• Basically the business perspective should be kept in mind for obtaining the following achievements through the system: For increased productivity. Superior quality. Improved responsiveness. Focus on core business.
Business Perspective contd…• The effective factors that govern the driving forces are given below: The changing business environment. Globalization: The world as a market. The growing need for enterprise data access. The demand for end user productivity gains based on the efficient use of data resources.
Technology Perspective Technological advances that have made Client/Server computing practical by proper use of the following: Intelligent desktop devices. Computer network architectures. Technical advances like microprocessor technology, data communication and Internet Database system, operating system and graphical user interface. Growing cost and performance advantages of PC-based platforms. Enterprise network management.
Client –Server Computing The main emphasis of Client-Server Architecture is to allow large application to be split into smaller tasks and to perform the tasks among host (server machine) and desktops (client machine) in the network. Client-Server Computing is divided into three components, a Client Process Server Process Middleware
Client –Server Computing contd…Client : A Client is any process that requests specific services from the server process. The main operations of the client system are listed below: Managing the user interface. Accepts and checks the syntax of user inputs. Processes application logic. Generates database request and transmits to server. Passes response back to server.
Client –Server Computing contd…Server :• A Server is a process that provides requested services for the Client. The main operations of the server are listed below: Accepts and processes database requests from client. Checks authorization. Ensures that integrity constraints are not violated. Performs query/update processing and transmits responses to client. Maintains system catalogue. Provide concurrent database access. Provides recovery control.
Middleware• Middleware is software that runs between client and server processes.• It is the "glue" between the client and server, which makes it possible for them to communicate to each other.• Middleware is written in such a way that the user never notices its presence.• It delivers secure and transparent services to users.
Elements of C-S Computing Client Server NetworkClient machine Server machine
Client/Server :Fat /Thin A Client or a Server is so named depending on the extent to which the processing is shared between the client and server. The concept of Fat Clients or Fat Servers is given by one of the important criterion, that is, how much of an application is placed at the client end vs. the server end. Thin Client : A thin client is one that conducts a minimum of processing on the client side .• Fat Client : Fat client is one that carries a relatively larger proportion of processing load.
Thin server: This architecture places less application functionality on the server machine. For example file servers. Fat Servers: This architecture places more application functionality on the server machine(s). Typically, the server provides more abstract, higher level services. The current trend is more towards fat servers in Client/Server Systems. The biggest advantage of using the fat server is that it is easier to manage because only the software on the servers needs to be changed.
Client/Server Application Has three functional units: Presentation logic or user interface (for example, ATM machines) Business logic (for example software that enables a customer to request an account balance) Data (for example, records of customer accounts) Functional units can reside on the client or on multiple servers
Two-Tier Architecture In the two-tier architecture, if the Client/Server application has a number of business rules needed to be processed, then those rules can reside at either the Client or at the Server. The architecture of any client/server environment is by definition at least a two-tier system, the client being the first tier and the server being the second. The Client requests services directly from server i.e. client communicates directly with the server without the help of another server or server process. For bigger, enterprise-class problems, use of this 2-tier approach has generated some problems.
Contd… As the application development is done on client side, maintenance cost of application, as well as client side tools etc. is expensive. That is why in 2-tier architecture the client is called ‘fat client’. Increased network load: Since actual processing of data takes on the remote client, the data has to be transported over the network. This leads to the increased network stress. As all the application logic is executed on the PCs, all these machine have to be updated in case of a new release. The procedure is complicated, expensive, prone to errors and time consuming.
Three -Tier Architecture Reusability is hard to achieve if pieces of business logic must be distributed across systems and several databases are involved. To avoid embedding the application’s logic at both the database side and the client side, a third software tier is inserted in between In the three-tier architecture, most of the business logic is located in the middle tier. In this structure, when the business activity or business rules change, only the middle tier must be modified. In three-tier client/server system the client request are handled by intermediate servers which coordinate the execution of the client request with subordinate servers.
N-tier Architecture As the 3-tier applications grew more complex, the basic 3 tiers got further sub-divided into many more logically distinct tiers. It is mostly the Business Tier that gets further divided into scalable and easily deployable sub-tiers.
Contd… Some of the benefits in moving from 3-tier to n-tier is as below: Easier maintenance and scalability of each tier, independent of the other tiers Distribution of processing intensive sub-layers on a separate high-end processor Development and deployment of each tier in the most suitable environment and technology. A lower tier can be used in more than one ways by multiple tiers in the upper layer for different environments like Web or client application UI.
Advantages of client - server Centralization - access, resources, and data security are controlled through the server Scalability - any element can be upgraded when needed Flexibility - new technology can be easily integrated into the system Interoperability - all components (clients, network, servers) work together
Accessibility - server can be accessed remotely and across multiple platforms Ease of application development Lower total costs than “mainframe legacy systems”. User friendly - familiar point and click interface
Disadvantages of client – server model• Dependability - when the server goes down, operations cease• Maintenance cost• Training cost• Hardware cost• Software cost• Complexity• Can cause network congestion
Evolution of c-s computing in future The future of computing is not the desktop, its the Internet and the World Wide Web. The emerging Internet-standards-based architecture is Network- Centric Computing -- Applications that only exist on Networks and that can be made available to anyone, anywhere, anytime. N-Tier network-based computing allows lightweight thin-client devices such as Internet Browsers, Web-TV, Smart-Phones, Personal Digital Assistants (PDAs) and Networked Appliances to harness the virtually limitless power of the Internet. Net-Centric N-Tier architectures are rapidly becoming the cornerstone for enterprise application development and companies around the world are adopting it in order to get ahead in the emerging net economy.
Conclusion N-Tier systems use component based development techniques combined with the open industry standards of the Internet, to build powerful cross- platform applications which lower costs, are easier to maintain, provide greater efficiencies and fuel competitive advantage. To Infinity and Beyond! The new thing in the N-Tier model of computing is the ability to distribute independent objects over as many tiers as makes sense and then link them dynamically, as required, to provide unlimited application flexibility. Thus The future of client / server computing is to dynamically determine and assign where the computing resources for an application will reside.