Client & server Architecture


Client/server: A description for applications that have a local (client) user interface but access data on a remote server. The application distributes the work between the local machine and the server, depending on the strengths of the front-end and back-end products

Introduction



Client/server: A description for applications that have a local (client) user interface but access data on a remote server. The application distributes the work between the local machine and the server, depending on the strengths of the front-end and back-end products.
A type of application that has a local interface but accesses data on a remote server. The application distributes the work between the local machine (the client) and the server (the back end), depending on the strengths of the client and server products. Client/server systems are often very efficient because they minimize network traffic, and because each portion of the application can be optimized for its particular function.
In order to get some perspective on the design considerations for high-performance distributed applications, you may find it useful to contrast them with earlier client/server architectures.
Designing Client/Server Applications: In earlier client/server architectures, the database did all the work, insulating developers from most data access coding. Databases performed tasks related to connectivity, security, directory, transaction, and recovery processing. In addition, database routing software on the client handled all communications. As a result, the databases freed developers to concentrate on the business aspects of the application.
Databases also gave these applications performance and scalability. The number of users that an application could support was essentially a function of the database. The application code might run on client platforms with limited resources, thus limiting performance and scalability, but improving performance and scalability was strictly database-related.
Designing Distributed Applications: With distributed applications, performance and scalability become key aspects of the design process. Distributed applications require that you consider the application's components and infrastructure, including logical packaging, physical deployment modeling, remote server computer workload analysis, and evaluation of the available network bandwidth.
Ideally, to address performance requirements, each client request should be serviced on demand. On-demand delivery of requested application services to an ever-increasing number of client requests imposes certain scalability requirements. Application servers must be available to provide services whenever clients request them. When an application server is down, so is the business that it supports.
Servers can be unavailable for many reasons, including:
• Server platform hardware problems.
• Server platform software problems.
• Networking problems.
• Application problems.
In distributed applications, the code for the distributed components must be bulletproof. Component reliability must approach that of the operating system on which it runs. Obviously, distributed components must be thoroughly tested.
When failures do occur, application servers must have the capability to quickly recover from those failures and to restart themselves. Recovery should recapture as much user work as possible, and data must be left in a consistent state as well. If a server platform will be down for an extended period of time, the application server might be restarted on a different platform.
Transactions represent another kind of processing that was handled by the database in simple client/server architectures. In distributed application architectures, a transaction monitor (such as Microsoft Transaction Server) are required to extend transaction management to multiple, distributed databases.

Distributed computing can be achieved through one or more of the following:
I. File transfer model
II. Client/server model
III. Peer-to-peer model
"File transfer model" is one of the oldest models to achieve distributed computing at a very minimal level. Basically, programs at different computers communicate with each other by using file transfer. In fact, e-mail is a special case of file transfer. Although this is a very old and extremely limited model of distributed computing, it is still used to support loosely coupled distributed computers. For example, media clips, news items, and portions of corporate databases are typically exchanged between remote computers through file transfers; and e-mail is used frequently to exchange files through embeddings and attachments.
"The Client/Server model" is state of the market and state of the practice for distributed computing at the time of this writing. C/S model, as stated previously, allows application processes at different sites to interactively exchange messages and is thus a significant improvement over the file transfer model. Initial versions of C/S model utilized the remote procedure call paradigm that extends the scope of a local procedure call. At present, the C/S model is increasingly utilizing the distributed objects paradigm that extends the scope of local object paradigm (i.e., the application processes at different sites are viewed as distributed objects).
"Peer-to-peer model" allows the processes at different sites to invoke each other. The basic difference between C/S and peer-to-peer is that in a peer-to-peer model the interacting processes can be a client, server, or both while in a C/S model one process assumes the role of a service provider while the other assumes the role of a service consumer. Peer-to-peer middleware is used to build peer-to-peer distributed applications.

Client/server architecture provides the fundamental framework that allows many technologies to plug in for the applications of 1990s and beyond. Clients and servers typically communicate with each other by using one of the following paradigms for detailed discussion and analysis of these and other paradigms):
a) Remote Procedure Call (RPC). In this paradigm, the client process invokes a remotely located procedure (a server process); the remote procedure executes and sends the response back to the client. The remote procedure can be simple (e.g., retrieve time of day) or complex (e.g., retrieve all customers from Chicago who have a good credit rating). Each request/response of an RPC is treated as a separate unit of work, thus each request must carry enough information needed by the server process. RPCs are supported widely at present.
b) Remote Data Access (RDA). This paradigm allows client programs and/or end-user tools to issue ad hoc queries, usually SQL, against remotely located databases. The key technical difference between RDA and RPC is that in an RDA the size of the result is not known because the result of an SQL query could be one row or thousands of rows. Database vendors heavily support RDA.
c) Queued Message Processing (QMP). In this paradigm, the client message is stored in a queue and the server works on it when free. The server stores ("puts") the response in another queue and the client actively retrieves ("gets") the responses from this queue. This model, used in many transaction-processing systems, allows the clients to asynchronously send requests to the server. Once a request is queued, the request is processed even if the sender is disconnected (intentionally or due to a failure). QMP support is becoming commonly available.

