Software development is one of the most complex parameters presented by computer science. Thanks to the design of these programs, today we can talk and perform tasks that were previously impossible to perform, from surfing the Internet to sharing a document with another computer that is connected to the same network.
These software designs have a widely used development model, the Client-Server architecture model , with which parameters are established to be able to make a computer program in a simple and efficient way.
After reading this post you will be able to know what this type of architecture is about, we will also present the main features of the model and analyze all its advantages and disadvantages.
Index:
What is the Client-Server architecture for digital development ?
Among the different models that exist to design software is the client-server architecture, which consists of dividing the tasks into two parts. One is aimed at servers, which are the providers of resources and services that are delivered to the second part, which are called customers.
In other words, thanks to this model, the development architecture is divided for those who deliver the service or resources and for those who receive or require those products or services.
The great advantage of this model is that it is possible to centralize, regardless of the size of the network, obtaining the information and separating the responsibilities of each party involved.
Thanks to the team design the clients are connected to a server, which allows centralizing the different factors that are available, putting at the service of each client all the resources they need.
Another important feature of this architecture is that files can be shared by different members of the network as long as they are enabled to do so. Otherwise this data can be restricted or simply read-only.
What are the main features of the Client-Server model ?
Among the different features presented by the CS model, we can mention the most prominent ones below:
- The client is the active user who waits and asks the provider for different actions through the available resources.
- You can also work directly with the provider as well You can also interact with other clients directly through a graphical interface.
- If necessary, the client can be related to more than one provider and its level is always higher than the server becoming “Leader”, “teacher” or “parent” any of the three denominations can be used.
- The server is the one that receives the request from the recipient, it is also the one that processes the information and delivery to the recipient through the administration of available resources.
- The provider must have connections with different clients, but cannot do so with other servers.
- The C architecture / S interacts independently with a single entity or with At the same time, regardless of whether the client server relationship is on the same platform on separate platforms.
- The user is directly related to the PC without having a direct dependency relationship with the server.
- The server may or may not save information on each request made by the recipient.
- There is no other relationship between the client and its provider if it is not by this means, and it is the request for information through messages with graphical interfaces.
>
How are servers classified in this digital architecture?
Servers are classified in the S / C architecture as follows:
- Stateless are those providers that do not store information between each request made by the user.
- Stateful , are those between request and Customer request can remember the information delivered.
We can also classify servers according to the functionality of each one, they are:
- Files: When the registry is requested
- Database: It is oriented to SQL requirements
- Transactions: They are the servers that work when the user asks for processes that are inside the server
- Objects: It is related to ORB, where the client request through a remote method.
- Web: Get in touch via HTTP
Is it the best architecture? Advantages and disadvantages of the model
While it is true that the client server model is one of the most used for the design and development of software there are points that we have to analyze.
We detail them below:
Advantages
The server can control all the accesses and resources that the program can have, as well as eliminate clients that are not authorized to enter. In addition, both users and providers can grow greatly and will not damage the network structure.
The maintenance is simple , since it has all the functions and structures well determined so enter it and know what things to keep or repair does not take much time.
It is easy to use graphical interfaces are simple and ensure a certain degree of privacy because users cannot be traced.
Disadvantages
When many customers request to obtain data from the provider, it can collapse and it is out of operation, so many customers will be unable to get the answers to the requests they made.
>
peer-to-peer (P2P) networks are more robust , since their development has fewer errors because it has resources distributed on different nodes of the network, making users never inactive in as for the answers to your requests.
This type of architecture causes the server to have a lot of dependence on both software and hardware .
The users cannot share information , since all data is generated through the requests made to the server.
CS vs Peer network vs CCC How do they differ and which one is better?
The difference is that the C / S architecture works from point to point, that is, there is a direct relationship between the client and the server, with the Client-Queue-Client design architecture the same does not happen.
This method gives all members the category of simple clients, while the server acts as a queue, picking up requests from those nodes. In this way the process of sharing information is done through the queue, thus generating greater robustness.
What are the most important components of the Client architecture -Server?
The most important components that exist in this client-server architecture are the ones that we will define below:
- Network: It is the set of nodes that are connected to each other through software or hardware and exchange information with each other.
- Client: As mentioned above, the client is the user or person who makes the requests and awaits the result report from the provider.
- Server: Is the that manages the resources at its disposal and provides the information requested by the user. The passive part of this architecture.
- Protocol: It is the set of rules and indications that the members of the network have to be able to transmit and share information.
- Services: Is the information that the client needs
- Database: This is a set of information that is ordered according to certain features and that when organized it can be easily accessed.