Skip to main content

Command Palette

Search for a command to run...

Client-Server Model

Published
4 min read
Client-Server Model

DLM-VM1_Cloud is a self startup distribution platform. We work on multiple open source projects for software companies and open source projects. The two companies that we developed projects for are IBM and Hashicorp. For IBM we built two software projects one using Python the other using Javascript to build a compute server. The server was primarily built to host website and open ports such as tcp. We have nginx load balancer and proxy, HAPROXY, Caddy for reverse proxy and static site web page server. After building the server we then worked on a Hashicorp project. We incorporated the server with a registered IP address to build and contribute to Consul Nomad Vault and Terraform. We listed a DNS and etcd server. Implemented plugins for Ingress Gateway and gRPC proxy ecosystems. Also for etcd we installed node clusters from etcd.io and for hosting. The clusters are built-in to the server we mentioned earlier. To add more to our projects we added Cloudflare to the projects we couldn't wait to work on. We have now teams.Cloudlare a custom DNS with a lot of capabilities. To add we have a zero trust network with policies sending http requests and blocking for security measures. The parameters in which we built the server allowed to add security features to our server with adding clusters and a DNS. I have plans to grow DLM-VM1-Cloud but first have to monitor and grow the basic foundations of this project. If your are interested and want to contribute or build alongside myself or want advice to how I got into tech visit our social sites and reach out. Thanks...

What is a Client-Server Model and what are the benefits of hosting a distribution application on your computer server. First, the server model is a structured application that distributes workload resources between servers and clients. A server is the provider of the resource while the client is the requester of the service. Most often both the client and server are located on the same hardware. The server host runs one or more server programs that shares and communicates a request with a client. Generally speaking the server would be the IP address that sends the request to a client which then sends that request to a computer laptop, phone or tablet. The server processes the application which then sends the request to a client, which can be many different services such as emails, web applications, or software programs. The image below will give a visual look of what a client-server model is.

How the Client-Server Model works?

image0.jpeg

In this diagram the server acts as the main database that stores and holds the information before it's requested from the client. An example of a server or a database could be a DNS(Domain Name Server) or it can be a database which stores client confidential information such as MongoDB Postgre SQL or MYSQL.

  • The server acts as a host to send http request to a client. If the client search for a specific domain or url, the main purpose of the server is to fetch the unique IP address of the website to return that request to a client. This is the exact function of Google search engine. It uses unique tagline to give the client a list of websites that corresponds with what the client requested. It then gives a list of websites that can help the client find information that can help them of their service or request.

  • The client is the unique individual or machine that requests a service. The communication of the server is what the client uses to find or search for information. The client uses different networks such as Google search engine to retrieve information - the service.

The diagram below will give a better visualization of http requests over DNS and web servers.

image0-2.jpeg

  • DNS searches the address of the Web Server

  • Sends the response of the URL to client

  • The website is then transferred through the network to the client

  • The IP address is retrieved and the client's response is satisfied

The Benefits of Client-Server Model

  • Centralization - client server network has centralized control(all information stored in one location)

  • Security - data is well protected due to its centralized architecture

  • Scalability - users can increase workloads and resources as intended

  • Management - Files are stored in a single location which makes it more accessible

The Vulnerabilities of Client-Server Model

  • Traffic Congestion - if too many clients request from the same server it's due to crash

  • Robustness - if servers happen to undergo failure or interference, networks tend to be disrupted

  • Cost - the cost of installing and maintaining network operations are high.

  • Maintenance - when servers are installed they require a lot surveillance, problems must be solved immediately to avoid long periods of downtime for client use

A centralized computing system is one of many ways to start or learn about computer software programming. The same architecture is used when programming. The client server model uses the same model when inputing algorithms or codes into the terminal. The main purpose is for the computer or local machine to retrieve a request correspond that request with a network and send a response back to the client. Ideally you can build websites you can host websites or you can go to the more advance stages of computing with peering connections over a private IP address. You can use different ports to establish an open communication between the server and the application itself if you are designing or building a web app. I used my expertise as a backend developer to register an IP address to host different applications across my architecture. Some of the applications I linked were NGINX, HAPROXY, CADDY Servers and more. In my upcoming blog post I will give my take on how you open tcp ports on a local server for web development Ingress services, eco-systems and network services. Mainly these applications are used for performance testing and security. The time is takes to retrieve information over a network and how well the applications runs without crashing are just some of the basics as a backend developer. Also, security when flowing traffic through a network to block phishes ads and DDoS attacks are important for overall maintenance of the server. Implementing Zero-trust Policies and network restrictions are key additional features for management.

CONCLUSION

In my development cycle I used this model when building my computer architecture. Understanding the basics and main purpose, service and communication between client side and server side production can open many paths as a software engineer. If you want to build websites, software or host local websites as development then you should first learn the basics of this architecture.