1. 引言
学习空间是高校图书馆中供不应求的资源,特别是在考试季,经常一位难求。为了充分利用学习空间、避免占位或抢位带来的矛盾,多数学校使用了软件系统来加强学习空间的管理,但绝大部分软件系统往往只关注用户在使用前如何预约,而忽视了学习空间的全生命周期管理,例如没有进一步追踪用户是否在规定时间内使用了预订的学习空间,从而无法避免因违约而产生的空置。并且,由于没有用户实际使用的数据,在后期无法为不断优化预订规则提供有力的决策支撑。笔者提出一种基于微服务架构的学习空间管理系统,其中包括以模板为核心的预订系统和基于智能显示屏交互的方案,师生可提前在线预订并在显示屏上刷卡完成签到流程,或者在现场通过显示屏刷卡预订并使用。同时,显示屏还实时展示学习空间的预订日程表和是否被占用的状态信息。
2. 项目背景
小组讨论是高等教育体系中频繁使用的教学方法之一,我校目前有约2400名本科生、300名硕士研究生及300位专职教师,但我校图书馆仅有10间可容纳4至6人的小组讨论学习空间供师生预订,为了满足师生日常预订的需求,同时兼顾公平的原则,图书馆规定:每个学生每天可以预订一个小组讨论学习空间,每次预订时长不超过两个小时;出于教学目的,老师每次可预定时长六个小时。为了实现这个预订规则,图书馆尝试了数种市面上常见的房间预订软件。总体而言,这些软件大多更适用于会议室预订的场景,没有将预订人、房间资源、实际使用人进行整合与管理。不能避免的问题包括:一个用户预订同一时段的多个学习空间,造成部分学习空间空置;用户在预定成功后,因临时改变计划未使用学习空间,但没有在系统中取消,造成该学习空间不能被其他用户使用;一个用户通过借用多个账号预定一个学习空间的连续时段,在没有验证实际使用人的情况下,造成该学习空间被长时间占用。
目前,美国高校普遍使用EMS (Event Management System) [1] 进行教室、会议室、活动场地等各类空间的预定管理。该系统融合了三十多年的空间管理经验,其用户遍布全球几十个国家。在空间预定管理的基础上,EMS可以管理活动所需的服务内容,还能根据不同的用户类别制定价格策略,功能丰富多样。由于EMS设计涵盖了大量非图书馆学习空间预定的需求,在我校的应用场景中,用户需要通过表单回答大量的问题才能提交申请,操作不够便捷直观。EMS的预定流程需要用户投入一定的学习时间,更适合相对固定的专业用户,不适合使用图书馆学习空间的每一届新生。
25Live系统 [2] 是CollegeNET公司推出了一款教室预定系统,专注于与各类教务系统的整合,为教室日程管理提供了极大的便利,服务于超过1000所高等教育或非盈利性教育机构。25Live系统因其操作界面清晰简洁、用户体验良好,获得了广大师生的认可。其预定规则的可定制化能力有限,无法满足比较个性化的需求;同时,该系统通过公有云提供服务,在亚洲地区的访问速度和服务支持响应级别存在一定的瓶颈。
OrgSync系统 [3] 通过在线表单收集用户的预定请求,以人工核对的方式确保资源的合理使用。因此,该系统的管理成本比较高。在2019年之后,OrgSync切换至云端解决方案LibCal,它以网格化图形的方式,直观地展示空间被预定与空闲的时间段,管理员可以定制基础的预定规则(例如单次预定时长、每天预定次数限制等),但仍无法将预订人、空间资源、实际使用人进行统筹管理。
Google Calendar [4] [5]、Outlook以及其他会议室预定系统 [6],在会议室预定场景中,具有用户学习成本低、易部署、用户体验一致等优点,但它们对于学习空间这类需要特殊预定规则的场景,几乎无法做到全流程的自动化。
随着移动互联网技术的广泛应用,国内高校对于图书馆学习空间以及其他功能类空间的管理,大多已采用线上预定的模式,同时还根据国内用户的使用习惯,以钉钉或微信作为应用入口,简化了用户登录步骤,并形成了比较成熟的解决方案。文献 [7] 提到利用扫描二维码追踪学生实际使用空间的情况,文献 [8] [9] 提出预订系统与图书馆门禁系统相结合,通过校园卡刷卡确保预定的空间被正确使用。这些方案在管理多种功能的空间、制定适用于不同用户使用不同的预定规则等方面,仍然存在一定的局限性。
笔者设计了一套基于微服务架构的学习空间管理系统,能够自定义规则模板并将模板应用到各种不同类型的学习空间管理,包括图书馆学习空间、教室、会议室等,还能够将预订人、空间资源、实际使用人进行统筹管理。
3. 系统架构及实现
3.1. 系统架构
学习空间管理系统采用微服务架构,由路由服务网关、注册服务、服务资源中心、监控预警服务与数据存储服务等组成。其中,服务资源中心包括认证服务、异常监控服务、空间管理应用核心模块、日期管理服务、通知规则服务、定时任务服务等微服务模块,不同的服务模块可以由不同的开发团队进行维护。具体架构参见图1。除了应用核心模块中的业务组件,其他微服务同时服务于空间管理系统和我校其他应用系统。图1中的各服务全部采用容器化部署,并使用K8S容器编排系统统一进行自动化软件部署、扩展和管理,其中数据存储Redis、MySQL等基础服务均为分布式集群部署。
各微服务之间使用Feign进行数据传输与流程交互,使开发者如同调用本地方法一样调用远程接口,无需关注与远程HTTP交互的细节及分布式环境的开发。以身份认证为例,认证请求首先通过负载均衡提供的VIP进入网关,网关解析请求中的URL并发送请求到身份认证服务(KeyCloak),在完成认证服务提供的多因素身份认证(Multi Factor Authentication, MFA)后,终端浏览器会携带用户身份凭证及应用参数跳转只网关,从而找到服务资源中心里的应用核心模块下的用户管理组件确认用户身份,完成后继基于角色的授权。架构中的每个服务组件都会在NACOS中注册,而网关则是通过NACOS进行动态服务发现,同时系统可以通过NACOS的动态配置中心进行应用程序中如YML文件或其他类型配置文件的配置并动态热更新,保证在系统应用配置被更新的过程中,服务代码本身的重新编译以及路由切换对程序运行不会造成中断,前端用户对此也无任何感知。与常规的服务架构相比,这种微服务架构在高并发时可以实现自动横向扩容。

