赵玉洁
摘 要:本文采用微服务架构和Spring MVC+MyBatis+Redis技术设计了一个基于微信公众号的数字化科研信息服务平台。该平台能为广大科研机构、高新企业和社会公众提供统一的决策咨询和科技信息服務,为科研服务与新型技术的结合起到了良好的示范作用。
关键词:微信公众号;科研信息服务;微服务架构;个性化推送服务
Abstract: In this paper, a digital research information service platform based on WeChat official account was designed by using micro service architecture and Spring MVC+MyBatis+Redis technology. The platform can provide unified decision-making consultation and scientific and technological information services for the majority of scientific research institutions, high-tech enterprises and the public, and play a good exemplary role in the combination of scientific research services and new technologies.
Keywords: WeChat official account;research information service;microservice architecture;personalized push service
传统的数字化科研信息服务平台是基于PC端的,不能满足即时通信、移动信息服务的需求;而微信公众平台操作便捷、交互即时,已经逐渐成为移动信息服务的重要手段[1-2]。
为了更好地利用现有科技文献资源和科技信息数据库为科研机构、高新企业和社会公众提供决策咨询和科技信息服务,研究者设计了一个基于微信公众号的数字化科研信息服务平台。该平台采用微服务架构,采用Spring MVC+MyBatis+Redis的技术架构搭建。在技术架构搭建开发中,采用Spring MVC处理业务逻辑,采用对象-关系映射框架MyBatis作为封装数据库工具,使用Redis来缓存数据库的查询结果,提高系统查询效率。该平台主要包括消息、资源、服务三大子系统。子系统之间相对独立,相互之间主要使用Restful API技术进行消息传递,达到了降低业务模块间的耦合度的目的。笔者介绍了该系统的设计思路、组成结构,描述了关键的业务流程。
1 系统设计
1.1 技术架构
本文设计的基于微信公众号的数字化科研信息服务平台的技术框架如图1所示。本系统采用微服务架构,主要包括消息、资源、服务三大子系统。系统前端是用户交互人机界面,将用户的点击操作行为传入后台,展示后台逻辑处理之后传回的数据。系统服务端是由微信服务接口、微信端接口实现、MySQL数据库、文献资源数据库组成的。微信服务接口与微信端接口实现之间通信使用的是RPC技术;微信端接口实现与文献资源服务系统调用使用WebService技术实现,微信端接口实现与MySQL数据库调用是通过MyBaits组件实现的。采用Spring MVC处理用户请求,采用MyBatis作为系统的对象-关系映射框架,使用Redis来缓存数据库的查询结果,提高系统查询效率。子系统之间相对独立,子系统之间使用Restful API技术进行消息传递,以达到降低业务模块间的耦合度的目的。
1.2 系统微服务架构图
本文设计的基于微信公众号的数字化科研信息服务平台的系统微服务架构,每个子系统由Web展示层、事务逻辑层和数据存储层组成,如图2所示。其中,Web展示层负责与用户交互、展示后台加载后的页面和数据、响应用户操作;事务逻辑层负责处理各种业务逻辑,处理与微信交互的事务和本平台用户的事务;数据存储层负责存储各类业务数据,支持数据的持久化。这种采用微服务架构,使得子系统之间相对独立,相互之间使用Restful API技术进行消息传递,以达到降低业务模块间耦合度的目的。
1.3 网络拓扑架构
本文设计的基于微信公众号的数字化科研信息服务平台的网络拓扑框架由智能移动终端设备(包括智能手机、平板等设备)、微信服务器、数字化科研信息服务平台服务器以及数据库四个部分构成。基于微信公众号的数字化科研信息服务平台的网络拓扑结构如图3所示。
用户登录微信,通过科研服务平台的公众号界面与系统进行交互,用户通过点击相关菜单进入相应的业务,移动终端通过网络连接(4G或WiFi),业务请求加密发送给微信服务器端,微信服务端验证消息之后,转发业务请求发送给科研服务平台服务端,科研服务平台服务端在接收到业务请求后,根据各个业务逻辑进行处理,控制页面各个组件的展现,完成业务功能,并将响应请求业务数据或页面加密发给微信服务器端,微信服务器端验证消息之后,转发给微信客户端,微信客户端解密消息最终在前端页面展示给用户。业务请求会话如图4所示。
用户移动终端、微信平台、科研服务平台之间采用HTTPS协议连接,所有请求均为HTTP POST方式,请求和响应报文内容为JSON格式。使用JSON格式有利于数据交互以及与各种语言之间进行解析转换。报文内容使用RSA进行加密,字段包含应用标识、密钥、签名、令牌等。
1.4 系统功能
1.4.1 用户认证。使用微信公众号OAuth2.0 API接口,公众号可以通过微信网页授权机制来获取用户基本信息[3]。科研用户可以通过微信网页授权机制进行自主认证,认证之后可以通过图片、文档、文字、语音等多种方式进行成果上传、成果发布。
1.4.2 用户管理。用户管理模块实现对公众号权限统一管理,根据用户所需功能和使用权限不同对用户进行分组,对分组的使用权限进行配置。针对专业性强的信息,对不同组群的用户进行精细化推送。
1.4.3 推送管理。通过配置各种规则,对用户问答进行自动匹配,把读到的数据源封装成消息,以微信消息会话的形式呈现在用户的微信界面。管理员可以在系统中预设置一些规则,每种规则可以是文字也可以是带链接的文本消息或者是图文并茂的信息,将配置好的信息存入数据库中。按定制需求定期推送科技信息资源(包含科技文献采编发系统、自建库系统),可在推送的科技信息资源中选定发布内容,支持关键字回复触发检索。
推送引擎系统采用微信中提供的开发者服务器接收消息实现推送,通过对模板消息进行封装,调用的接口为:https://api.weixin.qq.com/cgi-bin/template/send?access_token=ACCESS_TOKEN。为了避免POST数据的不可控性(不同模版的参数属性不一致),研究者依据模版的数据结构,制定了一套通用的接口,通过配置好参数,业务处理就可以通过HTTP方式调下接口。
1.4.4 数据统计。实现对平台开放使用过程中关键字命中、关键字触发次数、模块使用量、二维码数量、会员注册量、科研资讯阅读人数、分享转发人数等进行统计分析。按照不同的维度对科研用户进行统计,以便于精细化运营,提高服务效率。
1.4.5 管理参数。该模块提供网站模板,使系统管理员能简单配置(权限、会员、模块、文章、运营的统一管理)、快速生成,轻松打造移动互联网门户;能根据具体的场景需要,快速搭建导航菜单;能实现“多客服+消息留言”,实现永不离线、快速响应的科技咨询服务;能够提供文章管理和专题管理功能,提供微期刊应用模块,轻松发布个性化的内容信息。
1.5 功能模块
本系统功能模块包括科研信息模块、科研资源模块和科研服务模块,如图5所示。
1.5.1 科研信息模块。科研信息模块包括通知公告、科技动态、政策法规、党建阵地等子模块。其中,通知公告提供科技部和省科学技术厅发布的最新通知公告,方便科研工作者及时查阅;科技动态提供最新的科研通报以及最新的科研成果,便于科研工作者掌握最新的科研动态信息;政策法规提供科技部和省科学技术厅发布的最新的科研政策,用户可查看和下载各种政策文件,查看执法监督等信息;党建阵地提供党建指南、党风建设及工委文件下载等服务。
1.5.2 科研资源模块。科研资源模块包括文献资源、全球智库、竞争情报、创新助手、科技头条等子模块。其中文献资源为科研工作者提供文献检索和下载服务,文献涵盖期刊、会议纪要、论文、学术成果、学术会议论文;全球智库为科研工作者提供最新的科研情报,涵盖健康、教育、环境、国际关系与安全、商业和经济、技术、社会政策、国际事务等方面;竞争情报为科研工作者提供最新的行业动态、财经数据、金融要点等综合信息;创新助手为科研工作者提供询证服务,根据技术点推荐相关专家和机构,能查询出相关机构背景、创新能力、科研分布等情况;科技头条提供最新行业动态的新闻资讯,包括电子信息、生物医药、新材料、节能环保、农业农村、航空航天、自然地理、核能应用等行业。
1.5.3 科研服务模块。科研服务模块包括科创管理、大型仪器、人才引进、文献共享、联系我们等子模块。其中科创管理为科研工作者提供科技创新创业公共服务;大型仪器为科研工作者提供大型科学仪器设施共享服务;人才引进为科研创新创业人才引进提供服务,并协调服务和日常管理,组织联合技术攻关或公共研发服务;文献共享为科研工作者提供文献的管理、查询及检索等服务;联系我们为科研工作者提供沟通及反馈途径。
2 基于兴趣标签的个性化推送服务
“个性化信息服务”是以用户需求为中心,利用信息资源开展有效的不同层次的多种类型的满足其个性需求的服务[3]。微信公众平台目前分成消息接口和通用接口两大模块[4],本系统使用消息接口实现基于兴趣标签的个性化推送服务。研究者通过对科研资讯、文献资源的标题、描述以及关键词添加的标签信息,对用户行为历史行为进行分析,实现用户画像,将文章的pid以及用户uid映射至兴趣标签(Interesting Tag)。在用户行为的选取上,考虑的用户行为包括点击、浏览、搜索、收藏、点赞和评论。对用户进行聚类,然后对每个聚类群体利用回归算法迭代出一组最优权重值,对用户不同的行为类型设置不同的权重[5]。一个用户标签行为的数据集一般由一个三元组的集合表示[u,i,b][6],表示用户[u]给文章[i]打上了标签[b]。借鉴TF?IDF的思想[7],计算用户[u]对文章[i]的兴趣,公式如下:
3 结语
本文设计了一个基于微信公众号的数字化科研信息服务平台,该平台采用微服务的技术架构,使用Spring MVC+MyBatis+Redis技术搭建,实现了为广大科研机构、高新企业和社会公众提供统一的决策咨询和科技信息服务平台。该平台能将充分利用移动技术同政务、科技服务相结合,采用基于兴趣标签的个性化推送服务,为科研信息的搜集、加工、研究、传递提供场景化支撑,利用信息资源开展有效的不同层次的多种类型的满足其个性需求的服务,为科研服务与新型技术的结合起到良好的示范作用。
参考文献:
[1]姜福泉.微信公众号信息服务平台的设计与实现[J].中国新通信,2016(13):83.
[2]帅国安.移动终端App对用户生活方式重构的影响[D].无锡:江南大学,2015.
[3]陈远方.智慧图书馆知识服务延伸情境建构研究[D].長春:吉林大学,2018.
[4]崔巍.校园微信公众号服务业务的设计与实现[D].大连:大连交通大学,2017.
[5]张志洁.基于机器学习的移动网络用户体验质量与行为研究[D].广州:华南理工大学,2017.
[6]陈曦.面向大规模知识图谱的弹性语义推理方法研究及应用[D].杭州:浙江大学,2017.
[7]Ramos J. Using TF-IDF to determine word relevance in document queries[C]//Proceedings of the first instructional conference on machine learning. 2003.