What is the essence of client server technology. Client-server technology

Department of General and Professional Education of the Bryansk Region

State educational institution

Klintsovsky Textile College

SOFTWARE FOR AUTOMATED INFORMATION SYSTEMS

Client-server technology

Student gr. A-90______________________________(Petrochenko A.O.)

Teacher _______________________ (Shirokova A.L.)

Klintsy – 2011

1. Servers. Server Basics

2. Client-server model

3. Classification standard servers

4. Conclusion

1. Servers. Server Basics

Server (from the English server, serving). Depending on the purpose, there are several definitions of the concept server.

1. Server (network) - a logical or physical network node that serves requests to one address and/or domain name (adjacent domain names), consisting of one or a system of hardware servers on which one or a system of server programs are executed

2. Server ( software) - software that receives requests from clients (in client-server architecture).

3. Server (hardware) - a computer (or special computer equipment) dedicated and/or specialized to perform certain service functions.

3. Server in information technology- a software component of a computer system that performs service functions at the request of the client, providing him with access to certain resources.

Interrelation of concepts. A server application (server) runs on a computer, also called a “server”, and when considering the network topology, such a node is called a “server”. IN general case It may be that the server application is running on a regular workstation, or the server application running on the server computer within the topology in question acts as a client (that is, it is not a server from the point of view of the network topology).

2. Client-server model

A client-server system is characterized by the presence of two interacting independent processes - a client and a server, which, in general, can be executed on different computers, exchanging data over the network.

Processes that implement a service, such as a file system or database service, are called servers(servers). Processes that request services from servers by sending a request and then waiting for a response from the server are called clients(clients) .

According to this scheme, data processing systems based on DBMS, mail and other systems can be built. We will talk about databases and systems based on them. And here it will be more convenient not just to consider the client-server architecture, but to compare it with another - file-server.

In a file server system, data is stored on file server(for example, Novell NetWare or Windows NT Server), and their processing is carried out on workstations, which, as a rule, operate one of the so-called “desktop DBMSs” - Access, FoxPro, Paradox, etc.

The application on the workstation is “responsible for everything” - for creating the user interface, logical data processing and for direct data manipulation. The file server provides only the lowest level of services - opening, closing and modifying files. Please note - files, not databases. The database management system is located on the workstation.

Thus, several independent and inconsistent processes are involved in the direct manipulation of data. In addition, to carry out any processing (search, modification, summation, etc.), all data must be transferred over the network from the server to the workstation ( see fig. Comparison of file-server and client-server models)

Rice. Comparison of file-server and client-server models

In a client-server system, there are (at least) two applications - a client and a server, sharing among themselves those functions that, in a file-server architecture, are performed entirely by an application on a workstation. The storage and direct manipulation of data is carried out by a database server, which can be Microsoft SQL Server, Oracle, Sybase, etc..

The user interface is created by the client, for the construction of which you can use a number of special tools, as well as most desktop DBMSs. Data processing logic can be executed on both the client and the server. The client sends requests to the server, usually formulated in SQL. The server processes these requests and sends the result to the client (of course, there can be many clients).

Thus, one process is responsible for directly manipulating the data. At the same time, data processing occurs in the same place where the data is stored - on the server, which eliminates the need to transfer large amounts of data over the network.

What does client-server architecture provide?

Let's look at this architecture from the point of view of business needs. What qualities does the client-server bring to the information system?

Reliability

The database server performs data modification based on a transaction mechanism, which gives any set of operations declared as a transaction the following properties:

  • atomicity- under any circumstances, either all transaction operations will be performed or none will be performed; data integrity upon transaction completion;
  • independence- transactions initiated by different users do not interfere with each other’s affairs;
  • fault tolerance- after the transaction is completed, its results will no longer be lost.

The transaction mechanism supported by the database server is much more efficient than the similar mechanism in desktop DBMSs, because the server centrally controls the operation of transactions. In addition, in a file-server system, a failure on any of the workstations can lead to data loss and its inaccessibility to other workstations, while in a client-server system, a failure on the client almost never affects the integrity of the data and their availability to other clients.

Scalability

Scalability is the ability of the system to adapt to the growth in the number of users and the volume of the database with an adequate increase in the performance of the hardware platform, without replacing software.

It is well known that the capabilities of desktop DBMSs are seriously limited - five to seven users and 30-50 MB, respectively. The numbers, of course, represent some average values; in specific cases they can deviate in either direction. Most importantly, these barriers cannot be overcome by increasing hardware capabilities.

Systems based on database servers can support thousands of users and hundreds of GB of information - just give them the appropriate hardware platform.

Safety

The database server provides powerful means of protecting data from unauthorized access, which is not possible in desktop DBMSs. At the same time, access rights are administered very flexibly - down to the level of table fields. In addition, you can completely prohibit direct access to tables, allowing the user to interact with the data through intermediate objects - views and stored procedures. So the administrator can be sure that no too smart user will read what he is not supposed to read.

Flexibility

In a data application, there are three logical layers:

  • user interface;
  • logical processing rules(business rules);
  • data management(just don’t confuse logical layers with physical levels, which will be discussed below).

As already mentioned, in a file server architecture, all three layers are implemented in one monolithic application running on a workstation. Therefore, changes in any of the layers clearly lead to modification of the application and subsequent updating of its versions on workstations.

In a two-tier client-server application shown in the figure above, as a rule, all functions for creating a user interface are implemented on the client, all functions for data management are implemented on the server, but business rules can be implemented both on the server using server programming mechanisms (stored procedures, triggers, views, etc.) and on the client.

In a three-tier application, there is a third, intermediate layer that implements business rules, which are the most frequently changed components of the application ( see fig. Three-tier client-server application model)

Rice. Three-tier client-server application model

The presence of not one, but several levels allows flexibility and minimal costs adapt the application to changing business requirements.

Let's try to illustrate all of the above with a small example. Let's assume that a certain organization's payroll rules (business rules) have changed and the corresponding software needs to be updated.

1) In a file server system, we "simply" make changes to the application and update its versions on workstations. But this “simply” entails maximum labor costs.

2) In a two-tier client-server system, if the payroll algorithm is implemented on the server in the form of a payroll rule, it is executed by a business rules server, implemented, for example, as an OLE server, and we will update one of its objects without changing anything neither in the client application nor on the database server.

Advantages

  • Makes it possible, in most cases, to distribute the functions of a computing system among several independent computers on a network. This makes it easier to maintain the computer system. In particular, replacing, repairing, upgrading or moving a server does not affect customers.
  • All data is stored on the server, which, as a rule, is protected much better than most clients. It is easier to enforce permission controls on the server 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

  • Server failure can render the entire computer network inoperable.
  • Supporting the operation of this system requires a separate specialist - a system administrator.
  • High cost of equipment.

Multi-tier client-server architecture- a type of client-server architecture in which the data processing function is carried out 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 centralized and managed by one or more servers. Individual workstations or clients (such as PCs) must access network resources through server(s).

Literature

Valery Korzhov Multi-level 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.

Client-server– a computing or network architecture in which tasks or network load are distributed between service providers, called servers, and service customers, called clients.

Often clients and servers interact through a computer network and can be different physical devices, and software.

The technology itself is very simple. For example, a user makes a request (searches for information in Google), and the server provides a response (in the form of a list of sites for this information). This is the simplest example of this technology. Graphically it looks like this:

The client-server model is used to build an information processing system based on, as well as postal systems. There is also a so-called file-server architecture, which differs significantly from the client-server architecture.

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

Advantages of client-server technology

1. Makes it possible, in most cases, to distribute a computing system between several independent computers on a network.

This makes it easier to maintain the computer system. In particular, replacing, repairing, upgrading or moving a server does not affect customers.

2. All data is stored on the server, which, as a rule, is protected much better than most clients. It is easier to enforce permission controls on the server to allow only clients with the appropriate access rights to access data.

3. Allows you to combine different clients. Clients with different hardware platforms, operating systems, etc. can often use the resources of one server.

Disadvantages of client-server technology

  1. Server failure can render the entire computer network inoperable.
  2. Supporting the operation of this system requires a separate system administrator.
  3. High cost of equipment.

Multi-tier client-server architecture

Multi-level client-server architecture is a type of client-server architecture in which the data processing function is carried out 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.



Dedicated server network

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

Almost all models for organizing user interaction with a database are built on the basis of client-server technology. It is assumed that each such application differs in the way it distributes functions: the client part is responsible for targeted data processing and organizing user interaction, the server part provides data storage - processes requests and sends results to the client for special processing. A typical architecture of client-server technology is shown in Fig. 4.1:

Rice. 4.1. Typical architecture of client-server technology

Some of the functions of central computers were taken over by local computers. Any software application in this case, it is represented by three components: a presentation component that implements the interface with the user; an application component that provides application functions; a component for accessing information resources (resource manager), which accumulates information and manages data.

Based on the distribution of these components between the workstation and the network server, client-server architecture models are distinguished:

· model of access to remote data (Fig. 4.2). The server contains only the following data:

Rice. 4.2. Remote data access model

