APP下载

基于业务中间件容器的插件开发①

2017-05-17顾学海蒋厚明曹海涛南瑞集团公司国网电力科学研究院南京210000

计算机系统应用 2017年4期
关键词:中间件插件容器

顾学海, 胡 牧, 蒋厚明, 王 俊, 曹海涛(南瑞集团公司(国网电力科学研究院), 南京 210000)

基于业务中间件容器的插件开发①

顾学海, 胡 牧, 蒋厚明, 王 俊, 曹海涛
(南瑞集团公司(国网电力科学研究院), 南京 210000)

随着移动智能设备的不断发展更新, 移动应用也面临前所未有的发展. 同时, 移动应用向企业办公进行延伸, 在国家电网公司提出的信息化建设中, 移动互联也是重要方面. 在基于移动平台进行移动应用开发过程中,针对移动应用的后台服务的开发、运行和部署问题, 提出了基于中间件容器的插件开发, 实现移动应用服务的快速开发和部署, 提高了移动应用的开发和部署运行的效率.

移动应用; 中间件容器; 移动业务中间件

随着智能终端设备和移动网络的迅猛发展, 移动操作系统呈现多个系统共存的局面[1], 同时, 移动应用也得到了飞速进步. 移动设备上的移动应用操作便捷、交互性强和实时快捷等特点, 让移动应用在生活和工作的各个方便都得到了应用. 国家电网公司移动应用也蓬勃发展, 除了与国网员工生活相关的移动应用外, 与员工办公相关的移动应用也得到了很大的发展, 这对提高员工的工作效率和企业生产管理水平有着很大的作用, 移动应用已经与人们的生活和工作形影不离.

电网企业中, 移动应用主要用于查抄电表度数、现场检修以及电力监控等方面, 实现电力办公的实时化和智能化. 随着各种电力业务需求, 移动应用的需求也越来越高, 如何快速的开发移动应用和进行相关服务部署成为开发者所关注的话题. 但是, 移动应用业务的不断扩大, 使得移动应用的后台服务开发越来越复杂,与其他业务系统有数据的相互交互. 基于业务中间件容器的插件开发, 能快速开发复杂的移动后台服务, 并放入移动平台, 随平台的后台服务一起运行, 减少了部署的压力, 提高了开发和部署的效率. 同时, 公司员工信息在一个公司中有着重要的作用, 如考勤、请教、考评等都会涉及到员工的基本信息, 本文基于移动平台的业务中间件容器的插件开发技术实现了公司员工信息统计app的后台服务, 与传统的移动后台服务开发相比, 开发更快捷, 部署更方便, 效率更高.

1 移动业务中间件

移动中间件是指运行于手机操作系统与企业业务系统之间的, 起到连接、交互、支撑和服务的中间软件系统[5]. 根据中间件在软件支撑和架构的定位来看,基本上可以分为三大类: 应用服务类中间件、应用集成类中间件、业务架构类中间件[2-4], 本文重点介绍业务中间件. 业务中间件则基于企业移动信息化市场中的与现有IT架构中的业务系统交互的天然需求提出,其通过进一步的封装, 使得开发者可以方便地通过表现层、业务层或者数据层与原业务系统进行完整交互,使用移动业务中间件开发的优点如下[5]:

1) 解决了手机操作系统的发展不确定性的问题:手机发展道路和电脑发展阶段和道路都有所不同, 从一开始所有厂商都认识到操作系统的重要性, 故而在手机领域缺少电脑领域中某种操作系统一家独大的基础, 这样导致开发者不得不疲于为各个手机操作系统实现相同的功能. 而移动中间件的出现则一开始就以解决跨手机操作系统为目标.

