您所在的位置:首页 > i医疗 > 医疗信息化 >  漫谈应用集成的现在与未来(中):什么是集成平台?集成平台概念辨析与定义
漫谈应用集成的现在与未来(中):什么是集成平台?集成平台概念辨析与定义
  • 2022-12-01 09:53
  • 作者:卓越的→
  • 来源:InterSystems

InterSystems开发者社区汇集了大量有用、有趣的实践探讨。我们今天推荐的是InterSystems中国技术总监乔鹏的一篇长文:漫谈应用集成的现在与未来。

全文很长,分为五部分。包括:

1.什么是应用集成?

2.如何做应用集成?

3.什么是集成平台?

4.集成方案与评价

5.应用集成的发展

 

为便于阅读,我们将长文分为上、中、下三篇进行推送:

上篇-什么是应用集成?互操作≠集成(点击即可阅读)

中篇-什么是集成平台?集成平台概念辨析与定义

下篇-集成方案与评价,以及应用集成的发展

-以下为正文-

中篇|什么是集成平台?集成平台概念辨析与定义

03

什么是集成平台?

集成平台的基础功能就是在不打破现有应用的边界(不改造、少改造应用)的前提下,提供跨应用的业务流程整合和闭环。它当然要解决点对点集成的问题,因此适配各种接口方式、管理同步/异步通讯、数据格式转换、术语注册与转换、处理通讯故障等,都是需要的能力。集成平台,作为一个技术平台,为应用集成工程师提供生产力工具。下面就展开说说集成平台需要什么功能。

图:典型的集成平台功能架构

集成平台要解决以下基础能力:

  • 互联互通(打通应用的连接性);
  • 数据建模和数据转换;
  • 流程建模和执行:协同、甚至再造应用间的业务流程,例如业务闭环。

另外,集成平台在这些领域往往也被寄予众望:

  • 将旧有架构的应用现代化!--SOA、EDA、DDD(主题域驱动设计)、MSA...
  • 基于已有应用与数据资产的复合应用开发

3.1集成平台需要什么功能?

集成平台并非是一种技术或一个方法论,而是整合后的一系列与应用集成相关的技术和特性的工具箱。

上面提到了集成平台要解决应用的互联互通、数据建模和数据转换、流程建模和执行这些基础需求。集成平台通常包含这些基础技术/特性以应对基础需求:

1.  连接适配器:连接适配器是可复用的,高度可配置的,对各种技术、协议、应用的连接组件。真实业务场景中,各个业务应用都可能提供了不同的技术接口、不同的数据协议,因此一个丰富的适配器库是保证对接口普适性连接能力的重要因素。另外,适配器通常有确保连接、发送的能力,例如连接应用网络异常时需要的重连、重发能力,而不是修改调用方应用使其具有这样的能力。专业的集成平台产品通常内嵌了行业互操作标准适配器,提供对于这些互操作标准协议的开箱即用的连接、校验、转换、路由的能力,从而极大降低开发和实施成本,提高方案的敏捷性。连接适配器也是集成平台提供广泛连接性的主要方式。

2.  元数据管理:对上下文、消息进行建模和约束管理等能力。这是集成平台对数据建模和数据转换的能力支撑之一。因为上下文和消息的复杂性,多模型建模的能力尤为重要。

3.  数据转换引擎:用于对数据/消息模型进行转换,这也是集成平台对数据建模和数据转换的能力支撑之一。数据转换涉及多种数据模型的相互转换,包括XML、分隔符分隔的字符串、JSON、对象模型等,图形化的转换能力尤为重要。

4.  消息引擎/消息总线:用于建立消息路由规则,通过消息引擎在应用之间可靠地传递消息。路由规则是集成平台提供的流程建模能力之一,用于简单的流程场景。路由规则通常可以基于消息类型和消息内容进行设置,也就是需要它有拆包分析消息数据的能力。而消息引擎需要具有同步发送、异步发送、重发、编辑后重发等能力。要确保消息发送,还需要消息持久化的能力。

5.  业务流程引擎:对业务流程进行建模,是集成平台提供的重要的流程建模能力。业务流程引擎通常提供图形化的流程建模工具、使用流程建模语言,从而提供比路由规则更灵活的流程模型,例如流程分支控制、延迟控制、流程异常捕获与处理,提高流程自动化程度、更适合对业务流程的再造,例如将人工智能加入业务流程。

