基于Android的网络新闻应急管理系统的研究
2011-09-21刘甫迎
刘 焱,刘甫迎
(成都电子机械高等专科学校 计算机工程系,成都 611730)
基于Android的网络新闻应急管理系统的研究
刘 焱,刘甫迎
(成都电子机械高等专科学校 计算机工程系,成都 611730)
通过论述网络新闻应急管理系统(FoxNews)的功能、特点,讨论其关键技术,最终实现了该系统的研制,给出了实现的关键程序。经试运行后表明,FoxNews系统可以实现基于Android面向消息的中间件(MOM)技术的对手持移动终端等远程信息的推送、基于Android的手持终端等信息的接收和当地與情新闻信息及数字媒体数据的上传。
网络新闻应急系统;面向消息的中间件;应急信息推送;Android;Oracle数据库;Java EE规范结构
1 FoxNews网络新闻应急系统的组成、运行环境及功能特点
当我国的经济改革取得举世瞩目的巨大成就,改革进入深层次、转型时期时,及时掌握與情已成为建设和谐社会的需要。将與情以网络新闻应急信息的形式及时推送到各级领导的使用终端指挥处理,对维护社会稳定不无意义。FoxNews管理系统就是我们参与定制的一套针对各地党政机关、企事业单位进行信息收集、信息编排、信息管理、信息推送、信息发布等功能的综合性质的网络新闻应急管理平台系统。其可通过人工采集或者自动采集的信息,将與情及时推送到上万个桌面终端、数千个手持终端、上万个政府外挂终端。由于国内还未见同类系统、且意义重大,故此系统的开发已作为紧急任务来完成。
FoxNews网络新闻应急管理系统是基于广域网范围设计的综合性系统,其主要功能分为客户端系统和中心管理系统2个构成部分(共10个系统组成)。前者主要包括:基于Android的桌面终端应急信息管理系统、基于Android的手持终端应急信息管理系统、基于Android的外挂终端应急信息管理系统;后者主要包括:基于Web技术的智能网络新闻信息釆集系统、基于Web技术的新闻信息工作流程管理系统、基于Web技术的新闻信息内容仓库管理系统、基于Web技术的新闻信息编排管理系统、基于Web技术的新闻信息后台管理系统、基于Web技术的客户管理及基于Android的信息推送系统。
本系统使用了Android、Linux平台和Oracle数据库等先进技术,很好地支持了Java EE规范结构。其人机交互能力强、界面友好、速度快,具有系统的帮助信息,便于广大用户使用。设置了用户权限管理,可向不同的用户或用户组(例如常委或者非常委)权限推送不同的信息内容,保证了系统安全以及签核安全。
本系统适用于各地党政机关、企事业单位與情与新闻应急信息的管理和推送,具有广阔的市场前景和社会效益。
2 FoxNews网络新闻应急系统的主要关键技术
2.1 Java EE规范的系统体系结与流程
图1 系统体系结构示意图
整个系统的体系结构示意图如图1。
本系统使用高版本Oracle DBMS,以实现集群、负载均衡和高可用性。包括多个数据服务器,例如,数据服务器资源:用于系统数据库,以及大量文件存放的服务器;系统应用服务器资源:用于部署基于流程系统的服务;发布服务器资源:用于向客户端推送信息及接收客户端查询;认证的服务器资源:用于提供DID及MID的身份认证和安全认证;状态监控的服务器资源:用于监控DID及MID的状态和接收反馈信息等。
系统流程:Web客户终端(即本地终端)使用服务器n(即系统应用服务器——后台管理服务器)进行信息收集、信息编排、工作流程管理审批后,将之存入数据库服务器的中心数据库,并由服务器1(发布服务器)根据不同权限将推送到Android桌面终端、Android手持终端MID、远程外挂终端DID3类应用客户终端。系统进行了用户权限(包含身份认证、安全认证)、工作量察看(日志)等后台管理,还进行了新闻信息内容仓库管理和终端状态监控的管理。另外,Android手持终端MID用户也可将当地與情与新闻(文章、图片、视频)上传至数据库服务器用于信息编排,经工作流程管理审批后发布。
尽管Java EE是基于Java的,但是Web应用体系结构却不只限于使用Java组件。对于某一层的组件而言,只要能提供明确定义的接口且可以进行互操作通信,就可以使用Java之外的语言实现,如图1所示的前端用户便使用了Android,后台中心管理系统使用了ASP.Net+C#。一个用C#语言或者Android实现的客户端应用可访问一个用Java实现的Web服务。Web服务接口在客户端和Web服务之间提供了定义良好的接口。可以用任何一种支持发起HTTP请求的语言来实现客户端。例如,用Android语言编写客户端程序,然后由Java编写EJB;客户端向应用服务器发送符合格式的Web服务请求,Java EE应用服务器运行EJB来为客户端提供服务,本系统体系结构很好地支持和体现了这类Java EE规范。
2.2 系统的消息推送技术
研发的任务之一是建立一个系统使之可以根据权限通过系统的推送技术,把要闻、每日舆情、突发事件发给上万个远程桌面终端。新闻中心产生上述消息,所有消息都保存在一个中心数据库中。这实际上是在新闻数据中心及其远程桌面终端之间的数据流,本系统设计一种方案,使这种数据传输处理更为高效。
就推送信息而言,数据流是单向的,即从一个源到多个目标。新闻数据中心希望确保舆情等消息最终会送达每个终端,因此,可以稍后再得到相应的确认(如果存在确认的话)。与交互式Web应用不同的是,人本身不会在系统间传输这些消息。实际上,整个处理都是通过1个生产应用(新闻中心的推送消息应用)和下面的使用应用之间的通信完成。这种解决方案只涉及到2个应用相互通信,而没有任何交互式用户。2个应用之间的中间消息服务往往可以加速集成过程,因为它能够使2个系统通过1个公开的API很轻松地实现数据传输。更重要的是,基于消息,使集成技术人员不用花太多时间来讨论应用API的调整、中间件技术和其他一些问题。
1)PTP与Pub/Sub相结合的消息服务模型
当前,CORBA,DCOM,RMI等RPC中间件技术已广泛应用于各个领域。但是,这些技术也存在局限性:①同步通信:客户发出调用后,必须等待服务对象完成处理并返回结果后才能继续执行;②客户和服务对象的生命周期紧密耦合:客户进程和服务对象进程都必须正常运行,如果由于服务对象崩溃或者网络故障导致消息推送不可达,客户会接收到异常;③点对点通信:客户的一次调用只发送给某个单独的目标对象。
面向消息的中间件(Message Oriented Middleware,MOM)较好地解决了以上问题。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。这种模式下,发送和接收是异步的,发送者无需等待;二者的生命周期未必相同:发送消息的时候接收者不一定运行,接收消息的时候发送者也不一定运行;一对多通信:对于一个消息可以有多个接收者。
消息服务是旨在统一各种MOM系统接口的规范,它包含点对点(Point to Point,PTP)和发布/订阅(Publish/Subscribe,Pub/Sub)2种消息模式,提供可靠消息传输、事务和消息过滤等机制。
①点对点模式:
点对点模型应用于一个或多个组件(发布者)仅仅给一个组件收件人(接收者)发送消息的情形。这种模型是基于消息队列概念的:发送者把消息发送到队列中,接收者从该队列中读取消息。在点对点模型中,相同的队列上可能存在多个接收者,但是MOM只给其中一个传递消息。给哪一个传递消息依赖于MOM的实现。这种方式适用于发送方和接收方为一对一的情形。
②发布—订阅模式:
发布—预订模型应用于一个或多个组件(发布者)给一个或多个组件收件人(预订者)发送消息的情形。这种特定的模型是基于消息主题(Message Topic)概念的:发表者把消息发送到某个主题中,而该特定主题的预订者接收这些消息,如图2所示。这种方式适用于一对多进行信息发布的场合。
图2 发布/预约消息模型
笔者研发的新闻信息应急管理平台消息推送系统,采用PTP与Pub/Sub相结合的消息服务模型:个别重要领导干部客户采用PTP模式推送消息;权限相同的组(常委、非常委或者地区等)采用Pub/Sub模式推送消息。
2)消息服务分组推送命名规则
为了区分用户权限、避免混淆,在消息服务分组推送时,采用如下命名规则:
按地区分组:以地市名称每个字第一个的汉语拼音的组成(大写)
来命名,加上业务系统名称缩写,再加上DQ,连接符用“.”。例如:成都(CD.SCNS.DQ)、绵阳(MY.SCNS.DQ)、德阳(DY.SCNS.DQ)等。
按职能范围分组:以职位名称每个字第一个的汉语拼音组成(大写)+应用名称(SCNS)再加上ZW来命名,连接符用“.”。例如:常委(CW.SCNS.ZW)、局级(JJ.SCNS.ZW)、普通(PT.SCNS.ZW)。
3)消息格式设置
消息格式按照应用要求存储不同的序列化对象。本项目OjectMessage存储对象为List<Map〉对象,List的每个元素为一个Map对象,每个Map对象使用键值进行存储,键为数据库表的字段名。例如:
上述消息格式可以携带字串、数据结构、二进制内容(文本、文件、声音、图像),适用于多变的数据。
2.3 基于Android的客户端的MVC技术
本系统核心对象分别是用户界面(FoxNews_MainUI)、消息接收器(FoxNews_MassageReceiver)和数据处理器(FoxNews_DataRecord);辅助对象有配置管理对象(FoxNews_Configueration)和数据库持久化代理(FoxNews_DaoUtil)。业务类 FoxNews_DataRecord和 FoxNews_MassageReceiver分别实现接口 Job和MassageListener。数据处理器作为M,用户界面作为V,消息接收器作为C,形成C/S结构的MVC模式。
本系统(平板终端)的关键技术是开发专用的基于Android的消息服务客户端。Android是Google与其他33家手机制造商(包含摩托罗拉、宏达电、三星、LG)、手机晶片供应商、软硬件供应商、电信业者所联合组成的开放手持装置联盟(Open Handset Alliance)于2007年发布的开放手机软硬件平台。Android的推出影响了整个移动操作系统行业的开发规则,近年来已成了取代先前诺基亚及其所控制的移动操作系统Symbian占统治地位的新星。本系统(平板终端)使用2011年推出的新版Android3.0,开发了基于Android的消息服务客户端,当这种专用的客户端后台线程接收到消息时,将调用监听模块的方法。此方法的实现必须快速地返回,不应做任何不必要的操作。程序不在此方法中接收或处理信息,它只激发业务处理模块的线程。FoxNews_MessageReceiver作为MVC的Controller,在接收到消息时,负责把消息传递给业务处理类FoxNews_DataRecord的实例处理消息数据,在业务处理类完成并返回结果后,调用FoxNews_MainUI的实例Mywindow显示处理过程和结果。
3 结语
正在试用的FoxNews(平板终端)既有先进性又有实用性,适用于各地党政机关、企事业单位與情与新闻应急信息的管理和推送,必将得到进一步的推广,为维护社会稳定作出贡献。
[1]刘甫迎,刘焱.Android移动编程实用教程[M].北京:电子工业出版社,2011.
[2]刘甫迎,饶斌,郑显举,等.Java EE Web编程技术教程[M].北京:电子工业出版社,2010.
[3]刘甫迎,刘光会,王蓉.C#程序设计教程[M].2版.北京:电子工业出版社,2008.
[4]刘甫迎,刘枝盛,王蓉.Web编程实用技术教程(ASP.NET+C#)[M].北京:高等教育出版社,2009.
Study and Implementation of FoxNews based on Android Application
LIU Yan and LIU Fuying
(Department of Computer Engineering,Chengdu Electromechanical College,Chengdu 611730,China)
This paper discusses the function,characteristics,and key technologies of FoxNews(network news emergency management system).The realizations of the key programs are given.The test running shows that the FoxNews system can realize the pushing,receiving,and uploading of information from Android-based handheld terminals.
FoxNews;MOM;pushing News emergency;Android;Oracle;Java EE
TP311
A
1008-5440(2011)04-0026-04
2011-11-07
刘焱(1984-),女(汉族),重庆人,助教,研究方向:数字媒体技术、计算机软件。
刘甫迎(1948-),男(汉族),重庆人,教授,国家级教学名师,研究方向:计算机软件、数据库。