Você está na página 1de 37

Architectures of C/S Systems

Dr. Mohammad Faidzul Nasrudin

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 computer process providing the services to the client and also supports multiple and simultaneous clients requests

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

Middleware

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

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

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

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 and software 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

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

Principles Behind C-S System (5)


7 6 5 4 3 2 1 Application Presentation Session Transport Network Data Link Physical

C App for Book Shop ODBC


TCP IP IEEE 802.3 (Ethernet)

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

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 common client platforms

Communication capabilities
To interact efficiently in a C-S environment, the client computer must be able to connect and communicate with the other machines in a network environment Need a network adapter to connect to a network

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

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

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

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, and transmit the fax

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

Server Side (5)


Groupware services
Clients able to collaborate with each others using semistructured 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

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

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 the client

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 for requests from other clients 5. Continue: The program returns to the wait step and continues accepting new requests while the newly created thread handles the previous request concurrently

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

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

Communication Middleware Side (2)


To accomplish its functions, the communication 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

Communication Middleware Side (3)


The logical level
Deals with the communications about processes between client and server Deal with how the client and server process communicates (process to process) Interprocess communications protocols that give the signals meaning and purpose level where the C/S conversation takes place E.g. ODBC

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 and non-functional requirements are met?

This is because
The business information system will be deployed across a set of distributed processing units (e.g., machines in a network, processes on one machine, threads within one process, etc)

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

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 business processes but raises systems complexity Reduce the complexity to a level where it can handled properly E.g. compute simple task locally (client side) instead of remotely

Architecture for Business Information System (4)


Processing style
Different processing styles require different distribution decisions Batch applications need processing power close to the data Interactive processing should be close to input/output devices Therefore, off-line and batch processing may conflict with transaction and on-line processing

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

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 possible security 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

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

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

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 the handling of requests by multiple clients (load balancing issue) The more you reuse, the more complex the system

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

The End

Você também pode gostar