APP下载

Web Service技术在古树名木电子导游系统开发中的应用

2018-05-30林志鹏

武夷学院学报 2018年3期
关键词:各省市古树名服务器端

林志鹏

(福建林业职业技术学院 自动化工程系,福建 南平 353000)

古树名木是活化石、活文物,隐藏着丰富的相关历史人化资源,对发展旅游经济具有巨大的经济和文化价值。现阶段下,各省市初步建立相应的古树名木信息数据库,但未进入下一步综合利用这些数据库,在实际中这些宝贵资源都是孤零零地存在,因此可以开发利用它的宝贵资源、宣传介绍它们的价值,建成风格独异的新景点。本文提出建立基于Web Service技术的古树名木电子导游系统,利用已建立的各省市古树名木数据库,在安卓平台下进行系统开发,通过开发利用,使人们更有意识地保护稀有古树名木资源。

在国内,文献[7]有比较多的学者在各个大小城市都建立有相应的古树名木数据库,并进行相关研究,取得初步的成果,文献[9]阐述了古树名木数据采集,并在此基础上,建立起相应的管理信息系统,主要是针对林业专家的。文献[5]主要分析了手机平台下,要集成分布式的异构数据库中存在的变化数据同步问题,研究出如何有效解决此问题的方法。文献[6]阐述了采用安卓手机平台下实现信息系统开发,主要讲述了手机端与服务器数据的通信,这些研究虽有借鉴意义,但未对共享数据的有效获取上进行优化研究,因此为本文的研究指明了方向。

上面文献的分析,可见现研究阶段主要在于各省市古树名木电子导游系统的数据采集、管理问题,而本文着重在古树名木数据的集成交换问题,为将分布式古树名木数据库数据实现集成、交互、获取,提出了基于WebService和Android技术开发古树名木数据库下的电子导游系统APP,本系统是对现阶段已有的各省市古树名木系统,和古树名木数据库管理系统的补充扩展,对行业发展、古树名木的开发利用具有相应价值。

1 系统设计

1.1 系统功能设计

古树名木下的电子导游系统是基于Android开发的系统,主要功能包括:首页印象,以古树名木的照片为主题,可切换古树名木导游省市,并大致浏览该省市下的著名古树名木景点,为用户提供一个古树名木导游资源。附近模块,用户到达相应省市旅游地的著名古树名木景点、周边酒店、以及特色人文美食等推荐、古树名木历史文化传说介绍并包含古树名木搜索功能。古树名木导游攻略,了解该省市的已有古树名木历史文化、特产等导游攻略,还有推荐的旅行日志。地图服务,古树名木的GPS卫星定位服务,可查找用户当前位置的古树名木周边分布、周边银行、购物等场所的位置,线路设计,用户可根据自己的喜好,设计适合自己旅行的古树名木游览线路。天气查询,可查询当前省市的天气情况,方便为出行做准备。

图1 功能模块Figure 1 Function module

1.2 系统总体设计

系统总体由Android手机电子导游客户端、古树名木中心数据库、基于WebService技术的各省市异构古树名木数据库3个组成部分。安卓手机平台下的电子导游系统提供给操作用户的接口,它通过WebService技术访问古树名木数据库中心服务器,而古树名木数据库服务器中心,通过WebService技术的连接与各省市异构数据库进行相关的获取数据操作。系统架构如图1所示。

图2 系统总体设计Figure 2 Overall design of the system

1.2.1 基于WebService的分布式异构古树名木数据库同步设计

(1)各省市古树名木异构数据库

各省市已经建立的异构数据库是计算机网络,利用对不同省市的若干古树名木数据库系统的集合共享,可以达到不同省市古树名木数据库之间数据的共享访问的目的,减少数据初始阶段的投入,为系统开发准备充足的数据源。

(2)古树名木中心服务器

古树名木中心服务器其主要作用是用来存储和管理各省市古树名木数据库的同步数据信息,并为电子导游系统提供共享数据,它首先为各个省市古树名木数据库结构,制定一套统一的数据结构标准,对各省市同步上来的数据进行清洗和合并,当用户提出访问请求时,系统提供相应的操作接口对古树名木中心数据库进行访问,而各个省市古树名木数据库的数据发生改变时,按统一的数据结构标准及时同步到古树名木中心数据库中。保证电子导游系统访问数据与各省市古树名木数据库的一致性。

(3)基于WebService分布式异构古树名木数据库同步方法