This model characterized by low productivity, since all information is processed on workstations; in addition, a low exchange rate is maintained when transferring large amounts of information from the server to workstations;

· data management server model (Fig. 4.3):

Rice. 4.3. Data management server model

Features of this model: reduction in the amount of information transmitted over the network, since the selection of necessary information elements is carried out on the server, and not on workstations; unification and a wide selection of application creation tools; lack of a clear distinction between the presentation component and the application component, which makes it difficult to improve the computing system. It is advisable to use in the case of processing moderate amounts of information, while the complexity of the application component should be low,

· complex server model (Fig. 4.4):

Rice. 4.4. Complex server model

Advantages of the model: high performance, centralized administration, saving network resources. Such a server is optimal for large networks focused on processing large volumes of information that increase over time;

· three-tier client-server architecture (Fig. 4.5). Used when the complexity and resource intensity of an application component increases.

Rice. 4.5. Three-tier architecture

An application server can implement several application functions, each of which is designed as a separate service that provides some services to all programs. There may be several such servers, each of them is focused on providing a certain set of services. This architecture is based on further specialization of the architecture components: the client is only involved in organizing the interface with the user, the database server performs only standard data processing, to implement the data processing logic, the architecture provides a separate layer - the business logic layer, it can be either a dedicated server (application server ), or placed on the client as a library.

Within the client-server architecture, there are two main concepts:

· "thin" client. A powerful database server and a library of stored procedures are used to make calculations that implement the basic data processing logic directly on the server. The client application, accordingly, places low demands on hardware workstation;

· a “thick” client implements the main processing logic on the client, and the server is a pure database server that ensures the execution of only standard requests for data manipulation (usually reading, writing, modifying data in relational database tables).

Network IT

Email. The very first to emerge, this form of electronic messaging (e-mail) demonstrated the very possibility of almost instantaneous communication through computer networks. Architecturally designed for the exchange of messages between two subscribers, it allowed groups of people to exchange information. Groups or mailing lists became such a modification. Using email software, you can create email messages and make attachments to them. The attachment feature is used to send any type of document by mail, e.g. text documents, spreadsheets, multimedia files, database files, etc. Text filtering software developed later expanded the capabilities Email to help the user structure, route, and filter messages. The need for these services is due to the constantly growing amount of mail that is of little or no use to the user (Spam). Filtering software can ensure that users receive only personalized messages that contain news that is important to them, and can also help them find information that users need in their decision-making process.

Teleconferences or newsgroups. Teleconferences are the next stage in the development of communication systems. Their features were, firstly, storing messages and providing interested parties with access to the entire exchange history, and secondly, various ways thematic grouping of messages. Such conferencing systems enable a group of co-working but geographically separated people to exchange opinions, ideas or information online when discussing any issue, overcoming time and spatial barriers. Currently, there are many varieties of conferencing systems, including computer conferencing (meetings conducted via e-mail), conference calls with the ability to connect mobile subscribers, conferences using desktop PCs, multimedia, television and video conferencing.

Interactive communication(chat rooms). With the development of telecommunications, everything large quantity users begin to work on the Internet in constant presence mode, so a real-time communication service has appeared, when the subscriber receives a message within a short period of time after it was sent by the interlocutor.

The most common modern means of interactive communication are Web applications that support the following forms of communication:

o Guest books. The first and simplest form. The simplest guest book is a list of messages, shown from latest to first, each of which was left in it by a visitor.

o Forums. The first forums appeared as an improvement on guest books and organized messages into threads - much like newsgroups. User messages in forums are grouped by topics, which are usually set by the first messages. All visitors can see the topic and post their message - in response to those already written. Topics are grouped into thematic forums, and the system is managed by informal administrators and moderators. The most developed forums are beginning to have the first signs of social networks - long-term social connections based on interests can be established between participants.

o Blogs(Web Log - Web log, Web protocol). In these services, each participant keeps his own journal - leaves entries in chronological order. The topics of the entries can be anything; the most common approach is to keep a blog as your own diary. Other visitors can leave comments on these posts. In this case, the user, in addition to the ability to maintain his own journal, gets the opportunity to organize a listing view - a list of entries from the journals of “friends”, regulate access to entries, and search for interlocutors based on interests. On the basis of such systems, communities of interest are created - magazines that are maintained collectively. In such a community, its members can freely post any message related to the community’s activities.

In general everything modern systems ensuring the operation of online communities have several common features:

· The vast majority of communities provide for user registration, i.e. Each participant must have an account. When registering, the user provides some information about himself for identification. Almost all systems require entering an email address and check its functionality by sending an email with an activation code account. If the address is incorrect, only the system administrator can activate the entry. This approach guarantees, to a certain extent, the uniqueness of the participant and his identifiability.

