Upload
nayan-mandal
View
219
Download
0
Embed Size (px)
Citation preview
8/12/2019 Java New Media
1/155
Copyright 1997-8 Alex Chaffee
Java: A to Z
Delivered By:
Alexander Day Chaffee, Purple Technology
Original Creator of Gamelan
(http://java.developer.com/ - EarthWeb)[email protected]
8/12/2019 Java New Media
2/155
Copyright 1997-8 Alex Chaffee
Purple Technology
Java Training and Consulting
All levels of courses
http://www.purpletech.com/
8/12/2019 Java New Media
3/155
Copyright 1997-8 Alex Chaffee
What is Java?
Largest island of the equatorial achipelago
of Indonesia
Famous for beaches and coffee
An island
8/12/2019 Java New Media
4/155
Copyright 1997-8 Alex Chaffee
What is Java?
A programming language
Developed by Sun Microsystems
Open specification
8/12/2019 Java New Media
5/155
Copyright 1997-8 Alex Chaffee
What is Java?
An architecture
Virtual Machine
8/12/2019 Java New Media
6/155
Copyright 1997-8 Alex Chaffee
What is Java?
A platform
Libraries / APIs
Applications
Applets
8/12/2019 Java New Media
7/155Copyright 1997-8 Alex Chaffee
What is Java?
An Operating System (OS)
Tailored for NCs and Embedded Systems
Not an OS for PCs
8/12/2019 Java New Media
8/155Copyright 1997-8 Alex Chaffee
What is Java?
A really good buzzword
Coined by Kim Polese
8/12/2019 Java New Media
9/155Copyright 1997-8 Alex Chaffee
Why Java?
High Productivity
Low Cost
Run Anywhere
N-tier Applications
8/12/2019 Java New Media
10/155Copyright 1997-8 Alex Chaffee
Where is Java?
Server-side programming
Enterprise computing
Distributed computing
Client-side multimedia
8/12/2019 Java New Media
11/155Copyright 1997-8 Alex Chaffee
Where is Java heading?
Clients (Network, Distributed Computing
with Nodes)
Servers (Web servers, collaborationservices)
Embedded (TV Set-top, cell phones, smart
cards)
8/12/2019 Java New Media
12/155Copyright 1997-8 Alex Chaffee
Facts and Figures
8/12/2019 Java New Media
13/155
Copyright 1997-8 Alex Chaffee
Number of Java Developers
(IDC)
8/12/2019 Java New Media
14/155
Copyright 1997-8 Alex Chaffee
Real-world Java Examples
8/12/2019 Java New Media
15/155
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
8/12/2019 Java New Media
16/155
Copyright 1997-8 Alex Chaffee
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 memoryleaks. If we had done this in C, we would
still be debugging."
-Elmer Baldwin, President, via WorldNetwork.
8/12/2019 Java New Media
17/155
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 belongsto your company
Saving CSX $10M in next year
8/12/2019 Java New Media
18/155
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
8/12/2019 Java New Media
19/155
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 purifyingCSX 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 increasedby 10 percent."
8/12/2019 Java New Media
20/155
Copyright 1997-8 Alex Chaffee
Dun & Bradstreet
On-line office supply catalogue for in-house
use
Privileges according to status at company
8/12/2019 Java New Media
21/155
Copyright 1997-8 Alex Chaffee
Federal Express
"Java is our primary targeted application
platform for internal apps." says FedEx CIO
Dennis Jones. "No internal applicationwork is occurring for the client aside from
Java development."
Using Symantec Caf
8/12/2019 Java New Media
22/155
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 aconvenient way to access account
information - 24 hours a day, 7 days a
week." -Terry Bone, Ford Motor CreditCompany
8/12/2019 Java New Media
23/155
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 windowenvironments and greatly speeded up our
delivery of a working prototype version of
HSTAT (roughly six months from design to
delivery)."
8/12/2019 Java New Media
24/155
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 MichaelLove, vice president of the smart card
initiative at First Union Corp in Charlotte,
NC.
8/12/2019 Java New Media
25/155
Copyright 1997-8 Alex Chaffee
Java Foundations
8/12/2019 Java New Media
26/155
What is a computer?
CPU
Memory
Input/output devices
8/12/2019 Java New Media
27/155
What is a programming
language?Set of instructions for computer
Stored in memory, executed by CPU
Grammar
Examples
Perl
C
C++
BASIC
LISP
8/12/2019 Java New Media
28/155
Lifecycle of a program
Source code
Compiler
Object code
Linker
Executable code
8/12/2019 Java New Media
29/155
What is a Script?
A script is a program, but not all programs
are scripts
Scripting Languages:Lingo
Perl
JavaScript
TCL
8/12/2019 Java New Media
30/155
Script vs. Program
Scripts are
smaller
easier learning curve
less scalable
number of developers per script is usually one
more task-specificusually tailored to a specific program or
function
fewer functions available
8/12/2019 Java New Media
31/155
Script vs. Program
Programs are
usually larger
more powerful
more task-independent
more scalable
programs can have dozens of programmersmore code libraries
can produce their own graphical user interface
8/12/2019 Java New Media
32/155
Lifecycle of a script
Source code
Interpreter
8/12/2019 Java New Media
33/155
Perl
Right on the line between scripting and
programming language
Possible to write large programs in PerlNot a good idea
Many libraries available for Perl
Not very good GUI support
Contains compiler and interpreter
8/12/2019 Java New Media
34/155
Copyright 1997-8 Alex Chaffee
Java Code
Simple Object Oriented
Distributed Interpreted
Robust Safe
Secure Architecture Neutral
Portable High Performance
Multi-Threaded Dynamic (GC)
8/12/2019 Java New Media
35/155
Copyright 1997-8 Alex Chaffee
Boy Scout Code
trustworthy loyal
helpful friendly
courteous kind
obedient cheerful
thrifty brave
clean reverent
8/12/2019 Java New Media
36/155
Copyright 1997-8 Alex Chaffee
History
Green Project / FirstPerson / Oak
Consumer electronics
Set-top boxes
James Gosling, Patrick Naughton
8/12/2019 Java New Media
37/155
Copyright 1997-8 Alex Chaffee
History
LiveOak (1993)
Arthur van Hoff
WebRunner (1994)Patrick Naughton, Jonathan Payne
Java
Kim Polese
8/12/2019 Java New Media
38/155
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)
8/12/2019 Java New Media
39/155
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
8/12/2019 Java New Media
40/155
What is a Platform?
Combination of OS, API, installed
programs, and hardware
Sometimes means one of those things,sometimes means many
8/12/2019 Java New Media
41/155
Copyright 1997-8 Alex Chaffee
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 installedbase
E.g. all the computers on the Web
8/12/2019 Java New Media
42/155
Copyright 1997-8 Alex Chaffee
Cross-Platform
Write-Once-Run-Anywhere
AIX, HP-UX, MacOS, OS2, Win95, WinNT,
Netware, UnixWare, Irix, Solaris, and others
8/12/2019 Java New Media
43/155
Copyright 1997-8 Alex Chaffee
Platform Independent: How?
Virtual Machine
Application Application Application
Windows MacOS Unix
8/12/2019 Java New Media
44/155
Copyright 1997-8 Alex Chaffee
Java Class Lifecycle
Source -> Bytecode -> Interpreter
8/12/2019 Java New Media
45/155
Java Class Lifecycle
Source File(.java)
Class File
(.class)
Compiler
(javac)
Java Virtual Machine (JVM)ClassLoader
Bytecode Verifier
InterpreterJust-in-time
compiler
Security Manager
Operating System
Networkor
File System
= security gateway
8/12/2019 Java New Media
46/155
Copyright 1997-8 Alex Chaffee
Security Architecure
Has to go through Verifier on one side and
Security Manager on the other
Sandbox
Cryptography / signed applets
8/12/2019 Java New Media
47/155
Copyright 1997-8 Alex Chaffee
Secure
Java:
Adjustable security: untrusted through levels
of trustActiveX:
Binary trust: all or nothing
8/12/2019 Java New Media
48/155
Copyright 1997-8 Alex Chaffee
Java vs. ActiveX
Java ActiveX
File IO yes yes
Network IO yes yesApplet Caching yes yes
Erase hard disk no yes
Upload confidential informationno yes
8/12/2019 Java New Media
49/155
Copyright 1997-8 Alex Chaffee
Object-Oriented
Encourages more flexible and reliable
designs
Fosters reuse of code and design
Reduces maintenance costs
8/12/2019 Java New Media
50/155
Copyright 1997-8 Alex Chaffee
Automatic Memory
ManagementGreatly improves developer productivity
Reduces memory leakage problems
8/12/2019 Java New Media
51/155
Copyright 1997-8 Alex Chaffee
Powers of ten
Cost of fixing problems
Design = $1
Development = $10Debugging = $100
Deployment = $1000
Brooks, The Mythical Man MonthJava helps at early stages
Problems are caught early
8/12/2019 Java New Media
52/155
Copyright 1997-8 Alex Chaffee
Distributed Computing
Applications reside where theyre needed
saving valuable desktop space
Accessible from any connected location
Native support for distributed app
development (java.net, RMI, CORBA,
DCOM)
8/12/2019 Java New Media
53/155
Copyright 1997-8 Alex Chaffee
Server-side strength
Built-in support for networking makes
development easy
8/12/2019 Java New Media
54/155
Copyright 1997-8 Alex Chaffee
3-tier and n-tier development
Flexible implementations separate user
interface from business logic and from
database storage
8/12/2019 Java New Media
55/155
Copyright 1997-8 Alex Chaffee
Client-side Java
8/12/2019 Java New Media
56/155
Copyright 1997 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. cant write to
random memory)
8/12/2019 Java New Media
57/155
Copyright 1997 Alex Chaffee
Applets
Live inside a browser
Stored as class files on a Web server
Are delivered through the internet orintranet
On-demand, when needed
Run inside a Java-enabled web browser
Always downloads the latest version
Sometimes cached locally, but not reliably
8/12/2019 Java New Media
58/155
Applet Security
Security restrictions
Are secure
Limited or no access to the local machine(client)
8/12/2019 Java New Media
59/155
Copyright 1997 Alex Chaffee
Applets (Diagram)Browser Web Server
face.html
face.class
Here is my face:
8/12/2019 Java New Media
60/155
Copyright 1997 Alex Chaffee
Client
Sockets and Ports (Diagram)
port 13
port 80
Time Service
Web Service
Socket
Server
Socket
8/12/2019 Java New Media
61/155
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
8/12/2019 Java New Media
62/155
Copyright 1997 Alex Chaffee
Applet Security Model
a/k/a The Sandbox
Cant access local files
Cant launch local applicationsCan only connect to applet host, i.e. the
host from which the applet itself was
downloaded
Cant accept connections, i.e. cant act as a
server
8/12/2019 Java New Media
63/155
Applet Tag
8/12/2019 Java New Media
64/155
Browser Virtual Machine
Every browser has its own VM
Starts up either at launch or the first time
Java is neededStarting Java...
8/12/2019 Java New Media
65/155
Copyright 1997-8 Alex Chaffee
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...
8/12/2019 Java New Media
66/155
Copyright 1997-8 Alex Chaffee
The Activator
8/12/2019 Java New Media
67/155
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
8/12/2019 Java New Media
68/155
Copyright 1997-8 Alex Chaffee
Microsoft's Java
8/12/2019 Java New Media
69/155
Copyright 1997-8 Alex Chaffee
Java vs. HTML
HTML is a presentation format
Was never meant to be used for interactive
applicationsLatency, or turn-around time, is too high
Dynamic HTML is really just window
dressing
8/12/2019 Java New Media
70/155
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
8/12/2019 Java New Media
71/155
Copyright 1997-8 Alex Chaffee
Java can do it all
Server-side or back-end processing
Middleware to transport and translate
informationFront-end user interface
Adapts to client: from PCs, NCs to Hand-
held devices
8/12/2019 Java New Media
72/155
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
8/12/2019 Java New Media
73/155
Java vs. JavaScript
Totally different technologies
JavaScript
Browser scripting language
Integrated with HTML page
Similar syntax
8/12/2019 Java New Media
74/155
Java and Multimedia
8/12/2019 Java New Media
75/155
Java and Streaming
Streaming - starting to play a sound or
video before it has completely downloaded
A few streaming players written in JavaFlash
Shockwave
8/12/2019 Java New Media
76/155
Multimedia FAQ
I J l b d id h
8/12/2019 Java New Media
77/155
Is Java low-bandwidth
friendly?Con:
Startup time
Need to load class files as well as media filesPro:
Complete control over what media you
download at what timeClass files usually small
Is there an authoring
8/12/2019 Java New Media
78/155
s the e an autho ing
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 towrite code
Many IDEs use Java Beans to make
programming more visual
How does one with no
8/12/2019 Java New Media
79/155
programming knowledge
oversee a Java based project?
Wh t i l f
8/12/2019 Java New Media
80/155
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
8/12/2019 Java New Media
81/155
g p p y f
a Java programmer you aren't
sleeping with?
$50-$150 / hr
I J d f d l i
8/12/2019 Java New Media
82/155
Is Java good for developing
games?Sure, if you keep the window small
MPlayer
http://www.mplayer.com/java/games/
Will J b d 2
8/12/2019 Java New Media
83/155
Will Java be around 2 years
from now?Absolutely
C h k l
8/12/2019 Java New Media
84/155
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
8/12/2019 Java New Media
85/155
Copyright 1997-8 Alex Chaffee
Server-side Java
8/12/2019 Java New Media
86/155
Copyright 1997-8 Alex Chaffee
Servlets
Cross-platform server-side scripting
Like CGI, only cooler
8/12/2019 Java New Media
87/155
Copyright 1997-8 Alex Chaffee
Java Web Server
Server written in Java
Runs servlets
Cheap
8/12/2019 Java New Media
88/155
Copyright 1997-8 Alex Chaffee
Java Application Server
Based on Java Web Server
High-performance
Enterprise Java Beans
8/12/2019 Java New Media
89/155
Copyright 1997-8 Alex Chaffee
Enterprise Java Beans
Framework for enterprise servers
Adds transactions, persistence,
multithreading to serverDeals with tough issues, keeping server-side
business objects simple
Many EJB servers (IBM, Weblogic,JavaSoft, etc.)
8/12/2019 Java New Media
90/155
Copyright 1997-8 Alex Chaffee
Java Components
8/12/2019 Java New Media
91/155
Copyright 1997-8 Alex Chaffee
Spaghetti Code
Business logic mingled with systems code
Ported to legacy systems
Complex to developExpensive to maintain
8/12/2019 Java New Media
92/155
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
8/12/2019 Java New Media
93/155
Copyright (c) 1997 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 anapplication
Ready for use by visual programming tools
Marketable
8/12/2019 Java New Media
94/155
Copyright 1997-8 Alex Chaffee
Split Development
JavaBeans producers
Create components for user-interface and
business-logicJavaBeans consumers
Use JavaScript Applet Embedding for web
pages
Use JavaStudio and other visual development
tools
Commercial User Interface
8/12/2019 Java New Media
95/155
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/
8/12/2019 Java New Media
96/155
Copyright 1997-8 Alex Chaffee
Enterprise Java Beans
Adds business services to Java
Transactions, naming, etc.
Simplified developmentdont need to worry about threading, locking,
transaction issues
IBM heavily involved
8/12/2019 Java New Media
97/155
Copyright 1997-8 Alex Chaffee
Java Myths
8/12/2019 Java New Media
98/155
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
Myth: Java has poor
8/12/2019 Java New Media
99/155
Copyright 1997-8 Alex Chaffee
Myth: Java has poor
performance
Video Games
Frag IslandQuake 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
Myth: Java has poor
8/12/2019 Java New Media
100/155
Copyright 1997-8 Alex Chaffee
Myth: Java has poor
performanceInterpreter is fine for IO-bound apps
(including UI)
Very fast with Just-in-time (JIT) compilersNow available on most platforms
HotSpot
Object-oriented optimizationGenerational Garbage Collection
malloc/free test: JVM 18 sec, MSJVM 8 sec, C++ 6
sec, HotSpot 2 sec.
Many other enhancements
Myth: Java has poor
8/12/2019 Java New Media
101/155
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 theyll be usedSuperCede and Symantec Caf/Visual Caf
support this
Note: lose some benefits of Java (notablydynamic linking)
8/12/2019 Java New Media
102/155
Copyright 1997-8 Alex Chaffee
Myth: Java is immature
Compiler Bugs
Almost none in real-world experience
Java Compatibility Test required by all JavaVMlicensees
8/12/2019 Java New Media
103/155
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
8/12/2019 Java New Media
104/155
Copyright 1997-8 Alex Chaffee
Myth: Java is immature
Java Virtual Machine problems
Most are from implementations in browsers
They lag behind JDK releasesAffects cross-platform compatibility
100% Pure Java crusade, run seamlessly across
platforms
Activator
Myth: Write once run
8/12/2019 Java New Media
105/155
Copyright 1997-8 Alex Chaffee
Myth: Write once, run
anywhere
Should be, Write once, debug everywhere,
run anywhere
Need a good debugger (like Caf)
8/12/2019 Java New Media
106/155
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: realitycareful system administration and caching
required
Don't need to throw everything away andstart from scratch
8/12/2019 Java New Media
107/155
Copyright 1997-8 Alex Chaffee
Myth: Java vs. Microsoft
Java works great under Microsoft OS
IIS has full Java integration for ASPs
8/12/2019 Java New Media
108/155
Copyright 1997-8 Alex Chaffee
Java Libraries and APIs
Java API Strategy
8/12/2019 Java New Media
109/155
Copyright 1997-8 Alex Chaffee
gy
b ( )
8/12/2019 Java New Media
110/155
Copyright 1997-8 Alex Chaffee
Core Libraries (APIs)
UI
JFC
IONet
JDBC
RMI
d d A
8/12/2019 Java New Media
111/155
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
U I f AWT
8/12/2019 Java New Media
112/155
Copyright 1997-8 Alex Chaffee
User Interface: AWT
Based on native widgets
Native look-and-feel
Simple components
S /JFC
8/12/2019 Java New Media
113/155
Copyright 1997-8 Alex Chaffee
Swing/JFC
Builds on AWT and IFC
Pluggable look and feel
Rich set of pre-defined componentsFully customizable
Simplify commercial GUI development
Open component market
S i GUI
8/12/2019 Java New Media
114/155
Copyright 1997-8 Alex Chaffee
Swing GUI
AFC / WFC
8/12/2019 Java New Media
115/155
Copyright 1997-8 Alex Chaffee
AFC / WFC
Microsoft's alternative
Write once, run on Windows
Out as of March 11, 1998
S d d E i
8/12/2019 Java New Media
116/155
Copyright 1997-8 Alex Chaffee
Standard Extensions
Servlets
InfoBus
Java HelpJavaMail
J d B i
8/12/2019 Java New Media
117/155
Copyright 1997-8 Alex Chaffee
Java and Business
JDBC
JNDI (Java Naming and Directory
Interface)Java Transaction Services
Enterprise Java Beans
Di ib d C i
8/12/2019 Java New Media
118/155
Copyright 1997-8 Alex Chaffee
Distributed Computing
j t
8/12/2019 Java New Media
119/155
Copyright 1997-8 Alex Chaffee
java.net
uses TCP/IP
works on all Java platforms
all open protocols of the InternetHTTP, FTP, SMTP, IMAP
Source code:
Socket s = new Socket(www.internet.com,80);
Oth N t k T h l i
8/12/2019 Java New Media
120/155
Other Network Technologies
RMI
CORBA
JDBC
Other Java
8/12/2019 Java New Media
121/155
Copyright 1997-8 Alex Chaffee
Initiatives/Environments
J PC
8/12/2019 Java New Media
122/155
Copyright 1997-8 Alex Chaffee
JavaPC
Turn old PCs into NCs
P l J
8/12/2019 Java New Media
123/155
Copyright 1997-8 Alex Chaffee
Personal Java
Tailored for products such as mobile
phones, set top boxes, screenphones, mid-
range mobile phonesDesigned to fit in devices with 2 Mb or less
E b dd d J
8/12/2019 Java New Media
124/155
Copyright 1997-8 Alex Chaffee
Embedded Java
tailored for small memory, high volume
products
Tailored for products such as industrialcontrollers, pagers, routers, switches
Designed to fit in devices < .5 Mb ROM
Doesn't require general purpose appletdownloading capabilities
Includes the Java VM and core set of APIs
J C d
8/12/2019 Java New Media
125/155
Copyright 1997-8 Alex Chaffee
Java Card
Use in Smart Cards
Java Ring
Dallas Semiconductor32K program RAM, 6K data RAM
Serial port interface
Contains private key cryptoRuns off the 1 bits
Auto-zeroing RAM
Oth C i
8/12/2019 Java New Media
126/155
Copyright 1997-8 Alex Chaffee
Other Companies
Netscape
8/12/2019 Java New Media
127/155
Copyright 1997-8 Alex Chaffee
Netscape
First Java licensee
Recently announced they're canceling their
Java programJava will still work in Netscape with
Activator etc.
Also working (halfheartedly) on Javagator
Microsoft
8/12/2019 Java New Media
128/155
Copyright 1997-8 Alex Chaffee
Microsoft
COM integration
IIS
AFC / WFCVisual J++ 6.0
SDKJ 3.0 just released in beta
Write once, run on Windows
Did someone say lawsuit?
Symantec
8/12/2019 Java New Media
129/155
Copyright 1997-8 Alex Chaffee
Symantec
First with first out with dev tools, an IDE, a
RAD IDE, a JIT, and a database-oriented
productDeveloping JFC core technologies
Developing JFC look-and-feels
Just-in-time compiler keeps getting betterEnhancing debugger support
IBM
8/12/2019 Java New Media
130/155
Copyright 1997-8 Alex Chaffee
IBM
VisualAge for Java - nice RAD tool
San Francisco
Enterprise Java BeansLicensing picoJava
Developing Java
8/12/2019 Java New Media
131/155
Copyright 1997-8 Alex Chaffee
Developing Java
Developing Java:IDEs
8/12/2019 Java New Media
132/155
Copyright 1997-8 Alex Chaffee
Developing Java:IDEs
Best ones are on PC
Symantec Caf
Borland JBuilderMicrosoft Visual J++
Developing Java: Java Studio
8/12/2019 Java New Media
133/155
Copyright 1997-8 Alex Chaffee
Developing Java: Java Studio
Conclusion
8/12/2019 Java New Media
134/155
Copyright 1997-8 Alex Chaffee
Conclusion
8/12/2019 Java New Media
135/155
Copyright 1997-8 Alex Chaffee
[APPLAUSE]
8/12/2019 Java New Media
136/155
Copyright 1997-8 Alex Chaffee
[DINNER]
Relevant Web Site Resources
8/12/2019 Java New Media
137/155
Copyright 1997-8 Alex Chaffee
Relevant Web Site Resources
Javasoft & Sun: www.javasoft.com &
www.sun.com
Developer.com: java.developer.comSymantec: www.symantec.com
IBM: www.ibm.com/java
Borland: www.borland.comSuperCede: www.supercede.com
Purple Tech: www.purpletech.com
Credits
8/12/2019 Java New Media
138/155
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
Appendix: Networking Basics
8/12/2019 Java New Media
139/155
Copyright 1997 Alex Chaffee
Appendix: Networking Basics
Networking Basics
8/12/2019 Java New Media
140/155
Copyright 1997 Alex Chaffee
Networking Basics
TCP/IP vocabulary and concepts
WWW vocabulary and concept
Telnet Application
8/12/2019 Java New Media
141/155
Copyright 1997 Alex Chaffee
Telnet Application
Demo of time service (port 13)
Demo of login service (port 23)
Demo of HTTP service (port 80)
A Network Is
8/12/2019 Java New Media
142/155
Copyright 1997 Alex Chaffee
A Network Is...
node
any device on the network
hosta computer on the network
address
computer-readable name for hosthost name
human-readable name for host
A Network Does
8/12/2019 Java New Media
143/155
Copyright 1997 Alex Chaffee
A Network Does...
datagram (or packet)
little bundle of information
sent from one node to anotherprotocol
roles, vocabulary, rules for communication
IPthe Internet Protocol
TCP/IP: The Internet Protocol
8/12/2019 Java New Media
144/155
Copyright 1997 Alex Chaffee
TCP/IP: The Internet Protocol
Physical Network
Transport Layer (TCP, UDP)
Internet Layer (IP)
Application Layer (HTTP, FTP, SMTP)
TCP/UDP/IP
8/12/2019 Java New Media
145/155
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
The Three Is
8/12/2019 Java New Media
146/155
Copyright 1997 Alex Chaffee
The Three I s
internet
any IP-based network
Internetthe big, famous, world-wide IP network
intranet
a corporate LAN-based IP networkextranet
accessing corporate data across the Internet
IP Addresses
8/12/2019 Java New Media
147/155
Copyright 1997 Alex Chaffee
IP Addresses
IP Address: identifies a host
4 bytes = 2^32 = 4,294,967,296
DNS: converts host names / domain namesinto IP#s
IPv6
8/12/2019 Java New Media
148/155
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 hidesimplementation
Sockets and Ports
8/12/2019 Java New Media
149/155
Copyright 1997 Alex Chaffee
Sockets and Ports
Port: a meeting place on a host
one service per port
1-1023 = well-known services1024+ = experimental services, temporary
Socket: a two-way connection
Sockets and Ports (Diagram)
8/12/2019 Java New Media
150/155
Copyright 1997 Alex Chaffee
Client
Sockets and Ports (Diagram)
port 13
port 80
Time Service
Web Service
Socket
Server
Socket
Well-Known Ports
8/12/2019 Java New Media
151/155
Copyright 1997 Alex Chaffee
Well Known Ports
20,21: FTP
23: telnet
25: SMTP43: whois
80: HTTP
119: NNTP
1099: RMI
The World Wide Web
8/12/2019 Java New Media
152/155
Copyright 1997 Alex Chaffee
The World Wide Web
Runs on the Internet
Uses HTTP protocol
Invented by Tim Berners-Lee (and a cast ofthousands)
URL
8/12/2019 Java New Media
153/155
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
HTTP
8/12/2019 Java New Media
154/155
Copyright 1997 Alex Chaffee
HTTP
port 80 default
Client:GETpathHTTP/1.0
Header: valueblank line
Server:HTTP/1.0 OK 200
Header: valueblank line
data
telnet demo again
HTML
8/12/2019 Java New Media
155/155
Text file
Tags - markup commands embedded in
texte.g.
This is bold and this is
italics