WebService开发技术是一个与平台无关的应用程序开发技术,它基于XML、SOAP语言标准,为各平台下的应用程序开发统一提供标准化的服务。其在技术搭建过程,从逻辑结构上可以分为服务层、应用逻辑层和数据访问层。其中服务层是其核心服务部分。WebService技术为本古树名木电子导游系统在服务层提供了函数调用和服务描述功能;在应用逻辑层上为处理古树名木电子导游系统的业务逻辑提供业务处理功能;在数据库访问层上为古树名木电子导游系统提供用户访问古树名木中心数据库的功能,并将各省市的古树名木更新数据,同步到古树名木中心数据库中。

其中古树名木数据同步操作是将当前各省市的古树名木状态数据进行回传到古树名木中心数据库结点,并用统一的数据结构进行清洗数据,再进行转换后,更新进入到古树名木中心数据库,保持数据的统一,提供给电子导游系统访问的一致性。在具体操作中可分成三个步骤,第1步骤完成各省市古树名木数据的的变化捕捉,第2步骤完成古树名木数据的转换,第3步骤完成古树名木数据转移的操作步骤。其中在第1个步骤中,为及时能捕捉到各省市的古树名木数据的变化,可以使用数据库的触发器法,还有应用程序插件技术的API法,结合使用数据库的日志表法、快照法等。在使用过程中,要清楚各自的优缺点,可以单独用,也可两个一起用。比如使用的数据库系统类型是SQLServer,可使用其支持的触发器技术比较方便,且该技术有自动捕捉数据操纵事件的能力。但若全部采用此技术又会遇到不适配的情况,因为有部分数据库管理系统它是不支持触发器技术和日志机制的,此时对数据的变化获取,可结合日志表方法还有插件API技术来完成该操作,使其具备通用的同步操作,达到更好解决这个问题。

古树名木电子导游系统的各省市数据库与古树名木的中心数据库间需要进行同步操作,当用户在进行相关的数据库数据更新操作时,如果两者使用的数据库管理系统都支持触发器操作,那么其同步操作就比较容易,可以将更改的数据放在相关的日志表中,设置相关的定时器,进行调用同步函数来完成数据同步的操作。若有某省市的古树名木数据库管理系统不支持触发器技术,则需考虑采用API插件技术,即可将古树名木数据库的类型、相关表以及变更的古树名木数据,先进行捕获后,在操作事务提交前添加到控制变更表中,再利用定时器触发同步函数来完成变更数据的同步操作。在进行古树名木数据同步操作时,还要考虑数据标准的匹配、清洗、转换,这些具体的方法可参考其他相关文献。

1.2.2 系统WebService服务器端架构设计

古树名木下的电子导游系统开发研究中,系统总体设计上需对各省市的古树名木数据库进行对接,而这些数据库具有两个重要特性:分布性和异构性。为此系统需要引入WebService技术来解决具有这两种特性的数据库同步问题。因此对古树名木中心数据库的服务器端的技术要求严格。在基于.net平台下,中心数据库服务的架构可采用MVC三层架构软件思想,MVC框架现成代码结构包含:Model(.cs类文件)+View(aspx 页面)+Control(aspx.cs代码文件),分别对应着表现层(MVC)、业务逻辑层Business、持久层DAO来实现古树名木下电子导游系统的三层架构。其中aspx页面用于显示古树名木数据库数据,Service接口用于实现古树名木电子导游系统业务逻辑处理。Model类负责与古树名木数据库表字段的映射,实现处理Business层请求的数据结果,目的是为了解耦和,增加系统的可扩展性。

2 系统的实现

2.1 客户端实现

2.1.1 Android手机电子导游系统实现

本系统是在Eclipse的开发环境下,使用Java语言进行开发,基于Android平台的开发环境,主要是搭建在以下环 境下:ADT22.3.0,Android4.0.3,Eclipse 3.4以上,JDK1.6.1,windowsXP。最后开发完成的功能示意图如图3:

图3 开发功能示意图Figure 3 Development functional sketch diagram

古树名木电子导游系统的项目功能主要包含以下几大模块:

首页印象:以印象为主题,可切换古树名木所在的城市,并大致浏览该城市中的古树名木,为用户提供一个大概印象。

附近模块:用户所在地的古树名木,酒店,以及特色美食等推荐、介绍并包含搜索功能。

本地导游攻略:了解该地区所在城市的乡土文化,特产等导游攻略,推荐的旅行游记。

地图服务:GPS卫星定位服务,可查找用户当前位置的周边银行,购物等场所的位置,线路设计中,用户可根据自己喜好,设计适合自己的旅行线路。