Figure 1. Diagram of the microservice architecture of the learning space management system
图1. 学习空间管理系统微服务构架示意图
从功能的角度,学习空间管理系统架构包括前端界面和后端管理系统。前端界面由三部分组成:电脑端和手机端预订界面,安装于学习空间门边、与师生交互的智能显示屏。后端管理系统包括用户管理、设备管理、空间管理、策略模板管理、预约管理、通知规则管理、日期管理以及报表管理等模块。
3.2. 使用流程
学习空间的使用流程分为三个阶段:用户登录、线上预定和现场使用,用户在各阶段与系统的交互可参见图2。

Figure 2. Flowchart of learning space usage
图2. 学习空间使用流程图
师生可以通过电脑端网页或微信企业号访问学习空间系统,分别使用统一的多因素身份认证(Multi Factor Authentication, MFA)和集成的企业微信认证验证身份、获得用户角色。登录成功后,可以直观地查看和选择每个学习空间的空闲时段,系统设定时段以15分钟为最小单位。当用户预订时,系统会根据用户角色和学习空间类型自动应用预订规则,这主要通过可配置的预订规则模板来实现。预订规则模板将预订规则中涉及的有效起止日期、用户每日预订限额、单次预订时长、是否需要签到、签到超时时间、房间最大及最小使用人数等配置项进行结构化和标准化。系统将所有配置项通过类(Class)的方式进行整合管理,其中每个配置项对应类的一个属性(field)。针对每个属性通过注解标记(annotation)的方式来标记属性对应处理方式,其中注解中包括了该属性的规则检查实现方法(implementation)以及检测发生步骤。通过实例化或者多继承实例化来完成最终预约规则模版的实现,从而服务于预约流程的完整运作,预定规则模板参见图3。

