基于j2me技术的移动证券系统研究与实现_第1页
基于j2me技术的移动证券系统研究与实现_第2页
基于j2me技术的移动证券系统研究与实现_第3页
基于j2me技术的移动证券系统研究与实现_第4页
基于j2me技术的移动证券系统研究与实现_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、wap标准定义了一种应用环境,让设计人员能够开发独立于设备的用户界面,然后使用 wmlscript(wml脚本)的wap编程语言,把可执行的逻辑嵌入到移动终端中。这样,在移动 终端上实际运行了一种微型浏览器,非常像pc机上使用的ie或netscape浏览器。1.2.5 wap的技术特点过去,无线internet接入一直受到手机设备和无线网络的限制。wap充分利用了诸如 xml, udp和ip等internet标准,它的许多规程建立在http和tls等internet标准之上, 但进行了优化,克服了原无线环境下低带宽、高延迟和连接稳定性差的弊病。原来的internet标准诸如html, http

2、, tls和tcp用于移动网络是远远不能满足要求 的,因为极大的文本数据信息需要传送。标准的html内容已不可能有效地显示在袖珍手机 和寻呼机狭小的屏幕上。wap采用二进制传输以更大地压缩数据,同时它的优化功能适于更长的等待时间(long latency)和低带宽。wap的会话系统可以处理间歇覆盖(intermittent coverage),同时 可在无线传输的各种变化条件下进行操作。wml和wml script用于制作wap内容,这样可最大限度地利用小屏幕显示。wap的内容 可从一个最新式的智能电话或其它逋信器的两行文字的屏幕上显示出来,也可以转变为一个 全图像屏幕显示。轻巧的wap规程栈

3、式存储器的设计可使需要的带宽达到最小化,同吋使能提供wap内容 的无线网络类型达到最多。它适用于多种网络,诸如全球移动通信系统gsm900, gsm1800 和gsm1900;过渡性标准(is) -136;欧洲制式dect;时分多址接入;个人通信业务,高 速寻呼(flex)和码分多址等。同时它也支持所有的网络技术和承载业务,包括短消息业务 (sms)、非结构式辅助业务数据(ussd)、电路交换蜂窝移动数据(csd-circuit switched data)、蜂窝移动数字分组数据(cdpd)和通用分组无线业务(gprs)。由于wap建立在可升 级的分层结构基础上,每一个分层可独立于其它分层而发

4、展。这就使得在不需要对其它分层 改变的情况下就可以引进其它承载业务或使用新的传输规程。wap使得那些持有小型无线设备诸如可浏览internet的移动电话和pda等的用户也能 实现移动上网以获取信息。wap顾及到了那些设备所受的限制并考虑到了这些用户对于灵活 性的要求。手持式wap设备的局限性wap设备与pc相比:低分辨率的小显示屏,输入装置 容量有限,重要的是没有捉供定点装置,低功率cpu,内存较少及能量较不稳定,网络带宽 较窄且连接较不稳定。wap带来的灵活性与htmlc相比,wap标准没有规定wap设备应为何 种形态。这对设备制造商极为有利,可使其能够生产出各种不同类型的设备以满足不同需要

5、。 在不久的将来,市场对wap设备的要求会以浏览器的显示屏尺寸、输入装置及内存大小等不 同为根据,从而促使wap设备在新技术及解决方案上得以发展进步。通过使用移动电话连上互联网不久将成为一种标准,而wap就是实现这一标准的技术工 具。如今,移动电话上网数量的增长速度要比pc上网数量的增长速度更快。这也就意味着 不久以后,大多数新的移动电话都将配有wap浏览器。持有wap设备的无线用户可得到通过 互联网提供的相关服务,网络页血的编制采用html格式。届吋对许多甚而是绝大多数用户 而言,wap设备将成为其获収这些服务的常用工具。wap的服务可简单分成五大领域即:wap入口网站、咨询服务、电子商务、

6、客户服务、 企业内部网附加服务和改善与增加现有移动电话服务。1.2.6 wap发展总体趋势就全球范围内来说,社会交友网络占了 40%的流量,在有些国家,例如美国、南非、印 尼,份额甚至超过了 60%。web浏览量高于wap浏览量。前者占了总浏览量的77%,后者23%。 搜索引繁,尤其是google,占据了很大的份额,基本上都在每个国家浏览最多网站的前10 名。这也印证了搜索引擎越来越重要的论断。当然,opera这份数据也有局限性的,首先主要体现在数据是来源于opera mini,由于 手机浏览器种类很多,不同浏览器用户可能有不同的浏览习惯。其次邮箱服务在中国占浏览 器很低有可能是很多人使用手机

7、pop方式接收邮件,也有可能安装手机gmail之类的客户端。1.3主要研究工作和论文组织结构用软件来完成的移动证券系统是在wap和j2me两种技术的基础上提出的一种移动电子 商务,论文屮所作的主要工作如下:(1) 论文首先介绍wap的概念与特点,介绍研究移动证券系统的意义所在。(2) 详细地叙述移动证券系统的具体实现过程。(3) 介绍实现移动证券所需的技术支持。(4) 介绍移动证券系统中具体j2me代码设计。(5) 最后,作者采用了一系列的实验测试数据来说明移动证券系统的可行性以及所能达 到的效果。本论文共分6章,其内容如下:第一章 引入wap技术的概念,简单介绍移动证券系统的设计目标,同时阐

8、述本论文研 究的目的和意义。第二章详细介绍j2me技术。第三章 分析研究j2me实现移动数据的原理。第四章 提出移动证券系统设计策略,并详细说明该系统的优势所在。第五章移动证券系统的具体代码设计和核心技术实现。第六章测试和总结移动证券系统的应用效果。第二章j2me技术j2me(java 2 micro edition)是 java 2 的一个组成部分,它与 j2se、j2ee 并称。根据 sun的定义:j2me是一种高度优化的java运行坏境,主要针对消费类电子设备的,例如蜂 窝电话和可视电话、数字机顶盒、汽车导航系统等等。j2me技术在1999年的javaone developer conf

9、erence大会上正式推出,它将java语言的与平台无关的特性移植到小型电 子设备上,允许移动无线设备之间共享应用程序。1.2.7 j2me的基本概念1.4常见的关键词j2me(java2 platform, micro edition)cldc(connected, limited device configuration)midp(mobile information device profile)kvm(the k virtual machine)1.5 j2me技术背景随着无线应用与嵌入式系统的愈来愈受到人们的重视,sun也推出了 j2me来迎合这一趋 势。(实际上道也不能算是新推出,

10、熟悉java历史的人都知道,java原先本是为了开发消费 性电子产品而研制的.谁都没有想到,因在网络应用上的出色表现而流行,以致现在的j2ee、 ejb等等,发展地越来越庞大。)sun认为,未来的信息设备将比我们今天的更customizable 和personalo这一点已经可以从手机和pda的流行程度看出。所以为了开发面向这些设备 的 applicationso sun 推出了 j2me(java2 platform, micro edition)01.6 j2me的基本结构j2me把设备分为两类,一种是联接设备(connected device),-种是有限联接设备 (connected,

11、 limited device) 0前一种对应于那些有电源的,电力充裕,较大的设备。例 如:电视机,冰箱等,后一种对应于主要使用电池,小型的设备,例如:手机,pda等。这 里我只涉及第二种,有限联接设备(connected, limited device) osun 把 j2me 分为两个部分:configuration 和 profileconfiguration 包括虚拟机(virtual machine),核心的类库与 api。configuration 层定义一个java 拟机的特性与java类库的最小子集。也就是说,configuration层提供 了开发人员一个最基础,最核心的ja

12、va平台。就像我前文捉到的,j2me把设备分为两类, 一种是联接设备(connected device), 一种是有限联接设备(connected,limited device)。 对应这两种设备就有了两种j2me configurationo分别为cdc (connected device con-figuration)和 cldc(connected,limited device configuration)o 这里,cdc 使用经 典的 javavm,而 cldc 使用的是 kvm(the k virtual machine)。其中kvm是sun为使用16/32位risc/cisc微处理

