Upload
caleb-graham
View
240
Download
1
Tags:
Embed Size (px)
Citation preview
Chapter 3.Network architectures:
Client/server & middleware
INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
CONTENT
1. Networks architectures
2. Client/Server
3. The middleware
4. RPC model
5. Gateways
6. Transparency
7. Client server requirements
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
CONTENT (1)
1. Networks architectures Yesterday Today
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Network architectures
Historically you had: Centralized architecture :
Slave terminals, Mono-technology, Mono OS, proprietaries systems ,…
Non-relational DB: IDS2, DB2,..
Strutural Programing Languages: COBOL, …
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Networks architectures (2)
Then came distributed architecture:Networks, more powerful PC, open OS.
Standards and API Interfaces,
relational DB
Query Languages 4GL: SQL, …
Development tools.
Transport (communications) tools.
Client/Server.
Rules
Applications Applications
DBMSOS
Applications
Company network
DB
Request Response
Server
Clients
Windows OS/2 Unix
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
CONTENT (2)
1. Networks architectures
2. Client/Server Client/Server Model
Client?Server?Request ?Response?Examples?
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Client/Server Model
Client:Process that request a server process to compute an operation, by sending a message containing details on the operation to compute. After a request is sent, the client waits the server response.
Server:Process that receives client’s request, compute the demanded operation and send back a response to the requester.
Request: Message transmitted from a client to a server, and containing a description of the tasks to be executed on behalf of (or for ) this client.
Response:Message transmitted back by a server to a client after the requested operation has been executed, and containing the return status of the operation.
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Client/Server Model (2)
The most popular models are: Peer to peer Filter (gateway, firewall, proxy, …) Client Server
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
CONTENT (2)
1. Networks architectures
2. Client/Server Client/Server Model Client/Server architectures Fat vs thin
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Client/Server architectures
One client, One server:
Many clients, one server:
The model:
Hardware
Op. System
Client process
Client
Hardware
System
Server process
Server
Application
Client Server
Client Master
Slave Slave
Client
One client, many servers:
Client Server Server
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Fat vs thin
Clients and servers may be ``fat'' or ``thin'' (no normal size?)
Fat clients use up space on each client they run on, may have
complex installation requirements, etc (e.g. Netscape 3.0)
Thin clients have reduced functionality, but are easier to manage(e.g
cell phone browser and applications)
The network computer model favours thin clients.
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Client or server oriented C/S
Fat Client:Stores data and application on localhost, and server stores updating files, …
Client makes a lot of processing tasks: e.g DB server, file server…
Server are often lightened.
Fat Server:The maximum processing load is on the server: e.g groupware, transactions, objects, … servers.
Easier to manage, since features may be added on server side without changing and side-effects on clients.
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Client or server oriented C/S (2)
Thin Client:Client with very little functionnalities: X-Terminals, workstations without hard-disk, Network Appliances, Network Computer, Networked PC,…
Maximum load on server side
Local process, Caching, …
Thin Client
Data and applications
Server
Applet, data
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
CONTENT (2)
1. Networks architectures
2. Client/Server Client/Server Model Client/Server architectures Fat vs thin
Client/Server communication Client/Server messages C/S messages exchange C/S communication mode
a. Blocking tasks
b. Non blocking tasks Communication examples
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Client/Server communication
Request
Response
Client
Server
Service Primitives:SendRequest()ReceiveResponse()ReceiveRequest()SendResponse() SendRequest()
ReceiveResponse()
SendResponse()
ReceiveRequest()
Session
Transport
Session
Transport
Network
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Client/Server messages
Three types of messages in general: REQ, RESP, and ACK.
Others types could exist.AYA (Are You Alive):
• Used by the client to avoid retransmission when the server is late in its answer.
IAA (I Am Alive):• Used by the server to delay client waiting (e.g the server is busy in a long
task)
• The client could make a timeout and stop refreshing requests after many tryings.
TA (Try Again);• Used by the server when the REQ message can not be accepted (e.g mail
box over flow, unknown destination address, …)
REQRESP
REQ
ACK
S C SACK
RESP
REQ
ACK
C S
ACK
RESP
AYA
IAA
C
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
C/S messages exchange
In an heterogenous environment, an adaquate data presentation is necessary:
Data translation: XDR (SUN) , ASN.1(CCITT),…
Marshalling parameters sent
Unmarshalling received parameters
Presentation
Session
Presentation
Session
Transport
TranslationMarshalling
Translation Unmarshalling
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
C/S communication mode
Synchronous mode :Doesn’t use waiting queue
Messages are sent with no delay
Blocking mode (ex. RPC).
Asynchronous mode :Uses waiting queue
Non blocking mode (ex.: FIFO, email, …).
Uses Multithreading.
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
System call
Reading
Copy in the buffer
MiddlewareResume
read()
Blocking tasks
The process will stop untill the task ends:
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
System call
System call
System call
WOULD BLOCK
WOULD BLOCK
Resume
read()
loop
Waiting for data
Copy in the buffer
Non blocking tasks
Activate SIGIO
System call
Resume
SIGIO Signal
Resume
signal()
handler() read()
Waiting for data
Copy in the buffer
Events Signals
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
The process will not stop between two tasks:E.g: Multithreading
A communication example
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Procedure call (RPC or local) : Blocking tasks ordinary procedure call dynamic link library procedure call remote procedure call
CONTENT (2)
1. Networks architectures
2. Client/Server Client/Server Model Client/Server architectures Fat vs thin Client/Server communication
Designing a C/S application
a. 2 tiers Client/server
b. Components distribution
c. 3 tiers Client/server
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Designing a C/S application
A C-S application must include the following components:
Presentation:• Textual interfaces or GUI, interactions, data retrieving,
validation, …
Application Logic:• Process in relation with the client/server application’s data.
Data access :• Data store and query: DB, Web documents,…
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
2 tiers Client/server
• Gartner model for 2-tiers systems:
Presentation
Logic
Data
Data
Presentation
Logic
Data
Presentation
Logic
Logic
Data
Presentation
Logic
Data
Distributed DB Class 1
Remote DataClass 2
Distributed Transactions
Class 3
RemotePresentations
Class 4
Presentation
Logic
Data
Distributed Presentations
Class 5
Presentation
Client
Server
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Components distribution
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
CGI, HTTPD, SERVLETS
• Distributed DB:
Presentation
Logic
Data
Data
Class 1
• Web:
Presentation
Logic
Logic
Data
HTML, JAVA, JSP
Class 3
• File Service:
Presentation
Logic
Data
Class 2
This allows remote clients acess to a shared file system
Components distribution
• Envelop
Presentation
Logic
Data
Presentation
Original application
X Wrapper
• Terminals emulation
Presentation
Logic
Data
telnetd
Class 4
Class 5
• X Window
Presentation
Logic
Data
Presentation
Class 5
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
This allows a remote system to act as a normal terminal on a local system This acts as a wrapper around
a classical system, either to provide an X Window interface or an alternative character-based one
This decouples application view of windowing and display view of windowing
3 tiers Client/server
• Gartner Model for 3-tiers systems:
Client
Middle-tierServer
Server
Presentation
Logic
Data
Presentation
Logic
Data
Logic
Presentation
Logic
Data
Logic
Presentation
Logic
Data
Logic
Data
Data
Logic
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
CONTENT (3)
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
1. Networks architectures
2. Client/Server
3. The middleware The middleware : definitions The middleware in networks Types of middleware Middleware Model Middleware Components Middleware position Middleware services Middleware functionnalities
The middleware: definitions
Set of software services built on top a transport protocol to enable and hide
C/S requests/responses.
Makes the connexion between server (e.g DB ) and development tools on
client device.
Middleware services are a set of distributed softwares that exist between
the OS, the application and network services on a particular node.
Middleware examples:
CORBA, RMI, DCOM, .NET…
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
The Middleware in networks
The network services include things like TCP/IP
The middleware layer is application-independent s/w using the network services
Examples of middleware are: DCE, RPC, Corba
Middleware may only perform one function (such as RPC or many (such as DCE)
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Types of middleware
General purpose middleware:
Message-Oriented Middleware (MOM) which provides program-to-
program data exchange, enabling the creation of distributed applications.
Communication protocols between shared directories, authentication services, time service, RPC, FIFO, ...
NOS(network OS) type distributed services: File services, printing services.
E.g: DCE, Netware, Named Pipes, LAN Server, LAN Manager, Vines, TCP/IP, NetBios.
Mid
dlew
are
ServerClient
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Types of middleware (2)
Specific types:
Databases Middleware: ODBC, IDAPI,DRDA, EDA/SQL,…
Transaction processing (TP) monitors which provide tools and an environment for
developing and deploying distributed applications.
• E.g. ATMI (Tuxedo), Transactional RPC (Ensina), …
Groupeware: MAPI, Lotus Notes, …
Object Request Brokers (ORBs) which enable the objects that comprise an
application to be distributed and shared across heterogeneous networks. E.g. Corba
ORB,...
Network management: SNMP, …
Mid
dlew
are
Client ServerM
iddl
ewar
e
Gat
eway
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Middleware Model
Distributed management
GUI
Logic
OS
Client
Distributed management
DBMS
Logic
OLPT
OS
Server
Distributed management
Transport
Network OS
SpecificServices
Middleware
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Middleware Components
Channels:Communication services between components and applications:
• DCE RPC (synchronous), ORB (synchronous), MOM (Message Oriented Middlware) (asynchronous).
Support for communication services• Corba SSL, directories (LDAP).
Platforms:Application servers. Running on server side.Offers communication channelMakes dispatching (distributed OS), load balancing, transactions integrity, …E.g: TP Monitors, OTM, Web based application servers, …
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Middleware position
Examples: • Primitives services: terminals emulators, file transfer, email,…• Basic services: RPC• Integrated services : DCE, SE distributed by O/S.• Distributed objects: CORBA, COM/DCOM, OLE/ActiveX • World Wide Web
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Middleware services
Specifiic service middleware
SQL/API TxRPC Mail ORB/COM
Distributed management
CMIP SNMP DME
Network OS
RPC NFS directories, Security, Message service
Transport
TCP/IP IPX/SPX NetBIOS SNA
Network, Data Link, Physical
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Middleware functionnalities
Connexion establishment procedureProcess requests Return resultsClose connexionInitiation of processes at different computers Directory services to allow clients to locate servers Remote data accessConcurrency control to allow servers to handle multiple clients Security integrityMonitoring Termination of processes both local and remote Caching resultsCaching requestsSession management
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Middleware examples
Primitive services such as terminal emulators, file transfer, email
Basic services such as RPC
Integrated services such as DCE, Network O/S
Distributed object services such as CORBA, OLE/ActiveX
World Wide Web
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
CONTENT (4)
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
1. Networks architectures
2. Client/Server
3. The middleware
4. RPC model
5. Gateways
6. Transparency
7. Client server requirements
RPC model
Marshalling Unmarshalling
SendRequest() ReceiveResponse()
Application
ProcedureCall
Procedure return
Marshalling Unmarshalling
SendResponse() ReceiveRequest()
Procedure
ReturnProcedure
RunProcedure
Client Stub Server Stub
Client RPC Server
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Gateways
A gateway is a generic term for an entity used to connect two or more networks
A repeater operates at the physical level copies the information from one subnet to another
A bridge operates at the data link layer level and copies frames between networks
A router operates at the network level and not only moves information between networks but also decides on the route
A proxy operates at the application level
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Transparency
Networks Transparency:Support of different type of networks: LAN, WAN, … TCP/IP, ISO, SNA, …
Servers Transparency :Support of different type of servers: SGBD (Oracle, DB2, …), applications, …
Data Transparency: Data formats translation: XDR, ASN.1, …
Localisation Transparency: By using directory service.
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Client/Server points of failure
The client side of the application could crash The client system may have h/w problems The client's network card could fail Network contention could cause timeouts There may be network address conflicts Network elements such as routers could fail Transmission errors may lose messages The client and server versions may be incompatable The server's network card could fail The server system may have h/w problems The server s/w may crash The server's database may become corrupted
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Client/Server requirements
Reliability
Performance
Responsiveness
Scalability
Capacity
Security
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES