源宝导读:随着企业数字化进程的逐渐深入,企业存在大量的异构系统,各个系统之间信息传输、资源利用困难。本文将介绍明源云ERP为了打破这种“信息孤岛”,而进行的思考与实践。

一、前言

随着企业信息化进程的逐步深入,互联网技术的发展和分布式系统应用的日益广泛,直接导致大量异构系统的存在,这些系统往往各自独立、封闭运行,相互之间不存在或很少存在数据的交互,由于这种应用分割,多个系统之间往往存在数据的冗余以及功能的重叠,各个系统之间信息传输、资源利用困难,形成所谓的“信息孤岛”。

二、企业应用集成挑战

要打破“信息孤岛”,企业就必须突破企业应用集成几个基本挑战:

  1. 可靠性。集成解决方案必须通过网络把数据从一个终端传送到另一个终端上。与运行在同一个终端上的进程相比,分布式计算必须应对更多可能出现的问题。很多情况下,若需要集成的两个系统位于不同的环境下,它们之间的数据必须通过网线、局域网、路由器、交换机、公共网络进行传输。其中每个环节都会带来延迟或中断。

  2. 高性能。通过网络发送数据要比执行一个本地方法调用慢多个数量级。如果使用设计单一应用的方法设计一个分布式解决方案,可能会对性能造成灾难性的影响

  3. 异构适配能力。集成解决方案需要在使用不同的编程语言、不同平台和不同数据格式、不同通信协议的系统间传递信息。因此,集成方案要能与这些不同的技术打交道。

  4. 低耦合。系统会随着时间改变,一个集成解决方案必须跟上与之相关连接的系统变化的步伐,系统间使用松耦合方式连接,尽可能减少系统之间的依赖关系。

三、行业常用解决方法

应用系统集成的解决方案有很多,但最常见有API调用、数据库同步、文件传输、消息(事件)传递:

  1. API调用:一个系统开放其部分API,使得其他系统能够远程访问这些API。它们之间的通信是实时、同步的。

  2. 数据库同步:多个系统在数据库层面建立数据同步调度作业,实现数据拷贝与复制。

  3. 文件传输:一个系统写文件,之后另一个系统读这个文件。为此,系统之间需要协商文件名、文件位置、文件格式、文件读写的时间以及谁负责删除这个文件。

  4. 消息(事件)传递:一个系统向公共消息通道中发送一个消息(事件),其他可以在之后某个时间从通道获得这个消息(事件)。系统之间必须协商建立通道以及消息(事件)的格式,这种通信是异步的。

尽管上述四种方案从本质上解决的是相同的问题,但是每种方案均有其独特的优点和不足(不追述,可参考企业应用集成模式)。实际上,企业应用集成往往需要针对不同的系统、供应商、集成场景选择采用不同的集成方案,使得每个集成点都能充分利用最合适方案。

四、明源云应用集成平台(简称:MIP)

明源云应用集成平台(简称:MIP)是一个全栈式的应用集成平台,提供轻量化的API、事件、消息、数据集成能力,帮助您快速、简单的构建高可靠、高性能、低延迟的应用集成解决方案,实现企业内云上云下,不同厂商、不同架构、不同协议的应用互联互通,打破“信息孤岛”,支撑企业数字化转型。

MIP总体架构示意图

MIP主要由连接中心、接口中心、事件中心、监控中心、管理控制台五大组件构成,通过五大组件服务组合,可以帮助企业高效构建可知、可控的企业应用集成解决方案。

五、连接中心

连接中心由服务注册中心和连接器管理两部分组成,其中服务注册中心为您提供服务注册与发现、健康检查等服务治理能力。连接器管理则为您提供服务元数据管理、服务质量管理、服务适配能力,以便满足企业应用集成中不同厂商、不同应用、不同协议的集成适配。

连接中心提供如下关键特性:

  • 服务注册与发现:服务提供者可以通过手工注册、API注册、客户端注册三种方式将服务信息注册到服务注册中心。同时服务消费者可以通过服务注册中心提供的服务发现API获取可用的服务提供。

  • 健康检查:服务注册中心根据连接器配置中设置的健康检查地址和频率对服务进行定期对健康检查,以便保证及时发现应用层问题,及时摘除异常节点,保证服务正常运行。

  • 服务元数据管理:对服务本身的配置信息和服务的API、事件等信息进行维护管理,最终提供给接口中心、事件中心的应用集成场景中使用。

  • 服务质量管理:连接器在调用后端服务时,根据连接器配置中设置的超时、重试、熔断的服务质量控制规则对后端服务进行安全调用的保护。

  • 服务适配:内置了常见的http、webservice、sql service、my sql、rabitt mq等通用基础连接器,开箱即用,满足80%的应用集成场景适配,同时连接中心还提炼了一套连接器插件框架模型,支持在基础连接器基础上进行插件化扩展,开发面向不同厂商的应用级连接器,例如:泛微、用友、金蝶等。

六、接口中心