13、器或控制器,并其可用内存为160kb 512kb的设备而开发的。profile层也包含一组api,主要针对于特定的某一族系的设备而定义。profile层在 特定的configuration层上实现,而程序员则负责在特定的profile上编写应用程序。对丁 手机,pda 等 connected,limited device。它们的 profile 层称为 midp(mobile information device profile)o于是midp与cldc合在一起就构成了一个完整的j2me架构。对于midp上的应用程序sun也有独特的叫法,它们被称为midieto3dsmsswingpdajdb

14、cmidptlie pei sonal profileother profilescldccdckvmoshardware图 2.1 j2me 的 cldc&midp 架构1.2.8 cldccldc的目的为小型的,且资源有限,connected limited的设备定义一个标准的java平 台。允许动态的向这些设备发布内容与应用程序。方便第三方软件厂商与开发者向这些设备移植内容与应用程序。cldc的范围java语言与虚拟机的特性核心 java 类库(如 java.lang.*,java.util.*)输入/输出对网络的支持对安全性的支持对国际化的支持1.7 j2me 平台2000年当

15、j2me平台同的cldc发布的时候,所有的java开发者都为之兴奋不已。sun 也不负众望在两个月后发布了基于cldc的midp,给开发者提供了开发交互式应用程序的平 台。现在国内应该主要是基于cldc/midp在开发应用。j2me平台的另一个规范cdc在大概 10个月后才发布,同时发布的还有foundation profile。但是由于他们都没有给开发者提 供开发可交互应用程序的api,因此他们发布的影响远远小于cldc/midp的发布。大概在2003 年 sun 发布了基于 cdc 的 personal basic profile 和 personal profile他们的组合替代 了以前

16、的personaljava平台。j2me平台是本着configuration和profile结合來设计的。configuration是提供支持最大范围设备的最小的平台。profile是针对特定的设备捉供相应的开发包集合。在j2me 的两个基本配置cdc和cldc是按照如下的标准进行区分的。cldc: 512kb以下内存有限能源供应(通常使用电池)有限或非持续网络连接简单的用户界面16位或者32位的处理器cdc: 2m以上内存具有网络连接能力,通常为无线网络需要实现java虚拟机规范的全部功能32位或者64位的处理器从上述的要求屮不难看岀cldc主要针对那些资源非常受限的设备比如手机、pda、双

17、工 寻呼机等。而cdc主要面对那些家电产品,比如机顶盒、汽车导航系统等。j2me平台的结构如图2.2所示:optional packagesconfigurationsjava virtual machineshost operating system图2.2 j2me平台的结构图j2me的核心是configuration,在它里面定义了 java的虚拟机,通过它来和底层的hostos打交道。profile提供了访问设备的i0或者图形界面的能力,这样configuration和profile共同构成了 j2me的运行环境。比如clcd/midp可以提供开发手机程序的环境°在 prof

18、ile之上针对不同的设备还可以提供不同的可选开发包。基于cdc的设备可以支持全部的java2语言规范和java艰拟机规范,它是cldc的超集 并且远大于cldc,因此基于cldc的程序是可以无修改的移植到基于cdc的设备的。foundation profile是对cdc进行扩展的profile,但是他并没有提供gui的开发包,gui 是在personal basic profile d*进行定义的,它提供了 awt的一个子集给开发人员。它还 提供了 xlet 应用程序模式针对 java tv。personal profile 是 personal basci profile的超集。他提供了对a

19、pplet的支持,丰富了 awt的组件,添加了 java.awt.datatransfer 包。基于cdc的j2me系统构架如图2.3所示:optional packagesfoundation profilehost operating system图2.3 j2me平台的系统图1.2.9 j2me 与 j2ee 的区别与j2se和j2ee相比,j2me总体的的运行环境和目标更加多样化,但其中每一种产品 的用途却更为单一,而且资源限制也更加严格问【2叽为了在达到标准化和兼容性的同时尽 量满足不同方面的需求,j2me的架构分为configurations profile和0ptional pa

20、ckages (可选包)。它们的组合取舍形成了具体的运行环境。configuration主要是对设备纵向的分类,分类依据包括存储和处理能力,其中定义了 虚拟机特性和基本的类库。已经标准化的configuration有connected limited device configuration (cldc)和 connected device configuration(cdc)oprofile建立在configuration基础之上,一起构成了完整的运行环境。它对设备横向 分类,针对特定领域细分市场,内容主要包括特定用途的类库和apl cldc上己经标准化的 profile 有 mobile

