Wednesday, 28 January 2015

CLIENT SERVER ARCHITECTURE (cont..2)

 Client server architecture
                
                 o Client
                 o Server
                 o Thin Vs Thick client
                 o Services
                 o Presentation layer
                 o Application/business logic layer
                 o Generalized services layer
                 o Communication with RPC and SQL
                 o Middleware


I am going to cover this part of the module in this post .  To begin with this with client and server architecture , you need to recall the definition of client server model/  architecture.

DEFINITION - The client-server model of computing is a distributed application structure that partitions tasks or workloads between providers of a resources of service, called servers, and service requesters, called clients . Often clients and servers communicate over a computer network on separate hardware, but both client and server may reside in the same system . A server host runs one or more server programs which share their resources with clients. A client does not share any of its resources , but requests a server's content or service function. Clients therefore initiate communication session with server which await incoming requests. Example emails , web browser. 

Let us go into detail and know more about clients and servers. 

CLIENT

Definition ::  A client is a piece of computer hardware or software that access a service made available by server. The server is often (but not always) present in another computer system , in which case the client access the services by way of a network.

SERVER

Definition :: A server is a running instance of an application (software) capable of accepting request from the client and giving response accordingly . Servers can run on any computer including dedicated computers, which individually is  also often referred as "the server" . In many cases , a computer can provide several services and have several servers running. The advantages of running server on dedicated system is security . For this reason the server  are daemon processes and designed in that they can run on specific computer(s).

THIN VS THICK CLIENT

There are three types of client computers or devices : 
(i)  thin client
(ii) thick client
(iii) hybrid client

# THIN CLIENT

A thin client is a computer or device which completely depends on the server to run an application. It uses the resources of host and it only presents the data which are processed in bulk at the server side .
A device based on web application (such as web office app) is a thin client .

The programming environment for thin client includes JavaScript , Jsp , RUBY etc.

#THICK CLIENT

Thick client is also known as FAT client or rich client. It processes the bulk of data by itself and does not rely on any software . When we talk about the examples of thick client we must think of application in which we process all the data there itself for eg . autocad , where all the data are processed and we only send the result of it.


HYBRID CLIENTS

This type of client has both the traits of thick and thin client. Hybrid client processes all the data at the client side only , but relies on the server for it's processing . Hybrid clients are generally those computers or devices which has online activities involved with it eg. online game

SERVICES

The client server architecture is an abstraction of computer resources . The client does not know anything about the server functioning , it only sends request which is processed at the server ends and depends on the server for  response of the request made by it. The client work on the response based on some application protocol . There are different types of services provided by the server for example file server which serves with computer files and web server which serves with web pages. Thus , there are different types of servers and each server has their  own job to do and provide service to the user.


As we have discussed earlier in the layered architecture that the whole application is divided in layers (i) presentation layer , (ii) business layer and (iii) data layer.

PRESENTATION LAYER 

It is the User Interface which is nothing but graphical interface which helps the  user to interact with the system. It basically does not know anything about the detailed structure of the application , its basic work is to be in front end and take whatever data the user is giving . Then it passes the data to the subsequent layer.


# user interface(UI) components is nothing but the text field , buttons , scroll .. etc which we generally see in any type of application.
# user interface(UI) process components , deals with the components and what action needs to be done when user does something.

BUSINESS LAYER / APPLICATION  LAYER 

This layer basically creates a blanket on the data and helps to prevent intervention of other users . It deals with the logic behind every services provided by the application . It helps to deals with what kind of data and how the data need to be stored in the memory .

Application layer contains four components application facade , business workflow , business components and business entities which is not our concern for this moment.

SERVICE  LAYER
When providing application functionality through services , its better to introduce a new layer i.e service layer in the architecture . This layer consist of  service interface and message types . The main constraint for this layer is not to expose the application details to others while providing services . It also  checks that there is no unduly action taking place which hampers the message type or data which is either processed or moved to the data layer.


NOTE ::: ALL THE LAYERS IN LAYERED ARCHITECTURE ARE INDEPENDENT  FROM  EACH OTHER  AND WORKS LIKE AN ABSTRACTION FOR THE END USER. 

COMMUNICATION WITH RPC AND SQL

REMOTE PROCEDURE CALL (RPC) 

Remote procedure call is used for inter process communication .that allows a computer program or subroutine to run on different computer without programmer explicitly coding for the remote interaction i.e the programmer writes the same code for the subroutine is local to the executing program or remote ,

In other words ,we can say that rpc is a method used to communicate between different process which actually runs on two different computers and the programmers does not write different codes for local connected computers i.e with the help of LAN or a computer which is remote i.e situated in a distant place. Each time it invokes same code and helps to communicate between two process running on different computers.

sql part we will cover in the dbms module of our syllabus .


MIDDLEWARE

Definition :: Middleware is an software that provides services to the software application beyond those available from the operating system.

It is basically a software layer that lies between the operating system and the software application on each side in a distributed computer networks. It helps to make business application and provides core services like concurrency , scheduling , threading , messaging (communication) ,provide security and many more.


No comments:

Post a Comment