· Work in the environment is carried out in sessions. Each session begins with the user entering their name and confirming their identity by entering a password. For convenience, session participation is usually hidden from the user technical means, but, nevertheless, user identification occurs constantly.

· In addition to credentials, the user configures the environment - appearance, additional information about yourself, indicates your interests, desired contacts, topics for communication, etc.

· Social networks and the services that support them have proven to be an extremely effective method of generating website traffic, feedback, they have gradually become one of the means of filling the content of the site with content that has real commercial and social value.

Based on the latter approach, quite a few appeared and quickly gained popularity. a large number of social Web services, united by a common name Web services 2.0. You can specify some such resources:

o Social bookmarks. Some websites allow users to share a list of bookmarks or popular websites with others. Such sites can also be used to find users with common interests. Example: Delicious.

o Social directories resemble social bookmarks, but are focused on academic use, allowing users to work with a database of citations from scientific articles. Examples: Academic Search Premier, LexisNexis Academic University, CiteULike, Connotea.

o Social libraries are applications that allow visitors to leave links to their collections, books, and audio recordings that are available to others. Support for a system of recommendations and ratings is provided. Examples: discogs.com, IMDb.com.

o Multiplayer online games simulate virtual worlds with various systems scoring, levels, competition, winners and losers. Example: World of Warcraft.

o Multilingual social media allow you to establish social connections between people who speak different languages. In this case, special software is used that allows you to translate phrases from one language to another in real time. Examples: Dudu.

o Geosocial networks form social connections based on the user’s geographic location. In this case, various geolocation tools are used (for example, GPS or hybrid systems such as AlterGeo technology), which make it possible to determine the current location of a user and correlate his position in space with the location of various places and people around.

o Professional social networks are created for communication on professional topics, exchange of experience and information, search and offer of vacancies, development of business connections. Examples: Doctor at work, Professionals.ru, MyStarWay.com, LinkedIn, MarketingPeople, Viadeo.

o Service social networks allow users to unite online around their common interests, hobbies, or for various reasons. For example, some sites provide services that allow users to post public access personal information necessary for finding partners. Examples: LinkedIn, VKontakte.

o Commercial social networks are focused on supporting business transactions and building people's trust in brands by taking into account their opinions about the product, thereby allowing consumers to participate in the promotion of the product and increasing their awareness.

3 Client-server technology

Client-server technology replaced the centralized scheme for managing the computing process on mainframes back in the 80s of the last century. Thanks to the high survivability and reliability of the computing system, ease of scaling, the ability of the user to simultaneously work with several applications, high efficiency of information processing, providing the user with a high-quality interface and other capabilities, this very promising and far from exhausted technology has received further development.

Over time, a low-functional file server model for local networks(FS) replaced the Client-Server structure models that appeared one after another (RDA, DBS and AS).

Having occupied the niche of databases, the Client-Server technology has become the main technology of the global Internet. Further, as a result of transferring the ideas of the Internet to the environment of corporate systems, Intranet technology appeared . Unlike the Client-Server technology, this technology is focused not on data, but on information in its final ready-to-consume form. Computing systems built on the basis of the Intranet include central information servers and distributed components for presenting information to the end user (navigator programs, or browsers). The interaction between client and server on an Intranet occurs when help web– technology.

Today, Client-Server technology is becoming increasingly widespread, but in itself it does not offer universal recipes. It only gives a general idea of ​​how a modern distributed information system should be organized. At the same time, the implementation of this technology in specific software products and even the types of software differ quite significantly.

3.1 Classic two-tier “Client-Server” architecture

Typically, network components are not equal: some have access to resources (for example, a printer, a processor, a database management system (DBMS), file system and so on), others have the opportunity to access these resources.

Client-server technology - this is the architecture of a software package in which the application program is distributed among two logically different components (client and server), interacting according to the “request-response” scheme and solving their specific tasks (Figure 6).

Figure 6 – Client-server architecture

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

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

The client and server can be located either on the same computer (PC) or on different PCs on the network. A situation may also arise when a certain software block simultaneously performs the functions of a server in relation to one block and a client in relation to another.

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

- modules user interface ;

This group is also called presentation logic. Users interact with the application through this group. Regardless of the specific characteristics of presentation logic (command line interface, complex graphical user interfaces, interfaces through a proxy), its purpose is to provide a means for the most efficient exchange of information between the user and the information system.

- storage modules ;