天气查询:可即时查询古树名木所在城市的当前天气情况,方便为出行做准备。[1]

2.1.2 电子导游与古树名木数据库服务器端的网络数据传输

由于手机古树名木电子导游客户端的古树、名木、酒店、美食、天气等信息来自于服务器端,Android客户端需要通过网络通信与服务器端进行连接。An droid平台需通过标准Java接口、网络接口以及A-pache接口三种方法来访问网络。这些接口在联网时都需要等待服务器端的响应,若服务器的响应时间超过5秒钟,Android手机端就会出现应用程序响应错误,要解决此问题,可以在主线程中创建一个新线程来进行联网,当有数据请求连接操作时,通过调用Handle对象中的SendMessage方法,将数据传递给主线程中的HandleMessage方法并更新UI。古树名木下的电子导游系统有很多功能需要访问服务器,如获取各省市古树名木、酒店信息、美食信息、天气信息等功能,在Android客户端都会创建多个新线程来处理相应的联网请求,此时新线程数达到一定的数目后,会使系统的性能受到很大影响,因未对线程的使用与否进行有效管理,现加上线程池技术,对线程的创建和销毁进行有效管理,使资源的时间和空间学浪费问题得到比较好的解决,从而提高系统响应速度性能。本文在Android客户端采用线程池方法处理服务器端联网请求的流程图如下图3所示:

图4 服务器端与Android端数据网络数据传输Figure 4 Data transmission between server and Android terminal data network

电子导游客户端与古树名木中心数据库服务器的网络数据传输流程是:

(1)先定义一个线程池对象Travel,用于存放古树名木电子导游客户端对服务器端的联网请求数据,并初始化线程池最值MAXThreads。

(2)当有提交新请求客户端线程时,判断当前线程池大小PoolSize,是否小于最值MaxThreads。

(3)如果是小于最值,则将当前新联网线程加入线程池对象中,然后启动该新线程进行相应的联网操作。

(4)否则进一步判断,线程池中是否当前有闲置线程,如果有,则启动该闲置线程进行相应的联网操作。如果没有,则只好将当前联网线程放入相应的线程等待队列中,再转入第2步。

(5)Travel线程池中的线程执行相应的联网请求后,将返回的服务器端古树名木数据,再次返回给Android古树名木电子导游客户端,并显示出来,结束流程。

2.2 WebService服务器端实现

2.2.1 WebService服务器服务框架调用

Android电子导游系统调用古树名木中心数据库的Web Service服务是实现的难点,注重解决分布式异构数据库系统之间多用户并发访问延迟的问题。[4]在Android古树名木电子导游系统的开发中,并不能直接对Web Service进行编程,需要调用KSOAP2开发包来辅助完成。在Web Service中利用SOAP协议调用许多可以自定义的API接口,我们通过对API接口的编程就能够实现对多个用户的访问请求、远程数据库的响应进行协调与管理。具体来说是开始时创建HttpSETransport传输对象,传入Web Service服务器地址,实例化相关的ObjectSoapt对象,传入所要调用Web Service的命名空间、Web Service方法名,通过调用HttpSETransport对象的call()方法调用远程Web Service服务,获取从服务器端返回的SOAP响应消息,然后解析从服务器端返回的SOAP响应消息,显示出得到的服务器端数据。

2.2.2 古树名木数据库同步数据捕获过程

针对各省市的分布式异构古树名木数据库,设计不同的数据库同步捕获数据方法,从而获取相关不同结构的数据,为了结构各省市古树名木数据库系统自身的特点和属性,可以统一采用API法日志表法,结合触发器技术配合完成各省市古树名木数据捕获。对于支持触发器功能的省市古树名木数据库系统就采用触发器技术,当有不支持的情况出现,则采用API中间件技术来实现捕获古树名木数据。

