The Basics of the Java Platform: A User-Focused DiscussionAny 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 manufactured the device you are reading this paper from, to most any other scenario you can think of. The trick is making it possible for everyone to participate in this emerging world. This paper is meant to give you an idea of how the Java platform fits into this world and how it enables the development of products and services that are usable by anyone -- regardless of whether or not they have a disability. It will give you a basic idea of what the Java platform is, cover its accessibility support, provide example scenarios of how broadly it already touches our lives, and highlight why it is so attractive to companies that both purchase and build their own software applications. Contents:
In the BeginningIt all began when a few Sun Microsystems' old-timers (including James Gosling), needed a programming language for a new set of consumer electronic devices they were building. Gosling developed the language and called it "Oak". Upon finding out that the name Oak was taken, a late-night meeting at a local cafe inspired the new name -- "Java." The Java programming language was developed as an efficient object-oriented programming language. It was loosely based on C++, but was designed to be processor-independent and network savvy. The work that resulted in the invention of the Java platform was initially focused on producing an interactive computer-television system that enabled the functionality provided in today's set top boxes--email, web browsing, TV programming, and more. It originally encompassed both hardware and software aspects but soon became a software-focused development effort. Taking a page from UNIX®'s early days, Sun freely released the Java platform to get design input and to promote early visibility with developers. The resulting interest and feedback exceeded all expectation, and led to the open design process that continues to be followed in the development of the Java platform and its extensions. Basic Overview 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.
Figure 1 illustrates how the Java platform works on a desktop computer. Bringing It To You - The User InterfaceApplication 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.
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 AccessSun 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.
Identifying an Accessible Java ApplicationWhile 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.
If it is a Java applet:
And for the manufacturer of your assistive technology (AT):
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.
Really Bringing It To You - Segment ExamplesIt 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 HomeWhirlpool 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:
In Your VehicleElectronic 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 EducationBeginning 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. BankingMaking 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 PlatformMore 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 InternetThe 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 marketCommercial 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 realizedEnterprises that develop their own applications can reduce the size of their hardware-specific software development teams. Companies are able to purchase fewer platform-specific applications, which also results in lower training and support costs. Finally, Java's network-aware architecture enables reduced system administration costs. Tying It All TogetherThe Java virtual machine makes it possible for a single application to provide the same type of capabilities on a variety of devices. The Java Foundation Classes provide accessibility support that allows developers to write highly accessible software applications that can run on any JVM-enabled device. And the Java platform's inherent networkability, coupled with other connective technology and internet services, makes it possible to tap the power of the internet from any place at any time. Said slightly differently, the Java platform makes the promise come true: Any One, Any Time, Any Place, Any Device!, Ubiquitous Computing!, and Write Once, Run Anywhere! | |||||||||||||||