2000 Conference Proceedings
Go to previous article
Go to next article
Return to 2000 Table of Contents
The Basics of the JavaTM Platform A User-Focused
Discussion
Sun Microsystems The Accessibility
Team
Contents:
In the Beginning Basic Overview of the Java Platform Bringing It to You -
The User Interface Happenings on the
Assistive Technology side of Java Platform Access Identifying an
Accessible Java Application Really Bringing It
To You - Segment Examples Why Businesses Like
the Java Platform Tying It All Together... Any One, Any Time,
Any Place, Any Device! Ubiquitous Computing! Write Once, Run
Anywhere! These are all terms regularly applied to the Java
platform. These are inspiring visions but what do they really
mean in an emerging world where computers are fast becoming as
common and transparent to us as the motors contained in the
consumer and industrial devices we've grown up with and depend on
in everyday life? Like the now ubiquitous electric motor,
computers are an integral and growing part of our everyday lives.
They already monitor and control everything from the hair dryer
you used on your hair this morning, to the refrigerator you
pulled your breakfast from, to the car you drove to work in to
the store you bought groceries at, to the industrial
infrastructure that erview of the Java PlatformThe Java
platform's functionality is enabled by three key pieces: the Java
virtual machine and core libraries, Java 2 SDK, and the Java
programming language. These pieces are briefly described below.
The Java virtual machine (JVM) and core libraries are the
translator and facilitator of communication between programs
written in the Java language and the native environment on which
the Java platform is running. The JVM receives instructions from
programs then translates them into a compiled bytecode format the
native platform understands. Ongoing development efforts will
support a wider variety of devices, while maintaining stable
interfaces for application developers. Thus the Java platform
will continue to provide "cross-platform portability," which
means that a program written for the Java platform will run on
any hardware platform (e.g., Windows/Intel, Mac, Solaris/SPARC)
for which a JVM has been developed.
Providing the software tools that application writers actually
program to is what the Java 2 SDK (Software Development Kit)
does. The SDK provides a complete, secure foundation for building
and deploying network-centric enterprise applications ranging
from the PC desktop computer up to the workgroup server.
Application developers take advantage of the powers of the JVM
and SDK by using the Java programming language to write their
applications. For instance, the platform allows them to create
applications for a set-top box that can also run -- without
modification -- on network computers or web browsers on desktop
computers. And with proper design, it's possible to write an
application that can run on an almost infinite array of devices.
As a bonus, most Java software developers report that programs
written in the Java language are easier to create and maintain
than those written with traditional languages such as C and
C++.
The following flow diagram gives an indication of the major
pieces of the Java platform as it applies to displaying an
application on a desktop computer. Note that the JVM presents a
standard set of interfaces to the software developer, but
provides a different set of facilities for each operating system
on which the software application might run. Again, this allows
the software developer to write a single version of the
application, which can then run on different operating system
platforms.
The Software applications written using Java language can be
started from the desktop and many other locations. This software
can itself can be stored on the network or the computer's local
disk.
The Java virtual machine and core libraries then run the
application, interacting with the operating system on behalf of
the application
The computer's operating system provides machine-specific
support for many of the actual operations and interactions.
Result: An interactive Java application that runs on PCs, Macs,
UNIX workstations, Network Computers, and elsewhere.
Figure 1 illustrates how the Java platform works on a desktop
computer.
Bringing It To You - The User Interface
Application developers must consider two aspects of the Java
platform: the server and the client sides. Server side tools and
support enable developers to tie together disparate, legacy, and
enterprise level information repositories while maintaining
current computing infrastructure investments (e.g., corporate
databases residing on mainframes). The Java platform ties
otherwise incompatible computing platforms together by giving the
developer a consistent way to access information from these
systems. However, it is on the client side that the Java platform
most strongly affects the end user. Perhaps the clearest example
of this can be found in the user interface components known as
the Java Foundation Classes (JFC). The JFC makes it easy for
developers to build user interfaces for their application by
providing user interface building blocks, called components.
These components include scroll bars, push buttons, menus,
checkboxes, and more. The developer combines these components
into the user interfaces for applications such as text editors
and spreadsheets.
A key feature of the JFC is its programmatic support for
accessibility, provided through the Java Accessibility
Application Programming Interface (JAAPI). This interface
provides the template or contract that an Assistive Technology
(AT) refers to when users want to obtain and interact with the
information contained in the applications they are running.
Because the JAAPI is built directly into the JFC, a high level of
disability access is easy to achieve, even with no special
attention from the software developer.
The JFC supports accessibility in five key ways.
Tracks events such as when a window is opened or closed and
where a keyboard or mouse button press occurs - this enables an
assistive technology (AT) to know when the state of an
application changes. Enables AT to query components to determine
their state (e.g., checked or unchecked), and to enumerate the
actions that can be invoked on them.
Enables AT to synthesize events that cause a change in the state
of the application - AT is able to press a button or post a menu
even if the UI component doesn't have input focus.
Lets AT inspect text components directly, to access both content
and text attributes. In contrast, older accessibility
technologies require an AT to infer this information using
indirect methods. Implements a comprehensive set of keyboard
navigation and editing key sequences on all its user interactive
components.
In summary, Sun has built support for accessibility directly
into the components that developers use to build the UIs of the
applications - accessibility support is by default always there
in JFC-based applications.
Happenings on the AT side of Java Platform Access
Sun Microsystems has developed a number of tools to support the
development efforts of assistive technology vendors (ATV). One of
these is the Java Access Bridge for Microsoft Windows (Java
Access Bridge). This tool allows ATVs to enable their products to
query and interact with both Java and Windows applications. Users
of these ATs need not acquire or learn new ATs in order to work
in a mixed Windows and Java environment; they simply use enhanced
versions of their familiar tools.
Of course tools mean nothing if ATVs aren't using them. As of
this writing three companies have made product based
announcements on their efforts in the Java platform arena.
IBM has developed a pure Java screen reader called the Self
Voicing Kit (SVK). This is the first ever assistive technology to
take advantage of the hardware independent nature of the Java
platform - the SVK runs on any device that runs JFC based
applications.
Henter-Joyce is shipping JAWS for Windows version 3.5 with
support for Java Applications via the Java Access Bridge. This
upgrade enables JAWS to interact with JFC and Microsoft Windows
based applications. Visit Henter-Joyce's website for more
information.
Syntha-Voice has demonstrated an early release of their Windows
Bridge screen reading software with support for Java applications
via the Java Access Bridge. By the time this is published, that
software may be commercially available. Visit Syntha-Voice to
find out more on their plans.
Identifying an Accessible Java Application
While it is no guarantee of overall accessibility, a quick way to
assess the basic accessibility of a Java application is to visit
the web site of the application's vendor, and get answers to the
following questions. If there is no web site, try asking your
internet or application service provider or your organization's
network system administrator.
Is the UI built using the Java Foundation Classes?
If it is a Java applet: Is the UI built using the Java
Foundation Classes?
Is the Java Plug-in installed on my browser?
Is the web page configured so it works with the Java Plug-in?
And for the manufacturer of your assistive technology
(AT):
Does my AT support the Java Accessibility API?
You will probably have trouble using the Java application if the
answer to any of these questions is no. The following diagram
gives a general idea of how an application can takes advantage of
Java accessibility when the answer to the questions is yes. The
diagram illustrates the key pieces of an accessible platform and
how they connect and interact.
The AT asks all the JFC components in the application, both
toolkit supplied standard and developer written custom, if they
implement JAAPI. It's important to note that the AT can't talk to
custom components unless the developer has added support for
JAAPI to them.
The AT then asks all the components that answer back to provide
it with information about themselves and their contents.
The AT talks with the platform to generate and obtain lower level
system events (e.g. a key press or mouse button click). This
support also allows the user to browse other areas of the
application's UI without changing the component that has the
keyboard input focus. Figure 2 illustrates the interplay among
key pieces of the accessible platform.
Really Bringing It To You - Segment Examples
It is sometimes hard to visualize how a technology will be used
and what form it will find its way to the individual in. The
following examples illustrate how broadly Java technology, and
computer technology in general, influence our lives today. Please
note that although these examples are not necessarily JFC based,
Java technology is making possible all of the functions and
connections described here.
At Home... Whirlpool Corporation demonstrated a prototype of an
Internet connected refrigerator at this year's Consumer
Electronics Show (CES). The refrigerator is the first of a
complete line of products that Whirlpool has under development.
It includes a portable handheld device that allows consumers to
remotely monitor and control the networked appliances in their
house and to access a host of other Internet-based products and
services such as maintenance monitoring, ordering food, or
getting a recipe from their favorite cooing web site. This effort
is part of a larger strategy that underscores Whirlpool's efforts
to accelerate the deployment of Internet-enabled products and
services outfitted with broadband technology.
Whirlpool joined Sun, Bosch, GTE, Palm computing, and others at
CES to demonstrate a working model of the networked .Com home.
The range of environmental control possibilities is almost
endless, but here are a dozen tasks demonstrated at CES and
elsewhere that experts say you'll be able to do in the .Com home
of the future: Have your TV automatically download a week's worth
of your favorite television shows from your cable company,
satellite operator, or other video service provider.
Get "Home PBX" services: Get multiple phone lines on demand,
individual mail boxes, conference calling, transfer calls... all
of the extra phone services you get at work will be available in
the home.
Have your lawn sprinkler talk to The Weather Channel to determine
the optimal lawn and shrub watering based on today's
forecast.
Get a discount from your utility for letting them manage your
appliance use during peak periods, or have your dishwasher
scheduled to automatically start during discounted rate periods.
Get new services and software. Some manufacturers may actually
offer free services or software as enticements. You might be more
willing to fill out your new camera's online warranty card if you
knew you'd get free basic editing software in exchange.
Subscribe to a security service (on demand) to watch your home or
let in a relative when you're away. Set up home monitoring and
home services for the elderly or infirm to help them to
comfortably maintain their independence.
Integrate and schedule calendars for everyone in the family with
live electronic message boards shared between home, office, and
schools.
Take "private" cooking lessons with your favorite chef right in
your kitchen. Integrate phone, TV and security systems so you
know immediately who's at the door or on the phone, no matter
where you are.
Have music and games downloaded and "stored" in your home, so you
can have the latest music on your CD player. Easily share
services that make sense - take a picture with your camera, view
and print it from your TV, send it to your family on your screen
phone, incorporate it into a home editable video. In your
vehicle...
Electronic and Car tradeshows have featured prototype networked
vehicles from the likes of GM and Mercedes. These cars have
sported multiple touch-screen displays whose purpose is to
deliver customized channels of information to the driver and each
passenger. For example, the driver can see from the head-up
windshield display that the engine needs oil and immediately
consults the car's navigational system for directions to the
nearest gas station. Meanwhile, each passenger can use the car's
multiple Internet screens and voice-recognition technology to
check voice mail and e-mail messages, stock prices, and local
weather as well as watch movies or television.
In Education... Beginning in May of '99 a number of colleges
rolled out a Java technology based networked application, called
Campus Pipeline, that brings together administrative
applications, student services, and course support to create a
one-stop shop for students, faculty, administrators and alumni.
Campus Pipeline is integrated into student, financial, and
administrative systems and is meant to allow students to check
grades, register for or add/drop classes, apply for financial
aid, pay tuition and fees, and order transcripts. It also
provides an infrastructure that makes it easy for the college to
add or enhance distance learning. On top of this it allows online
faculty office hours, research, study groups, homework
submission, labs, and course-specific chat. Finally a customized
institution "home base" simplifies access to these features and
readily enables the addition of links to campus news, event
information, and school organizations to your "home base" page.
Banking...
Making loan executives better able to meet the needs of customers
was First Union National Bank's online goal. The bank
accomplished this by enabling enterprise information to be
accessible to the executives when they visited field sites - a
laptop, the network, and dial up technology along with the Java
platform were the tools that made this possible. Loan executives
can now launch bank application modules for Consumer Finance,
Retail Banking, Treasury, Residential Development Finance, Hire
Purchase and Leasing, Factoring, Nominal, Purchase and Sales
Ledgers, and Fixed Asset Register directly from any customer
site. Features made available through these modules include
flexible interest charging, extensive early settlement system,
recalculation of interest backdated to account inception,
customer account collection history and follow-up, automatic loan
provisioning, self-balancing multi-company, multi-currency
nominal ledger and an extensive suite of reports, letters and
statements. Individual consumers are also benefiting as the
number of banks establish an online presence grows. One example
is Marquette Bank who now makes products and services such as
banking and bill payment, product applications for credit cards
and other products, personalized content, and one-to-one
marketing available. These capabilities enable customers to take
full advantage of this interactive, always open channel from the
comfort of home or anywhere else they can make an Internet
connection. Please visit the success story index site for more
information on these and other examples if these have only whet
your appetite.
Why Businesses Like the Java Platform
More and more people are being exposed to products the use the
Java platform. Why? Because companies are finding it helps them
solve a number of problems. It enables them to extend the
capabilities and information of their enterprise to customers and
employees, update their information and services at a quicker
pace, and save and tie together previous investments in people
and information technology infrastructure. The Java platform
offers companies many advantages:
Companies and agencies are able to securely extend their
enterprise to the Internet. The Java platform enables all kinds
of systems to talk to each other -- from smart cards to super
computers -- regardless of the underlying hardware or system
software. The result is important resources can be securely
shared with employees, customers, suppliers, partners -- anyone a
company interacts with -- forging closer business relationships
and ultimately increasing revenues.
Products and services realize a faster time to market. Commercial
and enterprise wide applications are easier to develop and deploy
on the Java platform due to its device-independent nature and the
programming language's object oriented nature. This
device-independence also makes it possible for development teams
to focus on a single application code base that produces
applications which run on any computer type in the enterprise's
IT hierarchy. Reduced costs are realized. Enterprises that
develop their own applications can reduce
Go to previous article
Go to next article
Return to 2000 Table of Contents
Return to Table of
Proceedings
Reprinted with author(s) permission. Author(s) retain copyright.