This group is also called business logic. Business logic determines what the application is specifically intended for (for example, application functions specific to a given subject area). Dividing an application across program boundaries provides a natural basis for distributing an application across multiple computers.

- data processing modules (resource management functions);

This group is also called data access logic or data access algorithms. Data access algorithms have historically been viewed as an application-specific interface to a persistent data storage mechanism such as a file system or DBMS. Using data processing modules, an application-specific interface to the DBMS is organized. Using the interface, the application manages connections to the database and queries to it (translation of application-specific queries into SQL language, obtaining the results and translating those results back into application-specific data structures).

Each of these groups can be implemented independently of the other two. For example, without changing the programs used to store and process data, you can change the user interface so that the same data is displayed in the form of tables, graphs, or histograms. Very simple applications are often able to combine all three parts into a single program, and such separation corresponds to functional boundaries.

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

- data presentation component;

- application component;

- resource management component.

In a classic client-server architecture, the three main parts of the application must be distributed across two physical modules. Typically, the application component is located on the server (for example, a database server), the data presentation component is located on the client side, and the resource management component is distributed between the client and server sides. This is the main disadvantage of the classical two-tier architecture.

In a two-tier architecture, when breaking down data processing algorithms, developers must have full information about the latest changes made to the system and understand these changes, which creates great difficulties in the development of client-server systems, their installation and maintenance, since it is necessary to spend significant 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 them to change ready-made and proven elements.

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

In these architectures, 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 drawbacks. In the first case, the network is unjustifiably overloaded, because unprocessed, and therefore redundant, data is transmitted through it. In addition, system support and changes become more difficult, since replacing a calculation algorithm or correcting an error requires a simultaneous complete replacement of all interface programs, otherwise errors or data inconsistency may occur. If all information processing is performed on the server, then the problem of describing built-in procedures and their debugging arises. A system with information processing on a server is absolutely impossible to transfer to another platform (OS), which is a serious drawback.

If you are still developing a two-level classic “Client-Server” architecture, then you need to remember the following:

- the “Thick Server” architecture is similar to the “Thin Client” architecture (Figure 33) ;

Figure 33. – Thin Client architecture

Transferring a request from the client to the server, processing the request by the server and transmitting the result to the client. However, the architectures have the following disadvantages:

Implementation becomes more complicated, since languages ​​like SQL are not suitable for developing such software and there are no good debugging tools;

The performance of programs written in languages ​​like SQL is significantly lower than those created in other languages, which is important for complex systems;

Programs written in DBMS languages ​​usually do not work reliably; an error in them can lead to failure of the entire database server;

The resulting programs are completely unportable to other systems and platforms.

- the “Thin Server” architecture is similar to the “Thick Client” architecture (Figure 34).

Request processing occurs on the client side, that is, all raw data from the server is transferred to the client. However, the architectures have the following disadvantages:

Updating software becomes more difficult, since it must be replaced simultaneously across the entire system;

The distribution of powers becomes more complicated, since access is limited not by actions, but by tables;

The network is overloaded due to the transmission of unprocessed data through it;

Weak data protection, since it is difficult to correctly distribute powers.

Figure 34. – “Thick Client” architecture

To solve these problems, multi-level (three or more levels) Client-Server architectures are used.

3.2 Three-level model

Since the mid-90s of the last century, the three-tier “Client – ​​Server” architecture has received recognition from experts, which divided the information system according to functionality into three separate components: presentation logic, business logic and data access logic. In contrast to the two-tier architecture, the three-tier architecture has an additional link - the application server, which is designed to implement business logic, while the client, which sends requests to the middleware, is completely unloaded, and all the capabilities of the servers are used to the maximum.

In a three-tier architecture, the client is usually 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 Web technology tools - a browser, CGI and Java. This reduces the amount of data transferred between the client and application server, allowing you to connect client computers even over slow lines such as telephone channels. In addition, the client side can be so simple that in most cases it is implemented using a universal browser. But if you still have to change it, then this procedure can be carried out quickly and painlessly.

Applications server– this is software that is an intermediate layer between the client and server (Figure 35).

Figure 35 - Application Server

There are several categories of midlayer products:

Message oriented – bright representatives of MQseries and JMS;

Object Broker – prominent representatives of CORBA and DCOM;

Component based are bright representatives of .NET and EJB.

Using an application server provides more benefits, for example, the load on client computers is reduced because the application server distributes the load and provides protection against failures. Since the business logic is stored on the application server, any changes in reporting or calculations do not affect client programs in any way.

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

WEB Server – most often the most popular and powerful Apache is included in the package;

WEB Container – allows you to run JSP and servlets. For Apache, this service is Tomcat;