作者:InterSystems 供稿
InterSystems开发者社区汇集了大量有用、有趣的实践探讨。我们今天推荐的是InterSystems中国技术总监乔鹏的一篇长文:漫谈应用集成的现在与未来。
全文很长,分为五部分,目前已在开发者社区发布。包括:
1. 什么是应用集成?
2. 如何做应用集成?
3. 什么是集成平台?
4. 集成方案与评价
5. 应用集成的发展
为便于阅读,我们将长文分为上、中、下三篇进行推送:
上篇-什么是应用集成?互操作≠集成 中篇-什么是集成平台?集成平台概念辨析与定义 下篇-集成方案与评价,以及应用集成的发展
关注FHIR的大侠们估计都注意到了,FHIR更新了它支持的互操作范式,除了消息、文档、服务、API这4种,增加了2个:资源仓库、订阅。前面4个好理解,为什么资源仓库和订阅会成为FHIR的新的互操作范式?互操作与应用集成是什么关系?
01
什么是应用集成?
集成的概念应用广泛,往往被滥用和误用。例如数据集成,传统意义上是指通过ETL(数据抽取、转换和加载)实现的数据集中;界面集成是指通过单点登录解决人工用户跨应用访问的问题。它们都和我们讲的应用集成是两码事。
那什么是应用集成?
应用是一系列业务功能的组合。传统应用基本都是单体架构应用,无论是哪种软件架构开发的。单体架构应用的特点是独立运行、业务功能边界清晰。正因为不依赖于其它应用就可以完成业务边界内的功能,通常单体架构应用并不具有完善的应用交互能力,例如完善的接口。当单体应用间在特定业务流程上需要协同工作时,例如医生站下达的检验医嘱需要立刻通知到检验科信息系统,就需要把这2个或多个应用集成在一起自动实现业务流程协同工作,这就是应用集成。
既然集成的是应用,应用集成架构是随开发应用的软件架构发展而发展的 - 这就是上一篇《从软件架构发展谈业务集成技术演进与展望》的主题(点击查看上篇、下篇)。
要实现应用集成,双方应用必须解决接口问题、采用同步还是异步通讯问题、数据格式互相理解问题、术语统一问题、出现数据与业务异常如何表达异常问题、互相调用接口出现网络等错误时是否重试以及如何重试问题... 所以完善的应用集成并非易事。
由于没有中间层,点对点集成的双方必须事先同意接口方式、同步/异步通讯方式、数据格式、术语、响应异常代码等,同时要处理包括通讯异常在内的各种连接故障和异常。而且对于复杂的业务流程,一个应用可能需要同时与多个应用对接以交换数据、调用接口,开发变得非常复杂。在应用数量不多的情况下还能勉强支撑,对于动辄数十甚至上百个业务系统的行业环境,点对点的开发成本、运行风险、排故难度都非常高,而灵活性很低。这也是集成平台诞生的原因。
02
2.1 集成三要素
应用主动通知,例如应用调用集成平台发布的SOAP服务。这种方式说明被集成的应用具有基于标准的接口能力,或需要在项目现场改造。 被动由集成平台发现,例如平台通过SQL适配器发现应用后台数据库的数据变更。
流程的统一建模与管理 图形化、直观 灵活的流程调整和再造
2.2 应用集成的级别
业务集成,可以做得非常简单、也可以做得更完善,取决于集成的目标——要做到什么级别的应用集成。
HIMSS 将应用集成定义为4个不同的级别。
2.3 行业互操作标准在集成中的价值和作用
在医疗行业,通常需要的信息集成要达到语义级别,才能保障医疗信息准确和医疗行为安全。
要达到语义级和以上级别的信息集成,需要基于或参考标准。这些标准应该是行业级的、五位一体的标准:
词汇/术语标准:相互通信的健康信息系统依靠结构化的词汇、术语、代码集和分类系统来表示健康概念。词汇/术语标准就是表达健康概念的标准,例如世界卫生组织国际疾病分类标准:ICD-10, ICD-11。 内容标准,描述信息交换中,数据内容的结构和组织。它还包括通用数据集的定义。CDA、HL7 V2消息都是内容标准。 传输标准定义了计算机系统、文档架构、临床模板、用户界面和患者数据链接之间交换的信息格式和传输方式。传输方式确定了健康信息交换的“推”和“拉”方式。DICOM、IHE等规定了传输标准。 隐私和安全标准是确定谁、何时、出于何种目的、使用哪种个人健康信息的权利,以及如何维护健康信息的机密性、可用性和完整性的标准。美国的HIPAA和欧洲的GDPR都是关于隐私和安全的标准。 标识符标准是用来唯一标识患者、机构、医护、设备等实体的方法。例如咱们互联互通里用到的OID。
明天将推出“中篇”,敬请期待
集成平台并非是一种技术或一个方法论,而是整合后的一系列与应用集成相关的技术和特性的工具箱。对集成平台特性的不同理解也造成了市面上对于集成平台以偏概全或不准确的误读,例如集成平台就是消息引擎、集成平台就是ESB、集成平台就是中间件...... 这里试着讨论集成平台功能的同时,将这些不同技术、概念与集成平台区分开。