A typical PDA’s limited memory, storage, and computing power might tempt one to conclude that such devices can’t accommodate databases beyond elementary phone and to-do lists.
But as PDA power improves, higher mobile-database-tools will evolve. One recent and welcome entry is IBM’s DB2 Everyplace, which brings IBM’s seasoned DB2 database to mobile devices.
DB2 Everyplace has three primary run-time components: a small-footprint database engine that runs on a PDA, a synchronisation server, and a host database that runs on a desktop or enterprise system.
The DB2 Everyplace SDK consists of the Mobile Device Administration Centre (MDAC) and the Mobile Application Builder (MAB) for development and administration.
I tested DB2 Everyplace Enterprise Edition Version 8.1.4 on a Palm.
DB2 Everyplace allows users to install subsets of host databases onto their mobile devices and to intermittently synchronise these subset databases with their hosts.
Rather than run a full-fledged DB2 system, the mobile databases run a small-footprint database engine.
For example, on the Palm, the database engine is just under 200KB.
To support this arrangement, DB2 Everyplace establishes users, groups, subscriptions, and subscription sets. A subscription defines the mapping between the host and client by identifying the portion of the host database that will be replicated on the PDA. In turn, a subscription set usually includes all the subscriptions required by a given mobile application.
A user is considered a specific mobile client, and the database administrator assigns these users to groups, associating each group with one or more subscription sets.
When a particular user synchronises with the host, DB2 Everyplace looks up its identification, locates the user’s group memberships, identifies the subscription sets mapped to those groups, and synchronises the subscriptions within all those sets.
All of the associations — users to groups, groups to subscription sets, and subscription sets to subscriptions — are created and edited using the simple but powerful MDAC tool.
The MDAC also allows the database administrator to create specialised filters for custom associations, such as allowing a single user in a group to access additional data that other group members do not have access to. Build and Synchronise
You can quickly construct mobile database apps using DB2 Everyplace’s MAB — one of those visual app construction tools that promises development without “writing a single line of code”.
In this case, it comes close. Applications created by the MAB consist of forms, each of which is a screen’s worth of fields and controls. A form can be manipulated by simply dragging an element from a toolbar and dropping it onto the form’s window.
Behaviours are defined by specifying which actions should occur in response to which events. DB2 Everyplace’s strong coupling on the host side with a well-known RDBMS (aka DB2), makes this much easier than with some other mobile databases.
The MAB’s armoury of events and actions is comfortably full, with an overabundance of database-manipulating actions. You can also create customised behaviour with scripts, but the scripting capabilities are somewhat limited. Even the documentation admits that elaborate scripting requires you to edit the source code generated when you build an app.
The MAB emits both native and Java applications. The Java apps are J2SE-compliant and will run on Windows CE, PocketPC, Symbian, and Windows. In my testing on the Palm, the DB2 Everyplace applications were typically native.
DB2 Everplace’s synchronisation server is actually a servlet that runs in a compatible servlet container, which can be anything from Tomcat to the WebSphere application server. The server communicates with a synchronisation client on the mobile device, either a provided standalone app or one that is integrated into a mobile database application.
In the current version of DB2 Everyplace, the synchronisation server and client communicate via HTTP exchanges, ensuring coverage of a wide array of mobile clients with little or no device customisation. However, the choice is mildly inconvenient on the Palm because it means that synchronisation is not performed via HotSync and, therefore, requires two steps to synchronise data. IBM promises that an upcoming DB2 Everyplace release will support HotSync.
DB2 Everyplace gets high points for ease of installation: I had a handheld database ready and synchronised no more than an hour or so after I’d installed the product. All the tools and their controls were arranged so that it was easy to figure out what to do and in what order. At first, I thought the MDAC’s interface was too sparse, but as I worked with it, I realised that it had no more and no less than exactly what was needed to work with the database apps. The same is true of the query tool that runs on the Palm; the SQL subset it supports was limited, but it provides just the tools you need to create, drop, and query tables.
Finally, there’s enough language support to keep just about anyone happy. DB2 Everyplace’s array of tools and libraries will suit a C/C++, Java, Visual Basic, or .Net developer comfortably.
DB2 Everyplace is easy to install and administer. Its use of membership abstractions (user, group, and subscription) easily accommodates just about every data-distribution contingency one can think of. Plus, it puts the venerable DB2 name at both ends of the synchronisation cable — and that counts for a lot.
DB2 Everyplace Enterprise Edition Version 8.1.4 is available from Avnet, Alstom IT and Express Data.
RRP: Enterprise Edition — $34,303.50 per processor;
Express Edition — $180.62 per user.