Client-Server Architecture



Similar documents
Middleware Lou Somers

Chapter 2: Remote Procedure Call (RPC)

Middleware: Past and Present a Comparison

Agenda. Distributed System Structures. Why Distributed Systems? Motivation

GROUPWARE. Ifeoluwa Idowu

1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment?

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

FROM RELATIONAL TO OBJECT DATABASE MANAGEMENT SYSTEMS

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Architecture Design For Web-based Application Systems. Instructor: Dr. Jerry Gao Class: CMPE296U

S y s t e m A r c h i t e c t u r e

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

Distribution transparency. Degree of transparency. Openness of distributed systems

IMPLEMENTATION OF AN AGENT MONITORING SYSTEM IN A JINI ENVIRONMENT WITH RESTRICTED USER ACCESS

AS/400 System Overview

LabVIEW Internet Toolkit User Guide

How To Write A Network Operating System For A Network (Networking) System (Netware)

Tier Architectures. Kathleen Durant CS 3200

Building Java Servlets with Oracle JDeveloper

Web Services. Copyright 2011 Srdjan Komazec

Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords

Elements of Advanced Java Programming

Computer Networks/DV2 Lab

Oracle Service Bus Examples and Tutorials

Objectives. Distributed Databases and Client/Server Architecture. Distributed Database. Data Fragmentation

Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service

Example of Standard API

Client Server Architecture

WEB DATABASE PUBLISHING

Exploiting the Web with Tivoli Storage Manager

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Middleware for Heterogeneous and Distributed Information Systems

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

7 Why Use Perl for CGI?

Internet Information TE Services 5.0. Training Division, NIC New Delhi

Client/server is a network architecture that divides functions into client and server

Internet Technologies. World Wide Web (WWW) Proxy Server Network Address Translator (NAT)

Stock Trader System. Architecture Description

Infrastructure that supports (distributed) componentbased application development

HP Web Jetadmin Database Connector Plug-in reference manual

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Chapter 16 Distributed Processing, Client/Server, and Clusters

Chapter 2: Enterprise Applications from a Middleware Perspective

How To Understand The History Of The Web (Web)

SOA, case Google. Faculty of technology management Information Technology Service Oriented Communications CT30A8901.

Site Configuration SETUP GUIDE. Windows Hosts Single Workstation Installation. May08. May 08

Transactions and the Internet


Chapter 3: Operating-System Structures. Common System Components

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

DISTRIBUTED AND PARALLELL DATABASE

Chapter 3. Internet Applications and Network Programming

System types. Distributed systems

ELEC 377. Operating Systems. Week 1 Class 3

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

1. INTRODUCTION TO RDBMS

LOAD BALANCING TECHNIQUES FOR RELEASE 11i AND RELEASE 12 E-BUSINESS ENVIRONMENTS

Exploring Oracle E-Business Suite Load Balancing Options. Venkat Perumal IT Convergence

Event-based middleware services

Virtual machine interface. Operating system. Physical machine interface

COMMMUNICATING COOPERATING PROCESSES

Network File System (NFS) Pradipta De

COM 440 Distributed Systems Project List Summary

Using IPM to Measure Network Performance

CLC Server Command Line Tools USER MANUAL

Concepts of Database Management Seventh Edition. Chapter 9 Database Management Approaches

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

1 Introduction: Network Applications

Network: several computers who can communicate. bus. Main example: Ethernet (1980 today: coaxial cable, twisted pair, 10Mb 1000Gb).

Homeland Security Red Teaming

Chapter 27 Hypertext Transfer Protocol

MyOra 3.0. User Guide. SQL Tool for Oracle. Jayam Systems, LLC

Sage ERP MAS 90 Sage ERP MAS 200 Sage ERP MAS 200 SQL. Installation and System Administrator's Guide 4MASIN450-08

ICS 434 Advanced Database Systems

TIBCO Spotfire Statistics Services Installation and Administration Guide. Software Release 5.0 November 2012

The ConTract Model. Helmut Wächter, Andreas Reuter. November 9, 1999

Service-Oriented Architecture and Software Engineering

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Fast remote data access for control of TCP/IP network using android Mobile device

