简介
北卡罗莱纳运输部(NC DOT)曾面临当今典型移动计算中数据同步的很多挑战。本文概要地介绍了NC DOT Mobile Inspector 应用、桥梁技术检查组内部和中心办公室及时交换信息的需求以及在本应用中实现数据库同步的SQL Anywhere Studio MobiLink技术。
NC DOT 应用简介
2004年春天,我来到了北卡罗来纳州的罗利市。在此之前,我从未在桥梁和高架桥上花过太多心思。我不知道定期检查桥梁安全的必要性,当然对“桥梁检查员”这个职务也知之甚少。就我所知,这些头带安全帽、身穿安全背心的人的工作就是清理公路上被撞死的动物。
我开始处理移动检查(Mobile Inspector)应用程序同步组件的工作时,这些认知很快发生了变化。北卡罗来纳州大约有19 000座桥和涵洞桥需要定期检查,负责检查工作的现场检查员约为60人,包含4个水下作业小组。这些检查员非常繁忙,在返回办公室准备检查报告前要在现场做记录及拍照,检查报告用于确定哪些桥梁在以后的一段时间内状况良好,哪些桥梁需要立即维修。
照片2 –现场检查员Shane Dunlow正在使用平板笔记本(Tablet PC)的Mobile Inspector应用程序记录凸缘的尺寸。
Mobile Inspector用于收集检查员所测量的尺寸和观测的资料,还要存储数码照片。Mobile Inspector的设计意图是把数据录入从办公室转到现场,在节省成本的同时满足联邦政府通过电子手段获取桥梁检查数据的要求。为此,音控、手写识别和自定义速记工具成为Mobile Inspector 应用的几大特色。
在现场,每位检查员都使用运行Windows 2000操作系统的平板电脑。假如是传统的两层结构——客户端/服务器布局——或甚至是两层分布式层次结构,所有平板电脑都要直接与中心数据库通信或同步。然而,出于安全性的考虑,平板电脑只有在办公室才能与中心数据库连接。也就是说,在每次现场检查前,数据要被复制到小组负责人的平板电脑上,并在检查报告完成后复制回中央数据库。还必须在小组负责人的平板电脑和小组成员的平板电脑间来回复制数据,在检查大型桥梁时,往往要通过无线连接进行多次这种现场操作。
图1.显示了如何将Mobile Inspector 应用所涉及的电脑按三个层次布置,中心数据库置于顶层、小组负责人平板电脑置于中间层、而小组成员的平板电脑置于底层。小组负责人通过有线局域网与中心数据库通信、通过无线局域网与小组成员通信。同步服务器软件同时在中心数据库电脑和小组负责人的平板电脑上运行,这些服务器分别与小组负责人和小组成员的平板电脑上的同步客户端软件通信。
图1. 三级分布式层次结构:
应用程序本身使用关系数据库管理系统(RDBMS)在平板电脑上系统存储数据——包括数码照片。使用RDBMS有充分的理由:它保证数据完整性并提供可还原性,同时功能强大且简单易用。这是它的优点。而缺点是从一个中心数据库向包含多个远程数据库的三层分布式层次结构移动数据是一项艰巨的任务。特别是因为不可能把一个数据库管理员(DBA)外派到每个检查小组中,所以无论北卡罗莱纳州外河岸的天气怎样,即使在无线连接不稳定的情况下也要确保同步过程稳定可靠。
NC DOT使用Oracle 9i作为中心数据库,把Adaptive Server Anywhere(ASA)作为平板电脑上的远程数据库,并应用MobiLink同步软件处理Oracle和ASA之间的传输以及ASA和ASA之间的传输。ASA和MobiLink均为iAnywhere Solutions 公司的SQL Anywhere Studio 9的一部分,随之一起发行。
同步的基本概念
MobiLink软件由客户端组件和服务器组件构成。远程客户端先连接到本地数据库、收集前一次同步后发生变化的所有行并将这些行上传到MobiLink服务器,从而启动同步会话。然后服务器把上传的变更应用到中央数据库,选择要下载的行并把这些行发送给客户端。最后,MobiLink客户端将已下载的变更应用到本地数据库并向服务器返回确认信息。
在任何环境中,故障处理都是同步的一个重要部分,特别是在频繁失去连接或意外断开连接的移动环境下。使用MobiLink时,故障在上传和下载数据库事务的级别得到处理。假如上传失败,全部已上传的变更将回滚,整个过程停止。还原包括重新运行同步过程,从零开始重构建上传流并重复整个过程——就像该过程从未中断一样。
下载期间的故障处理采用类似的方法:下载回滚并应用相同的还原技术:“再试一次”。然而,此时仅重复下载,因为之前的上传已成功并提交。这一切都是由MobiLink 自动完成的。