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
Called RemoteProgram
Stub I/F
Server-Side
RuntimeProgram
LocalCallingProgram
Stub I/F
Client-Side
RuntimeProgram
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
HTTP/1.0 200 OKServer: WN/1.15.1Date: Tue, 19 Jan 1999 06:34:57 GMTLast-modified: Mon, 18 Jan 1999 22:39:54 GMTContent-type: text/htmlTitle: www.oreilly.com -- Welcome to O'Reilly & Associates!Link: <mailto:[email protected]>; rev="Made"
Connection closed by foreign host.
Results: www.ora.com
Examples Exercises
HTTP/1.0 200 OKServer: Microsoft-IIS/4.0Content-Location: http://207.46.131.137/Default.htmDate: Tue, 19 Jan 1999 06:37:41 GMTContent-Type: text/htmlAccept-Ranges: bytesLast-Modified: Mon, 18 Jan 1999 20:09:06 GMTETag: "05d75661e43be1:5753c"Content-Length: 19075
Connection closed by foreign host.
Results: www.microsoft.com
Examples Exercises
HTTP/1.0 200 OKServer: Netscape-Enterprise/2.01Date: Tue, 19 Jan 1999 06:36:18 GMTSet-cookie: sessionid=ONQBNUAAABOEFAMUVFZE4GUBSSUXEUDO; domain=.sun.com;path=/Content-type: text/html
Connection closed by foreign host.
Results: www.sun.com
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 25Trying 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 -0800HELO bob.csz.com250 cyber16.csz.com Hello [email protected] [38.253.188.29], pleased to meet youMAIL From:<[email protected]>250 <[email protected]>... Sender okRCPT To:<[email protected]>250 <[email protected]>... Recipient ok
Examples Exercises
DATA354 Enter mail, end with "." on a line by itselfThis is my data.It can go over several lines..250 XAA20311 Message accepted for deliveryQUIT221 cyber16.csz.com closing connectionConnection 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
ExamplesDistributed Objects: NAS
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