Transcript Training

Java: A to Z
Delivered By:
Alexander Day Chaffee, Purple Technology
Original Creator of Gamelan
(http://java.developer.com/ - EarthWeb)
[email protected]
Copyright © 1997-8 Alex Chaffee
Purple Technology
 Java
Training and Consulting
 All levels of courses
 http://www.purpletech.com/
Copyright © 1997-8 Alex Chaffee
What is Java?
An island
 Largest
island of the equatorial achipelago
of Indonesia
 Famous for beaches and coffee Copyright © 1997-8 Alex Chaffee
What is Java?
 A programming
language
 Developed by Sun Microsystems
 Open specification
Copyright © 1997-8 Alex Chaffee
What is Java?
 An
architecture
 Virtual Machine
Copyright © 1997-8 Alex Chaffee
What is Java?
 A platform
 Libraries
/ APIs
 Applications
 Applets
Copyright © 1997-8 Alex Chaffee
What is Java?
 An
Operating System (OS)
 Tailored for NCs and Embedded Systems
 Not an OS for PCs
Copyright © 1997-8 Alex Chaffee
What is Java?
 A really
good buzzword
 Coined by Kim Polese
Copyright © 1997-8 Alex Chaffee
Why Java?
 High
Productivity
 Low Cost
 Run Anywhere
 N-tier Applications
Copyright © 1997-8 Alex Chaffee
Where is Java?
 Server-side
programming
 Enterprise computing
 Distributed computing
 Client-side multimedia
Copyright © 1997-8 Alex Chaffee
Where is Java heading?
 Clients
(Network, Distributed Computing
with Nodes)
 Servers (Web servers, collaboration
services)
 Embedded (TV Set-top, cell phones, smart
cards)
Copyright © 1997-8 Alex Chaffee
Facts and Figures
Copyright © 1997-8 Alex Chaffee
Number of Java Developers
(IDC)
Copyright © 1997-8 Alex Chaffee
Real-world Java Examples
Copyright © 1997-8 Alex Chaffee
Andersen Consulting
 60,000
employees who travel to client sites
 VERY heterogeneous computing
environments
 On-line travel system for their in-house
needs
 Privileges according to employee status
Andersen Consulting (cont.)
 "Java
is absolutely ready for prime time. It's
the most bulletproof language we've used.
We don't have to worry about memory
leaks. If we had done this in C, we would
still be debugging."
-Elmer Baldwin, President, via World
Network.
Copyright © 1997-8 Alex Chaffee
CSX railway shipping
 Find
out which train(s) have your freight on
map of USA
 Click on train and see what freight belongs
to your company
 Saving CSX $10M in next year
Copyright © 1997-8 Alex Chaffee
CSX railway shipping (cont.)
 CSX,
using Java, has halved the time to
write code and moved to a zero cost
software distribution model.
 At the same time, CSX has moved to a
multi-client environment, improved
satisfaction, expanded reach and selfenabled the customer
Copyright © 1997-8 Alex Chaffee
CSX (cont.)

"Java is CSX's enterprise computing solution Java
is deployed everywhere and at every level of CSX.
And we are working on architecturally purifying
CSX development," said Marshall Gibbs, assistant
VP of enterprise solutions at CSX Technology in
Jacksonville, FL, the IT unit of CSX Corp. "Our
ROI on projects where we use Java has increased
by 10 percent."
Copyright © 1997-8 Alex Chaffee
Dun & Bradstreet
 On-line
office supply catalogue for in-house
use
 Privileges according to status at company
Copyright © 1997-8 Alex Chaffee
Federal Express
 "Java
is our primary targeted application
platform for internal apps." says FedEx CIO
Dennis Jones. "No internal application
work is occurring for the client aside from
Java development."
 Using Symantec Café
Copyright © 1997-8 Alex Chaffee
Ford Motor Credit Company.
 "Ford
Credit is using Java and the Internet
to better serve our customers. Ford Credit is
currently using Java to provide customers a
convenient way to access account
information - 24 hours a day, 7 days a
week." -Terry Bone, Ford Motor Credit
Company
Copyright © 1997-8 Alex Chaffee
National Library of Medicine
(NIH)
 Using
Java for health and information
professionals to access database
 Users' displays tailored to suit information
(instead of line-oriented displays)
 "The
development of Java saved us the cost of
developing to platform-specific window
environments and greatly speeded up our
delivery of a working prototype version of
HSTAT (roughly six months from design to
delivery)."
Copyright © 1997-8 Alex Chaffee
First Union Corp.
 "Java
gives us greater selection of what
applications we can use. Well over 90% of
development is Java based," said Michael
Love, vice president of the smart card
initiative at First Union Corp in Charlotte,
NC.
Copyright © 1997-8 Alex Chaffee
Java Foundations
Copyright © 1997-8 Alex Chaffee
What is a computer?
 CPU
 Memory
 Input/output
devices
What is a programming
language?
 Set
of instructions for computer
 Stored in memory, executed by CPU
 Grammar
 Examples
 Perl
C
 C++
 BASIC
 LISP
Lifecycle of a program
 Source
code
 Compiler
 Object code
 Linker
 Executable code
What is a Script?
 A script
is a program, but not all programs
are scripts
 Scripting Languages:
 Lingo
 Perl
 JavaScript
 TCL
Script vs. Program
 Scripts
are…
 smaller
 easier
learning curve
 less scalable
 number
 more
of developers per script is usually one
task-specific
 usually tailored to a specific program or
function
 fewer functions available
Script vs. Program
 Programs
are…
 usually
larger
 more powerful
 more task-independent
 more scalable
 programs
 more
can have dozens of programmers
code libraries
 can produce their own graphical user interface
Lifecycle of a script
 Source
code
 Interpreter
Perl
 Right
on the line between scripting and
programming language
 Possible to write large programs in Perl
 Not
 Many
a good idea
libraries available for Perl
 Not very good GUI support
 Contains compiler and interpreter
Java Code
 Simple
 Distributed
 Robust
 Secure
 Portable
 Multi-Threaded
Object Oriented
Interpreted
Safe
Architecture Neutral
High Performance
Dynamic (GC)
Copyright © 1997-8 Alex Chaffee
Boy Scout Code
 trustworthy
 helpful
 courteous
 obedient
 thrifty
 clean
loyal
friendly
kind
cheerful
brave
reverent
Copyright © 1997-8 Alex Chaffee
History
 Green
Project / FirstPerson / Oak
 Consumer
electronics
 Set-top boxes
 James Gosling, Patrick Naughton
Copyright © 1997-8 Alex Chaffee
History
 LiveOak
 Arthur
(1993)
van Hoff
 WebRunner
 Patrick
(1994)
Naughton, Jonathan Payne
 Java
 Kim
Polese
Copyright © 1997-8 Alex Chaffee
History
Fall 1994: WebRunner written
 Spring 1995: Java/HotJava announced at
SunWorld ‘95
 Fall 1995: Java Day New York

 Birth
 Spring
of Gamelan
1996: First JavaOne (San Francisco)
Copyright © 1997-8 Alex Chaffee
What is an Operating System?
 A program
that runs other programs
 Sits between programs and devices
 Manages scheduling of concurrent
programs
 Provides API to applications
 Application
Program Interface
What is a Platform?
 Combination
of OS, API, installed
programs, and hardware
 Sometimes means one of those things,
sometimes means many
Platform Independent: Why?
 Write
once, run anywhere
 One code base to develop
 Upwardly compatible with new technology
 Writing
code that will run on machines that
haven't been invented yet
 Cross-compatible
with existing installed
base
 E.g.
all the computers on the Web
Copyright © 1997-8 Alex Chaffee
Cross-Platform
 Write-Once-Run-Anywhere
 AIX,
HP-UX, MacOS, OS2, Win95, WinNT,
Netware, UnixWare, Irix, Solaris, and others
Copyright © 1997-8 Alex Chaffee
Platform Independent: How?
Application
Application
Application
Virtual Machine
Windows
MacOS
Unix
Copyright © 1997-8 Alex Chaffee
Java Class Lifecycle
 Source
-> Bytecode -> Interpreter
Copyright © 1997-8 Alex Chaffee
Java Class Lifecycle
Java Virtual Machine (JVM)
Source File
(.java)
ClassLoader
Bytecode Verifier
Compiler
(javac)
Interpreter
Class File
(.class)
Network
or
File System
= security gateway
Just-in-time
compiler
Security Manager
Operating System
Security Architecure
 Has
to go through Verifier on one side and
Security Manager on the other
 Sandbox
 Cryptography / signed applets
Copyright © 1997-8 Alex Chaffee
Secure
 Java:
 Adjustable
security: “untrusted” through levels
of trust
 ActiveX:
 Binary
trust: all or nothing
Copyright © 1997-8 Alex Chaffee
Java vs. ActiveX
Java
ActiveX
File IO
yes
yes
Network IO
yes
yes
Applet Caching
yes
yes
Erase hard disk
no
yes
Upload confidential information
no
yes
Copyright © 1997-8 Alex Chaffee
Object-Oriented
 Encourages
more flexible and reliable
designs
 Fosters reuse of code and design
 Reduces maintenance costs
Copyright © 1997-8 Alex Chaffee
Automatic Memory
Management
 Greatly
improves developer productivity
 Reduces “memory leakage” problems
Copyright © 1997-8 Alex Chaffee
Powers of ten
 Cost
of fixing problems
 Design
= $1
 Development = $10
 Debugging = $100
 Deployment = $1000
 Brooks, The
Mythical Man Month
 Java helps at early stages
 Problems are caught early
Copyright © 1997-8 Alex Chaffee
Distributed Computing
 Applications
reside where they’re needed
saving valuable desktop space
 Accessible from any connected location
 Native support for distributed app
development (java.net, RMI, CORBA,
DCOM)
Copyright © 1997-8 Alex Chaffee
Server-side strength
 Built-in
support for networking makes
development easy
Copyright © 1997-8 Alex Chaffee
3-tier and n-tier development
 Flexible
implementations separate user
interface from business logic and from
database storage
Copyright © 1997-8 Alex Chaffee
Client-side Java
Copyright © 1997-8 Alex Chaffee
Applications
 Installed
 Like
locally
any other application (Word, Photoshop)
 Run
as a local process
 Can make network connections freely
 No security restrictions
 Still safety restrictions (e.g. can’t write to
random memory)
Copyright © 1997 Alex Chaffee
Applets
 Live
inside a browser
 Stored as class files on a Web server
 Are delivered through the internet or
intranet
 On-demand,
when needed
 Run
inside a Java-enabled web browser
 Always downloads the latest version
 Sometimes
cached locally, but not reliably
Copyright © 1997 Alex Chaffee
Applet Security
 Security
restrictions
 Are secure
 Limited
or no access to the local machine
(“client”)
Applets (Diagram)
Browser
Web Server
Here is my face:
face.html
face.class
Copyright © 1997 Alex Chaffee
Sockets and Ports (Diagram)
Client
Socket
port 13
Time Service
port 80
Web Service
Socket
Server
Copyright © 1997 Alex Chaffee
Applet as Input Form
 Interactive
 Verify
input
 Can send data to CGI or to custom server
 More efficient use of client and server
resources
Copyright © 1997 Alex Chaffee
Applet Security Model
 a/k/a
“The Sandbox”
 Can’t
access local files
 Can’t launch local applications
 Can only connect to “applet host,” i.e. the
host from which the applet itself was
downloaded
 Can’t accept connections, i.e. can’t act as a
server
Copyright © 1997 Alex Chaffee
Applet Tag
<APPLET CODE=Animator HEIGHT=100
WIDTH=100>
<PARAM NAME=speed VALUE=50>
</APPLET>
Browser Virtual Machine
 Every
browser has its own VM
 Starts up either at launch or the first time
Java is needed
 “Starting
Java...”
Browser compatibility
 Every
version of Java is slightly different
 Browsers, yuck
 Navigator
2.x, 3.x, 4.x
 Internet Explorer 3.x, 4.x
 HotJava
 We
need...
Copyright © 1997-8 Alex Chaffee
The Activator
Copyright © 1997-8 Alex Chaffee
Activator, a/k/a Java Plug-in
 uses
latest JRE
 to deploy Java on intranets
 eventually, on Internet
 Not a perfect solution
Copyright © 1997-8 Alex Chaffee
Microsoft's Java
Copyright © 1997-8 Alex Chaffee
Java vs. HTML
 HTML is
a presentation format
 Was never meant to be used for interactive
applications
 Latency, or turn-around time, is too high
 Dynamic HTML is really just window
dressing
Copyright © 1997-8 Alex Chaffee
Java vs. HTML
 Java
is a full-fledged application language
 High-level of interaction with low-latency
 More powerful and easier to use interfaces
 Flexible enough to play any part in a
solution
Copyright © 1997-8 Alex Chaffee
Java can do it all
 Server-side
or back-end processing
 Middleware to transport and translate
information
 Front-end user interface
 Adapts to client: from PC’s, NC’s to Handheld devices
Copyright © 1997-8 Alex Chaffee
Marimba Castanet
 Marimba
Castanet delivers applications
 Changes nature of software
 No more upgrades! Just automatic updates
 http://www.marimba.com/
 Founded by four original Java team
members
Copyright © 1997-8 Alex Chaffee
Java vs. JavaScript
 Totally
different technologies
 JavaScript
 Browser
scripting language
 Integrated with HTML page
 Similar syntax
Java and Multimedia
Java and Streaming
 Streaming
- starting to play a sound or
video before it has completely downloaded
 A few streaming players written in Java
 Flash
 Shockwave
Multimedia FAQ
Is Java low-bandwidth
friendly?
 Con:
 Startup
time
 Need to load class files as well as media files
 Pro:
 Complete
control over what media you
download at what time
 Class files usually small
Is there an authoring
environment to help you write
Java?
 A few
packages allow you to create
animations or ads and output class files
 There are plenty of IDEs that require you to
write code
 Many IDEs use Java Beans to make
programming more visual
How does one with no
programming knowledge
oversee a Java based project?
What are some simple uses of
Java on a Web site?
 Playing
a sound
 Displaying an animation
 better
to use GIF89
 Interactive
 better
form
to use JavaScript
 Interactive
banner ad
What's a good price to pay for
a Java programmer you aren't
sleeping with?
 $50-$150
/ hr
Is Java good for developing
games?
 Sure,
if you keep the window small
 MPlayer
 http://www.mplayer.com/java/games/
Will Java be around 2 years
from now?
 Absolutely
Can you show me some kewl
stuff done in Java?
 http://www.tdb.uu.se/~karl/brain.html
 http://www.mplayer.com/java/games/
 http://fragisland.fragzone.se
Server-side Java
Copyright © 1997-8 Alex Chaffee
Servlets
 Cross-platform
server-side scripting
 Like CGI, only cooler
Copyright © 1997-8 Alex Chaffee
Java Web Server
 Server
written in Java
 Runs servlets
 Cheap
Copyright © 1997-8 Alex Chaffee
Java Application Server
 Based
on Java Web Server
 High-performance
 Enterprise Java Beans
Copyright © 1997-8 Alex Chaffee
Enterprise Java Beans
 Framework
for enterprise servers
 Adds transactions, persistence,
multithreading to server
 Deals with tough issues, keeping server-side
business objects simple
 Many EJB servers (IBM, Weblogic,
JavaSoft, etc.)
Copyright © 1997-8 Alex Chaffee
Java Components
Copyright © 1997-8 Alex Chaffee
Spaghetti Code
Business logic mingled with systems code
 Ported to legacy systems
 Complex to develop
 Expensive to maintain

Copyright © 1997-8 Alex Chaffee
Java Beans
 Marketable
software parts
 Business applications as reusable
components
 Leverages legacy systems
 Easy to build/extend
 Easy to distribute
Copyright © 1997-8 Alex Chaffee
What is a component?
 Software
“part”
 Self-contained, independent
 Plug-and-play, drag-and-drop
 Interact and interoperate with other
components
 Assemble components to create an
application
 Ready for use by visual programming tools
 Marketable
Copyright (c) 1997 Alex Chaffee
Split Development
 JavaBeans
producers
 Create
components for user-interface and
business-logic
 JavaBeans
consumers
 Use
JavaScript Applet Embedding for web
pages
 Use JavaStudio and other visual development
tools
Copyright © 1997-8 Alex Chaffee
Commercial User-Interface
JavaBeans
 JScape
(www.jscape.com)
 KL Group (www.klg.com)
 Lotus Kona project (www.lotus.com)
 Rogue Wave
 Dundas
 Many more: see
http://www.javasoft.com/beans/
Copyright © 1997-8 Alex Chaffee
Enterprise Java Beans
 Adds
business services to Java
 Transactions, naming, etc.
 Simplified development
 don’t
need to worry about threading, locking,
transaction issues
 IBM
heavily involved
Copyright © 1997-8 Alex Chaffee
Java Myths
Copyright © 1997-8 Alex Chaffee
Myth: Java is Proprietary
Truly open standards
 Developed in collaboration with other partners

 IBM,
Symantec, Intel, Oracle, …
Long period of public comment and revision
 Several "clean-room" implementations underway

 Kaffe
 Sun
does not compete with application developers
 Or

does it? (Java Application Server, HotSpot)
Java is an ISO Publically Available Standard
Copyright © 1997-8 Alex Chaffee
 approved 20 to 2
Myth: Java has poor
performance
 Video
Games
Island – Quake Rendering Engine
(http://fragisland.fragzone.se/)
 Warp - Karl Hornell is God
(http://www.tdb.uu.se/~karl/java/warp.html)
 Frag
 Built-in
Multi-threading improves
performance
Copyright © 1997-8 Alex Chaffee
Myth: Java has poor
performance
 Interpreter
is fine for IO-bound apps
(including UI)
 Very fast with Just-in-time (JIT) compilers
 Now
available on most platforms
 HotSpot
 Object-oriented
optimization
 Generational Garbage Collection
 malloc/free
test: JVM 18 sec, MSJVM 8 sec, C++ 6
sec, HotSpot 2 sec.
 Many
other enhancements
Copyright © 1997-8 Alex Chaffee
Myth: Java has poor
performance
 Compile
to native code where possible
 Compile server-side applications directly to
the platform on which they’ll be used
 SuperCede and Symantec Café/Visual Café
support this
 Note: lose some benefits of Java (notably
dynamic linking)
Copyright © 1997-8 Alex Chaffee
Myth: Java is immature
 Compiler
Bugs
 Almost
none in real-world experience
 Java Compatibility Test required by all JavaVM
licensees
Copyright © 1997-8 Alex Chaffee
Myth: Java is immature
 Class
Library Bugs
 AWT
in JDK 1.1 much improved
 JFC takes Java UI to the next level
Copyright © 1997-8 Alex Chaffee
Myth: Java is immature
 Java
Virtual Machine problems
 Most
are from implementations in browsers
 They lag behind JDK releases
 Affects “cross-platform” compatibility
 100% Pure Java crusade, run seamlessly across
platforms
 Activator
Copyright © 1997-8 Alex Chaffee
Myth: Write once, run
anywhere
 Should
be, “Write once, debug everywhere,
run anywhere”
 Need a good debugger (like Café)
Copyright © 1997-8 Alex Chaffee
Java Myths: NCs vs. PCs
 PC
vs NC: reality both will co-exist and
overlap in functionality
 Network and server load issues: reality
careful system administration and caching
required
 Don't need to throw everything away and
start from scratch
Copyright © 1997-8 Alex Chaffee
Myth: Java vs. Microsoft
 Java
works great under Microsoft OS
 IIS has full Java integration for ASPs
Copyright © 1997-8 Alex Chaffee
Java Libraries and APIs
Copyright © 1997-8 Alex Chaffee
Java API Strategy
Copyright © 1997-8 Alex Chaffee
Core Libraries (APIs)
 UI
 JFC
 IO
 Net
 JDBC
 RMI
Copyright © 1997-8 Alex Chaffee
Extended APIs







Electronic Commerce
Network Management
Security
JavaBeans - GUI Components
Enterprise Java - Enterprise Wide Backend Database
Connectivity
Server - Web Server or Distributed Applications
JavaMedia - Multimedia
Copyright © 1997-8 Alex Chaffee
User Interface: AWT
 Based
on native widgets
 Native look-and-feel
 Simple components
Copyright © 1997-8 Alex Chaffee
Swing/JFC
 Builds
on AWT and IFC
 Pluggable look and feel
 Rich set of pre-defined components
 Fully customizable
 Simplify commercial GUI development
 Open component market
Copyright © 1997-8 Alex Chaffee
Swing GUI
Copyright © 1997-8 Alex Chaffee
AFC / WFC
 Microsoft's
alternative
 Write once, run on Windows
 Out as of March 11, 1998
Copyright © 1997-8 Alex Chaffee
Standard Extensions
 Servlets
 InfoBus
 Java
Help
 JavaMail
Copyright © 1997-8 Alex Chaffee
Java and Business
 JDBC
 JNDI
(Java Naming and Directory
Interface)
 Java Transaction Services
 Enterprise Java Beans
Copyright © 1997-8 Alex Chaffee
Distributed Computing
Copyright © 1997-8 Alex Chaffee
java.net
 uses
TCP/IP
 works on all Java platforms
 all open protocols of the Internet
 HTTP,
 Source
FTP, SMTP, IMAP
code:
Socket s = new Socket
(“www.internet.com”,80);
Copyright © 1997-8 Alex Chaffee
Other Network Technologies
 RMI
 CORBA
 JDBC
Other Java
Initiatives/Environments
Copyright © 1997-8 Alex Chaffee
JavaPC
 Turn
old PCs into NCs
Copyright © 1997-8 Alex Chaffee
Personal Java
 Tailored
for products such as mobile
phones, set top boxes, screenphones, midrange mobile phones
 Designed to fit in devices with 2 Mb or less
Copyright © 1997-8 Alex Chaffee
Embedded Java
 tailored
for small memory, high volume
products
 Tailored for products such as industrial
controllers, pagers, routers, switches
 Designed to fit in devices < .5 Mb ROM
 Doesn't require general purpose applet
downloading capabilities
 Includes the Java VM and core set of APIs
Copyright © 1997-8 Alex Chaffee
Java Card
 Use
in Smart Cards
 Java Ring
 Dallas
Semiconductor
 32K program RAM, 6K data RAM
 Serial port interface
 Contains private key crypto
 Runs off the “1” bits
 Auto-zeroing RAM
Copyright © 1997-8 Alex Chaffee
Other Companies
Copyright © 1997-8 Alex Chaffee
Netscape
 First
Java licensee
 Recently announced they're canceling their
Java program
 Java will still work in Netscape with
Activator etc.
 Also working (halfheartedly) on Javagator
Copyright © 1997-8 Alex Chaffee
Microsoft
 COM
integration
 IIS
 AFC
/ WFC
 Visual J++ 6.0
 SDKJ 3.0 just released in beta
 Write once, run on Windows
 Did someone say “lawsuit?”
Copyright © 1997-8 Alex Chaffee
Symantec
 First
with first out with dev tools, an IDE, a
RAD IDE, a JIT, and a database-oriented
product
 Developing JFC core technologies
 Developing JFC look-and-feels
 Just-in-time compiler keeps getting better
 Enhancing debugger support
Copyright © 1997-8 Alex Chaffee
IBM
 VisualAge
for Java - nice RAD tool
 San Francisco
 Enterprise Java Beans
 Licensing picoJava
Copyright © 1997-8 Alex Chaffee
Developing Java
Copyright © 1997-8 Alex Chaffee
Developing Java:IDEs
 Best
ones are on PC
 Symantec Café
 Borland JBuilder
 Microsoft Visual J++
Copyright © 1997-8 Alex Chaffee
Developing Java: Java Studio
Copyright © 1997-8 Alex Chaffee
Conclusion
Copyright © 1997-8 Alex Chaffee
[APPLAUSE]
Copyright © 1997-8 Alex Chaffee
[DINNER]
Copyright © 1997-8 Alex Chaffee
Relevant Web Site Resources
 Javasoft
& Sun: www.javasoft.com &
www.sun.com
 Developer.com: java.developer.com
 Symantec: www.symantec.com
 IBM: www.ibm.com/java
 Borland: www.borland.com
 SuperCede: www.supercede.com
 Purple Tech: www.purpletech.com
Copyright © 1997-8 Alex Chaffee
Credits

Purple Technology
 Java

Symantec Corp.
 Java

Training and Consulting
Development Tools
Advanced Web Technologies
 Java-only

training, mentoring, and consulting company
Sun Microsystems
 JavaOne
presentations: Lew Tucker, Alan Baratz, James
Gosling

Personal Thanks
 Lew
Tucker, Gerry Seidman, Ian McFarland
Copyright © 1997-8 Alex Chaffee
Appendix: Networking Basics
Copyright © 1997 Alex Chaffee
Networking Basics
 TCP/IP vocabulary
and concepts
 WWW vocabulary and concept
Copyright © 1997 Alex Chaffee
Telnet Application
 Demo
of time service (port 13)
 Demo of login service (port 23)
 Demo of HTTP service (port 80)
Copyright © 1997 Alex Chaffee
A Network Is...
 node
 any
device on the network
 host
a
computer on the network
 address
 computer-readable
 host
name for host
name
 human-readable
name for host
Copyright © 1997 Alex Chaffee
A Network Does...
 datagram
(or “packet”)
 little
bundle of information
 sent from one node to another
 protocol
 roles,
vocabulary, rules for communication
 IP
 the
Internet Protocol
Copyright © 1997 Alex Chaffee
TCP/IP: The Internet Protocol
Application Layer (HTTP, FTP, SMTP)
Transport Layer (TCP, UDP)
Internet Layer (IP)
Physical Network
Copyright © 1997 Alex Chaffee
TCP/UDP/IP

IP
 raw
packets
 the “Internet Layer”

TCP
 data
stream
 reliable, ordered
 the “Transport Layer”

UDP
 user
datagrams (packets)
 unreliable, unordered
 the “Transport Layer”
Copyright © 1997 Alex Chaffee
The Three ‘I’s
 internet
 any
IP-based network
 Internet
 the
big, famous, world-wide IP network
 intranet
a
corporate LAN-based IP network
 extranet
 accessing
corporate data across the Internet
Copyright © 1997 Alex Chaffee
IP Addresses
 IP Address:
identifies a host
 4 bytes = 2^32 = 4,294,967,296
 DNS: converts host names / domain names
into IP#s
Copyright © 1997 Alex Chaffee
IPv6
 aka
IP: the Next Generation
 16-byte addresses
 2^128 =
340,282,366,920,938,460,000,000,000,000,
000,000,000
 No Y2K problem: InetAddress Class hides
implementation
Copyright © 1997 Alex Chaffee
Sockets and Ports
 Port:
a meeting place on a host
 one
service per port
 1-1023 = well-known services
 1024+ = experimental services, temporary
 Socket:
a two-way connection
Copyright © 1997 Alex Chaffee
Sockets and Ports (Diagram)
Client
Socket
port 13
Time Service
port 80
Web Service
Socket
Server
Copyright © 1997 Alex Chaffee
Well-Known Ports
 20,21:
FTP
 23: telnet
 25: SMTP
 43: whois
 80: HTTP
 119: NNTP
 1099: RMI
Copyright © 1997 Alex Chaffee
The World Wide Web
 Runs
on the Internet
 Uses HTTP protocol
 Invented by Tim Berners-Lee (and a cast of
thousands)
Copyright © 1997 Alex Chaffee
URL
 protocol://host[:port][/path/][file][#anchor]
 http://www.javasoft.com/sfaq/index.html
 http://www.javasoft.com/sfaq/
 ftp://ftp.stinky.com/pub/java/course.zip
Copyright © 1997 Alex Chaffee
HTTP
 port
80 default
 Client:
GET path HTTP/1.0
Header: value
blank line
 Server:
HTTP/1.0 OK 200
Header: value
blank line
data
 telnet
demo again
Copyright © 1997 Alex Chaffee
HTML
 Text
file
 “Tags” - markup commands embedded in
text
 e.g.
This is <B>bold</B> and this is
<I>italics</I>
Copyright © 1997 Alex Chaffee