chp 3 - architectures of c-s systems

Upload: dante-nero

Post on 03-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    1/37

    Architectures of C/S Systems

    Dr. Mohammad Faidzul Nasrudin

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    2/37

    Components of C-S Architectures

    C-S architecture is mainly based on three

    components

    Hardware (for client and server)

    Software (which make hardware operational)

    The client (front-end-application) is any computer

    process that requests services from server

    The server (back-end-application) is any computerprocess providing the services to the client and also

    supports multiple and simultaneous clients requests

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    3/37

    Components of C-S

    Architectures (2) Communication middleware (which use to link the

    client and server)

    communication middleware is any computer process

    through which client and server communicate

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    4/37

    Middleware

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    5/37

    Middleware (2)

    A collection of technologies that support

    interaction between C and S

    An Application Programming Interface (API) that is

    called by C to get services from S

    Middleware tasks start from API call by C to get S

    services, request sending through the network

    untill the response received by the C Identity of middleware becomes vague because

    many middlewares have been inserted into OS

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    6/37

    Principles Behind C-S System

    C-S architecture principles constitute the

    foundation on which most current generation

    C-S system are built

    Hardware independence

    C, S, and communication middleware, processes run on

    multiple hardware platforms (IBM, DEC, Compaq,

    Apple, and so on) without any functional differences

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    7/37

    Principles Behind C-S System (2)

    Software independence

    C, S, and communication middleware processes

    support multiple OS (such as Windows 98, Windows NT,

    Apple Mac system, OS/2, Linux, and Unix) and multiple

    network protocols (such as IPX, and TCP/IP)

    Open access to services

    All client in the system must have open (unrestricted)

    access to all the services provided within the network These services must not be dependent on the location

    of the client or the server

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    8/37

    Principles Behind C-S System (3)

    Process distribution

    Application-processing load of C and S must conform to

    the following rules

    Client and server processes must be autonomous entities with

    clearly defined boundaries and functions

    Local utilization of resources such as processes and memory

    (at both C and S) must be maximized

    Scalability and flexibility requires that the C and S process be

    easily upgradeable to run on more powerful hardware andsoftware platforms

    Interoperability and integration requires that C and S

    processes be seamlessly integrated to form a system.

    Swapping a server process must be transparent to C process

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    9/37

    Principles Behind C-S System (4)

    Standards

    All the principles that are formulated must be based on

    standards applied within the C-S architecture

    E.g. standard govern the user interface, data access,network protocols, interprocess communications, etc

    The point is to ensure that all components (server,

    clients, and communication middleware) are able to

    interact as long as they use the same standards

    Applications use many standards and middleware in

    one time

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    10/37

    Principles Behind C-S System (5)

    C App for Book Shop

    ODBC

    TCP

    IP

    IEEE 802.3 (Ethernet)

    7 Application

    6 Presentation

    5 Session

    4 Transport

    3 Network

    2 Data Link

    1 Physical

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    11/37

    Client Side

    The desirable client software and hardware

    feature are

    Suitable (powerful enough) hardware

    Client processes typically requires a lot of hardware

    resources, they should be stationed on a computer with

    sufficient computing power

    E.g. to open files, videos, images, etc

    Client processes may require large amount of hard disk

    space and physical memory, the more such a resource

    is available, the better

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    12/37

    Client Side (2)

    An OS capable of multitasking

    Client should have access to an OS with at least some

    multitasking capabilities

    MS WinXP and Win7 are currently the most commonclient platforms

    Communication capabilities

    To interact efficiently in a C-S environment, the client

    computer must be able to connect and communicatewith the other machines in a network environment

    Need a network adapter to connect to a network

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    13/37

    Client Side (3)

    A graphical user interface (GUI)

    Client need GUI libraries in order to generate proper

    form/window/presentation (GUI objects) to end user

    DirectX, OpenGL, JavaFX, Applet, Flash, Silverlight

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    14/37

    Server Side

    The desirable server services and hardware

    feature are

    Powerful hardware

    server process should be the more powerful computer

    (fast CPU) than the average client computer because

    the server process must be able to handle concurrent

    requests from multiple clients

    include DVD-RW, video card, backup tape, etc

    Fault tolerant: Dual power supply, UPC, ECC, RAID.

    Expandable CPU, multiple bus, multiple communication

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    15/37

    Server Side (2)

    A Server OS

    is especially developed to serve as a platform for

    running multi-user computer programs, applications

    that are networked and programs critical to business

    computing

    FreeBSD, Linux, Mac OS X, Solaris, MS Windows Server,

    etc

    Provide file services: a client connected to the network can store files on the

    file server as if it were another local hard disk

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    16/37

    Server Side (3)

    Print services

    a client can access any one of the printers as if it were

    directly attached to its own computer

    Manage print queues Fax services

    a client able to submit data to be faxed to a fax server

    that equipped with a fax device

    Able to schedule the fax, dial the fax number, andtransmit the fax

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    17/37

    Server Side (4)

    Communication services

    A client can access other host computers or services to

    which the client is not directly connected

    E.g. access to telephony software Database services

    The server act as a database server

    Transaction services

    A client can execute database transaction code or

    procedures that manipulate the data in database

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    18/37

    Server Side (5)

    Groupware services

    Clients able to collaborate with each others using semi-

    structured information like Text, image, mail, bulletin

    boards, flow of work

    Object application services

    A client can access distributed objects in the server

    Web application services

    A client able to access shared documents across

    intranets, or across the Internet via the HTTP protocol

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    19/37

    Complexity of Server

    The server

    processes one request at a time (sequential)

    a big role in maintaining the request queue that

    arrives for a server

    usually much more difficult to build than clients

    because they need to accommodate multiple

    concurrent requests

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    20/37

    Complexity of Server (2)

    Server tasks

    1. Open port: The program opens a port at which

    the client request reached

    2. Wait for client: The program waits for a new

    client to send a request

    3. Choose port: If necessary, the program allocates

    new local port for this request and informs theclient

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    21/37

    Complexity of Server (3)

    4. Start thread: The program starts an

    independent, concurrent thread to handle this

    request. Note that the thread handles one

    request and terminated thread does not wait forrequests from other clients

    5. Continue: The program returns to the wait step

    and continues accepting new requests while the

    newly created thread handles the previousrequest concurrently

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    22/37

    Complexity of Server (4)

    Besides the complexity of concurrent

    requests, the server

    have to protect the integrity of data/file. E.g. file

    locking

    must enforce authorization and protection rules

    by reading system files, keeping logs, and secure

    protected data access must protect themselves against malformed

    request that will crash the server program

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    23/37

    Communication Middleware Side

    Communication middleware software

    provide the means through which clients and

    servers communicate to perform specific actions

    provides specialized services to the client process

    that insulates/encapsulates/hides the

    programmer from the internal working of the

    server program and network protocols

    In the past, programmers had to write code that would

    directly interface with server program with specific

    network protocol

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    24/37

    Communication Middleware Side

    (2)

    To accomplish its functions, the communica-

    tion middleware software operates at 2 levels

    The physical level

    Deals with the communications between client and

    server computers (computer to computer)

    Deal with how the computers are physically linked

    Include the network hardware and software (protocols)

    E.g. TCP/IP, NetBIOS

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    25/37

    Communication Middleware Side

    (3) The logical level

    Deals with the communications about processes

    between client and server

    Deal with how the client and server processcommunicates (process to process)

    Interprocess communications protocols that give the

    signals meaning and purpose

    level where the C/S conversation takes place E.g. ODBC

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    26/37

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    27/37

    Architecture for Business

    Information System

    Main question

    How do I partition the business information

    system into a number of client and server

    components, so that my users functional andnon-functional requirements are met?

    This is because

    The business information system will be deployedacross a set of distributed processing units (e.g.,

    machines in a network, processes on one

    machine, threads within one process, etc)

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    28/37

    Architecture for Business

    Information System (2) Suggestion

    The information system

    can be easily partitioned

    using 3-tier model

    Divide your system into

    distributed views of

    user interface, business

    logic and data

    management

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    29/37

    Architecture for Business

    Information System (3)

    You must consider

    Business needs vs. construction complexity

    allocating functionality and data to the places where it

    is actually needed supports distributed businessprocesses but raises systems complexity

    Reduce the complexity to a level where it can handled

    properly

    E.g. compute simple task locally (client side) instead ofremotely

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    30/37

    Architecture for Business

    Information System (4) Processing style

    Different processing styles require different distribution

    decisions

    Batch applications need processing power close to thedata

    Interactive processing should be close to input/output

    devices

    Therefore, off-line and batch processing may conflictwith transaction and on-line processing

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    31/37

    Architecture for Business

    Information System (5) Distribution vs. performance

    We gain performance by distributed processing units

    executing tasks in parallel, placing data close to

    processing, and balancing workload between several

    servers

    But raising the level of distribution increases the

    communication overhead, the danger of bottlenecks in

    the communication network, and complicates

    performance analysis and capacity planning

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    32/37

    Architecture for Business

    Information System (6) Distribution vs. security

    The requirement for secure communications and

    transactions is essential to many business domains

    In a distributed environment the number of possiblesecurity holes increases because of the greater number

    of attack points (e.g. open port for communication)

    Therefore, a distributed environment might require

    new security architectures, policies and mechanisms

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    33/37

    Architecture for Business

    Information System (7) Distribution vs. consistency

    Abandoning a global state can introduce consistency

    problems between states of distributed components

    (e.g. database updating, mirroring, etc)

    Relying on a single, centralized database system

    reduces consistency problems, but inefficient

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    34/37

    Architecture for Business

    Information System (8) Software distribution cost

    The partitioning of system layers into client and server

    processes enables distribution of the processes within

    the network, but the more software we distribute the

    higher the distribution, configuration management, and

    installation cost

    The lowest software distribution and installation cost

    will occur in a centralized system

    This is not happen when we use thin client such as web

    browser that have well distributed in clients

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    35/37

    Architecture for Business

    Information System (9) Reusability vs. performance vs. complexity:

    Placing functionality on a server enforces code reuse

    and reduces client code size

    The server (where reuse code reside) must enable thehandling of requests by multiple clients (load balancing

    issue)

    The more you reuse, the more complex the system

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    36/37

    Before Ending

    Please skip section 3.7.4 Distribution Pattern

    You can read 3.8 Existing C/S Architecture

    The main idea of this section had been discussed

    in previous chapters

  • 7/28/2019 Chp 3 - Architectures of C-S Systems

    37/37

    The End