基于动态标签技术的信息发布系统设计与实现

2017-03-01 04:26李营那吴松洋
计算机应用与软件 2017年1期
关键词:标签定义服务器

李营那 吴松洋 张 涛 李 勋

(公安部第三研究所 上海 201204)

基于动态标签技术的信息发布系统设计与实现

李营那 吴松洋 张 涛*李 勋

(公安部第三研究所 上海 201204)

当今信息化时代,信息发布系统被广泛应用于社会各领域、各企事业单位。现有的信息发布系统只能发布系统已定义类型的信息,如企业动态、考勤制度等,当需要增加新的信息类型时,需要对系统进行重新编码设计,现有信息系统的可扩展性很差。为此,提出一种基于动态标签技术的信息发布系统,详述其设计与实现方法,通过基于MongoDB存储的动态标签技术实现信息类型用户自定义,用户可以简单、易操作的方式增加新的信息类型,发布新的信息。实践表明,所提出的信息发布信息具有高度的用户透明性、业务扩展性,减低了企事业单位研发信息发布系统的费用、时间和人员。

动态标签技术 MongoDB HTML5 服务器推送

0 引 言

信息化时代各领域由通过传统媒介(报纸、公文)发布信息向通过互联网发布信息转变,信息发布的及时性已成为衡量一个企业竞争力的重要指标。为了提高自身的实力,越来越多的企业开始创建自己的信息发布系统,使企业信息能够方便、及时、高效地发布,便于企业员工可以实时地浏览、下载最新的信息,及时了解企业的新动态、新政策,协助企业更好地作出决策。

信息发布系统主要用于在各个播放端展示预先制作的包含图片、视频、动画等多媒体元素的HTML内容[4]。目前信息发布系统存在以下问题:

(1) 当前企业信息发布系统只能发布系统已定义类型的信息如最新资讯、考勤管理、通知公告等,不同类型的信息具有不同的属性,需分开存储。随着企业业务的发展可能需要增加新的信息类型,此时需要再次进行需求调研、组织开发,耗费大量的时间、人员,影响企业的发展。

(2) 目前信息发布系统中主流的HTML生成技术是模板引擎[1,5],赖吉平等[2]提出使用标签解析技术实现用户自定义模板的方法,使用标签解析技术提取模板内与数据源交互的字段,将这些字段与模板进行整合以实现标签内容的提取、替换。经过这些处理生成的HTML页面即为展示给用户的信息,但该方法要求用户有一定的编程基础;朱明[4]使用标签引擎制作HTML页面,每种媒体元素代表一类标签。

(3) 信息实时性不够,企业员工主动访问信息发布系统,才可以浏览最新的信息,员工不会时刻关注是否有新信息发布,导致信息滞后,影响工作进程。

本文设计了一种基于动态标签的信息发布系统,通过充分利用非关系型数据库MongoDB的数据模式自由特性,HTML5服务器推送事件特性,以及Ajax的交互式数据访问特性,系统解决了上述难题。总体而言,该系统具备如下特点和优势:

(1) 数据标签化:系统提供一套与底层存储相对应的数据标签,用户可使用所见即所得的方式定义数据标签,不需要任何编程即可从服务器数据库把信息读取出来,并把新信息存储到服务器数据库;

(2) 信息类型自由定义:用户可根据业务需求自由定义需要发布信息的类型(政策法规、最新动态、通知公告等)与信息需要展示的内容;

(3) 模板可自由定义:用户可为不同的信息类型定义相应的可视化模板;

(4) 基于模板与标签的权限控制机制:系统从模板和标签级别对数据的权限进行控制,从而保证不同用户组之间信息的访问安全;

(5) 信息实时推送机制:通过推送机制使用户可以实时地访问系统服务器所发布的信息,从而避免了传统方式中客户端频繁刷新请求。

1 相关关键技术

1.1 MongoDB

MongoDB是基于分布式文件存储的NoSQL数据库系统,具有可扩展、高性能、开源的、模式自由和面向文档等特性,旨在为Web应用提供可扩展的高性能数据存储的解决方案。MongoDB具有以下特性:

文档型:文档是MongoDB中基本单位,数据以BSON(键-值对)形式存储在文档中,键是字符串,值为任意数据类型如字符串、整形、用户定义的对象等[9];

面向集合:文档数据被分组存储在不同的集合中,每个集合在数据库中有唯一的标识名[9],并且可以包含无限数量的文档,集合类似于关系型数据库中的表,区别是集合不需要定义模式;

模式自由:数据库不需要知道存储在MongoDB集合中的文档的任何结构信息,同一集合可以包含不同结构的文档,如下两个记录可以存储在同一个集合中:{“name”:”上海”},{“sex”:”男”,”address”:”shanghai”}。

作为一个适用于敏捷开发的数据库MongoDB还提供以下功能:支持丰富的查询表达式,查询指令使用JSON形式;完整的索引支持,包括文档内嵌对象及数组;支持服务器之间的数据复制,提供冗余及自动故障转移,使应用程序具有企业级的可靠性和操作灵活性;自动分片功能支持水平的数据库集群,可动态添加机器,支持大型、复杂的多数据中心架构。

对于本文所研发的信息系统而言,最重要的是使用了MongoDB的数据模式的灵活更新机制;同时,其可扩展性也是非常重要的特性,尤其是在大型企业中,信息的数量通常处于非常高的数量级,因而可利用MongoDB的可扩充特性来保证大数据量下系统的运行效率。

1.2 HTML5

HTML 5是HTML下一代主要的修订版本,是用以描述网页文档的超文本标记语言,它的制定主要是为了替代原有的HTML 4.01和XHTML 1.0标准。从广义上HTML 5是一系列用于开发网络应用的最新技术的集合,包括HTML、CSS和JavaScript以及一系列全新API[3]。HTML5技术希望能够减少浏览器对于需要插件的丰富性网络应用服务如Adobe Flash、Microsoft Silverlight的需求,提供更多能有效增强网络应用的标准集。

相对于HTML之前的版本,HTML 5添加了许多新的语法特征,主要包括