接口中心可以为您提供高性能、高可用、高安全的API托管服务,帮助您轻松构建、管理和部署API。借助接口中心,可以简单、快速、低成本、低风险地实现应用系统集成、业务能力开放。

如果您作为API提供者(开发者),您可以将成熟的业务能力(如服务、数据等)作为后端服务,在接口中心中开放API,并通过线下方式提供给API调用者使用,实现业务能力开放。

如果您作为API调用者(消费者),您可以获取并调用API提供者在API网关开放的API,减少开发时间与成本。

如果您作为API管理运维人员,您可以通过授权、流控、监控告警等策略保障企业的API。

接口中心架构示意图

接口中心提供如下关键特性:

  • API生命周期管理:括API的创建、发布、下线和删除的完整生命周期管理功能。通过API生命周期管理功能,您可以快速、高效的开放成熟的业务能力。

  • 版本管理:API可以发布到网关运行环境,如果您需要再次发布此API到之前已发布的环境,那么此次的发布版本将立即覆盖之前的版本。API网关支持查看API发布历史(如版本、发布说明、发布时间和发布环境),并支持回滚到任一API历史版本,以便满足业务版本升级、回滚等需求。

  • 便捷调试工具:提供页面调试工具,您可以使用该工具添加HTTP头部参数与body体参数,对API进行调试,简化API开发,降低API的开发维护成本。

  • 流量控:可实施API的请求频率、应用的请求频率的管控,用于保障后端服务的稳定运行,流量控制的时间单位可以是秒、分钟、小时或天。

  • 请求校验:支持参数类型、参数值(范围、枚举、正则、Json Schema)校验,无效校验会被 API 网关直接拒绝,以减少无效请求对后端造成的资源浪费,大幅降低后端服务的处理成本。

  • 数据转换:通过配置映射规则,实现前、后端数据翻译。支持前端请求的数据转换。支持返回结果的数据转换。

  • 访问控制:访问控制策略是API网关提供的API安全防护组件之一,主要用来控制访问API的IP地址,您可以通过设置IP地址的黑名单来拒绝某个IP地址访问API。

  • API鉴权:统一发放签名密钥(由一对Key和Secret组成),签名密钥需要绑定到API才能生效。签名密钥用于后端服务验证API网关的身份,在API网关请求后端服务时,保障后端服务的安全。

七、事件中心

事件中心为您提供低耦合、准实时、高可靠的数据或消息传输服务。

  • 低耦合:架构采用事件订阅与分发模式,解耦开生产者和消费,订阅过程无需代码侵入,通过统一配置方式实现,实现数据采集与分发。

  • 准实时:通过应用领域事件监听、数据库CDC机制、队列监听,做到准实时的数据同步,数据从源端产生后,以极低的延迟被采集、加工,并写入目的地,整个过程没有明显的处理批次边界。

  • 高可靠:平台底层采用Rabitt MQ作为数据传递通道,保障数据传递的可靠性;三级重试,临时性重试、定时重试、手工重试,提升数据传递的可靠性。

事件中心架构示意图

事件中心提供如下关键特性:

  • 事件管理:可以通过创建事件源和事件订阅者,来实现事件的订阅与发布,最终实现数据或消息在应用之间进行传递。同时也可以在事件创建后进行管理维护操作,例如:删除事件、修改事件、发布事件、取消发布事件、增加订阅者、删除订阅者、修改订阅者等。

  • 调度管理:可以查询到各个事件对应的任务调度的运行状态,为排查生产问题提供有效数据支持.

  • 异常管理:事件消费时产生业务异常,事件中心会将对应的异常事件发送到异常管理模块,异常管理模块可以通过自定义的自动重试规则做定期重试,当自动重试仍然无效的情况下,也可以人工重试对异常数据做干预,提高异常数据的修复效率。

  • 轨迹管理:支持追踪事件生产与消费的完整链路信息,获取任一事件的当前状态,为排查生产问题提供有效数据支持。

八、监控中心

监控中心通过客户端帮助您跟踪采集连接中心、接口中心、事件中心、MIP客户端各个组件的运行状态、日志、异常、性能等信息(遵循OpenTracing标准),客户端采集到运行信息后发送到监控中心服务端,由服务端对信息做加工与分析,加工后的信息能为您提供集成调用链查询和诊断、性能分析、服务依赖分析、异常告警等服务,这些服务为您进行生产问题排查提供有效数据支持。

监控中心架构示意图

  • 调用链查询和诊断:追踪分布式架构中的所有服务应用的用户请求,并将它们汇总成分布式调用链。

  • 性能分析:通过追踪整个应用程序的用户请求,来实时汇总组成应用程序的单个服务和资源性能指标,帮助您诊断性能瓶颈。

  • 服务依赖分析:形成所有分布式服务应用的调用依赖关系。

  • 告警管理:支持自定义告警规则,并且在告警达到条件后通过邮件、移动端等设备发送告警内容给运维人员。

总结