21、information device profile (midp)和 information module profile(imp),而 cdc ±标准化的 profile 有 foundation profile(fp)、personal basis profile(pbp)和 personal profile(pp)。可选包独立于前面两者提供附加的、模块化的和更为多样化的功能。目前标准化的可选 包包插数据库访问、多媒体、蓝牙等等。第三章j2me实现移动数据的原理在当今电子商务应用中,j2ee以其可扩展性,灵活性已经成为服务端事实上的开发标 准。j2me与j2ee的结合使建设一个无

22、线接入的企业网络成为对能,任何时间,任何地点的 自由访问不仅扩大了企业市场影响力,提高客户服务水平,而且降低了企业it运行的成本。 j2me与j2ee结合实现移动数据应用的原理如图3.1所示,j2me手机客八端通过无线网络发 送请求,j2ee服务器根据请求类型从数据库提取信息,并返回到j2me客八端,用户就像随 身带着一个移动数据库一样。intranet图3.1移动数据通信原理图服务端设计j2ee为企业开发提供了丰富的技术组件。ejb (enterprise java bean)封 装业务逻辑,并将它们应用于后端的企业信息系统,jsp, servlet提供web层与用户的信 息交流,协调用户和

23、ejbz间的交互。这些组件相互关联构成了服务端j2ee的应用。客户 端设计在客户端设计中,需要解决的关键主要包括网络连接和信息的安全。网络连接:http协议在midp框架和j2ee平台搭建了传输的桥梁。servlet通过http 建立起与客户端基于主求与回应的动态模式。midp支持http1.1,使用get和post与网络 层进行通信,产生http报头和数据。为了使报文清晰,在http请求是应包含content-type 属性,某些网关不接收未定义或非标准content-type的报文。无线传输的大量时间耗时在 连接的建立过稈中,所以客户端设讣应避免频繁的发送消息,将需要发送的消息积累起来,

24、减少发送的次数将极大提高客户端的运行效率。在某些情况下,客户端与服务端传输一些较 大的数据流是不对避免的,然而无线传输会受到各种因素的影响产生不对预测的网络延迟, 设计一个可视的传输指示器会提高客户端的易用性。1.2.10移动数据库和j2mei具探讨在不可靠的无线网络中应用程序可靠性己经成为关系移动商业成功的一个中心话题。 j2me (java 2平台微型版)是支持离线模式智能移动客户端的完美平台。整合了移动关系 数据库的企业j2me客户端能够管理在设备上的复杂数据并能在需要时和后台服务器同步。目前的无线网络是极不可靠的。不可靠的应用程序毁坏了移动商业的核心价值,而它又 许诺无论何吋何地都可以

25、访问到信息。实际上,总是保持连接的需求正是基于无线应用协议 (wap)的瘦客户移动商业失败的主要原因。移动商业筒要智能的移用客户端,它能够操纵 当地的应用程序并且甚至在网络出现临时的不可靠时可以持续的工作(例如,离线操作)“偶 然连接”移动应用程序筒要高级的移动数据储存和管理工具。这样的工具在j2me上是容易 得到的。1.2.11设备上的数据存储和管理对离线操作的首要需求是存储和管理设备自身的应用数据。标准的j2me仅仅提供有限 的数据存储和管理能力。在低端的midp (移动信息设备描述)电话上,我们仅靠记录管理 系统record management system (rms)得到线性的记录储

26、存;在基础描述里(或personal java)我们有简单的随机文件。应用程序开发者们必须用那些一般工具来组织数据,这些工 具会对大应用程序导致乏味、低效率和错误的倾向。在j2se (java2平台标准版)和j2ee (java2平台企业版)的世界中,关系数据库代表 着数据管理的关键技术。大多数开发人员己经非常熟悉通过如jdbc (java数据库连接)的 api访问普通数据库。因此轻量级关系数据库是我们对移动数据管理自然的选择。除了提供离线操作模式外,设备上数据库on-device databases还有其他的重要好处:(1) 能管理用户参数。极度的个性化已经作为移动商业的一个主要优点。(2)

