Client/server networking grew in popularity many years ago as personal computers (PCs) became the common alternative to older mainframe computers. Client devices are typically PCs with network software applications installed that request and receive information over the network. Mobile devices as well as desktop computers can both function as clients.
2tier architecture is type of client server network. In Two-Tier model, you will have two separate layers namely Client & Server. The applications developed using the two-tier application programming model has a user-friendly interface. These applications can support only a few users and allow data to be shared within a homogeneous environment.
In 3-tier architecture, there is an intermediary level, meaning the architecture is generally split up between: A client, who requests the resources, equipped with a user interface (usually a web browser) for presentation purposes. The application server (also called middleware), whose task it is to provide the requested resources, but by calling on another server. The data server, which provides the application server with the data it requires.
Thin client server depends primarily on the centralÂ serverÂ for processing activities, and mainly focuses on conveying input and output between the user and the remote server.
Implement client sever network for any organization provide a lot of benefits such as including flexibility, scalability and ease of feature development. The client sever which implemented for M&S Company provide a lot of benefits such as easy and fast communication between all the branches and stores overseas just on time (JIT) and it will manage their business efficiency and accuracy. By using client server network the M&S Company will get a lot of benefits and more profit.
(Bradley M) The term client-server refers to a popular model for computer networking that utilizes client and server devices each designed for specific purposes. The client-server model can be used on the Internet as well as local area networks (LANs). Examples of client-server systems on the Internet include Web browsers and Web servers, FTP clients and servers, and Domain Name System (DNS). The client-server model was originally developed to allow more users to share access to database applications. Compared to the mainframe approach, client-server offers improved scalability because connections can be made as needed rather than being fixed.
(Bradley M) The client-server model also supports modular applications that can make the job of creating software easier. In so-called "two-tier" and "three-tier" types of client-server systems, software applications are separated into modular pieces, and each piece is installed on clients or servers specialized for that subsystem. Client-server networks have two basic components: a client and a server which are connected over a local area network or internet.
(Archived J, 2005) A client is a computer that uses the network to connect to the server and get data to view or edit. A client typically requests a service to be performed. A service might be to run an application such as word-processing software, query a database, or save data. Whatever the request may be, the server is the resource that processes the client service.
(Archived J, 2005) A server is a powerful computer that has a high capacity disk (or disks) used for storage and a back-up tape system to ensure data is not lost. This type of system is designed to store and manage resources for users. Depending on the configuration (set-up) of the server, it is possible to undertake some of the processing work either on the client computers or centralized on the server.
(Bradley M) Client-server is just one approach to managing network applications The primary alternative, peer-to-peer networking, models all devices as having equivalent capability rather than specialized client or server roles. Compared to client-server, peer to peer networks offer some advantages such as more flexibility in growing the system to handle large number of clients. Client-server networks generally offer advantages in keeping data secure.
A server is simply a computer that is running software that enables it to serve specific requests from other computers, called "clients." For example, you can set up a file server that becomes a central storage place for your network, a print server that takes in print jobs and ships them off to a printer, as well as a multitude of other servers and server functions as showing in figure1.
2.1 Server Benefits
(Archived J, 2005) A server provides many benefits including:
Optimization: Server hardware is designed to serve requests from clients quickly.
Centralization: Files are in one location for easy administration
Security: Multiple levels of permissions can prevent users from doing damage to files.
Redundancy and Back-up: Data can be stored in redundant ways making for quick restore in case of problems.
Characteristics of the Server
Service: The server process is a provider of services. The client is a consumer of services.
Shared Resources: A server can service many clients at the same time and regulate their access to shared resources.
Asymmetrical protocols: Servers are passively awaiting request from the clients. In some cases a client may pass a reference to a call back object when it invokes a service. This lets the server call back the client. So the client becomes a server.
Transparency of location: The server is a process that can reside on the same machine as the client or on a different machine across a network. Client/Server software usually masks the location of the server from the clients by the redirecting the service calls when needed. A program can be a client, a server, or both.
Mix-and-match: The ideal client/server software is independent of hardware or operating system software platforms. You should be able to mix-and-match client and server platforms.
Message-based exchanges: Clients and servers are loosely coupled systems that interact through a message-passing mechanism. The message is the delivery mechanism for the service request and replies
Encapsulation of services: The server is a specialist. A message tells a server is requested; it is then up to the server to determine how to get the job done. Servers can be upgraded without affecting the clients as long as the published message interface is not changed.
Scalability: Client/Server systems can be scaled horizontally or vertically. Horizontal scaling means adding or removing client workstations with only a slight performance impact. Vertical scaling means either migrating to a larger and faster server machine or distributing the processing load across multiple servers.
Integrity: The server code and server data is centrally managed, which results in cheaper maintenance and the guarding of shared data integrity. At the same time, the clients remain personal and independent.
2.3 Basics Server Hardware
(Tom J and Russ K, 2003) Any normal desktop computer could act as a server, but typically you want something much more robust. Standard server hardware includes:
hot-swappable drives (drives that can be replaced while the computer is running) to speed adding or replacing hard disks
the ability to support multiple processors
support for larger amounts of RAM
faster input and output
fast network cards
redundant components, such as hard drives and power supplies, to cut down on the chance of the computer failing
2.4 Basics Server Software
(Tom J and Russ K, 2003) Server software comes in two categories, operating systems and applications:
Network operating systems
There are many different operating systems for servers just like there are many different operating systems for desktop computers. Windows Server (NT, 2000, and 2003), Linux, and Novell Netware are the three main network operating system competitors.
Server applications can be designed for nearly every purpose imaginable, from fax servers to remote access servers. Every application will have specific server requirements, and will be typically designed to run on Windows NT/2000, Linux, or Netware. Many servers often run multiple applications (like e-mail and faxing) to serve a variety of needs. There are some common types of server application:
File and Print Servers
(Elliot H, 2008) File and print servers are typically combined on one server and perform as part of the network operating system. File and printer servers manage the storage of data and the various printers on the network. These servers regulate and monitor access to these resources.
Groupware and Mail Servers
(Elliot H, 2008) Groupware servers commonly incorporate different tools for helping users collaborate, including email; managing calendars and contacts; group meeting scheduling; and other operations. When used to manage email, groupware servers manage both local (within your network) and global (Internet-wide) electronic messaging.
(Elliot H, 2008) While many groupware servers offer the capability to serve an email listserv or mass email distribution, there are some servers that handle these tasks exclusively.
(Elliot H, 2008) Fax servers manage fax traffic in and out of the network, allowing multiple users to send and receive faxes without a fax machine.
(Elliot H, 2008) Web servers allow Internet users to attach to your server to view and maintain Web pages. Web browsers such as Netscape and Internet Explorer request documents from the Web server using standard protocols, and the Web server retrieves the requested documents and forwards them on to the browsers. Web servers support a variety of technologies including Active Server Pages, and secure connections to extend the power beyond the basic HTMLÂ code.
Database Servers or Database Management Systems (DBMS)
(Elliot H, 2008) Though not exactly a server, DBMS systems allow multiple users to access the same database at the same time. While this functionality is typically built into database software (ex. Microsoft Access allows concurrent connections to its databases), a larger database or a database with many users may need a dedicated DBMS to serve all the requests.
Terminal Servers or Communication Server
(Elliot H, 2008) Generally, a terminal server refers to a piece of hardware that allows devices to be attached to the network without a need for network cards. PCs, "dumb" terminals supporting just a mouse and monitor, or printers can all be attached via standard ports, and can then be managed by the network administrator.
Microsoft Terminal Server - included in Windows 2000 operating systemsÂ (both client and Server versions) or later versions of Windows provides the graphical user interface of the Windows desktop to user terminals that don't have this capability themselves. The latter include the relatively low-cost Net PCs or "thin clients" that some organizations may purchase as alternatives to the autonomous and more expensive PC with its own operating system and applications.
(Elliot H, 2008) Proxy servers act as intermediaries between your network users and the wide world of the Internet. Proxy servers perform a number of functions:
Masks your network users' IP addresses.
Strengthens security by only allowing certain requests to come through and by providing virus protection.
Caches Web page data for a given period of time to allow for more rapid access.
The client is a process 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.
3.1 Client Requirements
1. Windows 95/98/NT/2000/ME/XP
Minimum Recommendations Hardware
400 MHz Pentium
128 MB RAM
Sound Card with Full-Duplex Audio Support
1. Microsoft Internet Explorer 4.01 or later (preferred) Netscape Navigator
Minimum Recommended Hardware
2. 128 MB RAM
3. Sound Card with Full-Duplex Audio Support
Java Enabled Web Browser Netscape Navigator 6.0 or later.
Minimum Recommended Hardware
1. 400 MHz Pentium
2. 128 MB RAM
3. Sound Card with Full-Duplex Audio Support
1. Netscape Navigator 6.0 or later
2. Mandrake, Redhat, Caldera or Suse Linux
Minimum Recommended Hardware
1. 350 MHz G3
2. 128 MB RAM
1. Microsoft Internet Explorer 5.0 or later with MRJ
2. Mac OS X or later
Minimum Recommended Hardware
1. Sound Card with Full-Duplex Audio Support
3.2 How the Client Function
The client's responsibility is usually to:
Handle the user interface.
Translate the user's request into the desired protocol.
Send the request to the server.
Wait for the server's response.
Translate the response into "human-readable" results.
Present the results to the user.
Characteristics of Client
Service: The client/server is primarily a relationship between processes running on separate machines. The client is a consumer of services. In essence, client/server provides a clean separation of function based on the idea of service.
Asymmetrical protocols: There is a many-to-one relationship between the clients and the server. Clients always initiate the dialog by requesting a service. In some cases a client may pass a reference to a call back object when it invokes a service. This lets the server call back the client. So the client becomes a server.
4.0 Client server Architecture
(John G, 1995) When considering a move to client/server computing, whether it is to replace existing systems or introduce entirely new systems, practitioners must determine which type of architecture they intend to use. The vast majority of end user applications consist of three components: presentation, processing, and data. The client/server architectures can be defined by how these components are split up among software entities and distributed on a network. There are a variety of ways for dividing these resources and implementing client/server architectures. This paper will focus on the most popular forms of implementation of two-tier, three-tier and thin client/server computing systems.
4.0 Two-tier Architecture
Two tier software architectures were developed in the 1980s from the file server software architecture design. The two-tier architecture is intended to improve usability by supporting a forms-based, user-friendly interface. The two-tier architecture improves scalability by accommodating up to 100 users (file server architectures only accommodate a dozen users). It also proves flexibility by allowing data to be shared, usually within a homogeneous environment. The two-tier architecture requires minimal operator intervention, and is frequently used in non-complex, non-time critical information processing systems.
SQL, File I/O
GUI and Application DBMS, Legacy and other resource
Example: File Servers, Database Servers with Stored Procedure.
4.1.0 Components of 2tier
Two tier architectures consist of three components distributed in two layers: client (requester of services) and server (provider of services).
The three components are
User System Interface (such as session, text input, dialog, and display management services)
Processing Management (such as process development, process enactment, process monitoring, and process resource services)
Database Management (such as data and file services)
The two-tier design allocates the user system interface exclusively to the client. It places database management on the server and splits the processing management between client and server, creating two layers.
The application logic may be present at the client side within a user interface or it may be present within the database on the server or on the both. It is most popular because of its simplicity. These applications can be quickly built by using and visual builder tools; which can be used for developing applications for decision support system of small-scale groupware or you may build a simple web publishing applications.
But the real problem arises only when you deploy them beyond the departmental LAN. Typically the applications that worked perfectly well in prototypes and small installations failed for large-scale productions. It actually went through a transition phase, where it grew beyond the departmental LAN's.
4.1.1 2tier Client/Server in Large Enterprise Environments
(George S) What typically happens with client/server in large enterprise environments is that the performance of 2-tier architecture deteriorates as the number of on-line users' increases. The reason for this is due to the connection process of the DBMS server. The DBMS maintains a thread for each client connected to the server. Even when no work is being done, the client and server exchange "keep alive" messages on a continuous basis. If something happens to the connection, the client must go through a session reinitiating process. With 50 clients and today's typical PC hardware, this is no problem. When one has 2,000 clients on a single server, however, the resulting performance isn't likely to be satisfactory.
The data language used to implement server procedures in SQL server type database management systems is proprietary to each vendor. Oracle, Sybase, Informix and IBM, for example, have implemented different language extensions for these functions. Proprietary approaches are fine from a performance point of view, but are a disadvantage for users who wish to maintain flexibility and choice in which DBMS is used with their applications.
The industry's response to limitations in the 2-tier architecture has been to add a third, middle tier, between the input/output device (PC on your desktop) and the DBMS server. This middle layer can perform a number of different functions - queuing, application execution, database staging and so forth. The use of client/server technology with such a middle layer has been shown to offer considerably more performance and flexibility than a 2-tier approach.
Â All of this complicates implementation of two-tier systems - migration from one proprietary technology to another would require a firm to scrap much of its investment in application code since none of this code is portable from one tool to the next.
Advantages and disadvantages of 2tier client server.
As you can see, there are some advantages and disadvantages for 2tire client server architecture which can gives point of view to see the benefits for this architecture and to decide when this architecture can implement it.
Advantages of 2tier client server
Fast application development time
Available tools are robust and provide fast prototyping.
Disadvantages of 2tire
Cannot provide flexibility after the applications is developed and not easy to movie or spilt some of the program functionality from one server to another.
Not suitable for heterogeneous environments with rapidly changing business rules.
The performance for 2tire architecture will not be satisfied by using large number of clients more than (50 clients).
2tier architecture does not have middle tier, between the input/output device (PC on your desktop) and the DBMS server which can offer considerably more performance and flexibility.
4.2.0 3tier Client/Server Architecture
The three-tier software architecture emerged in the 1990s to overcome the limitations of the two-tier architecture. The third tier (middle tier server) is between the user interface (client) and the data management (server) components. This middle tier provides process management where business logic and rules are executed and can accommodate hundreds of users (as compared to only 100 users with the two tier architecture) by providing functions such as queuing, application execution, and database staging.
The three tier architecture is used when an effective distributed client/server design is needed that provides (when compared to the two tier) increased performance, flexibility, maintainability, reusability, and scalability, while hiding the complexity of distributed processing from the user.
4.2.1 How 3tier architecture function
They are also easy to manage and deploy the network and most of the code runs on the server. The protocol of interaction between the client and the server is as follows:
The client calls for the business logic on the server, the business logic on the behalf of the client accesses the database.
The 3-tier substitutes a few server calls for many SQL queries and updates so it performs much better than 2-tier. A three tier distributed client/server architecture includes a user system where user services (such as session, text input, dialog, and display management) reside.
The middle tier provides process management services (such as process development, process enactment, process monitoring, and process resourcing) that are shared by multiple applications. The third tier provides database management functionality and is dedicated to data and file services that can be optimized without using any proprietary database management system languages.
Dbms, Legacy and other resource managers
SQL data access
3-tier Client/ Server Architecture
4.2.2 3Tier and the Future
(George S) By now the point is made. Client/server architectures are flexible and modular. They can be changed, added to, and evolved in numbers of ways. All of the above described 3-tier approaches could be mixed and matched in various combinatorial sequences to satisfy almost any computing need. As the Internet becomes a significant factor in computing environments client/server applications operating over the Internet will become an important new type of distributed computing. (This is probably an understatement, since the use of Internet and intranet based applications will very shortly dwarf all of the distributed computing initiatives of the past)
The Internet will extend the reach and power of client/server computing. Through its promise of widely accepted standards, it will ease and extend client/server computing both intra and inter-company. The movement in programming languages to the technology of distributed objects is going to happen at light speed - because of the Internet.
4.2.3 Advantages and disadvantages of 3tier architecture
As you know, there are some advantages and disadvantages of 3tier client server:
Advantages of 3tier architecture
The application and databases reside on the same host computer and the user interacts with the host using an unfriendly and dump terminal.
Complex application rules easy to implement in application server
Business logic off-loaded from database server and client, which improves performance
Changes to business logic automatically enforced by server - changes require only new application server software to be installed
Application server logic is portable to other database server platforms by virtue of the application software.
Disadvantages of 3tier architecture
More complex structure.
More difficult to setup and maintain.
There is more processing on the web server.
It does not interact with the WMS server directly.
More difficult to setup and maintain. The physical separation of application servers containing business logic functions and database servers containing databases may moderately affect performance. (Blog A, 2007)
4.2.4 Compare between 2tier and 3tier architectures
Complex (more logic on the client to manage)
Less Complex (the application can be centrally managed on the server - application programs are made visible to standard system management tools)
Low (data-level security)
High (fine-tuned at the service or method level)
Encapsulation of data
Low (data tables are exposed)
High (the client invokes services or methods)
Poor (many SQL statements are sent over the network; selected data must be downloaded for analysis on the client)
Good (only service requests and responses are sent between client and server)
Poor (limited management of client communications links)
Excellent (concentrates incoming sessions; can distribute loads across multiple servers)
Poor (monolithic application on client)
Excellent (can reuse services and objects)
Ease of development
Getting Better (standard tools can be used to create the clients and tools are emerging that you can use to develop both the client and server sides of the application)
Yes (via server-side middleware)
Poor (Internet bandwidth limitations make it harder to download fat clients and exacerbate the already noted limitations)
Excellent (thin clients are easier to download as applets or beans; remote service invocations distribute the application load to the server)
Legacy application integration
Yes (via gateways encapsulated by services or objects)
Heterogeneous database support
Yes (3-tier applications can use multiple databases within the same business transaction)
Rich communication choices
No (only synchronous, connection-oriented RPC-like calls)
Yes (supports RPC-like calls, but can also support connectionless messaging, queued delivery, publish-and-subscribe, and broadcast)
Hardware architecture flexibility
Limited (you have a client and a server)
Excellent (all three tiers may reside on different computers, or the second and third tiers may both reside on the same computer; with component-based environments, you can distribute the second tier across multiple servers as well)
Poor (can't fail over to a backup server)
Excellent (can restart the middle tier components on other servers)
4.3.0 Thin client-server technology (TCST)
(Archived J, 2005) This type of client-server network adopts a structure similar to that of the mainframe system. In a thin client-server system, all the client machines are compact in design, with no hard disks, floppy drives or CD-ROMs. The concept of this system is that it has the ability to display remote applications and data that run on the server and not on the client.
(Archived J, 2005) The desktop computer has a part to play in processing the system and application files. Any client machine that runs a program or part of the application is not a thin client. With the thin client technology, all of the processing is managed by the server; only keystrokes and mouse clicks are transmitted and/or received between the thin client (dumb terminals) and the server.
All of the major hardware is now located in a single location and the software is accessed by dumb terminals. As a result, this makes management more central and secure.
(Archived J, 2005) The main benefit of using thin clients is the ease of maintenance. (With desktop machines, more administrative effort is required when installing new software or to modify client-side configuration options.) The computers used by the staff are also much cheaper to purchase.
4.3.1 Start-up Process
(2008, SPEED website) A typical thin client only needs enough memory to power its display and a network card to communicate with the server. Most computers manufactured since 1998 are Preboot Execution Environment (PXE) capable, meaning that they can use their network card as a boot media, similar to starting up from a CD or hard drive. The server is set up to recognize the PXE start-up signal and will send enough software to allow the computer to act as a thin client. Once fully booted, users can log into the thin client, and can use the Operating System and Applications installed on the server.
Image credit: https://help.ubuntu.com/community/UbuntuLTSP/LTSPWiring
Thin clients will usually be set up on their own private network, separate from other machines. One network card of the server will be on the thin client network, and the other network card will connect to the regular network as usual. It is important that the two network cards are not switched; the card on the private network will have usually had a DHCP service running, which will interfere with the regular network which will already have DHCP service.
4.3.2 Resource Utilization
(SPEED website, 2008) All of the computing power, memory, and hard drive space are on the server side. These resources will be shared among all thin clients. These resources are easier to allocate due to their centralized location.
On a thin client server, programs only need to be loaded into memory once, regardless of the number of people using the program at the time. A web browser in operation on 16 different workstations will have a total memory footprint of 16 times the ordinary amount since it was loaded in 16 different locations. If this same web browser were on a thin client server, the program itself would only be in memory once, only requiring additional space to hold user specific data. Similarly, other resources such as the CPU can be more fully utilized when all of the power is in a central location.
4.3.3 Data Centralization
(2008, SPEED website) The server will have direct access to all hard drives in the system. Instead of having data spread among a number of workstations like in the traditional computing model, all user data will be stored on the server. This makes the process of finding and making backup copies of the data much simpler, improving data integrity. If any single workstation's hard drive fails in a traditional computer lab, data loss is much more likely since workstations are not backed up as often as servers. A server can survive such an incident through redundant hard drives (RAID arrays) and automated backups, both of which are easier to implement in one location than in many.
If a hardware failure occurs on a thin client, no saved data is lost; the client can easily be replaced with another machine set up for network booting. In the meantime, the user can log into another thin client and be able to access the same environment they had on the previous machine.
4.3.4 Hardware Costs
(2008, SPEED website) A good server can easily cost about six times as much as a typical workstation, but that cost includes multiple CPUs, along more ram and hard drive space than any workstation. However, with these resources, a thin client server can serve more clients for less total cost than buying each workstation separately. This is made possible due to the economy of scale provided by resource centralization.
The thin clients, due to the low hardware requirements of terminal software, can be machines near the end of their life cycle that are unable to comfortably run modern software. With no hard drive required for these operations, it is not necessary to trust aging hard drives with important data. Ideally suitable thin clients will already be on hand, making the cost of redeployment very low. The largest expense for these workstations will probably be a new monitor if needed.