制造型企业接口统一管理系统设计
2021-03-16张楠
张 楠
(上海航空工业(集团)有限公司,上海 200000)
0 引言
随着制造型企业的业务不断拓展及生产制造工艺的升级。承载企业各业务运转的企业业务管理系统也逐渐增多。为避免出现信息孤岛,方便管理决策,基于高内聚和低耦合的软件开发思想,各个系统之间的信息交互大多利用接口的方式加以实现。而随着发布的接口和对已发布接口调用情况大量增长,如果没有对接口进行系统性管理,当遇到接口迁移及接口升版的时候就需要收集接口调用的情况,及时通知调用系统做出相应变更,这样接口迁移升版的成本就会大大提高。当接口调用异常或者接口调试时,如果没有接口日志存在,定位问题位置也变得很困难。当需要实时开放某个接口对某系统调用权限时,如果没有相应的权限管理,也无法通过配置的方式实时响应。因此建立一套能够管理接口信息、接口权限及接口调用记录的接口管理系统是非常有必要的。
接口管理的主要目的是提高接口的开发人员、运维人员和方案人员的工作效率,使他们都专注于自己擅长做的事情。开发人员只需要开发接口的实现逻辑,不需要关心接口的权限;运维人员只需要在管理界面配置各个接口对于各个系统的访问权限,不需要再联系开发人员修改代码,也不需要重启整个服务;方案人员通过接口的信息管理和调用记录管理可以清晰直观的了解到接口运行的现状,能够对接口优化迁移造成的影响有更准确的评估。
REST 是一种新的互联网应用架构。REST 充分利用HTTP 的优势,以资源为核心,将资源的CRUD 操作(create 添加数据、read 读取数据、update 修改数据、delete 删除数据)映射为HTTP 的GET、PUT、POST、DELTE 等方法。由于REST 式的Web 服务提供了统一的接口和资源定位,简化了Web 服务接口的设计和实现,降低了web 服务的复杂度,它最大的优势就是无需引入笨重的SOAP 协议,无需建立庞大的XML 消息,可以很好地支持缓存,具有无状态性,保持请求调用彼此独立[1]。因此,可以利用REST 架构发布接口,通过AOP(即面向切面编程)在系统底层添加权限拦截及日志记录,再利用Spring 多数据源技术连通各个数据源,实现对接口信息、数据、权限、日志的统一管控,达到方便开发人员开发、方便运维人运维、方便方案人员统览全局的效果。形成了企业内部的接口网,为后续新系统的开发,旧系统的改造都提供了极大的便利和支持。
1 接口管理实现
1.1 接口调用安全设计
接口是基于系统之间高内聚,低耦合的开发思想用于系统间信息交互的工具,接口调用最核心的问题就是数据安全问题。因此,我设计的统一的接口管控系统必须要有一套完善的安全机制保证接口数据传输的安全性。
外部系统调用开发人员发布的接口时,系统会自动校验以下权限保证接口数据的安全。整个调用检验过程如图1 所示,外部系统需要经过系统合法性校验,系统IP校验,接口访问权限校验三重校验才能访问到指定接口。
图1 接口调用过程图
(1)系统合法性校验,系统合法性校验主要是校验外部系统是否在接口系统中注册,且在有效期范围内,并且验证此次调用使用的用户名和密码是否合法, 防止接口被非法系统匿名调用。
(2)系统IP 校验,系统IP 校验主要是校验外部系统是否为指定服务器IP 地址段访问,防止非法系统盗取注册系统的用户名密码后非法调用接口数据。
(3)接口访问权限校验,接口访问权限校验主要是校验外部系统是否具有访问某具体接口的权限,如图2所示,每个外部系统可以在接口管理系统中注册多个用户,每个用户可以访问多个发布的接口地址,这样就可以实现每个接口可以授权给多个不同的外部系统,每个外部系统也可以访问多个不同的接口。
图2 调用系统与接口关系图
1.2 接口系统功能设计
接口管理主要功能包括接口信息管理、接口权限管理和接口日志管理三个部分。如图3 所示。
图3 功能模块示意图
(1)接口信息管理包括接口基本信息管理、接口调用系统管理和接口说明文档管理,这样就可以让管理人员对整个接口系统的所有接口的信息有一个整体了解。其中,
接口基本信息的管理,即接口的地址、开发者、发布状态等信息的管理。
接口调用系统管理即注册在接口系统的外部调用系统的信息管理,主要包括调用系统的IP 地址段、调用系统的描述、调用系统的注册有效时间等信息。
接口说明文档管理即接口的逻辑说明文档,调用Demo 文档的管理。
(2)接口日志管理包括请求记录日志管理、请求异常日志管理、请求耗时日志,这是接口系统在底层切面上对每次接口http 调用请求做了的日志输出,开发人员在开发接口逻辑的时候就不需要在关心日志的输出问题了。日志记录的入参、出参、报错信息和耗时在接口调试或者日常运维中是个很有用的工具,方便接口调试,快速定位问题。此外,通过基于收集到的日志数据,还可以用于接口运行情况的展示监控,管理人员可以很直观的了解到接口运行的状况是否良好。
(3)接口权限管理包括登录授权、IP 授权、接口访问授权,这个在上文已经做了详细描述,这里就不再赘述了。
2 结语
制造型企业的业务系统种类繁多,为了避免信息孤岛,使用接口打通各个系统间的信息流是必需的[2]。企业内部接口的数量庞大,如果把接口的管理分散在各个系统或以文档的形式对接口进行管理,没有形成一个整体统一的接口管理,那么无论是新的系统调用、接口发布,还是旧的接口升级,都会因为缺乏整体上的管控而产生大量接口联调工作,甚至因为信息收集不全,信息收集的疏漏导致接口传输不通,数据传输错误等问题。这是接口管理的一个很大的痛点。因此,对于这类比较容易被忽视的接口信息在企业内部做统一管控是一个必然。本研究只是对企业统一接口管理理念的一次探索尝试,虽然对于数据的传输安全,接口执行的效率等方面的考虑还不是很完善,但是在实际应用中对于开发、运维、实施等工作的效率提升是显而易见的。