300 likes | 622 Vues
Internet and Intranet Fundamentals. Class 2 Session A. Topics. Client / Server Computing Definitions Examples Communications Protocols. Definitions. Preliminaries http://www.whatis.com/ Distributed Computing
E N D
Internet and Intranet Fundamentals Class 2 Session A
Topics • Client / Server Computing • Definitions • Examples • Communications Protocols
Definitions • Preliminaries • http://www.whatis.com/ • Distributed Computing • spreading computational capability and data over physically separated computers • usually connected via a network
Definitions • Distributed Computing • Client / Server • Distributed Computing Environment (DCE) • Open Software Foundation (OSF) Remote Procedure Calls • TCP / IP Berkeley Sockets • Distributed Objects • Object Management Group CORBA • Common Object Request Broker Architecture • Java Remote Method Invocation (RMI)
DefinitionsClient / Server • Client • makes request • initiates communication • may have a GUI and human • but not always • Server • fulfills request • passively waits for requests • usually multitasking machine
DefinitionsClient / Server • Sometimes “Client” refers to the • host • platform • machine (often a desktop machine) • but often refers to the • client-side software • examples: Netscape Communicator, Eudora
DefinitionsClient / Server • The Server quite often controls access to shared resources such as • file systems (disks, tapes, etc.) • printers • shared communications facilities • email server • Same ambiguity applies to term “Server” as to “Client”
DefinitionsClient / Server • Fat Clients • full-featured, large applications • use servers as data servers • not much computational power on the server side • Thin Clients • small applications • downloaded from the network • relies on computational power of server
DefinitionsClient / Server • Fat Client Example • Web Browser • Eudora • Visio • Thin Client • Java Applets • JavaScript Applications inside of HTML Pages • Note dependence on Fat Client (i.e., the browser)
DefinitionsClient / Server • Browser Developments • “Gecko” • really NGLayout • smaller, faster, layout engine • replacement for Mozilla • developed under mozilla.org • trying to put Mozilla on a diet http://www.mozilla.org
Definitions • DCE’s Remote Procedure Calls • uses subroutine call paradigm • directories required to register available procedures • stub compiled into local executable • forwards call to local runtime program that knows how to communicate with remote program • server side also has stub and its own local runtime program
DefinitionsRPC LocalCalling Program Called Remote Program Client -Side Runtime Program Server -Side Runtime Program Stub I/F Stub I/F
DefinitionsTCP / IP Berkeley Sockets • Defined in late 70’s early 80’s • Shipped with versions of Berkeley Unix in early 80’s (1982) • endpoints in connections • Transport Layer • like Unix file descriptors and pipes (but 2-way)
DefinitionsTCP / IP Berkeley Sockets • Five Basic Attributes of a Socket Connection • Local Port (chosen by OS on client side) • Local IP Address • Remote Port • Remote IP Address • Protocol (“tcp”, “udp”, etc.) • Each Connection Has Own 5-tuple
DefinitionsTCP / IP Berkeley Sockets • Server Listens on (Well-Known) Port • Clients Attempts Make a Connection • Server Accepts the Connection • Server Receives Request from Client • Server Interprets Request • performs some action • Sends Response to Client • Shuts Down the Connection
ExamplesExercises • HTTP: HyperText Transfer Protocol • Port 80 • Exercise 1: • telnet www.ora.com 80 • HEAD / HTTP/1.0<CR><CR> • Exercise 2: • telnet www.microsoft.com 80 • HEAD / HTTP/1.0<CR><CR>
ExamplesExercises Results: www.ora.com HTTP/1.0 200 OK Server: WN/1.15.1 Date: Tue, 19 Jan 1999 06:34:57 GMT Last-modified: Mon, 18 Jan 1999 22:39:54 GMT Content-type: text/html Title: www.oreilly.com -- Welcome to O'Reilly & Associates! Link: <mailto:webmaster@ora.com>; rev="Made" Connection closed by foreign host.
Examples Exercises Results: www.microsoft.com HTTP/1.0 200 OK Server: Microsoft-IIS/4.0 Content-Location: http://207.46.131.137/Default.htm Date: Tue, 19 Jan 1999 06:37:41 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Mon, 18 Jan 1999 20:09:06 GMT ETag: "05d75661e43be1:5753c" Content-Length: 19075 Connection closed by foreign host.
Examples Exercises Results: www.sun.com HTTP/1.0 200 OK Server: Netscape-Enterprise/2.01 Date: Tue, 19 Jan 1999 06:36:18 GMT Set-cookie: sessionid=ONQBNUAAABOEFAMUVFZE4GUBSSUXEUDO; domain=.sun.com;path=/ Content-type: text/html Connection closed by foreign host.
Examples Exercises • SMTP: Simple Mail Transport Protocol • Port 25 • Exercise 1: • telnet cyber55.csz.com 25 • Exercise 2: • telnet mail.ucr.edu 25
Examples Exercises $ telnet cyber55.csz.com 25 Trying 38.253.188.55... Connected to cyber55.csz.com. Escape character is '^]'. 220 cyber16.csz.com ESMTP Sendmail 8.8.5/8.6.9 ready at Mon, 18 Jan 1999 23:00:1 0 -0800 HELO bob.csz.com 250 cyber16.csz.com Hello mcarroll@bob.csz.com [38.253.188.29], pleased to meet you MAIL From:<mike@bob.csz.com> 250 <mike@bob.csz.com>... Sender ok RCPT To:<mcarroll@csz.com> 250 <mcarroll@csz.com>... Recipient ok
Examples Exercises DATA 354 Enter mail, end with "." on a line by itself This is my data. It can go over several lines. . 250 XAA20311 Message accepted for delivery QUIT 221 cyber16.csz.com closing connection Connection closed by foreign host.
DefinitionsDistributed Objects • Object Management Group (OMG) CORBA • Common Object Request Broker Architecture • ORB = Object Request Broker • brokers components between clients and servers • client does not need to know the where the server is or how its interface works • like a registry
ExamplesDistributed Objects • Application Servers / Frameworks • Netscape Application Server (NAS) • IBM WebSphere Application Server • Bluestone’s Saphire/Web (R) Application Server Framework
ExamplesDistributed Objects: NAS 2-tier Multi-tier
Application ServersSome Links NAS: http://home.netscape.com/appserver/v2.1/whitepaper/index.html
DefinitionsJava Remote Method Invocation • Like CORBA • but both sides have to be written in Java • Each RMI Server Has Registry • for looking up object • Client Can Invoke Methods Remotely • as if on local machine
DefinitionsJava Remote Method Invocation • RMI Like Traditional RPC • but RPC is language-neutral • hence least common denominator approach • RMI is platform-neutral • hence full featured use of Java’s and the platform’s capabilities • RMI Object-Oriented http://java.sun.com:80/marketing/collateral/javarmi.html
SummaryClient / Server • A Type of Distributed Computing • most common type • Client Initiates Request • Server Passively Waits, then Responds to Client Request • Berkeley Sockets • most widely used mechanism facilitating client / server computing on the Internet