基于API模式的高校数据共享平台建设研究

2021-06-16 06:31杨少冬
电子技术与软件工程 2021年8期
关键词:令牌限流日志

杨少冬

(广州软件学院 广东省广州市 510000)

1 引言

教育部印发《教育信息化十年发展规划(2011-2020年)》中指出高校应充分利用现代信息化技术提升数字化校园建设,尤其是推进数据整合与共享,在促进高校的科学、创新发展具有重要的意义[1]。

当前大多数高校围绕着信息系统所产生的各种数据集(有的高校称为公共数据库或者数据中心),实际上可以在校企合作、智慧校园建设、创新创业或者科研方面发挥更大作用,比如IT 创业或者IT 类科研,很多教师和学生团队具备软件开发能力,部分需要依赖于高校的基础数据集,以及围绕高校智慧校园的创新应用开发、校政企合作项目开发等,这些项目既有服务于本校,也有服务于当地政府和企业。那么高校作为数据的共享方,如果要将数据安全、可靠的共享出来,应采用什么共享模式?如何制定数据共享规范?共享服务平台要如何保障数据稳定、安全、可靠?笔者围绕这几点问题进行论述。

2 共享模式的选择

高校主流的数据共享模式主要有两种,第一种是基于数据库与数据库之间直接数据共享的模式,一般通过中间件,比如采用Oracle ODI(Oracle Data Integrator)作为ETL 定时共享技术,其非实时的缺点很明显,一般只在特定场景采用[2],或者采用OGG(Oracle GoldenGate),即基于数据库日志的结构化数据复制技术,可以在不同数据库之间实时同步[3],但是由于数据权限的控制不足以及,主要是在高校内各个子系统之间共享才采用的技术,一般不对外部系统进行共享。第二种模式则是编写API(Application Programming Interface),即预先定义数据接口(如HTTP 接口),接口内部封装了数据的结构和操作细节,用来提供给外部应用程序访问的一种服务,该模式具有灵活高效的特点,可根据企业、政府和校内各部门或者师生等开发应用的需求,定制不同的HTTP/HTTPS 数据接口,即可完成数据的共享交互。因此,通过API 模式共享数据,完全满足不同的校内和校外客户应用(以下简称:第三方应用)开发时的数据共享需求。以下是实际研究的API 数据共享模式的总体架构,以高校数据中心作为底层存储,以API 数据共享服务作为中间桥梁,将企业、政府、科研单位等参与者所需的数据聚合、共享,如图1 所示。

3 共享数据格式规范

图1:数据共享服务平台总体架构

为了避免出现不规范导致出现后续不可控或者产生歧义,API采用互联网开放系统设计所用的成熟restful 数据传输规范[4],同时规定所有的HTTP 或者HTTPS 请求模式除了使用关键的GET、POST 之外,引入另外两个PUT、DELETE 共4 种请求模式,所有用于查询数据的接口采用GET 模式,保存数据的接口用POST 模式,更新数据用PUT 模式,删除数据采用DELETE 模式。

对于共享的数据格式,主流的有基于xml 格式和Json 格式两种,但是由于Json 格式对比xml 具有的更易于阅读,同时在传输方面占据带宽更小、解析性能损耗更低等特点,因此统一采用Json数据格式,下面是以第三方应用获取学生上课时间为例,制定的一个数据格式规范,如表1 所示,数据共享平台按该规范维护所有的数据结构。

4 共享服务平台保障措施

4.1 服务隔离

在软件工程领域,有一个重要设计就是保障业务设计与实施过程的高内聚、低耦合,这在共享服务平台建设过程中,同样应遵循这一思想,针对不同的客户端(校内科研、政府、企业等数据共享对象)所做的数据接口归为一组独立服务,不同的服务做好隔离,可以是物理机器上的隔离,也可以是容器化上隔离,如docker 应用容器技术,将应用所需的处理器、网络、内存、硬盘空间等进行隔离,且所有资源可弹性分配、可实时监控、可快速复制迁移等[5],做到一组服务一个环境,彼此互不影响,最终确保在一组服务故障时,不影响其他服务。

表1:学生课程表微信接口说明

4.2 接口限流

作为一个数据共享服务开放平台,所面对的不仅仅是校内对象,还有校外对象,一切的数据交互都依赖于网络,网络攻击形形色色,常见的如DDoS 流量攻击是最为严重,为此,保护的措施除了有操作系统级别、有服务平台级别的保护之外,还应采用更小级别的保护,即每一组服务下的每个共享接口的限流措施(有时称为API 网关限流)[6]。

