Client Server Architecture: Group Members
Client Server Architecture: Group Members
Group Members:
Name: Qing Sen Yang/ 20522788
Name: Kaiqi Wu/ 20514066
Name: Chia Ching Chuen/ 20755359
Have its own vocabulary for its components and connectors? (define)
● Components:
○ The Server to listen for requests
○ The Clients to connect to the server
○ The Connection medium
1
Most applicable to specific kinds of problems?
● Where data can be centralized and easy to do for collaboration
● Where all clients are requesting the same type of data.
● Where clients can give specific information to request different data dynamically
● Less computational burden on the client side, which make client more
lightweight.
● When clients are unable to do the heavy computation and the computation are
done on the server side.
● Provide better data integrity and backup system, thus higher reliability.
● In general, people can access the data at anytime as long as they have network
and authorization.
● When mobility is needed, applicated and data can be easily moved and
replicated.
2
● Scalability:
○ You can increase the capacity of clients and servers separately. Any
element can be increased or enhanced at any time, or you can add new
nodes to the network.
○ You can add resources in the form of network segments, computers and
servers to a client server network without major interruptions to the
network.
○ Update task for data or other resources more efficient and easier to
managed.
● Easy maintenance:
○ Since backup, security and antivirus are centralized, it is easier to setup
and troubleshoot, where everything takes place at one physical server.
○ Fewer support staff are needed to manage centralized security accounts
than would be needed if security and resource access had to be
configured on each individual computer on the network.
● Scalability/Heterogeneity
○ Pros
■ Components are focused
3
■ Connectors are direct and simple
○ Cons
■ It is bottlenecked by the server
■ Does not replicate data(unless the model is extended by having
multiple servers, load balancing...)
■ It is expensive to scale for more client connecting to the server and
requires either more sophisticated hardware or more servers.
● Portability
○ The client can be ported and still use the same server
● Evolvability
○ Changes to the server processing does not affect the client
○ Changes to the client interface does not have to affect the server
○ No implicit connectors
● Dependability
○ Does support exception handling
○ Clients can connect and disconnect without affecting others
○ Only have to backup the server
● Reliability
○ A single point of failure. When the server is down, there will be no services
to the client.
General case:
Scenario 1: General case
There are 2 customers ordering food and the waiter takes their orders separately and
brings them back the food they ordered. This example demonstrates how the server can
be connected to more than one client. Furthermore, it also shows that for a
communication to happen between a client and a server, the client have to be the one
to first initiates the request after which the server will reply with a response.
4
A customer orders food and tells the server that he will pay for the other customer’s bill.
This demonstrates that if the clients want to communicate with each other, they have to
do it through the server.
Advantages:
Scenario 3: Multiple client types with the same server
In this scenario, a customer orders delivery on the phone. This shows that there can be
multiple types of clients, but still having the same server.
Disadvantage:
Scenario 5: Server single point of failure
The server crashed and is unable to tend to the customers. This example demonstrates
the single point of failure problem that the client server architecture has, where
everything is reliant on the one server.