Figure 3. Flowchart of learning space usage
图3. 学习空间使用流程图
这种设计可以在隐藏规则复杂性的情况下,实现预定规则、用户角色、每个预定空间能多对多组合,提供灵活的管理能力和个性化的服务。例如,系统限定了每一个可预订学习空间的最小和最大使用人数,当师生提交预订请求时,需要填写实际使用人的学工号信息,如果使用人数量不足最小人数或超过最大人数,系统将拒绝预订。申请人和使用人信息还用于系统自动校验每个用户是否在同一时段占用多个学习空间,从而可以避免重复预定的情况。
在学习空间现场使用阶段,系统使用智能显示屏实现打卡签到机制,这种机制可以有效防止学习空间的实际使用与预定不符造成的空间闲置。同时,系统在学习空间开始使用15分钟后根据预定信息核对签到数据,当有效使用人数不满足最低打卡签到人数(即房间最小使用人数)时,系统将自动取消该当前预订,使该学习空间即刻作为可预定资源,同时记录申请人违约一次。
3.3. 交互优化
为了提高用户体验,系统重点进行了上述使用过程中用户交互的优化,主要包括:通过自主开发时间控件来简化用户操作、基于用户习惯设定消息推送方式、优化智能显示屏界面和交互功能并保障其高可用性。
大部分学生在预订小组讨论学习空间时,都希望能预订尽量长的时间。因此,系统设定:当用户点击空间的可用时段时,系统将默认选定规则范围内的最大可预订时长,即如果空间有两小时以上空闲,默认预订时长为两小时,如果因后续预订或空间关闭使可预定时长不足两小时的,默认预订时长自动为期间所有可用时长。部分前端框架Vue、Bootstrap、Layui中的日期与时间控件均无法完全满足这种显示需求,因此系统在参考了Full Calendar和Google Calendar面布局的基础上,进一步整合了moments.js的时间计算方法,独立开发了时间表的前端实现(具体参见图4)。
系统通过企业微信的消息接口向相关用户推送“预定成功”、“预定取消”、“因签到人数不足被动取消”、“即将到达签到等待时间”等关键信息。这种方式弥补了传统应用系统以站内信、短信、邮件等方式推送的消息容易被用户忽视的缺点。以微信这个用户频繁使用的手机应用为媒介,可以精准地送达用户关心的信息,符合用户使用习惯,改善了移动端用户的使用体验,微信消息推送流程参见图5。为了提供冗余和备忘,系统还同时发送关键事件的邮件提醒。

Figure 5. Application process of enterprise WeChat integration
图5. 企业微信集成应用流程
智能显示屏综合了信息展示、流程入口、打卡签到等多个用户交互功能;实现了以所见即所得的方式融合学习空间使用和管理的全过程,为师生形成操作层面的闭环;规避了传统应用系统中面向系统而不是用户构建业务、需要进行用户使用培训等弊端。智能显示屏的界面可参见图6。

