标题 | 基于微服务架构的多端一体化信息门户设计及实现* |
范文 | 张华 摘? ?要:信息门户是智慧校园建设体系中非常重要的基础平台,有Web、APP和云服务等不同的技术路线,都面临着建设技术要求高、系统稳定性低、用户体验较差等问题。可以根据微服务松耦合、组件化的思想,基于微服务的构架,设计多端一体化的信息门户。微服务架构的信息门户把主要功能拆解成几个主要的微服务,微服务之间、前后端之间采用标准接口进行协作,可以实现Web端、移动端、云端等多端调用同一个微服务而实现多端一体化,减少了功能迭代中的重复建设,提升了一致性的用户体验。经过多年实践,基于微服务架构的多端一体化信息门户也是成功和有效的。 关键词:信息门户;微服务;智慧校园 中图分类号:G434 文献标志码:B 文章编号:1673-8454(2020)17-0081-05 一、引言 教育信息化是国家信息化发展整体战略之一。高等学校纷纷通过建设智慧校园来推动教育信息化的发展。从智慧校园的发展历程来看,在完成网络等硬件条件建设之后,各高校侧重打造管理信息系统,以满足师生的日常学习、工作和生活需要。随着管理信息系统的日益增多,信息孤岛、数据分割等问题成为新矛盾,一般通过建设统一身份认证、信息门户、共享数据库“三大平台”来部分解决信息孤岛等问题。“三大平台”的建设,促使数据流动共享、信息汇集聚合、身份一致互通,极大改善了用户体验,也使“三大平台”特别是“信息门户平台”逐渐成为智慧校园中业务技术最核心、使用频次最高的基础性平台。一个好的信息化门户对智慧校园而言,显得尤为重要。 二、信息门户及特点 1.信息门户的定义 信息门户是将各种信息资源进行整合,通过单一的入口,为用户提供访问各种应用和信息的服务[1]。是一个具有集成性特点的应用系统,通常会将学校的多项服务功能和数据集成到一个信息管理平台,统一展示给全体用户,因而具有唯一性、集成性、个性化和整体性等特征[2]。 2.Web信息门户 信息门户经过多年的发展,也经历了多种形态和技术。发展初期支持PC桌面端浏览器的Web应用。Web门户多采用Portal技术将来自多个来源的内容集成在一个页面中。Portal是一个基于Web的应用程序,提供个性化、单点登录和不同资源的内容聚合[3]。Portal页面中有多个Portlet组件,每一个Portlet组件负责显示一个来源的动态信息内容。Portal门户还能提供强大的自定义功能,方便用户对界面进行个性化设置。门户的功能设计从而转化为Portlet功能实现,用户在定制个性化页面时,从注册的Portlet中选择可用且有权限访问的Portlet[4]。 常见的聚合内容有校园新闻、办公系统通知公告等资讯类信息,校园卡余额等数字类信息,人事系统、教务系统等系统的单点登录链接类信息。Web应用由于PC性能较强、显示面积较大,可以针对实际需求做重应用,提供较为丰富的用户侧自定义功能,特别适合信息填报、复杂流程等,但也存在使用不便、操作繁琐、稳定性和可靠性差等缺点。 3.移动信息门户 随着移动互联网的兴起,手机等智能设备替代PC成为用户的主要计算工具,各高校顺势提供基于手机、平板的移动门户。初始的移动版门户主要是对桌面版页面做界面调整以适配手机版浏览器,或者针对手机版浏览器开发简单查询等小功能。因手机版浏览器性能较弱且不能完全替代桌面版应用,移动版门户提供的功能和信息都很有限,往往与桌面版应用成两套体系共存。受苹果应用市场中海量应用的启发,学校开发了专用的移动门户APP。移动门户APP支持Android和IOS系统,采用Native原生开发将所有信息和服务打包成一个原生应用,可以充分利用定位、摄像头等手机自带功能,在便捷性和功能性上有较大优势,但存在开发技术门槛高、不同智能设备兼容性差、用户推广难度大的问题。 微信等商业互联网超级平台流行后,不少高校基于微信平台开发移动信息门户。基于微信公众号的移动门户,对不同手机及手机操作系统兼容性强,用户只需关注微信公众号即可,无需安装APP。在开发上可以直接使用身份认证、微信支付、微信推送等企业级功能,技术难度下降。但基于微信的移动门户也受制于微信的生态,使用自主性较低,且商业化平台较多互不兼容,在选择上较为困难,有时还需重复建设。 4.云信息门户 也有部分高校利用成熟的商业化APP,通过购买服务的方式实现本校移动门户,即移动门户采用云服务架构,不自行开发和本地化部署,学校在云门户平台上开设本校帐户,将师生用户信息和组织架构导入平台中。门户中的应用为自行开发但按照平台标准做好对接,或者直接使用平台提供的通用性小应用。云门户进一步降低了学校开发难度和经费投入,但是与商业化公司高度捆绑,且学校师生信息和应用都在云端,信息安全有较大隐患,商业合作的可持续也有较大风险。 5.信息门户发展 用户需求进一步发展后,随着H5技术的逐渐成熟,又有了同时支持Web浏览器、移动APP和微信等多种媒介的“全媒体”信息门户[2]。从用户现实需求和智慧校园生态来讲,全媒体及多端一体化应该是未来发展的趋势。 随着大数据技术的进一步发展,智慧校园收集的用户数据越来越多,在人工智能算法的基础上,信息门户还将实现对用户的精准化服务,即不通过用户的主动设置而是通过行为分析自动为用户提供个性化信息服务。 从现状看,各高校实现门户的方法差异较大但建设比例较高,门户已經成为学校信息化体系中一个非常重要的基础性平台和用户入口。纵观门户的建设历史,对门户平台的选择往往紧跟社会热潮,从Web应用、微博、微信、APP、云服务等平台不断迁移,或借鉴商业化平台的理念自行研发,或直接纳入商业化平台的生态。平台的多变,导致用户体验的割裂,用户学习成本较高;门户产品的多次推翻重新建设,其技术和功能的延续性不足;不够稳定统一的门户平台不能逐步建立起校园信息化生态。所以,现有门户平台在性能可靠性、技术先进性、用户认可度等方面还有很大的不足。表1为信息门户的比较。 三、基于微服务思想的信息门户 1.信息门户的定位 因产品的定位及技术选择,信息门户往往与统一身份认证、小应用、信息阅读等做了紧耦合处理,开发难度大、稳定性差,难以实现快速平滑迭代,也无法与第三方应用进行合作和协作。 一个较为理想的信息门户平台除了能提供信息内容的聚合展示,还要能满足在电脑桌面端、移动端等多端的统一用户体验,并要建立一套与第三方应用、系统对接的标准,紧跟社会化平台的发展趋势和形态,能围绕门户构建良好的生态体系。在传统的单体应用开发模式下,整个项目代码都在同一个应用工程中,无法适应松耦合、高灵活性、高可靠性和快速迭代、协作性强的要求,可基于微服务的思想和架构构建多端一体化的信息门户平台。 2.微服务架构 微服务架构是面向服务(Service Oriented Architecture,SOA)架构的一种实现,是将传统的单一应用程序拆分为若干个小的服务即微服务。微服务可以独立开发、部署、运行、迭代,相互之间一般通过基于HTTP的RESTful API进行通信协作以实现较为复杂的业务功能。理论上微服务可具备从运行环境到数据库到业务功能等自下而上完整的体系,甚至可以使用不同的程序语言来编写。 微服务架构的主要特点是组件化、松耦合、去中心化。微服务思想就是将复杂大系统拆解成相对简单的小系统,再通过小系统协作实现复杂功能。同时也将系统风险分散到每一个微服务,避免单个微服务的缺陷、出错或者升级、扩展而导致大系统的崩溃或不可控。 3.微服务门户及功能 微服务思想和架构的信息门户,核心就是将信息门户解耦,对门户涉及的主要功能做垂直分工,分别单独开发,再按照规范和标准进行对接和组装以实现完整功能。根据门户功能划分,可拆分为如下几个主要“微服务”。 (1)主服务(portal_service_main) 主服务主要是作为门户的基本框架,可以像容器一样允许其他功能性微服务运行其中,如图1所示。主服务可以独立运行,当没有任何其他功能性微服务时就是空白界面,功能增加只需对新增的微服务做配置,而无需重新开发和发布。 (2)认证微服务(portal_service_auth) 认证服务提供门户的注册、登录和单点登录(Single Sign On,SSO)等功能。由于在智慧校园整体规划中,统一身份认证是独立于门户单独存在的系统,门户是统一身份认证提供认证服务的第三方应用,门户认证微服务通过Oauth2.0协议和标准专门负责与统一身份认证系统的对接。 门户是内部系统,一般不对非特定对象开放注册功能,在用户首次登录门户且通过统一身份认证合法认证后自动在系统中添加用户信息,实现自动注册。门户认证注册登录流程如图2所示。 (3)应用微服务(portal_service_app) 为每个应用提供唯一的标识和统一的管理,对纳入门户的应用进行全生命周期管控,从注册、侦测、核验、部署、监控、迭代一直到消亡。为应用发布者提供应用的对接、上架、发布、下架等。为应用开发者提供对接的标准PAI接口、数据标准、用户交互规范等。 public class portal_service_app { // 分别定义应用ID、应用号、图标地址、名称、地址、备注等 private String app_ID; private String app_Code; private String app_IconUrl; private String app_Name; private String app_Url; private String app_Note; } 在用户侧为用户提供各有访问权限的应用链接,作为跳转访问其他应用的入口,实现单点登录访问。门户小应用单点登录流程如图3所示。 应用微服务可通过API接口的方式获取第三方应用的结果性信息并在门户中展示给用户。门户调用小应用结果信息规范如表2所示。 (4)订阅微服务(portal_service_infor) 为用户提供多来源信息资讯内容的聚合展示,如通知、新闻、公告等,用户可订阅自己有兴趣的内容,订阅的信息内容按照瀑布流的方式展示。为信息发布者提供资讯内容的分类、上架、发布、下架等。对不同来源的信息做规范化定义,提供数据的规范和标准等,采用自动抓取或接受推送的方式获取信息内容并做本地化保存。 public class portal_service_infor { // 分别定义订阅ID、编号、标题、副标题、图片地址、作者、时间、来源ID号、原文地址等 private String info_ID; private String info_Code; private String info_Title; private String info_Description; private String info_PhotoUrl; private String info_Author; private String info_Time; private String info_SrcID; private String info_SrcUrl; } (5)日程微服務(portal_service_calendar) 提供日程基本功能,公共日程、日历的管理。以日历的方式展示公共日程、个人日程、课表、会议安排等相关信息。提供日程标准API接口。 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。