Tuesday, 27 January 2015

CLIENT SERVER ARCHITECTURE



Hii friends this is my first post regarding the courseware Hope you'll like it. I have tried to come across all the topics given in the syllabus and few more points which I think is important to share with you all.


  Subject :: CLIENT SERVER ARCHITECHTURE
   

  Syllabus :-

            Overview of software architecture

                 o What is architecture and its importance
                 o Architectural styles
                 o Pipe and filter
                 o Black-board
                 o Layered architecture
                 o Frames and patterns
       
            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
           
           Networking Concepts

                 o Basic Introduction to Network
                 o TCP/IP Introduction
                 o Communication between two systems
                 o Domain registration, DNS mapping, ISP
                 o Security

           Examples of Client server architecture:

                 o Two tier architecture
                 o Three tier architecture
                 o Three tier with transaction processing (TP) monitor technology
                 o Three tier with message server
                 o Three tier with application server
                 o Three tier with middleware technology:


This is the topics which we need to cover in our training session. Before fgoing into the technical details lets get familiar with how client server application works . Lets take an example of it and latter we can explore it technicalities in detail.

Now a days emails are the basic mode of communication between two different parties. It is a good example to start our discussion. Let us consider A want to send message to B. A writes an email and sends it to B. He/She thinks the letter will reach to B without any problem. B receives that mail after 3 hour. Now many of us know about the technical details of it but for A and B it is new. A doesn't care weather B's computer is online , but how it is possible. It is a complex process of message passing from one end to other. First A send email , it moves to hundreds of yards and get stores in a box . Now when B turns on his computer he/she login into his/her email browser and looks into the inbox. Guess what ? a magic happens and the mail from A which was saved in a box comes in his/her inbox list. Here in our example A and B are client and they do not know anything about the process which is run to pass that mail between them . The BOX which we were talking about is nothing but a server , where the letter was kept from A and after few hours it was surprisingly passed to B.

Well , now we need not think much about the hardware or networking concepts hidden in this task . We need to draw a clear picture of client and server in our mind. The client are nothing but a front end application running in distant computers.Its main job is to provide an interface where a user can interact with the server i.e request-response mode of communication. Client sends request to do some job . Whereas , a server can be consider as an application running somewhere else on a different computer or within the same computer where client was working , server's job is to listen to each request from the client and execute the need of client and provide a response to the clients.

Hope you got an idea of client server in the above example. Now lets go through the definition of client server architecture and latter we can begin with the topics as mentioned in our syllabus.


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.


OVERVIEW OF SOFTWARE ARCHITECTURE

Definition : Software architecture is a blueprint of the system explaining the structure of the system.








The above diagram is an example of software architecture , which shows the interaction between the different components or modules-smallest unit of software architecture . The software architecture tells us about the module and how they interact with each other. Each module has some assigned work to do and the architecture helps us to know on which platform they are running and what kind of services they are providing ?


ARCHITECTURE STYLES

From the word architecture , an idea of building or some planned structure comes in our mind . We find different types of building in our daily life but they are categorized on the basis of a common features like when we are talking about Shopping mall , we get a clear idea about what all basic things should be present in the shopping mall. In software , architecture also does the same thing . It tells us about the key features of a given software architecture like reusability , adaptability. Architecture styles has nothing to do with the appearance of the software.


Commonly there are 5 types of client server architecture.

           # Call-Return :
               -  main program/subroutines
               - simple client server

          # Hierarchical
               - n-tier

         # Interacting processes
               - implicit invocation (Publish- Subscribe)
         # Data Flow
              - pipe and filter
        
         # Shared Data / Repository
              - Blackboard

CALL-RETURN

In call return architecture , the client component is responsible for invoking a functionality in the server component . The components wheather it is client or server each of them wait till the invoked functionality is completely executed . The correctness of each component depends on the correctness of functionality it invokes .

 DATA FLOW 
    - Pipe and Filter

Pipe and Filter

In a Pipe Filter architecture , each component (filter) of the system,  reads a stream of data and produces a stream of data .It is also known as one way network model , where data reach to a filter and processes it and again produce stream of data as shown in the below diagram. All the filters are completely independent of each other i.e it must not share state common threads and doesn't share identity with other filters on its upstream and downstream interface.


BLACKBOARD ARCHITECTURE STYLE

Definition :: A blackboard architecture is a distributed architecture system , where distributed system modelled as intelligent agents , and they share a common database known as "blackboard" and a scheduling/ control process. The blackboard can be centralized or distributed depending on the constraint of application.


From the above diagram , we can simplify the definition of blackboard architectural system . In this architecture there is a common database known as "blackboard" . Initially one agent (client) , let agent 1 starts writing and the other agents watch the blackboard and tries to collect information from the blackboard.   Whenever, other agents find something new or different from the previous agent  then it will take the chalk from the agent 1 and start adding new solution on the blackboard.


LAYERED  ARCHITECTURE                                                                                                             
In layered architecture , the whole software is divided in layers and data or control flow from one layer to other . There can be multi-layered architecture also depending on the need of software application. In general , we basically deal with three layers (i) presentation layer or User interface , (ii) logical layer or business layer and (iii)  data access layer or data layer. Each layer has its own importance and together they help in the smooth functioning of an application.
Presentation layer or user interface is an graphical interface where the user can interact with the application by giving some data or control options. In logical layer , a link is made between user interface and data layer . This layer helps to know what kind of data is store and how it need to be stored in the database. Finally the data access layer mainly deals with the data storage i.e where the data need to be stored in the storage area (memory) .


FRAMES AND PATTERNS
A Pattern describes a reusable solution to a common problem that arises in a particular problem context when related patterns are woven together they form so called pattern languages that provide a vocabulary and process for an orderly resolution of a software development.
A frame (framework) is an integrated set of software components that collaborate to provide a reusable architecture for a family of related applications. Framework can also be viewed as a concrete realization of pattern languages that facilitate direct reuse of detailed design and source code

No comments:

Post a Comment