The Epic Data toolkit for developing pervasive applications. Connect Here. Go Anywhere. Wireless Solutions for Supply Chain Integration. Copyright 2000 Epic Data International, Inc. All rights reserved.
INTRODUCTION expresso is a set of application programming interfaces (APIs), tools, and programming methodologies for developing pervasive computing solutions. expresso builds upon Java TM technology to provide facilities needed to create mobile applications. expresso provides a uniform Java API for mobile devices that allows you to write applications once and use them on many devices - see Figure 1. Figure 1 Document Layout This document contains the following sections: Introduction Issues and Choices in Developing Mobile Applications System Components Conclusion Further Information Glossary. Copyright 2000 Epic Data International, Inc. All rights reserved. 2
Issues and Choices in Developing Mobile Applications This section discusses some of the decisions you must make before developing mobile applications, these are: Move Forward or Wait? Choose Open Standard vs. Proprietary Technology? Device Variability? Move Forward or Wait? The year 2000 will be another big year for growth in the mobile device market place, presenting both opportunities and risks for the purveyors of business applications. Currently, there is no clear market winner in the mobile device operating system space. The market is fragmented with a number of potential winners such as Palm OS, Windows CE, Symbian/EPOC, and Linux, among others. This is similar to where the world stood in the 1980 s when trying to decide between Apple and Microsoft. Making the wrong choice leaves you with unsupported products and falling behind competitors. How can you move forward without getting caught? The answer: Pick a technology that inherently protects you. Choose Open Standard vs. Propriety Technology? What technology choices offer the most flexibility? Open standard technologies, those specifications that are available in the public domain, and portable technologies that can move from platform to platform are good places to start. expresso is based on the open standard, portable technologies of Java and XML. Epic Data believes the choice of open standard development tools over proprietary tools is a fundamental one. Choosing expresso protects developers and customers from the built-in obsolescence of proprietary system development tools and closed system architectures. The expresso technologies are explained in more detail below. Copyright 2000 Epic Data International, Inc. All rights reserved. 3
Java Java technology is a portable, object-oriented programming environment. A Java environment consists of the Java programming language, a Java language compiler, and a Java virtual machine. Java has a number of classes and interfaces that are used to write Java applications. Java language compilers compile the programming language into a platform independent executable called Java bytecode. Java bytecode is executed by a Java virtual machine (JVM). The JVM dynamically compiles or interprets the platform independent Java bytecode, translating it into platform specific instructions. Java is on a roll in the wireless industry. With numerous companies such as IBM, America Online, Bell South Wireless Data, Ericsson, Fujitsu, Panasonic, Motorola, NEC, Nokia, Palm Computing, Research In Motion, Symbian, and Samsung standardizing on Java for mobile applications. William F. Lenahan, president and chief executive officer of BellSouth Wireless Data said, "We will work with Sun and our partners to ensure a quick transition to a Java technology-based industry standard platform, which will enable developers to easily create wireless applications in a world that everyone understands." XML Extensible Mark up Language (XML) is the universal language for data communication over the web. Companies such as SAP-AG, Microsoft, and IBM have adopted the use of XML technology as the standard for business-to-business, application-to-application, and electronic commerce communication. Through the use of an open-standard application programming interface, software applications that use the XML standard are able to transfer complex data and structures seamlessly to and from mobile devices. Wireless Mark up Language (WML), which is rapidly gaining acceptance as the programming language of choice for mobile wireless devices such as cellular phones, is based on XML technology. Noboru Urano, director of XML product development, Fujitsu Limited says, "XML technology provides a cost-effective, cross-platform approach to improved data exchange which is becoming more and more critical to enterprise applications. We see XML as reality in the market today. He continued, We are pleased that Sun has been driving this effort; XML and the Java platform are a perfect match, fueling new generation web applications, such as e-commerce." Copyright 2000 Epic Data International, Inc. All rights reserved. 4
Device Variability? So you have decided to use Java to develop your mobile applications? This means that you can write your application once and use it anywhere? Wrong. Java is a powerful language. Although conceptually designed for any computing device, the recent success of Java has predominantly been on PCs and servers, which offer full graphics and processing capabilities. The difficulty for developers of mobile applications is that, when creating an application using the Java programming interface, developers may inadvertently use functions which simply are not supported on mobile hardware. Just think what would happen if you ran a PC application on your cellular phone. You wouldn t see the whole screen, there is no color, you don t have a mouse, and entering text is mind numbing with only 12 keys! Not to mention that the application would run at a snail s pace. The small electronic footprint of currently available mobile devices and the variability in device hardware means that even programs written in Java will not run on every device platform without additional work on the development side. Two of the major differences when developing applications in the mobile world are: Input Mechanisms Few mobile devices on the market have either a mouse or a QWERTY keyboard. There are many variations in keyboards, in fact Palm Pilots don t have a keyboard. Instead they may have other functionality, including laser scanners and RFID interrogators. Graphics Capabilities How do you write a program that doesn t have access to a screen? 64,000 colors. Not likely. Today s mobile devices vary from PC quality monitors to monochrome to no screen at all! Copyright 2000 Epic Data International, Inc. All rights reserved. 5
System Components As illustrated previously, building applications for a mobile environment introduces new complexities and reveals some of the challenges facing the use of Java on mobile devices. The answer: expresso. The expresso toolkit provides special Java classes and software APIs that make up the expresso device abstraction layer. This layer enables the developer to use only those functions that can be supported in their chosen mobile environment and access those special functions offered in mobile devices. expresso is a toolkit of technologies that make up the Epic Data Rapid Application Development Toolkit. The following components are explained in more detail: Device Abstraction Layer expresso Manager Java Development Environment Pre-built expresso Services. Copyright 2000 Epic Data International, Inc. All rights reserved. 6
Device Abstraction Layer The mobile world is very different from the PC world because there is so much variability in device functionality. expresso provides a device abstraction layer, see Figure 2, that enables you to use a single Java business application across various device-operating environments. The device abstraction layer consists of a number of individual device interfaces with a uniform device API. Citrix Devices Telnet Devices Web Devices Java Devices WAP Devices Device Layer Device Abstraction Logic Device Application Logic Business Layer Client and Server Pages XObjects Database XServices Components Scripts Host Interace Logic Host Layer Host Abstraction Logic Respository Respository Figure 2 Copyright 2000 Epic Data International, Inc. All rights reserved. 7
expresso Manager expresso Manager is a graphical configuration tool for mobile applications. expresso Manager configures how the actual Java code is executed, allowing non-developers, such as users, to customize their applications based on their personal preferences or the organization s needs. Some of the options in configuring the mobile application include: Editing the text displayed for any menu titles or menu options Adding, editing, and deleting menu items Adding or deleting transactions from the application menus Re-ordering the menus using drag and drop. Java Development Environment The Java development environment consists of the rapid application development tools software developers use to write, edit, compile, and debug the source code of a Java or expresso application. Numerous products are available to developers that adhere to the standards for a Java development environment. expresso s conformance with Java standards makes it easy to learn, and positions it to achieve rapid acceptance in the mobile application development community. Pre-built expresso Services expresso provides back end processing services for your applications including: Communications with an ERP or B2B interface Transaction processing services Data management services Mobile device management System monitoring and problem reporting. Copyright 2000 Epic Data International, Inc. All rights reserved. 8
Conclusion expresso speeds the development of pervasive applications harnessing the power of Java and XML using open and portable technologies. expresso provides the missing link Java developers need to make the leap to mobile computing application development and to exploit a whole new world of opportunities. For Additional Information: http://java.sun.com/ http://www.epicdata.com/ http://www.xml.org/ http://www.symbol.com/ http://www.wapforum.com Copyright 2000 Epic Data International, Inc. All rights reserved. 9
Glossary The following terms provide the basis for a discussion of expresso. HTTP (Hyper-Text Transfer Protocol) Java The protocol of the Internet used for communication between clients and servers. HTTP messages consist of requests from client to server and responses from server to client. Java is a programming language designed by Sun Microsystems. Java is different from most programming languages such as C++ because it is an interpreted language. The source code is first compiled into byte code. The byte code is then converted into machine code at run-time. This means Java programs are not dependent on any specific hardware and will run in any computer with a Java Virtual Machine. Java Virtual Machine (JVM) A Java Virtual Machine or JVM is a program that converts Java intermediate language or byte code, into machine language one line at a time and then executes the program. Pervasive Devices Pervasive devices are those devices that provide a user with the ability to receive and gather information at anytime, from anywhere. Wireless mobile computers are a prime example of a pervasive device. XML (Extensible Mark up Language) XML is a mark up language that enables you to define the tags (mark up) needed to identify the data and text in XML documents. Copyright 2000 Epic Data International, Inc. All rights reserved.