Where to apply client-server architectures

There are a bunch of situations where the client-server architectural style can be used. Let's review some typical examples, in order to better understand this approach.

As mentioned previously, databases commonly fit this architectural style. Currently, we have many database vendors available in the market, and the majority of them only offer the chance to scale vertically. Two classic examples of this approach are SQL Server and PostgreSQL. However, there are options to scale horizontally, as well. The most well-known database following this model is Cassandra, which is a database created by Facebook that was later adopted as an Apache project. This database uses a ring model to connect different nodes, where the data is stored. In this manner, you can add as many nodes as you need to, in order to support high-availability.

Chat services, like Slack, are a classic example of client-server architectures that use the cloud. This chat has clients for almost any computer operating system, and for mobile platforms, as well; you can even use it directly on the browser, if you don't want to install a native application on your device. 

Agents are also an interesting application of this architectural style. An agent is a piece of software in charge of sending information from the clients to the server, without needing human interaction attached to it. For example, New Relic (https://newrelic.com/) is an Application Performance Monitoring and Management (APM) used to monitor the health of servers and applications using agents.

Let's suppose that you want to monitor your existing Java application. To achieve this goal, you only need to add the New Relic agent when the application is started, using the javaagent option. In this way, the agent will continually be sending information to New Relic, which will give us information related to the memory and CPU consumption, response time, and so on. In this case, the server that processes the data sent by the agents is also in the cloud.

The IoT also relies heavily on the use of client-server architectures, where small devices with sensors (or some other mechanisms) used to gather data are constantly sending information to servers in charge of analyzing that data, in order to execute operations, depending on what is needed.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.118.198.81