Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 155

Java: A to Z

Delivered By:
Alexander Day Chaffee, Purple Technology
Original Creator of Gamelan
(http://java.developer.com/ - EarthWeb)
alexc@purpletech.com

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 self-
enabled 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 of developers per script is usually one
 more 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 can have dozens of programmers
 more 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 a good idea
 Many libraries available for Perl
 Not very good GUI support
 Contains compiler and interpreter
Java Code
 Simple Object Oriented
 Distributed Interpreted
 Robust Safe
 Secure Architecture Neutral
 Portable High Performance
 Multi-Threaded Dynamic (GC)

Copyright © 1997-8 Alex Chaffee


Boy Scout Code
 trustworthy loyal
 helpful friendly
 courteous kind
 obedient cheerful
 thrifty brave
 clean 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 (1993)
 Arthur van Hoff
 WebRunner (1994)
 Patrick 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 of Gamelan
 Spring 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
Source File Java Virtual Machine (JVM)
(.java) ClassLoader

Compiler Bytecode Verifier


(javac)
Interpreter Just-in-time
compiler
Class File
(.class)
Network Security Manager
or
File System

= security gateway 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 locally
 Like 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)

port 13 Time Service

Client Web Service


port 80

Socket 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 Hand-
held 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 form
 better 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
 approved 20 to 2

Copyright © 1997-8 Alex Chaffee


Myth: Java has poor
performance
 Video Games
 Frag Island – Quake Rendering Engine
(http://fragisland.fragzone.se/)
 Warp - Karl Hornell is God
(http://www.tdb.uu.se/~karl/java/warp.html)
 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, FTP, SMTP, IMAP
 Source 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, mid-
range 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 Training and Consulting
 Symantec Corp.
 Java 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 name for host
 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)

port 13 Time Service

Client Web Service


port 80

Socket 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

You might also like