Java New Media

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