27、 能提供一个性能高速缓存器performance cache來减少网络往返回调。这样就能大 大的增强在目前低速和反应慢的无线网络中应用程序的性能。1.2.12 jdbc 可选包标准jdbc api对高端java移动设备已经是可以选择利用的了。personaljava运行时 常常和可选的jdbc1.xapi捆绑在一起。personaljava的继承物,j2me基础/个性化的描述 foundation/personal profile (fp/pp),它没有委托 jdbc 来访问数据库。相反,fp/pp 设 备通过j2me jdbc可选包(jdbc op)使用jdbc 3.x api的一个富子集。

28、jsr java specification request (java规范需求)169正在发展这个可选包的规范。jdbc op除了 以下儿个特点外支持大多数用于jdbc的公共特性:(1) 连接池(2) parametermetadata 接口(3) 在callablestatement interface里为己经存储的程序通过名称來设置参数(4) sql 99 的类型(女 struct, array, ref, sqldata, sqlinput,和 sqloutput 接口)(5) 自定义类型映射(如settypemap()和gettypemap()方法)1.2.13数据同步“偶然连接”应

29、用程序范例的另一个重要特性是数据同步。独立的移动数据库被数据包 所隔开。当我们用强大的后台服务器连接那些“孤岛”时移动应用程序非常有用。已连接上 的移动数据库有如下优点:(1) 移动客户端常常需要访问企业的基础设施。例如,移动销售应用程序需要更新库存 数据。(2) 后端应用程序需要上卷数据和聚集数据来制定智能商业决策或生成正确的报表。例 如,供应链应用程序在决定它应该从供应商那里定购多少货物z前需要得到移动销售人员的 聚集数据。(3) 后台能共亨每个移动终端信息。因此智能客户端不但应该提供离线设备数据管理,而且应该当网络可用时提供后台数据 库的数据同步。后台数据库当作简单移动设备管理的一个内容

30、储存库是同步解决方案的额外 收益。理论上应用程序开发者能操纵整个同步逻辑,然而开发一个优化的,安全的和可扩展的 同步解决方案需要非常专业的技能。移动数据库产品同其附带的同步工具和api 起赶走了 开发人员的痛苦。1.2.14设备上的数据访问类dbmanager是一个单独的类,它提供从应用程序单点访问数据。这个单独模式避免了 嵌入式数据库的线程复杂性。下面的代码片断显示了 dbmanager的构造器和初始化的代码。 它连接数据库,定义表,将测试数据导入表中,创建为以后时候的sql状态模版(preparedstatement),这里用到的都是标准jdbc。在dbmanager中的其他方法通过简单j

31、dbc api调用进行访问数据库。如下的代码片断 展示了搜索和操纵名称卡片记录的方法。这些方法使用了我们之前定义的sql模版。数据访问方法spring提供的jdbc抽象框架由core, datasource, object和support四个不同的包 组成。og.springframework.jdbc.coe包里定义了提供核心功能的类。其中有各种 sqlexceptiontranslator 和 datafieldmaxvaluelncrementer 的实现以及一 个用于jdbctemplate的dao基础类。org.springframework.jdbc.datasource包里有一个

32、用以简化数据源访问的工具类,以 及各种数据源的简单实现,以被用来在j2ee容器之外不经修改地测试jdbc代码。这个工具 类提供了从jndi获得连接和可能用到的关闭连接的静态方法。它支持绑定线程的连接, org.springframework.jdbc.object包里是把关系数据库的查询,更新和存储过程封装为线 程安全并可重用对彖的类。这中方式模拟了 jdo,尽管查询返回的对彖理所当然的“脱离” 了数据库连接。这个jdbc的高层抽象依赖于org.springframework.jdbc.core包中所实现 的底层抽象。最后在org.springframework.jdbc.support包中你

33、可以找到sqlexception的转换功能和一些工具类。在jdbc调用中被抛出的异常会被转换成在定义org.springframework.dao包中的异常。 这意味着使用spring jdbc抽象层的代码不需要实现jdbc或者rdbms特定的错误处理。所 有的转换后的异常都是unchecked,它允许你捕捉那些你可以恢复的界常,并将其余的异常 传递给调用者。1.2.15与后台数据库同步类dbmanager也允许应用程序开发者用pointbase专有unisync引擎与后台数据库同步 移动数据。不同的厂商使用不同的同步引擎,但他们的概念都是相类似的。同步过程按照如 下这些步骤进行:(1) 在后

34、台服务器和移动设备上创建相应的数据库和表;(2) 在同步服务器上创建一个hub。这个hub包含发布信息。它指定和标识用于同步(发 布)的后台表(或部分表);(3) 使用hub来创建spokeo spoke是在同步服务器上表示移动设备的对彖。每个spoke 都有一个id。它能通过在同一个hub里的订阅对象来订阅发布。通过使用一个spokeld,移 动设备匹配spoke并对订阅的后台表进行同步;(4) 启动同步服务器。基本上通过com.pointbase.me.sync.server类的main()方法來 执行。这个服务器类用于pointbase发布包。还有其他几个方法在不同环境中运行服务器。 默

35、认情况下,服务器监听端口 8124;(5) 使用一个spokeld和在移动设备上的类spoke stub来初始化同步过程。图3.2 unisync同步服务器框架图解resetserver显示了在unisync服务器上如何创建hub和spoke:安装同步服务器man ager=s yn cmanager.getl nstan ce(caturl,catdriver,catuser,catpassword);string dsname;dsn ame=s yn cdatasource.default;string hubnameihub”;hub hub=manager.createhub(hub

36、name);publication pub;string pub name;spokeconfig spoke;subscription sub;string sub name二"subnamecarct;string tablename="namecard,'stringq tables=new stringtablename;/ publish the complete name-card table pub name=”pubnamecarct;pub=hub. newpublicati on (pub name,ds name,tables);hub.pub

37、lish(pub);/ create two spokes and subscribe to this publicationfor(int i=1;i<=2;i+) string name=,'spokef,+i;spoke=hub.createspokeconfig(name);spoke.savepassword(npassh+i);sub=spoke.newsubscriptio n(sub name,s yn cdatasource.default,pubname); spoke.subscribe(sub);/ publish the name-card table

38、without the picture columnpubname=,pubnamecardnopicturen;pub=hub.newpublicati on (pub name,ds name,tables);synctable table=pub.getsynctable(tablename);table.dropsynccolumns(new string"picture");hub.publish(pub);/ create two spokes and subscribe to this publicationfor(int i=3;i<=4;i+) st

39、ring name=f,spokeh+i;spoke=hub.createspokeconfig(name);spoke.savepassword(,fpassh+i);sub=spoke.newsubscription(subname,s yn cdatasource.default,pub name); spoke.subscribe(sub);man ager.close();下面的dbmanager代码片断说明了如何获得spoke stub和如何在设备上处理同步。代码屮的注释解释了应用程序的同步和独立版本的不同。通过同步服务器访问数据分为六个步骤,方法与代码片段如下:(1)首先要对jd

40、bc连接变量与同步变量进行定义,private spoke spoke;private string spoke name;private int spoke_id;private int spoke_range_start,spoke_range_end;final static int rows_per_spoke=1 «16;private string syncurl;private string syncpassword;private dbmanager() (2) 然后获取数据库连接参数syncurl =properties.getpropertycsyncurr*,

41、"http:/localhost:8124*');string spokeid =properties.getproperty(nspokeid,f,spokename =properties.getproperty(,spoke, hspokem+spokeid); syncpassword =properties.getproperty(hsyncpasswordh, hpassh+spokeid);url =properties.getpropertyurl11,hjdbc:poi ntbase:micro:pbdemo”+spokeid);con ne ct();(3

42、) 连接的方式是釆用同步服务器完成连接private void connect() try system.out.println(hcorrnecting to the database.h);class.forname(driver);/ if the database doesn't exist, create a new databaseconnection 二 drivermanager.getconnection(ul, user, password); statement = conn ectio n.createstateme nt();/ check sync meta