本次主要分享的是明源集成平台(MIP)的定位、核心架构、功能特征以及实现效果,后续还会总结分享平台里面落地实现的关键技术点。

------ END ------

作者简介

王同学: 产品经理,目前负责ERP集成平台相关规划与设计工作。

也许您还想看

MIP服务发现的高可用架构实践

基于消息的高稳定集成架构方案

研发协同平台持续集成2.0架构演进

【2019总结篇】谈谈数字化时代,ERP如何坐稳数字化底座

一个全栈式的应用集成平台,打破“信息孤岛”相关推荐

  1. 为PaaS云平台提供整合的全栈式监控

    作为一项日益受到欢迎的技术,平台即服务(Platform-as-a-Service,PaaS)可以在云端部署能够通过Web访问的应用.借助PaaS,用户不必关注详细的执行信息,例如操作系统.资源分配. ...

  2. 全栈式PHP集成环境-laragon(二) 配置、使用

    全栈式PHP集成环境-laragon(二) 配置.使用 配置启动项和端口 Laragon 中集成了 Apache, MySQL, Nginx, Memcahed, Redis 我们可以按照自己的需要配 ...

  3. 推荐一款轻量级全栈式开源测试平台!

    1.RunnerGo介绍 今天给大家介绍一个好用的测试平台:RunnerGo(开源).RunnerGo是一款轻量级.全栈式的测试平台,支持接口管理.场景管理.性能测试.自动化测试等功能.与市面上的性能 ...

  4. 从全栈式解决方案到情感化,揭秘问众智能切入车载语音市场的最佳姿势...

    *问众智能CEO张亚 如果说语音交互是车载场景的最佳方式,未来谁掌握车内语音交互"话语权",谁就将主宰车辆智能网联的新时代. 经过多年的渐进式发展,语音交互的价值正逐步走出单纯&q ...

  5. 程序员:如何成为一个全栈的工程师?

    全栈工程师,英文 Full Stack developer,是指那些掌握多种技能,并能利用多种技能独立完成产品的人.当然,现在「全栈工程师」很吃香,非常吃香!这是因为在移动互联网时代,IT 系统变得愈 ...

  6. 大数据全栈式开发语言 – Python

    前段时间,ThoughtWorks在深圳举办一次社区活动上,有一个演讲主题叫做"Fullstack JavaScript",是关于用JavaScript进行前端.服务器端,甚至数据 ...

  7. python全栈和java全栈_Python是全栈式开发语言吗?原因竟是这样!

    Python 的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名.但排在前四名的语言 Python.C.Java 和 C++都拥有广大的用户群体,并且他们的用户总量也十分相近.实际上,Di ...

  8. 无监控,不运维:解读企业全栈式监控运

    企业应用由单体应用系统向分布式系统的发展趋势已经不可逆转.十年前 "SOA" 大频率的出现在软件系统招标技术架构要求书中,相信用不了多久"微服务架构"也会被频繁 ...

  9. 从零开始开发一个全栈Web应用实录

    虽说学习了大半年前端,但是对前端的理解仍然停留在对HTML,CSS,JS,JQuery的概念理解上,并且没有接触过相关的后端开发,所以说,这个项目也可称为从零开始,是新手向的文章,不要害怕有门槛哈. ...

最新文章

  1. js---PC端滑动进度条
  2. window.open
  3. 实现Runnable接口的形式创建线程
  4. java高并发(七)发布对象
  5. 不分大小写的Strstr
  6. 微信小程序实现数组排序(向上向下移动)
  7. linux 程序包管理5 编译安装
  8. Python实现GCS bucket断点续传功能,分块上传文件
  9. VEGAS不等双11,提前嗨购!助你成为视频大神!
  10. java代码输出1到100的质数
  11. python加法运算符_python 入门之 – 基本运算符(七)
  12. NHibernate Mapping文件中如何指定类的字节数组属性
  13. java中的异或运算
  14. 基于遗传算法的新安江模型参数优化率定(二)
  15. 计算机桌面背景设置,电脑桌面背景设置图文教程
  16. JAVA根据PDF文件生成图片
  17. strlen,strcpy,strcat,strcmp函数
  18. 买了腾讯云服务器怎么ping,腾讯云服务器如何禁止Ping的功能
  19. python:PyQt5 简单示例
  20. Excel 自动画图表

热门文章

  1. 用POP动画引擎实现弹簧动画(POPSpringAnimation)
  2. 在 App 扩展和主 App 间共享数据
  3. 在Teams中对网站的URL特殊解析
  4. 如何在Instagram上过滤冒犯性评论
  5. word中图片超出页边距_如何在Word中更改页边距
  6. 个人笔记 Vue.js, Framework7, and Cordova / PhoneGap Template with Babel, Webpack and Hot Reloading...
  7. 阿里云与中国联通首个公共云平台上线
  8. 嵌入式-C语言面试题【转】
  9. 玩的时候好好玩,学的时候好好学。不做半吊子
  10. 史上最全最常用批处理260多个打包下载