Internet and Intranet Fundamentals Class 2 Session A
Topics Client / Server Computing –Definitions –Examples –Communications Protocols
Definitions Preliminaries – 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)
Definitions Client / 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
Definitions Client / 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
Definitions Client / Server The Server quite often controls access to shared resources such as –file systems (disks, tapes, etc.) –printers –shared communications facilities server Same ambiguity applies to term “Server” as to “Client”
Definitions Client / 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
Definitions Client / 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)
Definitions Client / Server Browser Developments “Gecko” –really NGLayout smaller, faster, layout engine replacement for Mozilla developed under mozilla.org –trying to put Mozilla on a diet
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
Definitions RPC Called Remote Program Stub I/F Server -Side Runtime Program Local Calling Program Stub I/F Client -Side Runtime Program
Definitions TCP / 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)
Definitions TCP / 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
Definitions TCP / 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
Examples Exercises HTTP: HyperText Transfer Protocol Port 80 –Exercise 1: telnet 80 HEAD / HTTP/1.0 –Exercise 2: telnet 80 HEAD / HTTP/1.0
Examples Exercises HTTP/ OK Server: WN/ Date: Tue, 19 Jan :34:57 GMT Last-modified: Mon, 18 Jan :39:54 GMT Content-type: text/html Title: -- Welcome to O'Reilly & Associates! Link: ; rev="Made" Connection closed by foreign host. Results:
Examples Exercises HTTP/ OK Server: Microsoft-IIS/4.0 Content-Location: Date: Tue, 19 Jan :37:41 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Mon, 18 Jan :09:06 GMT ETag: "05d75661e43be1:5753c" Content-Length: Connection closed by foreign host. Results:
Examples Exercises HTTP/ OK Server: Netscape-Enterprise/2.01 Date: Tue, 19 Jan :36:18 GMT Set-cookie: sessionid=ONQBNUAAABOEFAMUVFZE4GUBSSUXEUDO; domain=.sun.com;path=/ Content-type: text/html Connection closed by foreign host. Results:
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 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 :00: HELO bob.csz.com 250 cyber16.csz.com Hello [ ], pleased to meet you MAIL From: Sender ok RCPT To: 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 XAA20311 Message accepted for delivery QUIT 221 cyber16.csz.com closing connection Connection closed by foreign host.
Definitions Distributed 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
Examples Distributed Objects Application Servers / Frameworks –Netscape Application Server (NAS) –IBM WebSphere Application Server –Bluestone’s Saphire/Web (R) Application Server Framework
Examples Distributed Objects: NAS 2-tier Multi-tier
Examples Distributed Objects: NAS
Application Servers Some Links NAS:
Definitions Java 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
Definitions Java 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
Summary Client / 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