接口限流的主流算法有基于令牌桶算法和漏桶算法,两种算法分别对应不同的使用场景。令牌桶能主要原理通过设置单位时间内的向令牌桶存放令牌数量,只要第三方的请求能拿到令牌,即可放行,主要使用场景在于数据共享接口的程序处理能力比较高,第三方最终用户群体不固定且偶尔有大流量的时候(简称:场景1),能保障异常流量激增时,只要持有令牌都能及时处理完;漏桶算法主要原理是保证单位时间内允许调用的接口次数,即可固定传输速率,例如每秒通过100 次的请求,超过的请求会主动丢弃或者拒绝,主要适用于数据共享接口的程序处理能力较弱且最终用户群体比较固定场景(简称:场景2),防止突然的异常流量激增时,导致接口无法及时处理引起堵塞甚至崩溃;两种限流的应用场景及实现流程如图2 所示。服务平台的共享接口至少应具备两种限流策略,为服务平台的稳定运行提供多一层保障。

4.3 数据加密与安全认证

大数据时代,数据即是价值,保护数据即是保护资产,共享服务平台数据安全的保障措施主要有三方面。

(1)数据的加密传输,在信息安全上公认的是采用HTTPS 加密传输,目前主流的服务发布容器上(Tomcat、Nginx、Apache、IIS 等)均支持SSL 证书的部署,实现传输数据的加密,避免直接在网络中进行明文传输。

(2)对接入方的认证,向第三方颁发appkey 和appsecret,即相当于用户名和密码,解决共享平台对第三方的身份认证问题,避免不合法的第三方用户对平台造成破坏。

(3)避免网络请求的重放攻击,虽然前面的数据加密和身份认证已经极大的满足的安全需求,但是仍然避免不了黑客恶意的网络数据截取并不断进行重复发送攻击,通俗点讲就是黑客拿到了合法的、正确的数据进行重复发送,来窃取数据或者攻击平台,因此,任何的请求响应都必须包含有数据签名(定义为signature),signature 的数据由有效时间(定义为timestamp)、请求流水号(定义为nonce)计算后构成,signature 数据签名发送到数据共享服务平台后,由平台进行数据解析并校验。

图2:不同场景的限流及实现流程

图3:安全认证与数据校验流程

总体上,除了数据加密可由数字证书提供商保证外,安全认证与数据校验需要自主实现与控制,其主要流程如图3 所示。

4.4 服务日志记录与分析

日志的记录与分析是现代任何IT 设施定位问题和解决问题必不可少的有效手段,通常涉及日志记录与日志采集分析。其中日志的的记录至少要包含第三方客户IP 地址、请求发生时间、日志级别、系统线程名、程序代码位置、详细日志信息,如有需要更多的日志记录,应按实际需求进行扩展或者增加。日志的分析,主要分为采集、过滤、存储、展示,由于服务已经通过容器化隔离或者做了虚拟化,日志分布在不同的机器上,因此,日志的采集分析主要以分布式技术为主,技术(工具)包括:

(1)Logstash 开源文本数据采集、过滤工具,通常用于日志采集,具备信息过滤功能,能将特定的日志结构进行分片输出到指定的存储空间或者数据库,通常以Elasticsearch 作为存储的主要工具。

(2)Elasticsearch 开源分布式文档存储与搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful 风格接口,多数据源,自动搜索负载等。

(3)Kibana 也是一个开源和免费的工具,可以为ElasticSearch的存储内容提供友好的Web 界面,分析、搜索、展示日志数据。

完善的日志记录与分析,为共享服务平台的故障监控、优化完善等提供必要的辅助作用,保障运维工作的顺利开展。

5 结语

无论是校企、校政之间的信息化共享以促进合作,还是智慧校园的多方参与建设,都离不开数据的共享,数据的共享的方式有非常多种,通常根据实际参与者,或者面向的对象选择合适的共享方式。在参与者为多方且涉及高校外部参与的情况下,则需要建立一个完善的数据共享服务平台,以高校作为牵头方,做好数据共享服务规范,充分论证与落实共享服务平台的保障措施,不仅让数据共享服务平台建设可持续发展,而且能更好的辅助高校教育科研管理和履行社会服务的职能。

猜你喜欢
令牌限流日志
称金块
基于第二代高温超导带材的超导限流电缆限流特性研究
一名老党员的工作日志
扶贫日志
基于路由和QoS令牌桶的集中式限速网关
动态令牌分配的TCSN多级令牌桶流量监管算法
游学日志
交通事故条件下高速公路限流研究
高温超导限流器
D-STATCOM实时同比例限流保护的研究