Enterprise J2ME Developing Mobile Java Applications [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Enterprise J2ME Developing Mobile Java Applications [Electronic resources] - نسخه متنی

Michael Juntao Yuan

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید



13.1 Synchronization and Mobility


Isolated mobile databases are just discrete islands of data packets. Backend databases play an essential role to glue mobile databases together to form a complete IT network.

Most business processes require field data to be aggregated at the back end for centralized decision making and access control.

Mobile users need to get periodic data updates from the enterprise back end. For example, a sales representative needs to update his inventory database with new data from the warehouse server several times a day.

The backend database is a content provisioning hub for mobile databases. This reduces the complexity of distributed data management.

The backend database is also a backup repository for mobile databases. This reduces the chance of data loss from dead batteries or lost devices.



13.1.1 The Disconnected but Synchronized Architecture


As we discussed in Chapter 11, the need for the backend database does not always justify always-on connectivity. For most applications, the changes on both ends are not time critical and several-times-a-day updates are more than enough. That allows us to design disconnected but synchronized mobile applications. Under that architecture, the backend databases do not need to synchronize every little change at real time. It is a scalable and reliable solution (see Figure 13.1).


Figure 13.1. The disconnected but synchronized mobile application architecture.


The technical challenge for the synchronized mobile database architecture is to develop efficient, secure, and reliable two-way communication channels between mobile databases and back ends. This is where mobile database vendors sell their value-added proprietary synchronization solutions.


13.1.2 Mobile Database Synchronization


Mobile database vendors offer synchronization engines that synchronize their mobile databases to either their own or third-party backend databases. A typical synchronization engine works as the following. The process is also illustrated in Figure 13.2.


Figure 13.2. The synchronization process.


The synchronization engine (a.k.a. server) is part of the mobile middleware. It connects to both backend databases and the mobile devices it serves.

We can configure the synchronization server and specify which backend tables are available (publication) to which users. Filters and custom conflict resolution logics can also be programmed into the synchronization server.

The synchronization server connects to backend databases using open protocols like JDBC or database-specific protocols. Proprietary protocols allow the synchronization engine to take advantage of database-specific features and optimization.

Mobile databases connect to the synchronization servers via proprietary protocols. Those protocols take advantage of vendor-specific optimization to reduce bandwidth usage, minimize workload on the device side, and enhance security.



What about SyncML?


Mobile devices often come pre-installed with different sets of native smart applications. Examples are calendars, address books, and contact lists (PIM applications) on smart phones or PDA devices. Those applications often synchronize data with desktop PCs or other central data repositories through proprietary protocols supported by vendor supplied driver software. The incompatible protocols have created a lot of problems for users. For example, it is difficult to synchronize a PocketPC device with a Mac or Linux desktop; if a person owns multiple mobile devices, he must install drivers that could potentially conflict. Users demand a standard synchronization protocol that allows any device to synchronize with any backend application without proprietary driver applications.

SyncML is a standard XML data format that defines the syntax to describe simple PIM data, such as vCard and vCalendar. SyncML has been widely used in enterprise applications. For example, IBM WebSphere Everyplace Access provides SyncML clients to access backend systems such as Lotus Notes and Microsoft Exchange. Important enterprise databases, such as IBM DB2 and Oracle9i, have built-in SyncML support. However, although SyncML is great for PIM type applications, it is not powerful enough to synchronize generic relational databases. SyncML is not the focus of this chapter. But, the standardization process SyncML went through provides much insight into what will happen next in today's proprietary database synchronization solution market.

Since database synchronization is highly vendor dependent, we discuss solutions from different vendors in the next several sections. Detailed discussions on vendor-specific tools and APIs are beyond the scope of this book. Interested readers should refer to vendor documentation and technical support. The source code examples listed in this chapter are only for illustration purposes.


/ 204