Presentation is loading. Please wait.

Presentation is loading. Please wait.

INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

Similar presentations


Presentation on theme: "INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES"— Presentation transcript:

1 INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Chapter 3. Network architectures: Client/server & middleware

2 CONTENT Networks architectures Client/Server The middleware RPC model
Gateways  Transparency  Client server requirements  A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

3 CONTENT (1) Networks architectures Yesterday Today
A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

4 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

5 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 DBMS OS Company network DB Request Response Server Clients Windows OS/2 Unix A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

6 CONTENT (2) Networks architectures Client/Server Client/Server Model
Request ? Response? Examples? A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

7 Client/Server Model Client: Server: Request: Response:
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

8 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

9 CONTENT (2) Networks architectures Client/Server Client/Server Model
Client/Server architectures Fat vs thin A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

10 Client/Server architectures
The model: Many clients, one server: Application Hardware Op. System Client process Hardware System Server process Client Master Slave Client Server One client, One server: One client, many servers: Client Server Client Server Server A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

11 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

12 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

13 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 Data and applications Applet, data Local process, Caching, … Thin Client Server A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

14 CONTENT (2) Client/Server communication Client/Server messages
Networks architectures 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 Blocking tasks Non blocking tasks Communication examples  A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

15 Client/Server communication
Service Primitives: SendRequest() ReceiveResponse() ReceiveRequest() SendResponse() Request Response SendRequest() SendResponse() ReceiveRequest() ReceiveResponse() Session Session Transport Transport Network A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

16 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, …) REQ RESP ACK S C AYA IAA A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

17 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 Transport Translation Marshalling Unmarshalling A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

18 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, , …). Uses Multithreading. A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

19 Blocking tasks The process will stop untill the task ends: System call
Reading Copy in the buffer Middleware Resume read() A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

20 Non blocking tasks The process will not stop between two tasks:
System call WOULD BLOCK Resume read() loop Waiting for data Copy in the buffer Activate SIGIO System call Resume SIGIO Signal signal() handler() read() Waiting for data Copy in the buffer Events Signals The process will not stop between two tasks: E.g: Multithreading A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

21 A communication example
Procedure call (RPC or local) : Blocking tasks ordinary procedure call dynamic link library procedure call remote procedure call A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

22 CONTENT (2) Networks architectures Client/Server Client/Server Model
Client/Server architectures Fat vs thin Client/Server communication Designing a C/S application 2 tiers Client/server Components distribution   3 tiers Client/server  A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

23 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

24 2 tiers Client/server Gartner model for 2-tiers systems:
Presentation Logic Data Distributed DB Class 1 Remote Data Class 2 Distributed Transactions Class 3 Remote Presentations Class 4 Class 5 Client Server A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

25 Components distribution
CGI, HTTPD, SERVLETS Distributed DB: Presentation Logic Data Class 1 Web: HTML, JAVA, JSP Class 3 File Service: Class 2 This allows remote clients acess to a shared file system A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

26 Components distribution
Terminals emulation X Window Presentation Logic Data Class 5 Envelop Presentation Presentation X Wrapper Logic Presentation telnetd Data Logic Original application Data Class 4 This allows a remote system to act as a normal terminal on a local system Class 5 This decouples application view of windowing and display view of windowing This acts as a wrapper around a classical system, either to provide an X Window interface or an alternative character-based one A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

27 3 tiers Client/server Gartner Model for 3-tiers systems: Client
Middle-tier Server Presentation Logic Data A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

28 CONTENT (3) Networks architectures Client/Server The middleware
The middleware : definitions The middleware in networks Types of middleware  Middleware Model  Middleware Components  Middleware position  Middleware services Middleware functionnalities  A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

29 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

30 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

31 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. Middleware Server Client A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

32 Types of middleware (2) Middleware Gateway Server Client
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, … Middleware Gateway Server Client Middleware A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

33 Middleware Model Distributed management GUI Logic OS Client
Transport Network OS Specific Services Middleware Distributed management DBMS Logic OLPT OS Server A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

34 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 channel Makes 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

35 Middleware position Examples:
Primitives services: terminals emulators, file transfer, ,… 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

36 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

37 Middleware functionnalities
Connexion establishment procedure Process requests Return results Close connexion Initiation of processes at different computers Directory services to allow clients to locate servers Remote data access Concurrency control to allow servers to handle multiple clients Security integrity Monitoring Termination of processes both local and remote Caching results Caching requests Session management A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

38 Middleware examples Primitive services such as terminal emulators, file transfer, 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

39 CONTENT (4) Networks architectures Client/Server The middleware
RPC model   Gateways  Transparency  Client server requirements  A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

40 RPC model Client RPC Server Server Stub Client Stub Procedure
Application Procedure Call Procedure return Return Procedure Run Procedure Server Stub Client Stub Marshalling Unmarshalling Marshalling Unmarshalling SendRequest() ReceiveResponse() SendResponse() ReceiveRequest() A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

41 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

42 Transparency Networks Transparency: Servers 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

43 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

44 Client/Server requirements
Reliability Performance Responsiveness Scalability Capacity Security A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES


Download ppt "INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES"

Similar presentations


Ads by Google