43、data and create tables loadmeta();/ create prepared statements createstatement(); catch (exception e) e.printstacktrace();system.exit(1);(4)使用同步服务器获取新id private int getnewld() try resultset rs = statement.executequery("select max(id)+1 from namecard where ”+"id>=,+spoke_range_start+u an

44、d id<"+spoke_range_end); rs.next();int id=rs.getlnt(1);if(rs.wasnull() return spoke_range_start; else return id; catch (exception e) e.printstacktrace();return 0;(5) 创建表和负载数据的同步中心void loadmeta() try syncmanager manager=syncmanager.getlnstance(connection); spoke=ma nager.getspoke(spoke name);

45、if(spoke=二null) system.out.println(,loading metadata from url h+syncurl+11 for spoke h+spokename+h using password h+syncpassword);spoke=ma nager.createspoke(spokename);spoke.savepassword(s yn cpassword);spoke.savehuburl(s yn curl);spoke.loadc on fig();spoke.gets napshot();spokejd = spoke.getspokeld(

46、);system.out.println(hspokeld is ,f+spokejd);spoke_range_start = rows_per_spoke * spokejd; spoke_range_end = spoke_range_start + rows_per_spoke 1; catch (syncexception e) e.printstacktrace();(6) 让后端数据库和移动数据库同步void sync() try spoke.s ync(); catch (syncexception e) e.printstacktrace();完成以上六个步骤后,可以实现通过

47、同步服务器对数据库进行访问1.2.16 j2me移动数据库的选择当然pointbase并不是j2me移动数据库产品的唯一选择。在本文的后面部分将比较和 讨论几种主流的移动数据库。1.8高端设备上的jdbc数据库对丁运行personaljava或personal profile的高端设备,数据库能够通过jdbc api 访问。jdbc数据库对于程序来说是最容易的数据库类型。所有的厂商已经至少有一个这种 种类的产品。最大的挑战是如何平衡这些功能。我们想要最小而且最快的数据库。它能够支 持应用程序所需功能的准确集合。1.9 midp设备上的轻量级数据cldc (有限连接设备配置 connected

48、limited device configuration) /midp 并不支持 jdbc接口。在midp设备上支持复杂数据管理的两个通用方法是:(1) 执行非常轻量的数据库和rms上的类似jdbc的访问apl这个方法很耗费资源,但 根据开发者开发能力和性能支持证明是最好的。(2) 直接扩展rms类并在扩展的类上执行简单的行序列化,数据访问,索引/搜索和同步 方法。这个扩展类是rms上的一个细小的层次。它能模拟关系表的行为。1.2.17同步服务器众所周知,同步是移动数据库的一个关键性能。大多数数据库厂商有他们自己专有的同 步服务器。这些服务器提供许多附加功能来优化在移动环境下的同步过程。同步服

49、务器的重 要性能包括如下几点:智能冲突的解决方案(2)减少带宽占用端到端的编密码(4) 后台引擎的性能调整(5) 异步和可扩展更新能力1.2.18检查和比较几种主流厂商的产品1.10 hsql廿放源码的数据库引擎-hsql是基于thomas mueller的hypersonic sql项目。它完 全是由java是编写的同时也是一种广泛用于嵌入式的数据库。它被包含在许多j2ee应用服 务器中。在移动设备上,hsql运行在personaljava和fp/pp平台上。而且hsql是完全免 费的。设计人员能自由地将它重新部署到应用程序中,这种功能对移动应用程序来说是容易 的。hsql提供一个支持95j

50、dbc接口和所有jdbc数据类型的jdbc驱程。它支持事务,外 键其至java存储过程。在hsql屮的表能寄存在内存屮和保存在磁盘文件屮。hsql只有少 于160-kb的存储器足迹footprinto它也为personaljava设备发布了一个数据库管理控制 台。(经过sharp zaurus ±的测试)然而,hsql缺少一些商业移动数据库上所需的高级性能和安全功能。更重要的是,hsql 不能提供任何同步解决方案。它也缺少一个为midp设备的解决方案。1.11 pointbasepointbase是一个纯java嵌入式数据库方面的主流厂商。pointbase micro数据库能运 行

51、在 fp/pp/personaljava 和 midp 平台上。在fp/pp/personaljava平台上pointbase micro数据库仅用91kb存储器足迹就能支持 大多数jdbc和sql功能。它也支持例如数据库编密码这样的高级功能。它不支持存储过程 和接口 callablestatemento因此midp不支持jdbc, pointbase为midp提供它口己的轻量 级类似jdbc的api。pointbase micro数据库的midp版本提供了一个用浏览器打开的midiet 数据库控制台。pointbase micro数据库通过unisync同步服务器能容易地同服务器端point

52、base嵌入 式数据库和oracle数据库同步。1 12 sybase ianywhere在膝上型电脑上的轻量级数据库ianywhere的sql anywhere studio已经拥有巨大的市 场份额。在普遍设备上的移动数据库市场它也有一个强大的份额。anywhere sql studio的 自定义数据库生成器是它一个关键创新。它让用户而不是数据库厂商决定如何平衡数据库存 储器足迹和它所支持的功能。在anywhere sql studio中用户能指定将在应用程序中调用的sql状态sql statement0 它根据用户对根本性质和事务功能的选择生成一个自定义数据库。所生成的数据库是一个纯 ja

53、va类以及伴随的一系列用户应用程序能调用的api。使用ianywhere mobilink同步服务 器的数据同步api也能加入到自定义数据库中去。除了自定义数据库生成器,ianywhere也提供大存储器足迹和移动数据库的一般用途。 它包括支持java储存过程java stored procedure在内的许多安全,优化和可用性方面的 功能。这些数据库为了达到更好的性能天生就运行在流行的移动平台上。sybase ianywhere sql studio现在仍然不能支持midp数据库的自动生成。1.2.19 ibm db2 everyplaceibm db2 everyplace是ibm在移动数据

54、库的礼物。对于ibm的客户来说,db2 everyplace 非常好地整合了其他ibm企业组件(例如,db2 universal database和websphere mq everyplace)和 ibm 开发工具(例如,ibm websphere studio device developer)。db2 everyplace木身运行在包括palm os, symbian os, pocket pc, qnx软件系统和嵌入式linux 在内的许多平台上。db2 everyplace支持加密数据域和表存储优化功能。在midp平台上,db2 everyplace有一个叫fastrecordsto

55、re的产品。它仿效在midp rms 记录存储之上的可索引和可搜索的关系表。db2 everyplace数据库和fastrecordstore通过ibm同步引擎与后台数据库同步。db2 everyplace也附带一个叫mobile application builder的工具,它允许开发者可视化地创 建db2 everyplace应用程序。1.2.20 oracle9i liteoracle9i lite是oracle在移动数据库上的产品。它可运行在plam os, pocket pc, symbian os和win32等平台上。win32这个版本是为了能运行在膝上电脑上并支持jdbc, 多用

56、户模式以及java存储过程。oracle9i lite的pocket pc和symbian os版本支持jdbc. 而palm os版本仅支持oracle自身专用的okapi (对彖核心api object kernel api)和 odbc (开放数据库连接 open database connectivitiy)。oracle9i lite suite 包括一个移 动开发工具mobile development kit,它能够根据用户自定义需求自动生成和打包移动数 据库应用程序。目前它只能生成本身客户端应用程序。oracle9i移动数据库通过oracle移动服务器和后台oracle数据库服

57、务器同步。如果 我们使用oracle9i lite移动开发工具来创建应用程序则移动服务器会自动为这个应用程序 生成同步逻辑。oracle9ilite支持任何基于tcp/ip的网络上的同步,包括http, cdpd (单 元数字包数据cellular digital packet data) , 802.11b无线局域网。通过使用移动服务 器的开放传输api open transport apis,我们也能增加新的传输。另外oracle移动服务 器支持非同时的同步。在高峰期每个设备只是把同步内容提交到一个队列中然后退出。异步 操作是可扩展解决方案的关键。在midp平台上oracle提供soda (简单对彖数据库访问simple object database access), 这个产品是基于rms的。soda实际上是一个支持midp设备的面向对象数据库。它允许存储, 搜索和恢复类似javabean的数据对象。1.13选择正确的移动数据库选择正确的移动数据库产品是个复杂的商业决策问题。由于移动数据库嵌入在客户端应 用程序中,就需要为所开发的每个产品支付版税。为减少总开销而签订一个好的合同是非常 重要的。由于同步解决方案所特有的性质每个产品都在某种程度上锁定了厂商。因此开发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论