APP下载

中间件技术在移动应用数据库开发中的运用

2015-01-17朱金连皮德常方黎明

电子设计工程 2015年2期
关键词:中间件调用应用程序

王 韧, 朱金连 , 周 亮, 王 婷, 皮德常, 方黎明

(1.江苏出入境检验检疫局信息化处 江苏 南京 200001;2.南京航空航天大学 计算机学院,江苏 南京 210016)

目前企业级应用程序都是基于关系型数据库进行数据存储与管理是,关系数据库管理系统采用存储过程和触发器的形式进行应用程序逻辑处理,并使用通用SQL语言存取数据与通过标准ODBC或JDBC标准化数据库应用程序接口进行数据库数据查询,这种技术已经完全融入到了企业级应用程序中,且应用程序离开了关系数据库管理系统就无法正常运行。然而,随着移动互联网技术发展与移动用户数量的增长,应用程序和数据管理逐步向“可移动化”发展,虽然如:Palm OS和 Window CE平台支持本地文件系统管理数据,但由于文件中的数据存储不支持SQL查询,需要人工将列表中的数据转换成可自定义数据存储与检索格式,如何实现移动应用程序与企业应用程序间的有效数据管理与如何有效进行移动平台数据库访问已经成为了当前面临的问题。

1 中间件定义与分类

1.1 中间件概念与分类

1)中间件概念

中间件主要是位于应用层与数据层间的由API定义的软件层,主要负责不兼容操作系统、数据库、文件系统间的数据通信与上下层通信服务的独立[1]。

中间件作为一个独立部分可以在多个平台上进行实现、部署,提供很好的跨平台的交互能力,应用程序在中间件提供的环境中可以更好地集中于业务逻辑上,最终自然而然地在异构环境中实现良好的协同工作。中间件的使用减少了系统平台的差异性对业务系统开发的过多影响,并为应用软件的平滑演进提供一个坚实的基础。

2)中间件分类

中间件类型主要包括数据库中间件、远程调用中间件、对象请求代理、事务处理管理中间件、专用中间件、面向消息中间件[2]。远程调用中间件采用基于客户机/服务器模式实现本地应用程访问远程数据库,同时将远程数据库执行的结果获取到本地中;面向消息中间件主要是采用基于消息传递和消息队列管理模式实现客户机与服务器间的数据同步或者异步传输,通过该中间件可以实现网络中断环境下客户端与服务端间的数据一致性;对象请求代理则采用分布式请求或服务信息处理方式实现非结构或非关系数据库间数据交互;事务处理管理中间件则主要是用于多用户、分布式数据库环境控制管理;专用中间件主要大型客户机/服务器使用的专用中间件;数据库中间件位于客户机与数据库之间的应用层,起到客户机与数据库间的数据交互与弱化客户端数据处理的作用,同时通过对中间件增强数据并行处理与改善安全性能。

1.2 移动数据库中间件种类

数据库中间件种类包括通用网关接口 CGI、WebAPI、DJBC 技术[3]。

1)通用网关接口CGI

通用网关接口CGI主要是用于WEB服务器与CGI应用程序数据传递标准,CGI部署在应用服务器中,同时目前所有Web服务器都支持CGI标准。在CGI接口中,当客户端通过浏览器访问服务器时[1],首先调用CGI接口进行服务器数据访问,服务器则将数据处理结果通过WebService返回给客户端,由于CGI采用为每个请求创建一个CGI程序实例,导致当具有相同查询实例时也需要建立独立CGI程序实例,无法实现多个客户请求共享,也容易导致服务器资源大量消耗。

2)WebAPI

WebAPI数据库中间件主要是以DLL方式运行的ASNPI和ISAPI,其内部中的地址都不相同,当客户端发起的ULR地址相同情况下WebAPI提供了可调用数据操作进程,加速了数据库服务器通信效率和性能,但通过WebAPI部署的中间件智能用于基于WEB的服务器上,可移植性低;

3)DJBC 技术

DJBC技术主要采用基于Java语言的书库访问接口,DJBC通过数据库通用驱动管理器调用具体的数据库驱动程序执行SQL语句,并根据底层操作系统的环境自动选择驱动程序,其具有很好的跨平台性与可移植性,但由于Java的性能问题,其DJBC访问数据效率很低[2]。

1.3 移动数据库中间件优缺点

移动数据库中间件就有可移植性、集成、易于扩充、使用简单等特点。移动数据库中间件屏蔽了底层通信协议与操作系统细节,只需要对中间件进行配置就可以实现与底层通信,而当应用程序需要使用底层服务时,只需要将中间件中的服务写入应用程序中即可,无需要对集成环境做大量代码修改,同时当中间件的功能无法满足应用程序需求时,可以通过中间件功能扩展方法增强中间件能力,数据库中间件还可以实现各种数据源的统一访问方法。

2 移动数据库中间件设计

2.1 移动应用数据解决方案

一般情况下,移动数据库融合了复制、缓存、数据广播、位置管理、查询处理与优化技术[4]。移动终端中的数据同步主要通过管道(conduit)进行处理,当用户在应用程序中点击提交或者Sync按钮时,基于系统中的DLL或者COM对象的管道软件会自动调用系统数据库操作数据,并通过调用ODBC/JDBC中间件技术同步到企业级应用程序更新数据库。但随着不同移动终端的出现,要实现应用程序如能被Windows CE支持也要被手提电脑支持,其数据库应用程序接口就需要使用3个数据库模块,例如在移动电脑中使用JDBC/ODBC/ADO数据库模块,在OS系统中使用Palm数据库应用程序接口,在Windows CE中使用ADOCE数据库访问接口,以及要实现3个数据模块互相通信的服务器TCP/IP套接子接口等。为了实现移动应用数据库的跨平台支持,可以采用如 C/C++、JAVA等流行语言编写移动应用程序或者采用跨平台中间件技术实现不同平台底层数据操作与管理,并采用服务端数据合并与同步化解决方案实现数据一致性管理。

