您的位置:首页 > 其它

如何做一个简单的开放接口(1)-功能设计

2015-05-17 19:16 836 查看

1、缘起

最初,系统系统间都是孤立的。业务是贯穿的,系统间也必然需要交互数据。

实现数据交互的方式有好多种,可以通过ftp交互Excel文件,可以通过互相读写的中间库,可以通过Web Services。

系统间可能是点对点交互,可能是一对多广播,可能是多对一汇总,可能是多对多协同。

在复杂IT场景中,多信息系统各司其职,协作完成工作。交互数据的事情怎样做呢?

数据交互有两个核心问题要解决:一是协议,二是数据格式。这两个都需要通信双方协商。

如果是企业内部的各信息系统,可以搭建统一的数据交互平台解决,强制推行一致的通信协议和数据格式审定流程。

如果在开放环境中,或松散组织中呢?有没有高效、合理的办法?

开放接口是一种良好的机制,可以应对这个场景。

商定如下:每个组织定义自己的“开放接口”,供其它系统调用。发布方定义协议和数据格式。而且,开放接口是面对所有其他系统的,不再针对个别系统做定制性的接口开发。

开放接口的优势:

统一规划系统的对外数据交互和功能调用。针对不同的调用者分别配置,即完成了系统互连的需要,而不是屡屡进行针对性接口开发。

2、技术需求

首先,通信协议要足够灵活,最好实现模块化和可插拔。通信协议可以体现在多个层次,包括HTTP、序列化、加密、压缩等。以应对调用方技术平台、安全等级、网络限制等特殊情况。

需要同时支持发布多个接口,而且每个接口可采用不同的协议。

其次,数据格式要足够灵活,最好实现可配置。

最后,平台需提供安全、监控、流量控制等基础功能。

3、功能规划

3.1、功能架构

功能架构如下图所示。



底层的通信协议,暂时不予关注,为了便于实现,先采用HTTP协议。

安全、权限、流量、序列化等工作由多个可插拔、可配置的组件实现。

服务器端架构如下图所示。



借鉴Servlet Filter思路,多种通信需求由Handler实现。Handler可配置,易扩展,具备极大的灵活性。

3.2、核心功能

开放接口核心功能是数据采集和数据发布。

数据采集的核心功能是格式映射和数据校验。

格式映射包括数据存储结构和数据项名称的映射。数据校验包括字段长度、是否必填项、数字格式、日期格式等校验。

格式映射需要定义配置文件。数据校验也可以在配置文件中定义。

平台需要定义配置文件格式,并依托配置文件在不编写Java代码的情况下实现数据采集和数据发布的功能。

4、功能设计

开放接口平台需要实现以下功能。

4.1、核心引擎

包括:多Handler可配置架构、数据映射文件及转换验证机制。

4.2、支持性功能

异常处理机制、消息格式参考实现等。

4.3、常用Handler参考实现

包括授权、流量控制、日志等。

4.3、外围功能

包括:对调用方的管理(基本信息、各种key、访问限制等)等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: