|
Demystifying Java for
Intranets |
|
|
Demystifying Java for Intranets
Subtext: Limiting proprietary exposure
'Those who will not learn the lessons of history are
condemned to repeat them'
Simon Brooke
IBSC
What I'm going to talk about
- Background to the technology
- Using Java in the Organisation
- Issues, lessons and problems
- Conclusion
Background to the technology
What is an Intranet?
- A Web server for internal documents?
- A new way of communicating within the organisation?
- How the future works?
'Intranet' concept: history and background
or 'none of this is new' part one
Intranets: Open, heterogenous networks within
organisations, carrying distributed hypertext
- Project
Xanadu, Ted Nelson 1960
-
Distributed hypertext over heterogenous networks
- TCP/IP, Xerox PARC, 1970s
-
Transmission of data over unreliable networks of
networks
- HTML, Tim
Berners-Lee, CERN, 1990
-
Distributed hypertext over heterogenous networks - much
simpler than Xanadu
- 'Intranet', Sun Microsystems, 1995
- Use of Internet technology for internal systems - coined
to describe a concept already widespread
What is Java?
- Eye candy on Web pages?
- An interesting language for Web enabled
applications?
- The future of software engineering?
Java: history and background
or 'none of this is new' part two
Brief history of programming languages
- LISP, John McCarthy,
1959
-
- Automatic memory management and Garbage
Collection
- BCPL: Martin Richards, Cambridge University, 1969
-
- low level typeless language
- compiled to compact interpreted ('CINT') code,
hardware independent.
- CINT code interpreter is 'virtual machine'.
- C: Thompson & Richie, Bell Labs, 1972
-
- derived directly from BCPL but compiles to machine
code
- used to write the UNIX operating system
- became widely used
- [horrible] 'object oriented' extensions - C++ and
Objective C.
- Smalltalk, Goldberg, Kay and others, Xerox PARC,
1973
-
- Automatic memory management
- Everything is an object
- Class inheritance
- Interactive graphical user interface
- Oak: James Gosling, Sun Microsystems, 1990
-
- Targeted at consumer electonics products
- Like LISP, memory management is automatic
- Like SmallTalk, everything is an object
- Like BCPL, compiles to hardware independent code
- Only the syntax is like C
- Java: James
Gosling et al, Sun Microsystems 1995
- OAK plus Web browser renamed 'Java' and launched publicly
by Sun
- JDBC: Sun Microsystems 1996
- Abstract database connectivity extensions to the standard
Java classes
In summary:
Java and Intranet technology
- TCP/IP: vendor independent network architecture
- HTML: vendor independent document architecture
- HTTP: vendor independent distribution architecture
- JAVA: vendor independent application architecture
- JDBC: vendor independent database connectivity
Using Java in the organisation
-
Tickling the surface: up to the minute news in BT
-
Taking the plunge: Tracking customer orders at
ScottishTelecom
Tickling the surface: up to the minute news in BT
'Ticker-tape' applet on British Telecom Intranet's front
page collects current shareprice, up to the minute news
headlines, and news release information automatically into one
simple interface widget.
Cost to implement: about five man days, about
£3,000.
Taking the plunge: Tracking customer orders at
ScottishTelecom
- Background
- The Solution
- The benefits
- How long it took...
Streamline: Background
- Orders coming into a large telecommunications
organisation require co-operation between a numbr of
teams.
- People working on those orders need to know where they
are up to and what others have done.
- People work in a number of different locations across the
country, and some require access to the information when out
in the field.
- Workflow needs to be managed.
NOTE: This is a prototype system, not
yet deployed.
Streamline: the Solution [1]
ANSI SQL databse holds details of
- Accounts
- Contacts
- Contracts
- Customers
- Enquiries
- Locations
- Memos
- Products
- Provisions
- Tasks
- Tasktypes
- Workers
- Work groups
- Workflow gates
Streamline: the Solution [2]
Servlets integrated into a Web server interrogate the
database to produce interactive forms tailored to the
individual user
- Any (JSDK compliant) Web server
- Any (JDBC compliant) Database Management System
- Any web browser - even one built into a mobile phone
Streamline: the Solution [3]
Streamline: the benefits
-
Extraordinarily portable:
- Can change operating system
- Can change web server
- Can change database server
- Can change look and feel
All without recompiling
- Very lightweight use of network
- Very lightweight client
- Rapid and low-cost development
Streamline: how long it took
Plan said three people, one month...
... but I broke my back on day one.
In practice probably three man months, but spread over more
time than planned.
Issues, lessons and problems
-
Stability and versions
-
Microsoft Java versus Pure Java
-
Performance
-
Productivity
-
Vendor Independence: why does it matter?
Stability and versions
Versions of Java
- 'Benefit' is everyone is using the same version...
- But Java still specification changing rapidly
- Will this run on version X?
Less of a problem on an Intranet. If you can get everyone
using at least a given version Java VM! On the Internet, assume
version 1.0
Versions of your applications/applets
Importance of single (or mirrored) distribution
directory.
Microsoft Java versus Pure Java
- Microsoft Java: Java with proprietary extensions, runs
only on Microsoft platforms. If you go down this route you're
stuck with Microsoft.
- '100% Pure Java': theoretically controlled by open body,
but still heavily influenced by Sun. Nevertheless runs on all
platforms, irrespective of vendor. If you go down this route
you can change vendor.
Performance
- Not as good as languages which compile to native
code
- But not significantly worse
- High level networking interfaces and Remote Method
Invocation allow load balancing across the network
- Programmers are expensive, processors are cheap...
- Shovel more silicon at the problem
Productivity
-
Memory management eliminates major factors in poor
programmer productivity
- Memory leaks
- 'Walking off the end' of data structures
- Object orientation makes code re-use easier
Vendor Independence: why does it matter?
Year 2000 problem:
- How old are some of the applications that businesses
depend on today?
- What hardware and operating systems were they designed to
run on?
- What hardware and operating systems will your business
use when the applications you are building now are that
age?
Tools and Technologies
-
Tools for Java
-
Applications, Applets and the Intranet
-
Servlets, Aglets, Beans...
-
Corba
-
Thin client or "Network Computer"
Tools for Java
The bottom line is that you should use Sun's JDK (or your
local platform's equivalent) and the text editor of your
choice. None of the available IDEs are worth what they cost.
All will cause you more problems than they solve. Unless you
enjoy paying to beta test products, there's no reason to
purchase any of these products at this time.
source: comp.lang.java
FAQ
Applications, Applets and the Intranet
-
Applets
- 'Run in Sandbox'
- Easy to ensure current version
-
Applications
- 'Can do anything'
- Less easy to ensure current version
-
But on the Intranet...
-
Signed applets can do anything
- Java 1.1 extension
- distinction becomes more blurred
Servlets, Aglets, Beans...
- Servlets
- 'mini-servers' written in Java, runs within the context
of a HTTP server
- Aglets
- IBM proposal for roving agents
- Beans
- Java classes designed to be manipulated by graphical
programming tools
Thin client or "Network Computer"
- Oracle/SUN scheme to beat wintel monopoly?
- Dead idea?
- Why?
- "Gartner Group says 40% of enterprises will deploy NC's
for some uses by 1999" unverified
- Old 486 machines running a browser can deliver high
quality client functionality.
- and keep an eye on Corel Computer
- also worth playing with: Virtual Network
Computer
- 'Common Object Request Broker Architecture'
- Technology for interworking between applications...
- ...written in different object oriented languages...
- ... running on distributed platforms ...
- ... and storing objects in a common repository
Conclusion: Java on the Intranet
- Not just eye candy on an internal Web site
- Real potential to change the way large, complex systems
can be built
- Robust, lightweight, well engineered and cheap
- Still young technology, not yet fully mature
- If you aren't doing it now, your competitors are.
'Those who will not learn the lessons of history are
condemned to repeat them'
Resources
- Books
-
- Java in a
Nutshell, 2nd Edition
- A really useable reference
- Java
Examples in a Nutshell : A Companion Volume to Java in a
Nutshell
- This is actually a very good tutorial, although
that's not what it claims to be
- Database
Programming with JDBC and Java
- Possibly the best book on the subject so far, but
hard work
- The
Java Programming Language
- A tutorial, and straight from the horse's mouth. But
heavy going.
- Web Sites
-
- http://sunsite.doc.ic.ac.uk/packages/java-http/
- Java(tm) Home Page - UK Mirror
- http://www.sun.com/java/
- Sun's Java site
- http://www.javasoft.com/docs/
- The official source for Java documentation.
- http://www.gamelan.com/
- The major source for free and commercial Java
software components
- http://www.javalobby.org/
- The Java Lobby - voluntary Java standards group
-
http://www.ibm.com/java/education/intro/courseoptions.htm
- IBM's on-line Java Course
-
http://members.xoom.com/ivelin/FreeBuilder/fb.html
- The Free Builder Project
- http://www.man.ac.uk/~whaley/kj/kanch.html
- Kanchenjunga: Java RAD Tool - possibly dead?
- http://www.chamisplace.com/prog/javaide/
- Java WebIDE - a complete Java IDE in a Web page!
- http://www.ibm.co.jp/trl/aglets/
- IBM Aglets Workbench - Home Page
Thank you
Simon Brooke, simon@jasmine.org.uk
Internet Business Servbices
Consulting