通用接口开放平台设计与实现——(1)整体介绍

背景

首先简单聊下背景,大型企业中的物流系统,需要跟众多的内外部系统交互,对接的系统达到十几个,接口数量在50+,并且后续还会大量增加新的对接方,很多对接方是类似的,例如跟汽运物流厂商的运输管理系统TMS,进行运输委托、运力反馈、运费结算、签收回传等交互。

如何按照传统模式去做点对点集成,会消耗包括时间和费用在内的大量成本,并且上线后还会搭上不小的运维成本。同时,伴随的问题,当业务发生变更时,接口的升级更新,也是大麻烦,往往涉及到多方协调、开发、联调、上线。

基于这个背景,思考一种优雅的解决方案,能低成本、高效率解决这个难题。

解决方案

最终解决思路是参照淘宝开放平台的模式,实现一套物流系统的接口开放平台,由平台对外提供一套标准的Rest风格的API服务作为服务接口,相关方系统通过这些API服务进行数据查询或数据更新。

同时,为了规避相关方系统需要定时轮询来获取数据变动的弊端,另外提供一套消息服务,接口开放平台作为消息服务中心,接收物流系统作为生产者产生的业务消息,如委托单创建、车辆入厂、用户签收,然后查找订阅该消息主题的相关方系统,实时以消息推送的方式通知相关方系统。

由平台技术框架部分,承担通用的逻辑实现,如数据验证、服务分发与调用、权限、日志、异常,而具体的业务API服务和业务系统的开发,仅需关注业务逻辑的实现即可。

在这里插入图片描述

API服务接口实现具体功能,消息服务接口实现消息通知。依托面向对象设计理念,对接口和消息进行组织:功能模块->业务实体->功能接口及消息
在这里插入图片描述

方案优势

采用该方案,最大的优点就是实现了标准化,相关方来对接时,如果现有的API能满足需求,只需提供标准化的服务接口,做简单的初始化配置(账号、密钥、权限、角色等)即可,最多加一点技术支持(解答疑问、联调);如果现有的API服务不能满足需求,则只需要设计和实现新的业务API服务就行了,并且新服务开发完成发布后,以后还能复用。

按照这种模式来实现,接口开发平台自身的设计和开发比较复杂,投入大一些,但一旦搭建出平台后,后续的业务开发成本就很低了,特别是对接工作和运维工作将非常简单,没有耦合和依赖。例如,我们做物流跟踪,市面上有多家服务提供商,如果是按照这种模式来,如跟A厂家合作一段时间后,对其服务不满意,则可以轻松更换一家,不需要进行接口的定制和调整。

该平台具有通用性,物流只是一个比较典型的应用场景而已,接下来,我会将整个平台的设计与实现,包括中间方案的选择,进行的重构和优化,用一系列文章进行介绍和说明,欢迎评论、交流、收藏和转发。

平台组成

平台主要由两部分组成,API服务和消息服务。
API服务:物流接口平台对外提供统一的数据接口服务,其他应用系统通过调用API服务,一方面,可以查询权限范围内的物流数据,另一方面,可以将自身系统产生的数据推送至物流系统。
消息服务:物流接口平台提供消息服务,主动将物流系统的数据的变化以消息的形式推送给其他系统。消息服务基于Socket技术,调用方系统与物流接口平台建立长连接,实时接收消息通知,避免调用方定时轮询,提高API调用效率,降低双方服务器负荷。

功能架构

前面说过,接口开放平台主要有两部分功能组成,一是处于主体地位的API接口,对外提供数据服务;二是处于辅助角色的消息服务,用于通知数据变动。
实际上,客观上还需要平台自身管理功能,来维护平台的基础数据和功能,例如应用管理、服务管理、消息管理,权限控制,日志查看等。

系统功能架构图如下所示:
在这里插入图片描述

模块划分

image.png
platform-cip-common:公共基础
platform-cip-api:对外提供API数据接口,提供API服务
platform-cip-message:基于netty的web socket服务端提供消息服务
platform-cip-manage:平台自身基础数据的维护,如应用、API服务、消息服务、数据权限管理等。
4个模块内关系为manage依赖common,api和message相互独立,但都依赖于manage。

此外,cip-client是消息客户端,独立部署与运行。

开源平台资料

平台名称:一二三开发平台
简介: 企业级通用低代码开发平台
设计资料:CSDN专栏
开源地址:Gitee
开源协议:MIT
欢迎收藏、点赞、评论,你的支持是我前行的动力。

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Xilinx Zynq SoC与嵌入式Linux设计实战指南 兼容Arm Cortex-A9的设计方法PDF是一本针对Xilinx公司的Zynq SoC以及嵌入式Linux进行实战设计的指南。该书详细介绍了如何使用Xilinx公司提供的软件工具和硬件平台进行开发,以及如何构建可靠且高效的系统。本书是一本面向实践的指南,可以帮助读者深入了解Zynq SoC的内部结构和软硬件协同开发的优势,同时阐述了在嵌入式系统设计中使用Linux的优势和常见的应用场景。 本书开篇介绍了Zynq SoC的基本结构和硬件架构,以及基于Zynq的系统设计的优势和挑战。然后,本书介绍了使用Vivado和SDK进行综合设计并使用嵌入式Linux进行软件开发的方法。进一步的章节讲述如何进行内存映射和外设控制器的编写,并介绍了如何使用Linux设备树来描述硬件平台。 该书还涵盖了一些高级应用,例如多核处理器的设计,漏洞测试和优化和调试嵌入式Linux驱动程序。此外,还有一个实例项目:基于Zynq的数字视频处理,给出了一个完整的示例来展示如何使用本书的方法进行项目开发和实施。 综合来说,Xilinx Zynq SoC与嵌入式Linux设计实战指南兼容Arm Cortex-A9的设计方法PDF是一本介绍Zynq SoC和嵌入式Linux的实用指南,可以帮助读者深入理解Zynq SoC的内部结构,掌握软硬件协同开发的方法和应用场景,了解如何使用Linux进行嵌入式系统设计,并提供一个完整的数字视频处理项目,使读者更全面地了解嵌入式系统开发的流程和技巧。 ### 回答2: 《Xilinx Zynq SoC与嵌入式Linux设计实战指南 兼容ARM Cortex-A9的设计方法PDF》是一本介绍如何在Xilinx Zynq SoC平台下进行嵌入式Linux设计实战指南。该书主要涉及Zynq SoC硬件架构、软件体系结构、嵌入式Linux系统的构建和应用程序的开发等方面。 在硬件设计方面,该书介绍了Zynq SoC的硬件架构、插件式协议(PS)和可编程逻辑(PL)之间的互联方式,以及如何进行硬件引脚分配和设计。在软件设计方面,该书介绍了如何使用Xilinx提供的软件工具进行开发,包括Vivado、SDK、Bootgen,以及如何配置和编译Linux内核。此外,该书还介绍了如何编写和调试应用程序,在Linux内核和文件系统中使用设备驱动程序和接口等内容。 总的来说,本书旨在帮助读者快速掌握Zynq SoC平台上的嵌入式Linux设计方法和技术,能够轻松地进行硬件和软件的开发和集成,为下一代嵌入式系统的开发提供基础。对于对嵌入式系统设计有一定了解的读者来说,这本书是一本非常有价值的实践指南。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学海无涯,行者无疆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值