Java Architectures for Mobilised Enterprise Systems David Parsons Massey University d.p.parsons@massey.ac.nz Abstract The coming generation of mobile phones will enable objects from enterprise systems to be distributed across a range of devices of different scales. This object mobility will provide for applications that can take advantage of device-local data and processes to support rich client interaction. However, such mobilised applications bring with them new challenges for the software architect. Distributed objects running on telephones or other small mobile devices will have to work within a number of key constraints, such as limitations on memory and available APIs, and the need to maintain data integrity. This paper focuses on the issues of distributed architectures where objects are able to run on mobile devices but must be universally synchronised. Specifically, it looks at how aspects of current and developing Java APIs can support architectures that synchronise mobilised objects. 1. Introduction The coming generations of mobile phones (3 rd and 4 th generation) will enable objects from enterprise systems to be distributed across a range of devices of different scales. Objects from a single application might migrate between application servers, desktop terminals, portable computers, PDAs and mobile phones. Each layer of such a system will provide a different object environment, where data storage technology, run time operating system and available libraries may vary significantly. As objects are distributed across multiple nodes, data integrity must be maintained, even in contexts where connectivity to central data stores is unreliable. Mobile objects will have to be built in such a way that they can easily adjust to their various environments and provide a transparent interface for application developers. For this to be successful, mobilised applications will have to be built to cater for the capabilities of the most constrained devices in the system, which for many applications will be mobile telephones. For the developer planning to build mobilised systems that include application deployment on 3G telephones, there are a number of available software platforms. Of course each type of device will expose its original equipment manufacturer (OEM) APIs which can be used for development, but since these are proprietary on different devices the same application may have to be re- coded many times. In order to work at a higher level of abstraction and develop software that can work across different types of device, it will usually be more effective to use either the .NET Compact Framework or the Java 2 Micro Edition (J2ME). This paper focuses on the Java platform, which not only provides device interoperability but also supports implementations across multiple operating systems. In the telephone context, windows based systems can only run on the Microsoft Smartphone, which has limited handset support. In contrast, Java can run on all Symbian [1] or Linux operating system devices. There have been a number of Java based implementations of systems that include mobility, for example Ajents [2] and Klava [3]. However, these have been proprietary modules around lower level Java packages. In this paper we will instead look at how a combination of standard Java technologies (i.e. those ratified by the Java Community Process [4]) might be used to address some of the core requirements of a mobilised computing architecture that includes Java- enabled phones. We begin by exploring some theoretical aspects of mobile computing architectures before reviewing some Java APIs relevant to mobile computing. We then see how these Java APIs might be applied to an implementation of a mobile architecture. We conclude with some discussion about the possible future directions that Java Specification Requests (JSRs) might take in support of this type of architecture. 2. Mobile computing architectures Mobile computing architectures need to be built with a number of serious constraints in mind. They have to be aware of the limitations of bandwidth, (dis)connectivity, and cope with a disparate range of devices connected to the mobile network. Data needs to be mobilised without compromising integrity. Many of the devices attached to the system will be relatively resource poor, and potentially will be disconnected from the rest of the system either voluntarily (to preserve resources) or in an unpredictable manner (due to loss of wireless connectivity). Any generic architecture must take account of the capabilities of the most limited devices in the system and compensate for their limitations as much as possible. 0-7695-2268-8/05/$20.00 (C) 2005 IEEE Proceedings of the 38th Hawaii International Conference on System Sciences - 2005 1