2) 满足了业务系统的天然交互特性: 在企业业务系统的现行演进道路上, 开发者都不可避免的遇到与已经建设多年的业务系统进行交互的问题. 移动应用后台服务也是如此, 移动应用前端展现的数据可能需要与原来的业务系统进行数据的交互, 如果基于移动平台, 把相关的业务系统服务都基于中间件的方式进行开发, 这些业务系统中间件都运行在移动平台容器中, 就解决了与业务系统进行交互的问题, 简化系统对接沟通代价、简化了相应的开发难度, 加速了开发效率.

3) 满足了快速开发的时代需求: 随着时代的发展,整个社会的的效率进一步被提高, 对应的整个软件开发行业的开发效率和迭代速度也进一步提高. 基于业务中间件容器的插件开发, 能够支持跨终端、跨业务.同时, 能够支持基于移动平台的热部署, 实现边开发边调试, 提高开发效率.

复用、松耦合、互操作是中间件技术和这类产品的主要特征[6]. 移动业务中间件能够屏蔽终端设备的硬件和软件的差异性[7], 来适应移动环境动态多变且异构的特殊需求[8], 满足开发者进行高效开发的目的.

2 总体设计

2.1 平台结构

移动平台的总体框架关系如图1所示, 包括了移动应用终端层、移动平台层、后端业务层、一体化平台接入层、安全防护层和网络硬件资源层六个方面.具体介绍如下[9]:

1) 移动应用终端层: 主要是终端设备模块, 包括了移动终端安全管理、终端设备服务、具体业务应用和公共服务等功能.

2) 平台层: 包括平台管理模块和平台支撑模块.平台管理涵盖了移动设备管理、日志管理、监控分析、移动商店和IMS运维监控. 平台支持涵盖了数据同步、数据集成、业务适配和移动业务中间件容器.

3) 后端业务层: 所接入的业务系统对应的业务,为移动端提供业务数据和服务的支撑.

4) 一体化平台层: 为移动应用提供一体化平台集成, 主要包括isc统一权限集成、安全接入平台集成、ims运维集成等. isc集成保证用户是从国网的isc系统中获取, 并进行校验. 安全接入平台对服务进行映射,保证了服务端的安全. ims运维集成保证了实施运维的信息监控.

5) 安全防护层: 为移动应用提供安全性的防护,主要包括终端安全、数据安全、应用安全和网络安全方面进行防护.

图1 移动平台框架

其中, 平台层的支撑模块提供了业务中间件的运行容器, 基于平台业务中间件容器开发的业务中间件服务直接放入平台层的中间件运行容器即可运行, 中间件服务具有跨终端的特点, 即开发的中间件服务可以对应不同的终端进行使用, 解决了手机操作系统的发展不确定性的问题. 同时, 平台层的中间件运行容器中可以运行多个业务中间件服务, 并进行业务的相互交换, 满足了业务系统的天然交互特性. 由于国网的相关信息都是内部的信息, 具有保密性, 所以要通过安全防护层进行防护. 通过国网的专用终端来保证终端安全, 通过电力无线虚拟专网保证网络的安全.

2.2 中间件服务开发

本文的业务中间件开发是基于国网的移动平台的移动业务中间件容器进行开发的. 移动业务中间件(插件)的开发需要遵循插件开发的相关规范, 通过对IDE的二次开发, 实现了IDE进行一键式创建移动业务中间件项目, 提高中间件开发的效率.

2.2.1 IDE中间件开发环境

手动搭建一个移动业务中间件项目需要添加特定的jar包和所需的配置文件等, 考虑到移动应用开发的效率问题, 对Eclipse进行二次开发, 实现了一键式创建移动业务中间件项目. 如图2所示, 通过一键创建中间件项目, 可以把所有需要的jar包添加到项目中, AppConfig.java中实现了默认配置项, 同时也可以手动添加其他所需要的配置项. 减少了创建中间件项目环境的时间, 提高了移动应用后台的开发效率.