About client
The portion of a database system or application that presents data to the user. As a rule, the client (or front end) does not perform any database functions; instead, the client sends requests for data to a server, and then formats and displays the results.
Client computer: A computer that accesses shared network resources provided by another computer (called a server). Also referred to as a workstation or client machine.
Client Components:A client may be located on a Microsoft Exchange Server computer or on a user's workstation. Client applications expand the capabilities of Microsoft Exchange Server. They employ services of Microsoft Exchange Server, but provide no services of their own. The Microsoft Exchange Client or a client application communicates with Microsoft Exchange Server through MAPI.
The following diagram shows a typical arrangement of client components on the user's workstation.
Microsoft Exchange Client components
The Microsoft Exchange Client computer contains the following components:
• "Microsoft Exchange Client" Provides e-mail delivery through user mailboxes, and provides information sharing through public folders.
• Client extension Adds functionality to an existing client. Added buttons or menu options — not a new user interface — invoke this new functionality
• Client application Any application other than the Microsoft Exchange Client or Schedule+ that accesses services of Microsoft Exchange Server.

Clients, services, use MAPI and applications to access Microsoft Exchange Server directory and information store objects. Although Microsoft Exchange Server offers several different programming interfaces, the majority of operations performed in a Microsoft Exchange Server environment use MAPI functions.
Client Hardware and Software Requirements: To install the 32-bit SQL Server client utilities and libraries, the computer must be equipped with the following hardware and software:
You need Your choices
Computer Refer to the Windows NT Hardware Compatibility List for the processor architecture that corresponds to the SQL Server platform you are installing (that is, Intel, Alpha AXP, or MIPS). For example, if you are installing SQL Server for the Intel platform, your choices are any of the 32-bit Intel x86-based microprocessors, such as the 80486 or the Pentium.
Minimum memory 16 MB.
Disk drive space A minimum of 7 MB of free disk space. If you install SQL Server Books Online to run from the hard disk, another 15 MB of available disk space is required; if you install SQL Server Books Online to run from the CD, only 1 MB of additional space is needed.
Operating system Microsoft Windows NT Server version 3.5 or later, Microsoft Windows NT Workstation version 3.5 or later, or Microsoft Windows 95. (For Windows NT Server and Windows NT Workstation, version 3.51 is recommended.)
Network software SQL Server client software runs on the Windows NT platform using the built-in network software. Unless Banyan VINES or DEC PATHWORKS will be used, additional network software is not required.
Network adapter Any of the network adapters supported by Windows NT. If you're not using network operations (if, for example, you're connecting locally to a standalone SQL Server), a network adapter is not required. For information about supported network adapters, see your manuals for Windows NT.

The 16-bit SQL Server client utilities and libraries can be installed on computers running the Windows or MS-DOS operating systems.
The CD provided with Windows NT Server provides the latest version of Microsoft Windows for Workgroups. Use this version on computers that will run the Windows for Workgroups operating system and will have the SQL Server client software installed.
The 16-bit SQL Server client utilities can also be installed on computers running the Windows NT operating system (although for Windows NT-based computers, the 32-bit client software is recommended):
• 16-bit Windows-based SQL Server client software runs on Windows NT under Windows on Windows (WOW).
• MS-DOS - based SQL Server client software runs on Windows NT under the virtual DOS machine (VDM).

Server

A computer on a network that controls access to resources such as files, printers, remote data, and modems.
Server: A computer that provides shared resources to network users.
Server Applications: Server applications can be mailbox agents, gateways or add-in applications. A server application should be implemented as a service of Windows NT Server. This means that the application is event-driven and can be controlled through the service control manager of Windows NT Server. It can function as an independent process before users log on, and it has an instance name to be used when logging on to MAPI.
When an application runs as a service of Windows NT Server, the service control manager is usually called to find its main function when it starts, to provide its messaging interface, and to tear it down gracefully when it ends. The interface with the service control manager can be handled in two ways: using Windows NT Server functions or using the WINWRAP library functions. For more information about the Windows NT Server functions, see Windows NT DDK Programmer's Guide.
The WINWRAP library developed for Microsoft Exchange Server usually provides a more convenient way to handle the interface between a server application and the Windows NT service control manager.
Server Components: Server components for Microsoft Exchange Server often reside on a dedicated computer. These components are shown in the following diagram.
Server components of Microsoft Exchange Server
The following components run on the Microsoft Exchange Server computer:
• Directory Stores and manipulates information about an organization's Microsoft Exchange Server directory objects, such as recipients, distribution lists, public folders, and services.
• Directory exchange agent (DXA) Maintains synchronization between a Microsoft Exchange Server directory and a Microsoft Mail 3.x directory or a directory using the Microsoft Mail 3.x protocol.
• Information store Contains all server-resident information created by users such as messages, forms, and documents. Both clients and services to access the information store use the MAPI programming interface.
• Message transfer agent (MTA) Routes messages to other servers or to X.400 mail systems. The MTA is a native X.400 message transfer agent. Messages to be sent through gateways and mail connectors to other systems are also routed to the MTA, but then are routed back to the information store for direct transfer to the gateway or mail connector. There is no direct programming interface for accessing the MTA.

• Gateway Provides a connection between a Microsoft Exchange Server system and a foreign mail system. The gateway translates messages and maps addresses between the two systems transparently to the user. Gateways can also be used to connect one Microsoft Exchange Server organization with another. While mail connectors are often specific to a single foreign mail system, gateways are often general enough to be customized for different systems. See the Gateway Programmer's Reference.
• Connector Similar to a gateway. Mail connectors are often developed for a single foreign mail system, such as SMTP.
The following basic services are associated with Microsoft Exchange Server:
• Directory
• Information store
• Message transfer agent (MTA)
• System attendant
These services are managed by the Windows NT service control manager.
Developers can access each server component of Microsoft Exchange Server so you can design your own server applications and customize your system to meet the specific needs of your organization.
Client/Server Architecture & Layers
A description for applications that have a local (client) user interface but access data on a remote server. The application distributes the work between the local machine and the server, depending on the strengths of the front-end and back-end products. In this architecture defines where to place server and client, and what software and functions place at server and client.

This architecture divided into four types. These are:
i. One tire architecture
ii. Two tire architecture
iii. Three tire architecture
iv. N tire architecture
One tire: In this both client and server are on same machine. Server directly communicate with client, here no network communication is needed.
Two tire: Here client place at one level and server place at another level. Here physical communication network is needed. First establish connection between server and client after that client request the service of the server and then server provide service to requested client. This service only provide to client when it is legal.

Three tire: Here place all business function at middle layer. All function written here accessable for all clients in the lower layer. Clients doesn't directly communicate with database server. Here middle tire plays vital role. All important business functions of the firm reside at middle level. Actual data base reside at high level.

N tire: Here so many layers are placed. This type architecture is used in Internet. Clients request first layer and this request is propagated upward and service propagated downward.

Advantages

Interoperability: The ability of two or more systems or components to exchange information and to use the information that has been exchanged

Usability: The ease with which a user can learn to operate, prepares inputs for, and interprets outputs of a system or component

Scalability : The ease with which a system or component can be modified to fit the problem area.

Flexibility : The ease with which a system or component can be modified for use in applications or environments other than those for which it was specifically designed

1. It allows corporations to leverage emerging desktop computing technology better. Today's workstations deliver considerable computing power.
2. It allows the processing to reside close to the source of data being processed. Therefore network traffic can be greatly reduced and effective throughput and carrying capacity on a heavily loaded network is increased. Conversely, the network bandwidth requirements, and therefore cost, can be reduced.
3. It facilitates the use of GUI (Graphical User Interface) available on powerful workstations. These new interfaces can be delivered to customers in a variety of visual presentation techniques together with easy navigation and standards complaint consistency.
4. It allows for and encourages the acceptance of open systems. Indeed the fact that clients and servers can, infect, be running on different hardware and software platforms allows end users to free themselves from particular proprietary architectures, thus taking economical, marketing, and competitive advantage of the open market of available products.

Limitations

1. If a significant portion of application logic is moved to a server, the server may become a bottleneck in the same fashion as a mainframe in master-slave architecture. Server's limited resources will be in even-higher demand by the increasing number of resource consumers (end users).
2. Distributed applications, especially those designed for cooperative process, are more complex than non-distributed. This is true for the application time-time environment, and tools used to manage this distributed environment.
3. If organization is small establishing client/server environment is too expensive.
4. Installation of software is difficult.
5. Maintaining is difficult and some times collisions occur when bandwidth not support users requests.

Future Technologies

I. Clients work without hard disks.
II. Operating System for clients also resides in server and server give provision to boot OS remotely by client.
III. Small scale organizations also use this technology.
IV. Implementation and maintenance is very cheaper.
V. All organizations are interested to maintain network with in the organization.

Conclusion

Client/server environment is heart for now a days technologies. All networking computers use this technology. This technology have its own advantages and disadvantages. But advantage are more profitable for organizations and user friendly for client users. Disadvantages effect on only small size networks.

References

http://www.client/server.com
http://www.whitepapers.com
http://sunmicrosoft.com
It Magazines
Oracle Complete Reference
CSI Magazines
Client/Server architecture

By amjad


Related Articles

Client server socket program for sending receiving messages

In this code snippet we will see how to work with client and server using tcp server using sockets to send message from client to server. This type of article may have been posted on many sites but i created it in Console and Windows and working fine on my controls. Now i will tell you what to do and how it works.

More articles: Client Server Architecture Client server model Two tier architecture Multitier architecture N tier architecture Three tier architecture

Comments

No responses found. Be the first to comment...


  • Do not include your name, "with regards" etc in the comment. Write detailed comment, relevant to the topic.
  • No HTML formatting and links to other web sites are allowed.
  • This is a strictly moderated site. Absolutely no spam allowed.
  • Name:
    Email: