Fundamental of Computing Week 12: 30 October to 5 November (Client Server Architecture)

 Client Server Architecture

Introduction  

  • A client-server architecture is a computer network architecture or model in which numerous clients (remote processors) request and receive services from a central server (host computer).
  • Client computers provide an interface via which a computer user can request server services and view the results returned by the server.
  • Server wait for client requests to arrive before responding to them.
  • In a client-server architecture, every process or computer in a network function as a server or a client. Client servers are potent computers whose sole purpose is to handle printers, disk drives, and network traffic.
  • Client: The client can be any computer that makes a request to the server. For example, when we visit a website, we request a page from its domain. So, its case, we play the role of the client.
  • Server: The server, on the other hand, is the computer that is designed to serve the client's requests. In the same example as earlier, the client requests the webpage, and the server returns the webpage to the client.


Working of Client-Server Architecture

  • If a client wishes to exchange data with a server, it must first obtain the IP address for that server via the DNS (Domain Name System). The Ip address is returned by the DNS server.
  • The client sends the request to that IP address, along with the port number set for the specific application, and the server responds. The client receives the response message, and the response packet is utilized by the program to which it belongs depending on the port number.
  • At a high level, the communication between the client and the server occurs via HTTP packets.

Types of Client-Servers Architecture 

  • Client-Server Architecture is classified into several forms based on the business logic used to handle requests between client and server.
    • 1-Tier Architecture 
    • 2-Tier Architecture 
    • 3-Tier Architecture 

1-Tier Architecture

  • Everything related to the application is pooled and used as a single package to provide the application in a 1-tier Client-Server Architecture. All logic associated with the User Interface, Database Logic, and Database is grouped into a single entity.
  • A 1-tier architecture provides a variety of services that make it a trustworthy source, but it is difficult to administer.
  • The fundamental issue is data variance. Work is frequently duplicated.
  • 1-tier architecture consists of numerous layers, including the presentation layer, business layer, and data layer, all of which are combined using a proprietary software package. This layer typically keeps data on local systems or on a shared drive.

2-Tier Architecture

  • The entire application functionality is separated into levels in 2-tier Client Server Architecture. In this architecture, the database is mostly treated as a separate entity.
  • Databases are developed independently, and the main application contains all of the logic related to the user interface, business logic, and database logic to communicate with the database and execute the applications. The environment is better in this architecture than in the 1-tier architecture.
  • As there is no intermediate between the client and the server, 2-tier designs are faster than 1-tier structures. The 2-tier architecture reduces client misunderstanding. A notable example of a 2-tier design is the online reservation system.

3-Tier Architecture

  • In contrast to a 2-tier system's architecture, which lacks middleware, a 3-tier system includes middleware between the client and the server. When a client asks information from a server, the middleware receives the request first. The request is subsequently forwarded to the server for processing. Likewise, the server will respond to the client.
  • There are three main layers in a three-tier architecture that are presentation layer, application layer and the database layer. Different layer's ends control each other.
  • The presentation layer is controlled by client devices, while the application and database layers are controlled by middleware and server, respectively. The presence of third layer that provides data control increase the security of the three-tier design, creates invisible database structures, and assures data integrity.
 

Advantages of Client-Server Architecture

  • Management is simple: As the files are all stored on one server, management is simple.
  • Easily accessible: Clients may easily log into the system regardless of their location.
  • Scalability of servers: A client-server network is very scalable. When necessary, the user can add more resources, such as clients and servers, to increase the size of the server without interruption.
  • Centralized control: As all information is stored in a single area, client-server networks benefits form centralized control. This is especially useful because the network administrator has complete control over management and administration.
  • Security: Client-server networks provide excellent data security due to their centralized architecture. If data is lost, a single backup can be utilized to restore all of the files, such as credentials such as login and passwords. 

CLOUD COMPUTING

  • There are numerous instances of cloud computing apps that are both corporations and individuals nowadays. 
  • Data storage platforms such as Google Drive, or Box are examples of cloud services.
  • Cloud computing is the distribution on IT resources on demand via the Internet with Pay-as-you go pricing.
  • Instead of purchasing, operating, and maintaining physical data centers and servers, you can use a cloud provider like Amazon Web Services (AWS) to obtain technology services such as processing power, storage, and database on an as needed basis.
  • Cloud computing is the transmission of computer services such as servers, storage, databases, networking software, analytics, and intelligence via the internet ('The Cloud') in order to provide faster innovation, more flexible resources, and economics of scale.
  • Cloud computing is the delivery of various services via the internet. Data storage, server, databases, networking, and software are examples of these resources.
  • Instead of storing files on a proprietary hard drives or local storage device, cloud-based storage allows them to be saved to a remote database. As long as an electronic gadget has internet access, it has access to data and the software programs needed to execute it.
  • Cloud Computing is becoming increasingly popular among individuals and businesses for variety of reasons, including cost savings, enhanced productivity, speed, and efficiency, performances, and security.

CLOUD COMPUTING SERVICE MODAL

  • Cloud computing, unlike a microprocessor or a cellphone, is not a single piece of technology. It is, rather, a system made up of three services:
    • Software-as-a-service (SaaS)
    • Infrastructure-as-a-service (IaaS)
    • Platform-as-a-service (Paas)
  • SaaS is a software licensing modal that offers subscription-based access to software via external servers without the need to download and install it locally.
  • LaaS, which is frequently connected with serverless computing provides IT infrastructure to end users via the internet.
  • PaaS provides both software and hardware to end customers, most of whom are software engineers. It enables users to create, run, and administer their own programs without having to construct or maintain the infrastructure.

Is Cloud Computing Safe?

  • Data security and platform are major concerns in cloud computing because software and data are hosted remotely.
  • Cloud security refers to the safeguards put in place to safeguard digital assets and data housed on cloud-based services.
  • Two-factor authentication (2FA), VPNs, security tokens, data encryption, and firewall services, among other things, are used to protect this data. 

Comments

Popular posts from this blog

Fundamental of Computing Week 9: 9 October to 15 October (Basic Commands in Linux)

Fundamental of Computing Week 10: 16 October to 22 October (Linux Network and Process Management)