创建完中间件项目, 已自动加载所需jar包, 并创建了AppConfig.java、MainPlugin.java、plugin.xml和build.xml. 在一键创建的中间件项目中进行开发的过程中, 为了提高开发的效率, 可以通过配置业务中间件的“pluginDirs”、“*.webRoot”和“*.class”置启动项信息, 平台能够实现业务中间件的热部署, 以支持对业务中间件的快速开发和调试, 满足了快速开发的时代需求. 开发完成后, 通过IDE的一键打包工具生成中间件部署包, 提高了中间件项目开发的效率.

图2 创建业务中间件项目

图3 生成业务中间件部署包

2.2.2 员工信息统计业务中间件实现

员工信息统计移动应用前端基于html5混合开发,后端基于移动业务中间件开发, 生成移动应用对应部署jar包. 部署jar包上传到移动平台中间件容器中, jar包服务直接运行生效. 同时, 移动平台支持移动应用商店, 能够把开发完成的移动app上传到平台移动商店中, 公司员工可以通过平台客户端门户进行下载安装相关应用. 设计框架分为移动app客户端和移动业务中间件服务模块.

考虑到app的相应速度和流畅度员工信息统计app的客户端基于html5进行开发, 移动平台提供相关的UI界面接口. 客户端app的登陆账户和密码是根据平台的统一身份认证机制进行管理. 员工信息统计app能够通过移动平台web端上传到移动应用管理模块中, 在移动门户app的移动商店中可以进行下载和安装.

员工信息统计移动应用业务中间件服务模块包括:中间件的开发, 中间件打包, 中间件发布三个过程.数据库采用oracle或者mysql数据库, 采用ormaping的方式, 进行数据的交互处理.

基于IDE一键式创建中间件项目, 如: 2.2.1节所述, 开发员工信息统计应用对应的业务中间件. 下面列举了plugin.xml配置信息和基于ormaping的数据操作.

1) 配置信息

<plugin>

<class>middleware.MainPlugin</class>

<name>

Employee information statistics

</name>

<description>

员工信息统计移动业务中间件</description>

<author>guxuehai</author>

<version>1.0</version>

<date>DD/MM/YYYY</date>

<datasource>

jdbc:mwdbc:oracle://DataSource=Mobile

</datasource>

<spring-config-class>

middleware.config.AppConfig

</spring-config-class>

</plugin>

上述配置中, class: 业务中间件主类, 一般用于添加启动或销毁事件; name: 业务中间件名称; description: 业务中间件描述; author: 作者信息; version: 中间件版本号; date: 中间件开发日期; datasource: 源数据库连接配置, 为空表示使用移动平台默认数据源, 上述为数据源的配置方式, 也支持数据库直接方式.

2) 加载spring

@ImportResource({"/plugins/middleware/web/config/spr ing/**.xml"})

public class AppConfig {

@Bean

public ViewResolver viewResolver() {

InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();

viewResolver.setPrefix("/");

viewResolver.setSuffix(".jsp");

return viewResolver;

}

@Bean public DefaultServletHttpRequestHandler

createDefaultServletHttpRequestHandler() {

return new DefaultServletHttpRequestHandler();

}

}

3) 基于ormapping数据操作举例

public boolean addMember(MobileGroupMember

mobileGroupMember) {

if (mobileGroupMember != null) {

boolean exists =

queryMemberID(mobileGroupMember.getMemberID()); if (!exists) {

ORMConnector ormConnector = new ORMConnector();

ormConnector.create(mobileGroupMember); } else {

return false;

}

}

return true;

}

public boolean

deleteMember(MobileGroupMember

mobileGroupMember) {

if

(!StringUtil.isNullOrEmpty(mobileGroupMember.getMe mberID())) {

boolean exists =

queryMemberID(mobileGroupMember.getMemberID()); if (exists) {

ORMConnector ormConnector = new ORMConnector();

ormConnector.delete(mobileGroupMember); return true;

}

}

return false;

}

