Java

skatechildrenSoftware and s/w Development

Nov 3, 2013 (3 years and 10 months ago)

100 views

Java

Access ’98, Saskatoon

Ron Davies, Bibliomatics Inc.

rdavies@bibliomatics.com

Java



Java


The State of the Art


Java Applications


Future Directions

Java


The State of the Art

Java
-

State of the Art


Aim is still “simple, object
-
oriented,
robust, portable” programming language


New language features


Virtual machines


How Java is being applied


RAD tools

New Language Features

Java 1.2
(Nov. 1998?)



New, more flexible security model


Java Foundation Classes (JFC)


Accessibility features



Drag
-
and
-
drop functionality


Collections (utility objects)


Swing set (lightweight GUI components)


Swing Set


New windowing toolkit


Replaces AWT from Version 1.x


Contains lightweight components

Heavyweight Components

AWT Button
Win 95 Button Peer
Lightweight Components

Swing
JButton
Swing Set


Better control over “look
-
and
-
feel” with
configurable styles


Reduce the “write once, debug
everywhere” syndrome


Relatively simple to move from AWT to
Swing

Virtual Machines

Virtual Machines


Wider choice


New VMs by different companies (Novell,
Tower) and freeware groups (Linux,
FreeBSD)


More efficient


Just
-
in
-
Time compilation (Symantec) product
licensed by Sun and Novell


Optimize interpretation with in
-
line code


Performance substantially increased

Java Plug
-
In



Formerly known as “Activator”


Designed to overcome VM version
compatibility problems


Designed to frustrate Microsoft


Allows HTML page designer to specify
Java version preferred


Will download and install VM for user as
browser plug
-
in


Java Plug
-
in



Most appropriate for Intranets


Allow users to choose browser


Faster download times over internal net


Can rollout new Java features quickly


Less appropriate for Internet use


Slower than built
-
in browser VM


User resistance to plug
-
ins

Java Deployment

Java Deployment

DATABASE
APPL SERVER
CLIENT
Java Deployment

DATABASE
APPL SERVER
CLIENT
Java Deployment

DATABASE
WEB SERVER
WEB BROWSER
Java Deployment

DATABASE
WEB SERVER
WEB BROWSER
APPLETS
Java Deployment

DATABASE
WEB SERVER
WEB BROWSER
APPLETS
SERVLETS
Java Deployment

DATABASE
WEB SERVER
WEB BROWSER
APPLETS
SERVLETS
DB VM
Java Deployment


Choice in where to implement
functionality


Ability to leverage Java experience by use
at all three levels


Java RAD Tools

Java RAD Evaluations




Byte, March 1998


JavaWorld, November 1997


JavaWorld, April 1998

Java RAD Tools


JBuilder (Inprise)


Visual Age (IBM)


Visual Café
(Symantec)


PowerJ (Sybase)



BeanMachine (Lotus)


Visual J++
(Microsoft)


CosmoCode (SGI)


SuperCede


JavaStudio (Sun)


Visaj (Imperial)

RAD Features




Integrated editor/debugger (IDE)


JIT compilation


Visual programming


Drag object onto interface, connect objects


Collections of re
-
usable objects


Some bundled with IDE


Tools to set Bean properties to change
appearance or behaviour



RAD Features (con’t)


Database access


Integration with older technologies (C++)


Support for group development


Cost from $100
-

$30,000

RAD Problems



Source code availability for objects


Difficulties in subclassing or wrapping
objects for re
-
use


Compatibility of visual design/code views


Portability of visually designed layouts


Non
-
standard middleware or database
solutions


Compliance with Java standards

Java Library Applications

Integrated library systems

Information retrieval software

Network computer applications

Innovative Interfaces (ILS)


Re
-
developing user interface components


Developing new Java clients


Adjusting C
-
based servers as required


Business logic in programs does not change


Circulation currently in beta in two
libraries


Serials, then Acquisitions and Cataloguing
to follow; no current plans for OPAC



Innovative (con’t)


Using Plug
-
in (Activator) as VM


Currently 1.1 plus JFC classes



Swing


Collections


Proprietary communication protocols


Programmers decide whether to use IDE
(e.g. J++) or simple editor/compiler


Innovative Java Scorecard


State of VM (bugs, etc.)


Better GUI delivery of functionality


Multi
-
platform support


Less development time wasted with
memory leaks, etc.


Rapid rate of Java development (e.g.
Collection objects)


BestSeller (ILS)


Developing 3rd generation of Bestseller
software based on Java


Applets for all client functions except OPAC


Cataloguing


Acquisition, Periodicals


Circulation


Servlets support OPAC/HTML functionality


CORBA Java servers for some specific
functions (e.g. authentication)

Bestseller


Tools


Visual Cafe


Activator


Swing GUI classes


Initial implementation, Summer 1999


Other modules expected through rest of
the year


Bestseller Java Scorecard


Time required to master technology


Changes in recent versions


Limitations in some Beans


Increasingly rapid development,
integration of new team members


Unicode support


Better cross
-
platform support


Ameritech (ILS)


Java used in WebPac for OPAC


One large applet executes within browser


Provides authentication for user (e.g.
check patron record, fines etc.)


Cleans out all traces of user interaction
after timeout, providing privacy at public
workstations


Ameritech Java Scorecard


Time required to download applet


Browser compatibility with versions


Restrictive applet security (e.g. printing)


Greater control over user interaction than
with HTML


Performance better than plain HTML




Office of Research &
Special Projects, OCLC


All new development in Java


New Java
-
based Pears database builder


Server
-
side deployment, using Z39.50 as
network protocol


Using Web/HTML to deliver applications to
to end users (WebZ, Mantis)


Java will move gradually to other products
(e.g. FirstSearch, PRISM)

OCLC (con’t)


Tools


Variety of VMs and platforms, with and
without JIT compilers


Visual Quantify profiler


Plain JDK, no IDEs for development

OCLC Java Scorecard


Poor debugging


Reduced performance (though
not

a
critical factor)


Cross
-
platform support


Unicode support


Thread support


Reliability


Utility components


DSTC/Crossnet (Z39.50)


ZedJava Z39.50 toolkit for client & server
development


Java API with classes for encoding
messages and responses


Includes basic Java clients and optional
proxy server


Can be used to develop your own client


Ovid




Java applet to access Ovid servers


Improved performance over straight Web
and CGI access, particularly over Internet


Java 1.0


Compatibility with older browsers


Feel that Java has met the need


JAVAISIS (DBA, Italy)




Unesco’s CDS/ISIS info retrieval DBMS


Non
-
commercial free or low
-
cost
application


Used by thousands of small libraries
throughout the world


Java
-
based client to provide network,
multi
-
platform access to database

JAVAISIS

CDS/ISIS database
C++ Server
Java Client
Network Computer
Applications



Library at Univ. of Western Ontario


Implementing JavaStations for “public”
(i.e. student/staff/faculty) access


Low cost, security, low maintenance


OS is JavaOS


Java application is HotJava Views


Includes WebView, email clients, telnet
applet


Web/HTML access to library resources

The Future of Java

Java Problems



Performance


Security


Rapidity of change


Debugging for different platforms


Microsoft

Java Opportunities


Multiple platform support


Internationalization


Faster development times


Network support



Now and in the future...


Java
will

be used in library/information
retrieval solutions


Important to understand its strengths and
weaknesses in evaluating and
implementing software


Will it become the most important
programming language in the future?

Questions and Comments