Administrative Guide VtigerCRM Microsoft Exchange Connector (Exchange Server 2010)

Network setup and troubleshooting

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents

Distributed Architectures. Distributed Databases. Distributed Databases. Distributed Databases

Enterprise Application Integration

Distributed System: Definition

Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON

Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1

Lesson 4 Web Service Interface Definition (Part I)

How To Understand The Concept Of A Distributed System

Windows Server 2003 default services

Enhanced Connector Applications SupportPac VP01 for IBM WebSphere Business Events 3.0.0

Transcription:

Computer Science Program, The University of Texas, Dallas - Architecture s and s / with File s / with Database s / Communication / with Transaction Processing / Groupware Web / Paradigm Shift: Past, Present and Future Centralized processing A host computer (often a mainframe) handls all processing, including input, output, data storage and retrieval Distributed processing A number of computers (minis, workstations, PCs,...) handle all processing, They are distributed physically and connected thru a communications network Cooperative processing A number of computers (minis, workstations, PCs,...) handle all processing, They are distributed physically and connected thru a communications network Processing thru sharing of resources, transparently to the users

s and s Basic Definition : requests for services : provides services Service: any resource (e.g., data, type defn, file, control, object, CPU time, display device, etc.) Typical Properties A service request is about "what" is needed, and it often made abstractly It is up to the server to determine how to get the job done -> the notion of module (cf. MILs, ADTs --- Larch, Z) The ideal client/server software is independent of hardware or OS platform The location of clients and servers are usually transparent to the user A client may become a server; a server may become a client A client/server system can be scaled horizontally, i.e., by adding/removing client workstations with only a slight performance impact vertically, i.e., by migrating to a larger and faster server machines or multiservers / with File s Centralized File The client passes requests to the file server (software) for file records s can reside in the same machine or separate machines (typically PCs) Requests can be either local or over a network Indispensable for documents, images, drawings, and other large data objects Distributed Network File File