业务中间件开发完成后通过IDE一键生成部署包,生成员工信息统计业务中间件部署jar包, 如图5所示.

图5 生成部署包

发布部署包可以直接把生成的jar包放入平台服务的plugins目录下, jar包会跟随平台一起运行. 或者也可以通过移动平台的插件上传界面进行插件上传,并进行插件的启停操作. 基于移动业务中间件容器进行移动业务中间件(插件)开发, 能够更快的提高移动应用后台服务的开发效率. 员工信息统计应用基于移动平台进行开发, 由于员工信息是公司内部保密信息,通过安全防护层, 保证了终端安全和网络的安全性,安全接入平台对服务进行映射, 保证了服务端的安全. ims运维集成保证了实施运维的信息监控.

3 结语

随着信息化建设的不断发展, 移动应用已经普及到各行各业, 适用不同的应用需求成为移动应用开发的趋势. 国家电网公司也信息化建设的挑战中, 不断研究和发展, 在移动应用领域有着很大的需求. 本文提出了一种基于移动业务中间件容器的移动业务中间件开发方式, 运用自定义的IDE进行一键式中间件项目创建, 基于ormaping的数据操作, 一键式中间件打包, 以及快速发布服务jar包. 实现了基于业务中间件开发的员工信息统计的移动应用后台服务, 提高了移动应用后台服务的开发和部署效率, 有利于提高公司的办公业务的实时化和高效化, 提高公司整体的生产作业效率.

1 W3Schoo1. HTML5教程. http://www.w3school.com.cn/ html5/. [2010-10-28].

2 赵毅.跨平台程序设计语言--Java.西安:西安电子科技大学出版社,2006.

3 Lunny A. PhoneGap Beginner’s Guide. Packt Publishing, 2011: 1–15.

4 Jasnowski M. 盖江南译.Java,Xml和Web 服务宝典.北京:电子工业出版社,2002.

5 http://www.baike.com/wiki/移动中间件.

6 Edwards J, McCurley KS, Tomlin JA. An adaptive model for optimizing performance of an incremental web crawler. Proc. of the Tenth Conference on World Wide Web. Hong Kong. Elsevier Science. 2001.106–113.

7 Raatikainen K. Middleware for mobile applications beyond 3G. smart. Networks. IFIP TC6 /WG6. 7. Seventh International Conference on Intelligence in Networks (Smart Net 2002). 2002. 31– 35.

8 王英华.移动计算中间件研究.科技信息,2010,26(16):194–198.

9 顾学海,胡牧,蒋厚明,王俊.基于html5的混合移动应用开发.计算机系统应用,2016,25(5):236–239.

Plugin Development Based on Middleware Container Business

GU Xue-Hai, HU Mu, JIANG Hou-Ming, WANG Jun, CAO Hai-Tao
(Nari Group Corporation (State Grid Electric Power Research Institute), Nanjing 210000, China)

With the continuous development and updateof mobile intelligent device, mobile application is also facing unprecedented development. At the same time, the mobile application extended to the corporate office. In the information construction of StateGrid corporation, mobile Internet is also an important aspect. The mobile application development processbasing on mobile platform, aiming to the background services for mobile application development, operation and deployment problems, basing on the middleware container plugin development is came up, realized the rapid development and deployment of mobile application service, improved the efficiency of mobile application development and deployment of operation.

mobile application; middleware container; mobile middleware

2016-07-26;收到修改稿时间:2016-09-23

10.15888/j.cnki.csa.005730

猜你喜欢

中间件插件容器
基于CTK插件框架的太赫兹人体安检系统软件设计
我国自主可控中间件发展研究
自编插件完善App Inventor与乐高机器人通信
难以置信的事情
基于OSGi的军用指挥软件插件机制研究
RFID中间件技术及其应用研究
基于jQUerY的自定义插件开发
液体对容器底及容器对桌面的压力和压强
取米
云计算环境下中间件的负载均衡机制研究