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.