( ( # ( * $ ) * $ / with Database s insert/update/delete tuple(s) Network Database At present the majority of existing client/server-based software is to be found in the area of databases, and it is here that the greatest challenge to any corporation currently lies. [Richard Finkelstein, President, Performance Computing] Events (violation of integrity constraints, temporal conditions, errors) trigger event handlers -> implicit invocation, blackboards, events! " # $% & ' ( ) * A DBMS also offers features for recovery and concurrency control +++ Sockets / Communication Sockets -> RPCs -> MOMs and ORBs introduced in 98 as the Unix BSD 4.2 generic interface provide Unix-to-Unix communications over networks The Windows socket API (Winsock): based on the Unix BSD 4.2 sockets interface Net_id.Host_id Internet Address Port Address $, - *. $/ 0 " *. $/ " * 2 ) " * *" ) ) " 3 " *4 Principal transport service calls G @ < : ; < : 6 7 8 F < ; 5 6 6 7 8 9 : ; < : = 5 6 8 9 9 = : > < ; 7 :? @ < A 9 7 B 6 C D 8 @ < : ; < E 6 7 8 F < ; G @ < : ; Bind(...) < : H B < B < I 7 @ 6 ; 7 @ 9 = J 9 = 8 7 > 9 = J 8 7 = = < 8 ; 9 7 = @ < H B < 6 ; 6 K L C 7 8 F 9 = J M = 7 = NL C 7 8 F 9 = J O P < > 7 Listen(...) A < : 8 7 = = < 8 ; 9 7 = @ < H B < 6 ; I @ 7 > ; Q < H B < B < 7 @ R : 9 ; I 7 @ 7 = < KL C 7 8 F 9 = J M = 7 = N O S = 9 ; 9 : Accept(...) ; < : 8 7 = = < 8 ; 9 7 = R 9 ; Q : @ < > 7 ; < 6 7 8 F < ; T < @ > Connect(local_socket, 9 = : ; < ; Q < 8 7 = = < 8 ; 9 7 = remote_socket) 7 = : 6 7 8 F < ; U < = E Shutdown(local_socket, : > < 6 6 : J < ; Q @ B : J 7 A remote_socket) < = 6 7 8 F < ; P < 8 < Send(local_socket, 9 A < : > < 6 6 : J < ; Q @ remote_socket, B : J 7 A < = 6 7 8 F buffer, < ; bytes) G Q < 8 Recv(local_socket, F : 6 < ; 7 I 6 7 8 F < ; 6 remote_socket, ; 7 6 < < 9 I : = D 8 : buffer, = L < @ < bytes) : E 7 @ R @ 9 ; ; < = KL C 7 8 F 9 = J O Socket (addr format, type: connection-oriented/connectionless, protocol:tcp/ip/...) Select(...)

/ Communication Sockets -> RPCs -> MOMs and ORBs RPCs (Remote Procedure Calls) a transparent mechanism to give the client procedure the illusion that it is making a direct call on the distant server procedure stubs: local procedures (e.g., read(file_id, buffer, count)) hiding details of network comm. 0 steps to execute a RPC prog/proc prog/proc. stub call 0. result unmarshalling (unpack the msg into result) 5. parameter unmarshalling (unpack the msg into parameters); server proc call 6. server proc returns stub stub 2. parameter marshalling (collect & pack the parameters into a msg); a sys call Transport entity 9. pass the msg 3. send the call msg 8. send the return msg 4. pass the msg 7. result marshalling (pack the result into a msg); a sys call Transport entity / Communication Sockets -> RPCs -> MOMs and ORBs MOM (Message-Oriented Middleware) Every DAD (Distributed Development) needs a MOM RPC MOM Many-to-many messaging via queues post office-like asynchronous no fixed sequence a single queue sharable

/ with Transaction Processing transactions (banking, reservation,...) Network TP Monitor Database Transaction changeaddress (p: String, newaddress: Address) begin oldaddress <- retrieve address from Person where "name = p" if oldaddress = newaddress then return error else update Person where "p = name" with address <- newaddress end Transaction increasesalary (increment: Dollar) begin end... / with Transaction Processing Transactions are a way to make ACID operations a general commodity [Transaction Processing Concepts and Techniques, Jim Gray and Andreas Reuter, 993] Atomicity a transaction is an indivisible unit of work an all-or-nothing proposition all updates to a database, displays on the clients screens, message queues e.g., salary increase for all million employees or none Consistency a transaction is an indivisible unit of work S -> [T abort] -> S integrity constraints (e.g., mgr.salaray > salary) Isolation a transaction s behavior not affected by other transactions running concurrently e.g., reserve a seat serialization techniques Durability persistence a transaction s effects are permanent after it commits. V W X Y Z[ \ Z] ^ _ ` ab ^ c b ` ` d e f d e g g \^ g Z ^ h X a i[ f ^ j ^ [ [ e c k l e f d k ` m j e f ia b e n ^ a ` ` _ m j b ` o Z ah p q r ^ f ` m s b g c ^ e j b Z f s h

/ with Transaction Processing Two-Phase Commit Protocol centralize the decision to commit but giving each participant the right of veto like a Christian marriage To synchronize updates on different machines so that they either all fail or all succeed Commit Coordinator (Root) Subordinate Node Subordinate Node Phase Prepare-to-commit Prepare-to-commit Prepare-to-commit Record in Log Ready-to-commit Ready-to-commit Phase 2 Commit Commit Commit Complete Complete Complete If the subordinates have spawned pieces of the transaction on other nodes, they must propagate the prepare-to-commit-command in the first phase -> a transaction tree If any of the participants returns a transaction failure, the root node tells all its subordinates to perform a rollback / Groupware Why? support for business reengineering: bcfh -> maximize profit change the way people communicate with each other helps manage (and track) the product thru its various phases computer-supported cooperative work (CSCW) collaborative/workgroup computing return on investment: 6% to 666% on a median investment of $00K [a study of 65 Notes users in 994] Five foundation technologies tu v w x yz yz { } u ~ z v v { y} z u ƒ } yz { z } z } ƒ{ t š œ š œ œ from electronic imaging (scanning, digitization, display, storage and retrieval) to document (component types: text, image, graphics, faxes, mail, voice clips, BBs) Ž ˆ Š Œ Š ˆ š thru microphones, video windows, electronic whiteboards, controlled access to shared document electronic scheduling of meetings, sharing calendars and "to do" lists, triggering events Why not just DBMS? DBMS: highly structured data Groupware: highly unstructured data document database Why not just TP Monitors? TP Monitors: transaction processes Groupware: (currently) not transaction-oriented in the ACID sense

/ Groupware ž ˆ Ÿ Š Œ Ÿ Ÿ ª P «7 < H: = B < 6 ; 5 G @ = < : EC D9; 6 9 6 5?? @ : 9 6 : C 5?? @ 7 A : C 5 = 6 R < @ G B 6 ; 7 > < @ Form Processing DB query e-mail to accountg conferencing The "workflow river" carries the flow of work from port to port, value being added along the way The workflow definition must take into consideration: Routes along which the object moves about what information is routed and when E.g., "If the loan is over $00, 000, send it to the supervisor within the next hour or else send it to the next hop" define job functions independently of the people who do it E.g., the "supervisor" role can be handled by users "Adam" and "Eve" fax spreadsheet Many office workers spend a high percentage of their time processing documents Rules Roles œ ˆ œ T «6 µ ± ¹ Ÿ ² ³ Web / 2 3 Internet TCP/IP 5 4 Page Object HTML Documents º» ¼ ½ ¾ ½ You select a target URL (Univeral Resource Locator - platform-independent naming scheme) http ://www.utdallas.edu :80 :~ttsx9c/java/toys.html Protocol Address Port Number Target Resource Path 2 Brower takes the URL, embeds it inside an HTTP request, and sends it to the server HTTP (HyperText Transfer Protocol), a stateless RPC, is used to retrieve URL-named resources ) establishes a client/server connection, 2) transmits and receives parameters including a returned file, and 3) breaks the client/server connection STATELESS: a new connection for each user request - simple but inefficient 3 The HTTP server receives the reqest on the port, makes a socket connection, 4 5 6 The server finds the requested HTML file (Page Object) and concatenates it with status info HTML (HyperText Markup Language) describes the structure of a Web document, provide font and graphics info, and define hyperlinks to other Web pages & Internet resources) The server ships back the file, and closes the connection The Browser interprets the HTML command and displays the page content and invokes a helper application (e.g., xview, audiotool)

± Ÿ ² ³ µ ¹ Web / ˆ À Á œ  À š à œ À Á Ä Ã ˆ œ Å Æ œ ˆ ˆ Ç É 9 @ È E È < : Ê 7 @ > @ 2 Internet TCP/IP You click on the form s "submit" button The Web browser collects the data within the form, assembles it into a string of name/value pairs, specifies a POST method, the URL of the target program in the "cgi-bin" directory 2 The HTTP server receives the method invocation via a socket connection 3 The server parses the message to discover that it s a POST for the "cgi-bin" program -> start a CGI interaction: The HTTP server sets up the environment variable (e.g., content_length), in a blackboard 4 The HTTP server starts a CGI program 5 The CGI program reads the environment variables 6 The CGI program receives the message body via the input pipe HTTP Srvr 8 ¼ ½º ¾» ½ 7 The CGI program does some work, typically by interacting with a DBMS, TP Monitor 8 The CGI program returns the results via the output pipe 9 The HTTP server returns the results to the Web brower 9 4 6 3 Env. Var. 5 CGI Prog 7 œ œ À Ë Web / Java Applet Bytecode Verifier Class Loader 4 Java Compiler Java Run-time Interpreter Just-in-Time Compiler 2 5 µ ± Ÿ ² ¹ ³ A Web browser requests a Java applet The Browser initiates a separate TCP/IP session to download each applet within a Web page The server retrieves the requested applet 3 The server sends the applet Internet TCP/IP 4 The browser loads the applet into the client s memory and executes it A poor man s compound document architecture The applet s region does NOT visually integrate with the rest of the page 5 The browser deletes the applet from memory when it exits the Web page 3 2 Applet Bytecode º» ¼ ½ ¾ ½