Upload
dante-nero
View
218
Download
0
Embed Size (px)
Citation preview
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