6.  消息可视化追踪和消息仓库:将集成平台上的跨应用传递的消息按业务组织、以可视化的方式展现每笔业务流程历史(包括流程尚未结束的业务)的全貌,通常包括时间、请求消息内容、响应消息内容、状态、错误与跟踪信息等,方便集成工程师快速发现、定位和解决流程问题。实现消息追踪,需要持久化消息,并且可以查询检索,例如通过SQL。而消息仓库可以存储消息,并提供更丰富的消息分析能力。

3.2与集成平台混淆的概念

对集成平台特性的不同理解也造成了市面上对于集成平台以偏概全或不准确的误读,例如集成平台就是消息引擎、集成平台就是ESB、集成平台就是中间件......这里试着讨论集成平台功能的同时,将这些不同技术、概念与集成平台区分开。

3.2.1.中间件

中间件是很多产品的统称,是处于源和目标中间的技术构件,因此称为中间件。例如消息中间件(消息引擎、消息总线)、API中间件(API网关)、事务中间件(TPMs)、企业应用集成中间件(ESB)、Web应用中间件(web应用服务器)、数据流中间件……

和应用集成相关的,通常是消息中间件、企业应用集成中间件、API中间件,它们都是广义集成平台的能力组成部分。因此中间件不是集成平台。

3.2.2.消息引擎

消息引擎,往往也被称之为消息中间件,是提供消息通道的中间件技术,可以应用在很多架构下,例如流式处理。因为其消息队列管理能力,尤其是消息先进先出、消息路由等能力,通常集成平台都会把消息引擎作为组件,用于消息处理顺序控制和发送控制。

消息引擎本身只处理消息机制,它不主动向目标系统发送消息,即消息引擎并不解决连接性问题。集成平台通常是通过适配器将消息主动地、按目标方要求的通讯协议,连接到并发送给目标方的。因此消息引擎单独做不了应用集成的事情!

另外,市面上很多消息引擎产品,其中一些不支持消息持久化,无法保证消息的发送成功、无法重发;一些不支持消息校验,无法检索分析消息;另一些不支持发布/订阅模式、或多个订阅用户。

3.2.3.接口引擎

虽然广义上,接口引擎具有更多能力,但狭义上,接口引擎是通过适配器解决接口连接性的技术,它的目标是使用应用/技术现有的接口能力,建立对其的连接,有可能是单向的、也可能是双向的。因此,接口引擎只解决应用/技术接入的问题,它通常是集成平台解决应用接入的技术组件。

3.2.4.企业服务总线(ESB)

这里的服务是面向服务架构(SOA)语境下的服务。什么是服务,和前面提到的接口有什么区别?

接口是指基于某种协议的交互规范的实现,例如基于SOAP的接口;而在面向服务架构里,服务相对于单体应用架构而言的,它是按功能封装的应用组件,可以被别的服务(应用组件)调用、因此可以复用,例如HIS的患者查询服务。接口是服务实现方式,例如HIS的患者查询服务SOAP接口,服务是业务概念、接口是技术概念。

企业服务总线是随面向服务架构(SOA)发展起来的,用于封装、注册、协同调用和监控服务。SOA封装的服务,实践中最多的是Web服务:基于XML的数据模型、基于WSDL的服务定义、基于SOAP的服务接口。但理论上服务并不一定是SOAP服务,也可以是HTTP服务、TCP服务、文件服务……

ESB既然要协同调用服务,通常都具有集成平台的核心能力,例如流程建模、数据转换、适配器等。这是最容易和集成平台混淆的概念,甚至一些大厂在不同场景下把其产品同时称之为集成平台或ESB,差异在于集成平台不必要基于SOA架构、不必要封装服务。

12月7日(下周三)将推出“下篇”,敬请期待                                                                               

集成方案与评价,以及应用集成的发展

应用集成项目的效果和实施有很大关系,且和底层采用的集成平台技术相关。评价它的因素太多了,例如性能(消息吞吐量)、高可用、持续集成能力、建设成本......而我们这里关注集成3要素和集成平台基础能力,这些集成的核心需求来考察集成方案。

点击此处,加入InterSystems开发者社区(中文版)查看全文

 

转载请注明出处:HC3i数字医疗
【责任编辑:潘蓉蓉 TEL:(010)68476606】

 


标签:集成平台  
  • 分享到: