The concept of client-server technology. What is client-server technology

The concept of client-server technology.  What is client-server technology
The concept of client-server technology. What is client-server technology

Advantages

  • It makes it possible, in most cases, to distribute the functions of a computer system between several independent computers on a network. This makes it possible to simplify the maintenance of the computing system. In particular, replacing, repairing, upgrading, or moving a server does not affect customers.
  • All data is stored on the server, which is usually much more secure than most clients. On the server, it is easier to enforce permission control to allow only clients with the appropriate access rights to access data.
  • Allows you to combine different clients. Clients with different hardware platforms can often use the resources of one server, operating systems and so on.

Flaws

  • A server failure can render the entire computer network unusable.
  • Support for the operation of this system requires a separate specialist - a system administrator.
  • High cost of equipment.

Layered client-server architecture- a type of client-server architecture in which the data processing function is placed on one or more individual servers. This allows you to separate the functions of storing, processing and presenting data for more efficient use of the capabilities of servers and clients.

Special cases of multi-level architecture:

Dedicated server network

Dedicated server network(English) Client/Server network) is a local area network (LAN) in which network devices centralized and managed by one or more servers. Individual workstations or clients (such as PCs) must access network resources through the server(s).

Literature

Valery Korzhov Multilevel client-server systems. publishing house open systems(June 17, 1997). Archived from the original on August 26, 2011. Retrieved January 31, 2010.


Wikimedia Foundation. 2010 .

The client-server technology is connection method between the client (user's computer) and the server ( powerful computer or equipment that provides data), in which they interact directly with each other.

What is a “client-server”?

The general principles of data transfer between the components of a computer network are established by the network architecture. The “client-server” technology is a system in which information is stored and processed on the server side, while the formation of a request and the receipt of data is provided to the client side. Unlike client-server technology, where data is extracted from files, in client-server networks, data is stored on the machine where it is installed. server application network database.

At the same time, client-server technologies provide for the presence special software – client and server. These programs interact with the help of special network protocols data transmission. Typically, the client and server are set to different computers, but sometimes they can be installed on one machine.

The server software is configured to receive and process requests from the user, providing him with the result in the form of data or functions ( Email, chatting or browsing the Internet). The computer on which this program is installed must have high performance and high technical parameters.

How the client-server architecture works

The software from the client machine sends the request to the server, where it is processed and the finished result is sent to the client. This technology works on the same principle as a database: request - processing - transferring the result.

The server executes the following features:

  • data storage;
  • processing a request from a client using procedures and triggers;
  • sending the result to the client.

Functions that are implemented client side:

  • formation and sending of a request to the server;
  • receiving results and sending additional commands (requests to add, delete or update information).

Advantages and disadvantages

The client-server architecture has the following advantages:

  • high data processing speed;
  • opportunity fast work With big amount clients;
  • separation of the program code of server and client applications.

Multiple users can work at the same time with data through transactions (a sequence of operations presented as a single block) and locks (isolation of data from editing by other users).

Flaws client-server technology:

  • high requirements for hardware and software characteristics server hardware due to the fact that data processing occurs on the server side;
  • need in system administrator, which controls the uninterrupted operation of server equipment.

Layered client-server architecture

The multi-level "client-server" technology provides for the allocation of separate server equipment for data processing. Data storage, processing and output operations are performed on different servers. This division of responsibilities increases the efficiency of the network.

An example layered architecture is a three-tier technology. In such a network, in addition to the client and application server, there is an additional database server.

The following three levels:

  1. Lower. This link includes client software with a user interface and interaction system with the next level of data processing.
  2. Average. Requests from client programs are processed by the application server, which processes and prepares information for transmission between the server top level and client. It allows you to offload the data warehouse from unnecessary load and distribute requests from different users.
  3. Upper. It is an independent database server where all information is stored. It receives a prepared request from the application server and provides it with the necessary information without interacting directly with client applications.

Dedicated server network

A dedicated server architecture is a local area network in which all interacting devices are controlled by one or more servers. In this case, clients (workstations) send a request to resources through the server software. A dedicated server does not have a client side and functions only as a server to process requests from clients and protect data. In the presence of multiple servers, functions between them can be distributed with the definition for each individual duties.

Using client-server technology

Over time, a not very functional file server model for local networks(FS) replaced the client-server building models (RDA, DBS and AS) that appeared one after the other.

"Client-Server" technology, which occupied the bottom of the database, has become the main technology of the global Internet networks. Further, due to the transfer of the ideas of the Internet to the sphere corporate systems, Intranet technology emerged. In contrast to the "Client-server" technology, this technology is focused on information in its final form for consumption, and not on data. Computing systems, which are built on the basis of Intranet, include central information servers and certain components for presenting information to the last user (browsers or navigators). The action between the server and the client on the Intranet is performed using web technologies.

IN modern time"Client-server" technology has become very widespread, but in itself this technology There are no universal recipes. It only provides a general judgment on how the current distribution information system should be created. Similarly, implementations of this technology in certain software products and even types of software are recognized quite significantly.

Classical two-level architecture "Client - server"

As a rule, network components do not have equal rights: some have access to resources (for example: a database management system, processor, printer, file system, and others), while others have the ability to access these resources. operating system server technology

Client-server technology is an architecture software package distributing the application program into two logically different parts (server and client), which interact according to the "request-response" scheme and solve their own specific tasks.

A program (or computer) that manages and/or owns a resource is called a resource server.

A program (computer or) that requests and uses a resource is called a client of this resource.

In this case, such conditions may also appear when some software block will simultaneously implement the functions of the server in relation to one block and the client in relation to another block.

The main principle of the Client-Server technology is to divide the application functions into at least three links:

User interface modules;

This group is also called presentation logic. It allows users to interact with applications. Regardless of the specific characteristics of the presentation logic (command line interface, proxy interfaces, complex graphical user interfaces), its purpose is to provide a means for more efficient information exchange between the information system and the user.

Data storage modules;

This group is also called business logic. The business logic finds what exactly an application needs (for example, application functions specific to the provided domain). Separating an application along boundaries between programs provides a natural basis for distributing an application across two or more computers.

Data processing modules (resource management functions);

This group is also called logic data access algorithms or simply data access. Data entry algorithms are considered as a specific interface for specific application to a persistent storage device like a DBMS, or file system. With the help of data processing modules, a specific interface is organized for the DBMS application. Using the interface, an application can manage database connections and queries (translating application-specific queries into SQL, getting results, and translating those results back into application-specific data structures). Each of the listed links can be implemented independently of several others. For example, without changing the programs that are used to process and store data, you can change the user interface so that the same data will be displayed in the form of tables, histograms or graphs. Most simple applications are often able to assemble all three links into a single program, and such a division corresponds to functional boundaries.

In accordance with the division of functions in each application, the following components are distinguished:

  • - data presentation component;
  • - application component;
  • - resource management component.

The client-server in the classical architecture needs to distribute the three main parts of the application into 2 physical modules. Typically, the application component resides on the server (for example, a database server), the data presentation component resides on the client side, and the resource management component is distributed between the server and client parts. This is the main drawback of the classical two-tier architecture.

In a two-tier architecture, when separating data processing algorithms, developers must have full information O recent changes that have been made to the system and understand these changes, which creates no small difficulties in the development of client-server systems, their maintenance and installation, since it is necessary to spend a lot of effort on coordinating actions different groups specialists. Contradictions often arise in the actions of developers, and this slows down the development of the system and forces changes to ready-made and proven elements.

To avoid inconsistency between different elements of the architecture, two modifications of the two-tier architecture "Client - Server" were created: fat client” (“Thin Server”) and “Thin Client” (“Thick Server”).

In this architecture, the developers tried to perform data processing on one of two physical parts - either on the client side ("Thick Client") or on the server ("Thin Client").

Each approach has its significant drawbacks. In the first situation, the network is unnecessarily overloaded, because unprocessed, that is, redundant data, is transmitted over it. In addition, it becomes more difficult to maintain the system and change it, because the correction of an error or the replacement of the calculation algorithm requires the simultaneous complete replacement of all interface programs, if a complete replacement is not made, then data inconsistency or errors may occur. If all information processing is performed on the server, then the problem of describing built-in procedures and debugging them arises. A system with information processing on the server is absolutely impossible to transfer to another platform (OS), this is a serious drawback.

If a two-level classical client-server architecture is being created, then you need to know the following facts:

The "Thick Server" architecture is similar to the "Thin Client" architecture

Passing a request from the client to the server, processing the request by the server, and passing the result to the client. At the same time, the architectures have the following disadvantages:

  • - the implementation becomes more complicated, since languages ​​such as SQL are not suitable for developing such software and there are no good debugging tools;
  • - the performance of programs written in languages ​​such as SQL is very low compared to those created in other languages, which is most important for complex systems;
  • - programs that are written in DBMS languages, as a rule, do not function very reliably; an error in them can lead to the failure of the entire database server;
  • - the resulting programs are completely non-portable to other platforms and systems.
  • - "Thick Client" architecture is similar to "Thin Server" architecture

Request processing is performed on the client side, that is, all raw data from the server is transferred to the client. In this case, architectures have negative aspects:

  • - the software update becomes more complicated, because its replacement must be carried out simultaneously throughout the system;
  • - the distribution of powers becomes more complicated, because access control occurs not by actions, but by tables;
  • - the network is overloaded due to the transmission of raw data through it;
  • - Weak data protection, as it is difficult to correctly allocate authority.

To solve these problems, you need to use multi-level (three or more levels) client-server architectures.

Three-level model .

Since the mid-90s of the last century, the popularity of specialists has received a three-tier architecture "Client - server", dividing information system By functionality into some three links: data access logic, presentation logic and business logic. In contrast to the two-tier architecture, the three-tier one has an additional link - an application server designed to implement business logic, while the client is completely unloaded, which sends requests to the middleware, and all the capabilities of the servers are used to the maximum.

In a three-tier architecture, the client, as a rule, is not overloaded with data processing functions, but performs its main role as a system for presenting information coming from the application server. Such an interface can be implemented using standard means Web technologies - browser, CGI and Java. This reduces the volume of data provided between the client and the application server, allowing client computers to connect even over slow lines such as telephone lines. In this regard, the client-side can be so simple that in most cases it is carried out using a universal browser. However, if you still have to change it, then this procedure can be implemented quickly and painlessly.

An application server is software that is an intermediate layer between a server and a client.

  • - Message oriented - prominent representatives of MQseries and JMS;
  • - Object Broker - prominent representatives of CORBA and DCOM;
  • - Component based - bright representatives of .NET and EJB.

The use of an application server brings many more features, for example, the load on client computers is reduced, since the application server distributes the load and provides protection from failures. Since the business logic is stored on the application server, in case of any changes in reporting or calculations client programs are not affected in any way.

There are few application servers from such famous companies as Sun, Oracle Microsystem, IBM, Borland, and each of them differs in the set of services provided (I will not take into account performance in this case). These services make it easy to program and deploy enterprise-wide applications. Typically, an application server provides the following services:

  • - WEB Server - most often included in the delivery of the most powerful and popular Apache;
  • - WEB Container - allows you to execute JSP and servlets. For Apache, this service is Tomcat;
  • - CORBA Agent - can provide a distributed directory for storing CORBA objects;
  • - Messaging Service - message broker;
  • - Transaction Service - already from the name it is clear that this is a transaction service;
  • - JDBC - drivers for connecting to databases, because it is the application server that will have to communicate with databases and it needs to be able to connect to the database used in your company;
  • - Java Mail - this service can provide service to SMTP;
  • - JMS (Java Messaging Service) - processing of synchronous and asynchronous messages;
  • - RMI (Remote Method Invocation) - calling remote procedures.

Layered client-server systems can be easily translated to Web technology - for this you need to replace the client part with a specialized or universal browser, and supplement the application server with a Web server and small server procedure callers. For

development of these programs, you can use both the Common Gateway Interface (CGI) and more modern technology Java.

In a three-level system, the fastest lines that require minimal costs can be used as communication channels between the application server and the DBMS, since the servers are usually located in the same room (server room) and will not overload the network due to the transfer of a large amount of information.

All of the above leads to the conclusion that a two-level architecture is very inferior to a multi-level architecture, in this regard, today only the multi-level client-server architecture is used, which recognizes three modifications - RDA, DBS and AS.

Various models of "Client-Server" technology

The very first core underlying technology for LANs was file server (FS) model. At that time, this technology was very common among domestic developers using systems such as FoxPro, Clipper, Clarion, Paradox, and so on.

In the FS model, the functions of all 3 components (the presentation component, the application component, and the resource access component) are combined in one code that runs on the server computer (host). The client computer in this architecture is completely absent, and the display and removal of data is performed using a computer computer or terminal in the order of terminal emulation. Applications are usually formed in the fourth generation language (4GL). One of the computers on the network is considered a file server and provides file processing services to other computers. It operates under the control of network operating systems and plays an important role as a component of access to information resources. On other PCs in the network, an application is running, in the codes of which the application component and the presentation component are connected.

The technology of action between the client and the server is as follows: the request is sent to the file server, which transmits the DBMS, which is located on the client computer, the required data block. All processing is performed on the terminal.

An exchange protocol is a set of calls that provide an application with access to the file system on a file server.

The positive aspects of this technology are:

  • - ease of application development;
  • - ease of administration and software updates
  • - low cost of workplace equipment (terminals or cheap computers with low performance in terminal emulation mode is always cheaper than full-fledged PCs).

But the advantages of the FS model outweigh its disadvantages:

Despite the large amount of data that is sent over the network, response time is critical, because each character entered by the client at the terminal must be transmitted to the server, processed by the application, and returned back to be displayed on the terminal screen. In addition, there is the problem of load distribution between several computers.

  • - expensive Hardware servers since all users share its resources;
  • - no GUI .

Thanks to the solution of the problems inherent in the "File-Server" technology, a more advanced technology has appeared, called the "Client-Server".

For modern DBMS, the client-server architecture has become the de facto standard. If it is assumed that the design network technology will have a "client-server" architecture, this means that application programs, implemented within its framework, will be distributed, that is, part of the application functions will be implemented in the client program, the other - in the server program.

Differences in the implementation of applications within the "Client-Server" technology are determined by four factors:

  • - what types of software are in the logical components;
  • - what software mechanisms are used to implement the functions of logical components;
  • - how logical components are distributed by computers in the network;
  • - what mechanisms are used to connect the components to each other.

Based on this, three approaches are distinguished, each of which is implemented in the corresponding model of the Client-Server technology:

  • - remote data access model (Remote Date Access - RDA);
  • - database server model (DateBase Server - DBS);
  • - application server model (Application Server - AS).

A significant advantage of the RDA model is an extensive selection of application development tools that provide a rapid development of desktop applications that work with SQL-based DBMS. As a rule, tools support a graphical user interface with the OS, as well as automatic code generation tools that mix presentation and application functions.

Despite the large distribution, the RDA model is giving way to the most technologically advanced DBS model.

Database server (DBS) model - Network architecture of the "Client-Server" technology, which is based on the mechanism of stored procedures that implements application functions. In DBS - model concept information resource compressed to a database due to the same mechanism of stored procedures implemented in the DBMS, and even then not in all.

The positive aspects of the DBS model over the RDA model are obvious: this is the possibility of centralized administration of various functions, and the reduction of network traffic because calls to stored procedures are transmitted over the network instead of SQL queries, and the possibility of separating a procedure between two applications, and saving computer resources for the account of use of once created plan of execution of procedure.

Application server (AS) model - this is a network architecture of the "Client - Server" technology, which is a process that runs on a client computer, and which is responsible for the user interface (input and display of data). The most important element of such a model is the application component, which is called the application server, it operates on remote computer(or two computers). The application server is implemented as a group of application functions designed as services (services). Each service provides some services to all programs that are willing and able to use them.

Having learned all the models of the "Client-Server" technology, we can draw the following conclusion: RDA- and DBS-models, these two models are based on a two-tier scheme of separation of functions. In the RDA model, application functions are transferred to the client; in the DBS model, their execution is implemented through the DBMS kernel. In the RDA model, the application component merges with the presentation component; in the DBS model, it is integrated into the resource access component.

In the AS-model, a three-tier separation of functions is implemented, where the application component is singled out as the main isolated element of the application, which has standardized interfaces with two other components.

The results of the analysis of the "File Server" and "Client - Server" technology models are presented in Table 1.

Despite its name, the Client-Server technology is also a distributed computing system. In this case distributed computing understand as the architecture "Client - server" with the participation of some servers. When applied to distributed processing, the term "server" simply means a program that responds to requests and performs the necessary actions at the request of the client. Since distributed computing is one of the types of "Client - Server" systems, users get the same benefits, for example, an increase in the total bandwidth and the ability to multitask. Also, integrating discrete network components and making them work as a whole helps increase efficiencies and reduce savings.

Since processing is implemented anywhere on the network, distributed computing in a client-server architecture guarantees efficient scaling. To strike a balance between server and client, an application component should only run on the server if centralized processing is more efficient. If the logic of a program that interacts with centralized data is located on the same machine as the data, it does not have to be transmitted over the network, so the requirements for the network environment can be reduced.

As a result, we can draw the following conclusion: if you need to work with small information systems that do not require a graphical user interface, you can use the FS model. The question of the GUI can be freely solved with the RDA-model. The DBS model is a very good option for database management systems (DBMS). AS-model is the best option in order to create large information systems, as well as when using low-speed communication channels.

Advantages

  • It makes it possible, in most cases, to distribute the functions of a computer system between several independent computers on a network. This makes it possible to simplify the maintenance of the computing system. In particular, replacing, repairing, upgrading, or moving a server does not affect customers.
  • All data is stored on the server, which is usually much more secure than most clients. On the server, it is easier to enforce permission control to allow only clients with the appropriate access rights to access data.
  • Allows you to combine different clients. Clients with different hardware platforms, operating systems, etc. can often use the resources of one server.

Flaws

  • A server failure can render the entire computer network unusable.
  • Support for the operation of this system requires a separate specialist - a system administrator.
  • High cost of equipment.

Layered client-server architecture- a type of client-server architecture in which the data processing function is placed on one or more separate servers. This allows you to separate the functions of storing, processing and presenting data for more efficient use of the capabilities of servers and clients.

Special cases of multi-level architecture:

Dedicated server network

Dedicated server network(English) Client/Server network) is a local area network (LAN) in which network devices are centralized and controlled by one or more servers. Individual workstations or clients (such as PCs) must access network resources through the server(s).

Literature

Valery Korzhov Multilevel client-server systems. Open Systems Publishing (June 17, 1997). Archived from the original on August 26, 2011. Retrieved January 31, 2010.


Wikimedia Foundation. 2010 .

The client-server technology provides for the presence of two independent interacting processes - the server and the client, the connection between which is carried out over the network.

Servers are processes that are responsible for maintaining the file system, and clients are processes that send a request and wait for a response from the server.

The client-server model is used when building a system based on a DBMS, as well as mail systems. There is also the so-called file-server architecture, which differs significantly from the client-server one.

Data in a file server system is stored on a file server (Novell NetWare or WindowsNT Server) and processed on workstations through the operation of "desktop DBMS" such as Access, Paradox, FoxPro, etc.

The DBMS is located on workstation, and data manipulation is performed by several independent and inconsistent processes. All data is transmitted from the server over the network to the workstation, which slows down the speed of information processing.

The client-server technology is implemented by the functioning of two (at least) applications - clients and a server, which share functions between themselves. The server is responsible for storing and directly manipulating data, an example of which can be SQLServer, Oracle, Sybase and others.

The user interface is formed by the client, which is based on special tools or desktop DBMS. Logical data processing is performed partly on the client and partly on the server. Sending requests to the server is done by the client, usually on SQL language. The received requests are processed by the server, and the result is returned to the client (clients).

In this case, the data is processed in the same place where they are stored - on the server, so a large amount of them is not transmitted over the network.

Benefits of client-server architecture

The client-server technology brings the following qualities to the information system:

  • Reliability

Data modification is carried out by the database server using the transaction mechanism, which gives the set of operations such properties as: 1) atomicity, which ensures the integrity of the data at any completion of the transaction; 2) independence of transactions of different users; 3) fault tolerance - saving the results of the completion of the transaction.

  • Scalability, i.e. the ability of the system not to depend on the number of users and the amount of information without replacing the software used.

Client-server technology supports thousands of users and gigabytes of information with the appropriate hardware platform.

  • Security, i.e. reliable protection information from
  • Flexibility. In applications that work with data, logical layers are distinguished: user interface; logical processing rules; Data management.

As already noted, in the file-server technology, all three layers are combined into one monolithic application running on a workstation, and all changes in the layers necessarily lead to modification of the application, client and server versions differ, and it is required to update versions on all workstations .

The client-server technology in a two-tier application provides for the execution of all functions for the formation on the client, and all the functions for managing database information - on the server, business rules can be implemented both on the server and on the client.

A three-tier application allows an intermediate layer that implements business rules, which are the most modifiable components.

Multiple tiers allow you to flexibly and cost-effectively tailor your existing application to ever-changing business requirements.