API中间件技术实现捕获数据难度在于,怎样编写相应的古树名木数据库操作功能的中间件,而其编写复杂且易出问题,本文采用.Net平台中的MVC面向对象编程技术来实现中间件编程。在古树名木数据库数据捕获中关注怎样获取对古树名木数据库相关操作的信息,在MVC中对数据库的操作是系统的关注点,通常在异构环境下使用WebService来访问数据库是一种通用的方法,而WebService在本质上就是对MVC的数据库操作进行了封装,由此系统关注点转化为WebService对数据库的操作上。当对各省市数据库进行DML操作时需要调用MVC中的Model层cs文件,保存save、更新ChangeOrSave以及删除delete方法,为了能捕获这些操作,需要在相应的方法编程上定义捕获通知,通知的类型有前置、返回后、抛出异常后还有环绕型的通知类型,前置通知是指连接点需要连接前置前就执行此通知,抛出异常后通知是指当数据库操作连接异常后执行此通知。而本系统在对捕获古树名木数据库操作时采用了返回后通知,是在古树名木数据库连接点正常完成后,将操作类型、操作表和变更的古树名木数据等通知信息,插入到增量日志表中,并依据日志记录信息通过定时器来调取同步函数实现同步操作,最后完成时还要删除相应的日志表记录动作。

3 系统测试及分析

本次实验要模拟Android客户端对服务器端的访问,对比真实的联网请求,设置了普通联网下跟线程池联网请求下,当电子导游系统访问古树名木中心数据库时,两者的性能数据对比,采用iTestin移动App自动化云测试软件,它支持功能测试、UI测试、性能测试、稳定性测试、压力测试,返回包括日志和截图的详细测试报告,可结合Testin云测平台500多款4600多部终端批量验证功能点。客户端:华为荣耀Honor4X。服务器端:Windows2008Server,Web服务器 IIS7.0,数据库 SQL Server2008。测试步骤:(1)点击手机电子导游系统附近—>古树名木景点如图3界面功能所示;(2)点击古树名木景点后联网请求中心数据库服务器获取最近的古树名木景点数据。实验结果如表1所示:

表1 并发访问延迟测试结果Table 1 Concurrent access latency test results

从表1可以看出,Android客户端采用线程池方式联网时,不论是在平均值还是在最大值都明显优于采用变通方式联网时所耗费的网络延迟,以及传输的数据总量。

4 结束语

本文提出了基于WebService和Android技术的古树名木电子导游系统的设计与实现。在Android手机端,用户通过安装App快速访问各省市的古树名木景点导游数据信息,提高了各省市的古树名木数据库的使用率,使古树名木的价值走入寻常百姓,增强百姓对古树名木的保护意识。同时Android电子导游客户端联网请求古树名木中心数据库时采用WebService服务,将各省市的数据库进行联结,并采用线程池的方法进行手机端访问,提高了系统的整体性能。对于分布式异构数据库采用了不同的数据捕获方法,整个系统架构方案对其他类似应用的开发具有借鉴意义。

[1]林志鹏.古树名木下的电子导游系统开发[J].武夷学院学报(自然科学版),2017,36(3):61-66.

[2]代品宣,李震,卢超,等.基于Android的校园导游和定位系统设计与实现[J].江苏科技大学学报(自然科学版),2015,29(4):378-381.

[3]严志雁.陈桂鹏.基于XML和Web Service的农产品溯源数据交换技术设计与应用[J].江西农业学报,2016,28(11):80-84.

[4]魏晋.Web Service在基于.Net架构的招聘报名管理系统向Android系统拓展开发中的设计与应用 [J]软件工程,2017,20(1):40-42.

[5]张弓.基于Android与Web Service的危废转移管理系统的设计与实现[J].佛山科学技术学院学报,2016,34(1):68-73.

[6]罗国涛,裴广.基于Web Service和Android的C/S+B/S结构手机电影系统[J].计算机应用与软件,2015,32(9):328-333.

[7]王云锦,赵志宏.基于Web Service的Android客户端与Web服务端数据交互实现 [J].信息化建设,2016(8):120-121.

[8]丁向鹏,方陆明.基于移动终端的古树名木采集系统开发与应用[J].信息与电脑,2016(21):130-133

[9]WANG C L,SHE Z B.Research on Ancient and Famous Trees Monitoring and Management Based on Internet of Things[J].Computer Engineering,2015,41(5):316-321.

[10]薄芳芳.基于BPR的古树名木智能信息化管理系统研究[J].安徽农业科学,2016,44(32):204-206.

[11]尹小俊.颜建辉.吴允平.基于物联网技术的古树名木环境监测系统[J].微型机与应用,2016,35(10):63-66.

猜你喜欢

各省市古树名服务器端
2022 年全国古树名木保护科普宣传周启动
“首届古树名木保护摄影大赛”征稿启事
Linux环境下基于Socket的数据传输软件设计
2019年各省市诗词学(协)会换届情况
各省市重点工程科学有序复工
中国各省市经济发展水平分析
中国各省市经济发展水平分析
应对2018年中考全国各省市67道作文题,高分素材,成就高分作文
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计