移动数据库在移动终端中主要承担了数据管理、查询处理、交换管理等功能,在进行移动数据库设计时需要重点考虑数据类型、响应时间、备份与恢复,同时也需要支持并发数据操作与数据安全管理。

2.2 移动应用数据库中间件结构

本研究中的中间件应用用于和检验检疫局原有核心业务系统对接。通过接口交互,可从原业务系统获取业务数据信息,并将“国检通”系统处理后的业务数据同步至原系统。

移动计算系统是服务端采用固定节点与客户端采用移动节点构成了分布式计算结构,客户端具有可移动性、断接性、弱可靠性等特点,其移动环境下的数据库就是移动数据库,与应用程序相结合共同形成了动态连接的分布式系统。其移动应用数据库中间件结构如图1所示。

图1 移动数据库中间件结构Fig.1 Mobile database middleware structure

在移动数据库中间件结构中,当上层应用需要与底层移动操作系统、外围系统、移动数据库交互信息时,首先中间件判断上层应用程序需要调用的服务,如数据访问,则中间件通过数据访问组件调用数据访问DAO组件实现与移动数据库数据访问,同时若应用程序需要调用远程数据库[3],则也可以通过数据访问组件调用远程数据库,若上层应用程序通过传输中间件调用远程组件,若首先调用中间件中的传输封装组件接口,然后中间件自动调用压缩组件和传输组件进行数据收发。这样移动应用程序就不需要关系发送数据信息的底层细节,只需要向互联网用户一样调用底层服务即可。在移动数据库中间件中,为了支持移动设备与移动应用程序的差异性,数据库中间件支持通过XML服务实现组件功能调用、数据转换,移动数据库中间件服务组件启动时会自动加载XML服务,通过XML加载移动设备软硬件信息,并更加硬件设备不同自动选择最优配置,实现在不同制式和设备信息交互时提供不同层次的服务水平。

2.3 移动应用数据库中间件优化

由于移动数据库首先要与数据库建立连接,然后才能发送SQL语句并执行该语句,当数据处理结束后数据库自动关闭该连接,由于移动应用程序有时存在多个应用程序同时调用一个移动数据库的环境,当多个应用程序需要同时调用一个移动数据时,由于建立多个会话,其数据库工作效率会降低。在本论文中,移动数据库中间件中已经包含了连接移动数据库的 Connnection 类、Statement类、ResultSet类[5],分别描述了移动应用程序创建数据库连接、提交SQL语句、包含了处理数据库执行结果反馈ResultSet类[4]。移动数据库中间件中利用3个基础类完成数据库连接的过程,在移动数据中间件中首先利用Class.forName加载支持本移动设备的数据库驱动程序,然后利用DriverManager.getConnection函数创建移动数据库连接Connection实例,接着利用Connection.createStatement方法创建移动数据库Statement实例,最后分别利用 executeUpdate、executeQuery、ResultSet执行应用程序提交的SQL,完成数据更新、查询、结果反馈等操作[6]。

而当移动应用程序数据操作涉及远程数据调用时,移动应用程序通过数据访问组件中的webdataQuery类实现服务端数据调用,其调用方法如图3所示,在图3中中间件首先通过中间件传输组件调用远程企业应用Webservices应用程序模块,由企业应用WEB应用程序完成远端数据操作[5],其操作结果由webservices返回,并通过XML服务组件进行数据格式转换,然后更新到移动数据库中。

3 结束语

图2 远程调用流程Fig.2 Remote call process

文中主要探讨了基于中间件的移动数据库设计,利用中间件技术处理移动数据库在移动终端和网络的不可靠性下的数据处理,提高了移动应用程序的扩展性、健壮性的需求。

[1]钱文海,贺元启.基于数据复制技术的移动数据库系统[J].计算机应用研究,2012(7):34-35.QIAN Wen-hai,HE Yuan-qi.The mobile database system based on the data replication technology[J].Computer Application Research,2012(7):34-35.

[2]王宗江,乐嘉锦.Sybase移动和嵌入式数据库的同步技术[J].中原工学院学报是,2012(1):123-124.WANGZong-jiang,LE Jia-jin.Sybase mobile and embedded database synchronization technology[J].Journal of Zhongyuan Institute of Technology,2012(1):123-124.

[3]王彤,王良.嵌入式移动数据库的综述及评价[J].计算机工程,2011(12):34-35.WANG Tong,WANG Liang.Review and evaluation of the embedded mobile database[J].Computer Engineering,2011(12):34-35.

[4]Imielinski T,Viswanathan S,Badrinath B.R.Energy efficient indexing on air[C]//Proceedings of International Conference on Management of Data,2010.

[5]S.Acharya,M.Franklin and S.Zdonik.Dissemination-based data delivery using broadcast disks[C]//IEEE Personal Communications,2009.

[6]Andrea Bono.Historical seismometry database project:A comprehensive relational database for historical seismic records[J].Computers&Geosciences,2007:45-46.

猜你喜欢

中间件调用应用程序
核电项目物项调用管理的应用研究
删除Win10中自带的应用程序
LabWindows/CVI下基于ActiveX技术的Excel调用
谷歌禁止加密货币应用程序
RFID中间件技术及其应用研究
基于系统调用的恶意软件检测技术研究
中间件在高速公路领域的应用
基于SAF规范的高可用电信中间件设计
利用RFC技术实现SAP系统接口通信
一种支持智能环境构建的中间件