Figure 6. Screenshot of smart display interface
图6. 智能显示屏界面
其中,系统分别用“蓝色”、“黄色”、“红色”的渐变背景色来表示学习空间的“空闲”、“待打卡”、“使用中”三种状态。现场师生不仅可以通过颜色快速了解学习空间状态、找到空闲的学习空间,还能通过扫描屏幕中的二维码快速完成预定和使用,进一步减少学习空间闲置时间。
笔者使用Flutter框架开发了只能显示屏的客户端程序,Flutter采用独特的UI渲染方式,与其他客户端开放框架相比,可以最大限度地降低对智能显示屏CPU或GPU的资源占用,在提升移动端应用程序运行的效率与稳定性的同时,还降低了对硬件性能的要求,从而节约部署成本。Flutter具有良好的跨平台特性,在Android中开发的同一套代码可以轻松迁移至IOS、MacOS或Windows平台,可以为今后部署多样化的智能显示屏保留选择余地。
智能显示屏在整个应用系统业务流程中承担了与用户交互的多项核心功能,保障其与服务器之间的网络畅通至关重要。由于学习空间分布在教学楼的多个不同位置,如果只采用人工定时巡检的方式运维,存在工作效率低和管理成本高的弊端。因此,笔者结合智能屏的特点和学习空间管理的应用场景,设计了一套行之有效的硬件“心跳”监控机制。在智能显示屏中,系统采用客户端主动汇报的解决方案,自主开发了一个发送“心跳”的移动端应用程序模块,该模块每五分钟向管理后台发送智能显示屏的硬件信息。管理后台存放了每个智能显示屏的硬件信息及物理位置,管理员可配置智能显示屏的监控策略,包括是否监控、监控规则、告警与通知规则等。管理后台根据“心跳”数据的接收情况和监控策略采取措施。例如,当接收某一台智能显示屏的“心跳”数据超时,管理后台会先尝试控制连接智能显示屏的POE交换机来重启该智能显示屏,如果在设定时间内仍无法收到“心跳”数据,管理后台会使用邮件和微信企业号通知管理员人工干预,具体流程参见图7。
4. 应用的拓展及反馈
学习空间管理系统采用模板配置的方式实现预订和签到规则,这种模式也可以应用到不同的空间管理场景,我校目前已将此系统拓展到会议室、教室、健身房、钢琴房、音乐练习室及舞蹈房等空间的管理中。由于管理系统采用了微服务架构,因此在拓展到其他空间管理场景时,可以快速更新和迭代相应的模块而不影响系统的整体运行。这种架构和更迭模式轻松应对了不同空间的使用、不同业务部门的管理和不同用户角色的权限等要求,为全校师生提供了便捷、统一的空间预定服务,提高了资源利用率及管理效率,提升了服务质量及用户体验。

Figure 7. “Heartbeat” monitoring process of smart display
图7. 智能显示屏“心跳”监控流程
此外,笔者将图书馆内的每一个自习座位都抽象为一个特殊空间,使学生能在线预订这些座位,通过与图书馆进门闸机联动实时获取学生签到信息。该举措有效解决了图书馆内常见的学生占座问题,同时,系统提供的可视化数据可以让学生实时了解图书馆自习座位的使用情况,有效引导了学生流向,提升了学生对图书馆服务的满意度。
对于一些安装了特殊设施、设备的功能性房间,例如配备钢琴、架子鼓等乐器的音乐练习室,预约系统还与房间的门禁系统进行联动,仅允许成功预订的师生在预约的时段即将到来时才能刷卡进入,实现自助式服务的同时,还可以确保这些房间中设施设备的安全。
管理系统通过刷卡签到获得了各种空间实际使用情况的数据,经过一段时间的数据积累,可分析出用户预订的时间段偏好、空间偏好、使用时长偏好等信息,这些信息对空间管理问题,例如是否有必要在用户使用高峰期(通常为临近期末或小组讨论作业交稿截止日等时间)动态增加空间资源、通过奖惩措施引导用户更高效利用空间资源等问题中提供数据支撑。
5. 结论与展望
采用基于微服务架构的学习空间管理系统实现了新功能的敏捷开发与快速部署,系统采用线上或现场预订并刷卡签到,有效规范了师生的使用行为,提高了学习空间的使用率,减轻了管理负担。新系统上线运行后,自2021年9月1日开学至2021年12月17日秋季学期结束期间,10个讨论室共接收了来自729位不同学生、共计4795次有效预订,这个数据相当于平均每天每个房间有4.4次预订,较前期使用OrgSync系统时每天平均1.7次的预定,有显著提升。
在后期的运行中,笔者将基于数据分析结果进一步优化系统。例如,在空间闲置的时间段,自动放宽预订时长及人数的限制;在空间紧张时的课后时段,自动将会议室、小型教室加入到资源池中;设置奖惩规则,对长期规范使用学习空间资源的用户,系统自动放宽预定时长,对于多次预定但实际未使用也没有主动取消预定的用户,限制使用预定服务,需完成额外的线上培训学习之后再行恢复。此外,还可以研究与教务系统的集成,使一些特定的空间资源仅向注册了相关课程的学生群体开放预订,例如研讨室仅向那些选择了经济学讨论班的同学开放,以此进一步提高这些空间的有效利用率。
参考文献