The Client - Server Structure is a Computing Architecture in which cooperative information processing is achieved by means of a set of processors, so that one or several clients, geographically distributed or not, request computer services from one or more servers. In this way, and thanks to this architecture, all the processors, clients and servers work cooperatively to carry out a specific processing of the information.
In view of this decentralized vision, the client - server architecture consists of a distributed computing architecture, in which the computing tasks are distributed among different processors, with final users obtaining the final result in a transparent manner, regardless of the number of computers ( servers) that have intervened in the treatment. It can therefore be said that the client-server architecture is a type of distributed architecture, possibly the most widespread one.
Elements that are part of a Client - Server Architecture
A Client / Server system is a distributed Information System based on the following characteristics:
• Service: basic design unit. The server provides them and the client uses them.
• Shared resources: Many clients use the same servers and, through them, share both logical and physical resources.
• Asymmetric protocols: Clients initiate "conversations". The servers wait for your establishment passively.
• Transparency of the physical location of the servers and clients: The client does not have to know where the resource he wants to use is located.
• Independence of the HW and SW platform used.
• Loosely coupled systems. Interaction based on sending messages.
• Encapsulation of services. The details of the implementation of a service are transparent to the client.
• Scalability horizontal (add clients) and vertical (increase power of servers).
• Integrity: Data and programs centralized in servers facilitate their integrity and maintenance.
In the usual client / server model, a server, (daemon in the Saxon terminology based on UNIX / LINUX systems, translated as "daemon") activates and waits for client requests.
The normal thing is that the services of a same server can be used by multiple different clients. Both client programs and servers are often part of a larger program or application.
Operating Scheme of a System according to customer Architecture - Server
The operating scheme of a Client / Server System would be:
• 1. The client requests information from the server.
• 2. The server receives the client's request.
• 3. The server processes that request.
• 4. The server sends the obtained result to the client.
• 5. The client receives the result and processes it.
Components of Customer Architecture Server
The Client / Server model is a model based on the idea of the service, in which the client is a consumer process of services and the server is a service provider process. Furthermore, this relationship is established based on the exchange of messages that is the only element of coupling between them.
This decomposition mainly consists of separating the structural elements of this technology in function of more functional aspects of it:
• Presentation Level: Groups all the elements associated with the Client component.
• Application Level: Groups all the elements associated with the Server component.
• Communication level: Groups all the elements that make communication between the Client and server components possible.
• Database level: Groups all the activities associated with accessing the data.
Main Elements of a Client / Server Structure
A client is any process that claims the services of another. A slightly more elaborate definition could be the following: client is the process that allows the user to formulate the requirements and pass them to the server. It is known by the term front-end.
The functions carried out by the client process are summarized in the following points:
• Manage the user interface.
• Interact with the user.
• Process the logic of the application and make local validations.
• Generate database requirements.
• Receive results from the server.
• Format results.
In this way the customer can be classified as:
• Client based on user application. If the data are of low interaction and are strongly related to the activity of the users of those clients.
• Customer based on business logic. It takes data supplied by the user and / or the database and performs the necessary calculations according to the user's requirements.
A server is any process that provides a service to others. It is the process responsible for serving multiple clients who make requests for a resource administered by him. The server process is known by the term back-end. The server normally handles all functions related to most business rules and data resources. The main functions carried out by the server process are listed below:
• Accept the database requirements that customers make.
• Process database requirements.
• Format data to be transmitted to customers.
• Process the logic of the application and perform validations at the database level.
The middleware is an intermediate module that acts as a conductor between systems allowing any user of information systems to communicate with several sources of information that are connected by a network. In the case that concerns us, it is the intermediary between the client and the server and is executed in both parts.
The middleware is structured in three levels:
• Transport protocol.
• Network Operating System (NOS).
• Service specific protocol.
The main characteristics of a middleware are:
• Simplifies the application development process by making the proprietary environments independent.
• Allows interconnectivity of the Agency's Information Systems.
• Provides greater control of the business by having information from different platforms on the same support.
• Facilitates the development of complex systems with different technologies and architectures.
Communication between the Elements (NOS)
As mentioned in the previous section, middleware is a set of applications responsible for linking the client with the server. For this, it is structured in three different layers:
• Transport protocol: common to other applications.
• Network Operating System (NOS).
• Specific service protocol: special for different types of Client / Server systems.
He is responsible for providing a unique system appearance to a Client / Server system. It is therefore an extension of the Operating System:
• The customer makes a call to a service as if it were local.
• He NOS:
• Intercept the call.
• Redirects the call to the appropriate server.
• Return the answer.
He must provide transparency to the Client / Server processes with respect to:
• Location: Resources are only known by their name. The system in which they are executed is irrelevant.
• Namespace: The conventions of the names of the resources must be the same, regardless of the system that supports them.
• Connection: A single user and password for the entire system. • Replication: You should not differentiate between copies of the same resource.
• Local / remote access: Access to a resource must be done as if it were located on the same system as the client program.
• Time: The clocks of all system elements must be synchronized.
• Failures: The system must provide fault detection, redundancy and reconnection services after a failure.
• Administration: A single management system for all resources.
• Protocols: Identical programming interface for all transport protocols.
Client / Server Architecture Types
One of the key aspects to understand the Client / Server technology, and therefore have the ability to propose and carry out solutions of this type, is to get to know the architecture of this model and the concepts or ideas associated with it.
A classification scheme based on the concepts of Fat Client / Thin Client, Fat Server / Thin Server, that is, based on the size of the components. Second, we have a classification according to the nature of the service they offer us.
Types of Customer Architecture - Server by size of Components
This type of classification is based on the degrees of freedom provided by the Client / Server model to balance the process load between the presentation, application and database levels.
Depending on which segment of the software layers have to support the greater or lesser processing load, we speak of Fat Client (Thin Server) or Fat server (Thin Client).
Considerations of this type are important at the moment of deciding a development platform, at the same time that they can define the feasibility or not of them to face a certain number of restrictions imposed by a problem to be solved.
Fat Client - Thin Server
In this architecture scheme the weight of the application is executed in the client, that is, the level of presentation and the level of application run in a single client process, and the server is relegated to perform the functions provided by a basic administrator of data.
In general, this type of architecture has better application in decision support systems (DSS: Decision Support System) and executive information systems (EIS: Executive Information System), and as it will be concluded later, it has little possibility of being applied in systems of mission critical.
Fat Server - Thin Client
This is the opposite case to the previous one, the client process is restricted to the presentation of the user interface, while the weight of the application runs on the side of the application server.
In general, this type of architecture presents greater flexibility to develop a wide variety of applications, including mission-critical systems through transaction servers.
Types of Customer Architecture - Server according to the nature of Service Provided
With a file server, a client what he does is requirements of the same on a network. This is a very primitive form of data services, which requires the exchange of many messages over a network to find the required data.
File servers use shared resources over the network and are necessary to create repositories of documents, images and large files on the network.
This analysis is made from the point of view of the Client / Server model, and is directly related to the architecture in two planes, which will be described in the following section.
Obviously, the creation of Client / Server applications is associated with the use of SQL relational database servers, and depending on the requirements and restrictions, a two or three plan architecture must be chosen.
These types of systems can be implemented with any of the Client / Server modalities in two or three planes, but they incorporate a main element on which the whole strength of this model is elaborated and based, the transaction concept.
With a transaction server the client process calls functions, procedures or methods that reside on the server, whether it is a database server or an application server.
With an object server, Client / Server applications are written as a set of objects that communicate. The client objects communicate with the server objects using an Object Request Broker (ORB). The client invokes a method of a remote object. The ORB locates the object's method on the server, and executes it to return the result to the client object.
Object servers must support concurrency. The central part of the communication in the object servers is the ORB:
• Central and main element of this architecture.
• Bus of objects. Allows communication between them.
• Advanced Middleware: Allows static and dynamic calls to objects.
• Interface description language independent of the programming language.
The first client server application that covers the entire planet is the World Wide Web. This new model consists of simple clients that talk to Web servers. A Web server returns documents when the client asks for the name of the same. Clients and servers communicate using an RPC-based protocol, called HTTP. This protocol defines a simple set of commands, the parameters are passed as strings and do not provide data types. The Web and distributed objects are beginning to create a very interactive set of Client / Server computing.
Client / Server Models
One of the best-known classifications of Client / Server architectures is based on the idea of planes (tier), which is a variation on division or classification by component size.
At the Software Level
This approach or classification is the most generalized and best suited to modern approaches, since it is based on the logical components of the Client / Server structure and on the maturity and popularity of distributed computing.
Client Model / 2 Layer Server
This structure is characterized by the direct connection between the client process and a database administrator. Depending on where the group of tasks corresponding to the business logic is located, you can have two different types within this same category:
Implemented with Remote SQL
In this scheme the client sends messages with SQL requests to the database server and the result of each SQL statement is returned by the network, regardless of whether they are one, ten, hundred or thousand records. It is the same client who must process all the records that were returned by the database server, according to the requirement that he himself made.
• It presents a fairly simple development structure since the programmer manages a single development environment (it is simpler with respect to the Client / Server in three planes, since it reduces a layer of programming, as will be seen later).
• The large amount of information that travels to the client congests too much network traffic, which translates into poor performance.
• Due to its low performance, this structure has a low spectrum of application, limited to the construction of non-critical systems.
Implemented with Stored Procedures
In this scheme the client sends calls to functions that reside in the database, and it is this one that solves and processes all the SQL statements grouped in the aforementioned function.
Advantages: It presents the same advantages of an architecture two planes with stored procedures, but considerably improves the performance on it, since it reduces the traffic by the network when processing the data in the same database, making travel only the final result of a set of SQL statements.
Disadvantages: Although the complexity of development is diminished, flexibility and scalability are lost in the implemented solutions. It forces to base the weight of the application in extended SQL, own of the supplier of the database that is chosen. It should be considered that if the stored procedures, the triggers and the rules (constraint) are useful, strictly speaking, they are alien to the SQL standard.
Client Model / 3 Layer Server
This structure is characterized by developing the application based on two main software layers, plus the layer corresponding to the database server. As in the two-layer architecture, and depending on the design decisions that are made, the workload can be balanced between the client process and the new process corresponding to the application server.
• Reduces the traffic of information in the network by what improves the performance of the systems (especially with respect to the structure in two planes).
• Provides greater flexibility of development and choice of platforms on which to mount the applications. Provides horizontal and vertical scalability.
• The independence between the application code (rules and business knowledge) and the data is maintained, improving the portability of the applications.
• Depending on the choice of development languages, two levels may be more complex compared to Client / Server.
• There are few suppliers of integrated development tools in relation to the Client / Server model, two plans, and they are usually of high cost.
At the Hardware Level
This classification of the Client / Server model is also based on the distribution of processes and elements among its components, but focusing on the physical part of it, in which the administration of the graphic interface is associated with PC clients and security. Data integrity is associated with mainframe environments or at least local and / or central servers.
Client Model / 2 Layer Server
The clients are connected via LAN to a local application server, which, depending on the application, can give access to the data managed by it.
Client Model / 3 Layer Server
The clients are connected via LAN to a local application server, which in turn communicates with a central database server. The local server has a dual behavior, since it acts as a client or server depending on the direction of the communication.
What is TCP / IP
TCP / IP is a set of protocols that allow communication between computers belonging to a network. The acronym TCP / IP stands for Transmission Control Protocol / Internet Protocol and is pronounced "T-C-P-I-P". It comes from the names of two important protocols included in the TCP / IP set, that is, the TCP protocol and the IP protocol.
In some aspects, TCP / IP represents all the rules of communication for the Internet and is based on the notion of IP address, that is, on the idea of providing an IP address to each computer in the network in order to route data packets. Because the TCP / IP protocol suite was originally created for military purposes, it is designed to meet a certain number of criteria, including dividing messages into packets, using an address system, routing data over the network, and detecting errors. in data transmissions.
Knowledge of the TCP / IP protocol set is not essential for a single user, in the same way that a viewer does not need to know how their audiovisual or television network works. However, for people who want to manage or provide technical support to a TCP / IP network, their knowledge is essential.
The difference between Standard and Implementation
In general, TCP / IP relates the following two notions:
- The notion of standard: the TCP / IP protocol represents the way in which communications are made in a network.
- The notion of implementation: the TCP / IP designation generally extends to software based on the TCP / IP protocol. Actually, TCP / IP is a model whose developers use the network application. The applications are, therefore, implementations of the TCP / IP protocol.
TCP / IP is a Layer Model
In order to apply the TCP / IP model to any computer, that is, independently of the operating system, the TCP / IP protocol system has been divided into several modules. Each of these performs a specific task. In addition, these modules perform their tasks one after the other in a specific order, that is, there is a stratified system. This is the reason why we talk about layers model.
The importance of a Layer System
The objective of a layered system is to divide the problem into different parts (the layers), according to their level of abstraction.
Each layer of the model communicates with an adjacent level (top or bottom). Therefore, each layer uses the services of the lower layers and provides them to the upper layer.
The OSI Model
The OSI model is a model that comprises 7 layers, while the TCP / IP model has only 4. In reality, the TCP / IP model was developed almost on par with the OSI model. That is why it is influenced by this one, but it does not follow all the specifications of the OSI model. The layers of the OSI model are the following:
• The physical layer defines the way in which the data is physically converted into digital signals in the communication media (electrical pulses, light modulation, etc.).
• The data link layer defines the interface with the network interface card and how the transmission medium is shared.
• The network layer allows you to manage the addresses and routing of data, that is, your route through the network.
• The transport layer is responsible for the transport of data, its division into packets and the management of potential transmission errors.
• The session layer defines the start and end of communication sessions between the computers in the network.
• The presentation layer defines the format of the data handled by the application layer (its representation and, potentially, its compression and encryption) independently of the system.
• The application layer provides applications to the interface. Therefore, it is the level closest to the users, managed directly by the software.
The TCP / IP Model
The TCP / IP model, influenced by the OSI model, also uses the modular approach (uses modules or layers), but only contains four: network access, Internet, transport and application.
As can be seen, the layers of the TCP / IP model have much more diverse tasks than those of the OSI model, considering that certain layers of the TCP / IP model correspond to several levels of the OSI model.
The functions of the different layers are the following:
Network access layer: specifies the way in which the data should be routed, whatever the type of network used.
Internet layer: is responsible for providing the data packet (datagram).
Transport layer: provides the routing data, together with the mechanisms that allow to know the status of the transmission. It includes TCP and UDP protocols.
Application layer: incorporates standard network applications (Telnet, SMTP, FTP, etc.).
During a transmission, the data crosses each of the layers at the level of the sending equipment. In each layer, information is added to the data package. This is called a header, that is, a collection of information that guarantees the transmission. At the level of the receiving equipment, when each layer is traversed, the header is read and then deleted. Then, when it is received, the message is in its original state:
At each level, the data package changes its appearance because a header is added. Therefore, the designations change according to the layers: the data packet is called a message at the level of the application layer. The message is then encapsulated as a segment in the transport layer. Once the segment is encapsulated in the Internet layer, it is called the datagram. Finally, the raster is discussed at the layer level of access to the network.
You May Also Like