Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Chapter 3. Network architectures: Client/server & middleware INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES."— Presentation transcript:

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

2 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

3 CONTENT (1) 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 Applications Company network DB RequestResponse Server Clients Windows OS/2 Unix A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

6 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

7 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 clients 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) 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

10 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 ClientServer ClientMaster Slave Client One client, many servers: ClientServer 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 Local process, Caching, … Thin Client Data and applications Server Applet, data A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

14 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

15 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

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 REQ ACK S CS RESP REQ ACK CS RESP AYA IAA C 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 Presentation Session Transport Translation Marshalling Translation Unmarshalling A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

18 C/S communication mode Synchronous mode : Doesnt 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

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

20 System call 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

21 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

22 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

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 applications 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 Presentation Logic Data Presentation Logic Data Presentation Logic Data Distributed DB Class 1 Remote Data Class 2 Distributed Transactions Class 3 Remote Presentations Class 4 Presentation Logic Data Distributed Presentations Class 5 Presentation Client Server A.Obaid-Wilfried Probst – Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES

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

26 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

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

28 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

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

33 Middleware Model Distributed management GUI Logic OS Client Distributed management DBMS Logic OLPT OS Server Distributed management Transport Network OS Specific Services Middleware 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, 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

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, 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

39 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

40 RPC model Marshalling Unmarshalling SendRequest () ReceiveResponse () Application Procedure Call Procedure return Marshalling Unmarshalling SendResponse() ReceiveRequest () Procedure Return Procedure Run Procedure Client Stub Server Stub Client RPC Server 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: 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 "Chapter 3. Network architectures: Client/server & middleware INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES."

Similar presentations


Ads by Google