11.5 LBS软件开发中的关键技术
由于LBS系统的应用终端以及应用模式的多样性,导致了系统开发过程中面临许多关键性的技术问题。
11.5.1 LBS系统开发的特点
和传统的信息系统开发不同,LBS系统开发具有如下的特点:
(1)终端应用平台多样性
以往的信息系统开发往往是应用平台单一的系统开发,如GIS系统通常应用在Windows操作系统平台上。而LBS系统,由于其应用终端的多样性,其应用平台不是唯一的。目前,在LBS系统开发中,我们常会涉及到WindowsCE、Linux、VxWorks以及手机应用中的Symbian OS等。由于应用平台以及操作系统的多样性,使得在开发过程中必须顾及LBS系统的兼容性和可移植性。
(2)嵌入式、定制开发
LBS系统在终端应用中,往往是嵌入到终端硬件中,如车载导航软件,手机导航软件等。在这些嵌入式软件开发过程中,由于各个硬件平台的操作系统不同,为了完成LBS系统所需的功能,往往进行一些复杂的开发。如系统应用中基于智能手机的LBS系统应用开发,如果采用J2ME开发方法,往往需要针对每种手机类型,利用相应手机厂商的SDK包。另外,在这些嵌入式软件开发过程中,往往需要进行模拟器进行开发,而开发后的软件的调试必须移植到应用终端上来进行测试。
(3)资源受限的开发
由于LBS系统应用的终端,往往是车辆信息终端、掌上电脑/PDA、手机、移动互联网(如:笔记本电脑)等。这些终端设备和PC相比主要有以下的不同:
有限的存储能力;由于内存的,我们在开发过程中以及系统数据存储过程中,必须顾及到这些,采用高效的空间数据格式,以及高效的内存管理方法。
处理器的能力相对较低;如智能手机基本都没有数学处理器,因此时间单位计算应该使用整数实现。
其他硬件方面的;如显示屏幕有有限的分辨度、尺寸和彩色深度。小键盘只有有限数目的按键,并且按键的布局可能不便于玩游戏。在不同硬件解决方案之间,键盘的布局可能会有很大的不同,因此系统往往应该提供用户重新定义按键的功能。这些都了系统的开发方法。
11.5.2系统软件开发方法
LBS系统的开发,根据系统应用的目的以及系统应用的硬件环境不同,往往采用以下几种类型的开发方法:
(1)基于Windows系统的开发
传统的空间信息应用系统往往采用这类开发模式,在LBS系统开发中,也往往采用该类开发方法。
在基于Windows CE的开发中,往往会选择C,C++作为其开发工具。
该类开发主要
是开发一些高效的空间数据处理软件,如LBS系统服务器端空间数据库管理软件,位置服务功能软件,以及一些动态库等的开发。
(2)基于Windows CE的开发
Windows CE 是针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统。Windows CE 可以通过设计一层位于内核和硬件之间代码来用设定硬件平台,这即是众所周知的硬盘压缩层(HAL),不象其它的微软Windows 操作系统,Windows CE 并不是代表一个标准的相同的对所有平台适用的软件。为了足够灵活以达到适应广泛产品需求,Windows CE采用标准模式,这就意味着,它能够由一系列软件模式做出选择,从而使产品定制。另外,一些可利用模式也可作为其组成部分,这意味着这些模式能够通过从一套可利用的组份做出选择,从而成为标准模式,通过选择,能够达到系统要求的最小模式,OEM 能够减少存储脚本和操作系统的运行。
Windows CE关于VC++ 5.0 开发系统嵌入式工具包,提供系统库、工具、文本和样本代码,以使OEMS能够对特定的硬件平台使 Windows CE 标准定制。嵌入式工具包也包括设备驱动包(DDK)和软件开发包(SDK),DDK 提供了关于写驱动器的附加文本,SDK提供库、头文件、样本代码、文本以允许,开发者对基于 Windows CE 的平台进行写操作。Windows CE 提供了相同的程序界面,以用来为其它的视窗操作系统开发功能。
在基于Windows CE的开发中,往往会选择C,C++作为其开发工具。
LBS系统中,大部分的车载移动终端软件常采用该类开发方法。
(3)基于Windows Mobile的开发(smartphone, Pocket PC)
Windows Mobile是微软进军移动设备领域的重大品牌调整,它包括Pocket PC、Smartphone以及Media Centers三大平台体系,面向个人移动电子消费市场。Windows Mobile 将熟悉的 Windows 桌面扩展到了个人设备中,利用该体系,Windows开发者可以在熟悉的环境下进行各种应用的开发。Smartphone主要是在格式因素和使用两方面作为一种电话设备而设计的。它经过良好的微调,可以用于发出和接收呼叫,并且还可以作为消息处理设备。Pocket PC 主要是作为一种小型个人计算机而设计的,对于查看和管理数据与增强消息处理而言很不错。某些 Pocket PC 设备也具有电话功能。
基于Windows Mobile的开发,其开发工具主要有:
1)Windows Mobile 2003 Second Edition 开发工具
开发分为使用本机代码和托管代码的开发,分别使用不同的开发工具:
1. 使用本机代码是为了获得较高的性能,当您需要直接访问硬件或者资源有限的情况下使用。
2. 使用托管代码是为了开发以用户界面为中心的应用程
序,这种应用程序要求尽快面世或者要求开发速度很快。
主要分为Pocket PC 2003开发包和Smartphone 2003开发包。
2)Windows Mobile 5.0 开发工具
Visual C++ 2005环境中同时提供managed及native开发功能,将所有的开发工作将完全整合在同一环境中。Visual Studio.NET 2005默认提供了Pocket PC/Smartphone 2003 SE(第二版)的开发模板,同时将Pocket PC 2003 SE开发使用.NET CF版本升级到2.0 (beta)。主要包括Windows Mobile 5.0 for Pocket PC以及Windows Mobile 5.0 for Smartphone。
基于Windows Mobile的开发,主要是开发LBS系统应用中,在智能手机上应用的系统模块的开发,如导航服务模块,通讯模块等。
(4)基于Symbian开发
Symbian操作系统是所有Symbian OS电话共享的应用编程接口( API)技术的公共核心。现在市场上大多数的智能电话采用Symbian OS v6.1 和v7.0s. Symbian 在2004 年2月发布了OS V8.0,对Java和多媒体进行了重大升级。大约30 个移动电话厂商采用了Symbian OS ,譬如Nokia、索尼、Ericsson、Motorola和Samsung。
Symbian OS支持开发语言主要是Java、C++、以及C等。基于Symbian的开发方法主要用来开发基于智能终端,如智能手机的移动游戏,以及图片显示方面的应用。
(5)基于J2ME开发
目前, J2ME (Java 2 Platform, Micro Edition)已经成为目前最流行的手机应用开发平台之一。J2ME 手机使用 HTTP 协议作为 MIDP(Mobile Information Devices Profile移动信息设备简表。J2ME有两种简表MIDP和KJava,手机上的开发使用的是MIDP。)网络库的网络协议。HTTP 是一个丰富而且被广泛使用的协议,可以在不同的无线网络中很简单地实现。MIDP 设备的 HTTP可以使用IP协议,例如TCP/IP或非IP协议像WAP或i-Mode来实现。Java手机的发展已经为开发基于Java手机平台的空间位置服务系统(LBS)提供了条件。
基于J2ME的开发主要用来开发手机端LBS系统应用服务。J2ME仍然处于成长期,在大规模的、高效的LBS系统开发中,还不是最好的选择。在LBS系统开发应用中,选择其它的面向对象语言,如 C++,可能会更好。下载本文