编者按:本文来自36氪战略合作区块链媒体“Odaily星球日报”(公众号ID:o-daily,APP下载)
本文来自 TechCrunch,原文作者:Bilgin Ibryam
译者 | Moni
多年以来,让企业/组织最为头疼的一个问题就是自己的系统没有较强的集成性,而且难以形成一个基于特定行业的去信任网络(trustless network)。
不过现在,区块链和分布式账本技术(DLT)可能成为实现这一颠覆性愿景的基础。
对于一些大公司和大型机构组织而言,他们的应用程序和 APP 大都是在“孤岛”中独立运行,这些“孤岛”往往需要共享数据和功能才能“步调一致”地运行。对于单个企业而言,如果想要实现数据和业务流程共享,就必须要与其他系统和应用程序进行对接,而这个过程就被称为“企业应用程序集成”(EAI:Enterprise Application Integration)。
另一方面,在共享数据和功能的时候,企业/组织往往希望寻求一种能够控制方式来管理整个流程,也只有在这种情况下,他们才能放心地把关键业务流程集成(或自动化)扩展到组织外部。这其实是“企业应用程序集成”的一种扩展,可以通过一种被称为“B2B 集成”的消息标准交换结构化数据来实现。
从根本上来说,“企业应用程序集成”和“B2B 集成”这两个专业术语都是指跨越多个系统(有时也涉及多方)的数据和功能集成过程。然而需要注意的是,企业内部系统和业务流程会不断发展,而支持 B2B 统一化的技术也在不断进步。
到目前为止,我们似乎很少看到某一个企业/组织的系统集成技术成为主流,因为这种技术的发展通常是建立在彼此支持的基础之上,而现实世界里的商业竞争往往让企业/组织之间变得越来越封闭。在此,我们并不是要专注于某个特定技术、或是某个特定的年份,而是尝试观察最近几十年来的发展,以便让大家了解为什么说区块链会是下一个技术迭代的关键要素。
下表是集成技术的进化历史概览:
接下来,我们要探讨上表中列出的每个进化过程中是如何实现技术进步的。
数据集成是最古老的跨系统信息访问机制之一,它具有以下两个主要示例:
1、通用数据库方法被用于企业内部的系统集成;
2、文件共享方法被用于企业内部和企业之间的数据交换。借助FTP等通用协议,文件共享让应用程序数据在不同设备和操作系统之间被交换。
但是这两种方法都不是实时的,而且只能通过批处理的方式才能完成数据集成操作,因此在可扩展性和可靠性方面都存在一定的局限性。
数据集成提供了非实时的数据交换,而这里将要描述的功能集成则提供了实时的数据交换和功能交换:
1、远程过程调用(Remote procedure call)通过“隐藏”了网络和数据编组复杂性,将基于套接字的低级别集成进行了重大优化,但是它其实是一个依赖于语言的、早期点对点的客户端-服务器架构。
2、对象请求代管者体系结构(Object request broker architecture)使用公用对象请求代管者体系结构(CORBA)、分布式组件对象模式(DCOM)、以及远程方法调用(RMI)实现,并引入了代管者组件,该组件允许不同语言的多个应用程序重复使用相同的基础结构并以P2P的方式相互通信。此外,公用对象请求代管者体系结构模型还具有命名、安全性、并发性、事务性、注册表、预计与语言无关的接口定义概念。
3、消息传递在应用程序之间引入了时间解耦(temporal decoupling)的概念,并确保异步消息传递。(耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。 解耦就是用数学方法将两种运动分离开来处理问题,常用解耦方法就是忽略或简化对所研究问题影响较小的一种运动,只分析主要的运动。)
到目前为止,我们已经看到了许多技术进步,但是他们主要关注的是系统集成而不是应用程序集成。从批处理到实时数据交换、从点对点到 P2P、从同步到异步,所有这些方法都不关心、或是不控制他们交换的数据类型,也不会强制验证数据。尽管如此,这种早期的集成基础设施通过交换基于电子数据交换(EDI)格式的数据来实现 B2B 集成,但是他们其实并不了解企业数据和业务流程,或者只了解了其中的一部分。
使用公用对象请求代管者体系结构,我们可以更早地尝试应用程序接口、以及对应用程序集成有用的服务。
面向服务架构(SOA)的主要目的,其实是推出一系列 Web 服务标准:
1、XML 提供了与语言无关的数据交换格式;
2、SOAP 提供了通用消息格式;
3、WSDL 提供用于描述服务接口的独立格式。
这一切都是构成Web服务的基础,这些标准与企业服务总线(ESB)和业务流程管理(BPM)相结合,使集成更专注于业务集成语言。相比之下,之前的技术更多地是在系统层面进行集成。
ESB 全称为 Enterprise Service Bus,即企业服务总线。它是传统中间件技术与 XML、Web 服务等技术结合的产物。ESB 提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB 提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口;另一方面,BPM,即业务流程管理,是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法,常见商业管理教育如 EMBA、MBA 等均将 BPM 包含在内。
Web 服务让系统不再盲目地交换数据,而是按照机器可读的合约和接口定义来交换数据,此类合约能够让某个系统和其他系统进行交互之前理解、并验证数据。
这里还包含了微服务架构,就其核心而言,微服务架构构建、并改进了面向服务架构和企业服务总线——此阶段的主要进化,是围绕分布式系统从Web 服务向基于表述性状态传递的交互过渡。
表述性状态传递(英文:Representational State Transfer,简称REST)是 Roy Fielding 博士在 2000 年他的博士论文中提出来的一种软件架构风格,它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。目前在三种主流的 Web 服务实现方案中,因为 REST 模式的Web 服务与复杂的 SOAP 和 XML-RPC 对比来讲明显的更加简洁,越来越多的 Web 服务开始采用 REST 风格设计和实现。例如,Amazon.com 提供接近 REST 风格的 Web 服务进行图书查找;雅虎提供的 Web 服务也是 REST 风格的。
总之,这个阶段中,在通用协议基础上,分布式系统也能获得通用标准和合约定义(contracts definitions)。
虽然利用通用协议和标准对交换数据有一定帮助,但服务合约却无法提供隐藏在合约背后、并在远程系统上运行的业务流程信息。一个业务请求可能在合约层面上有效,但在业务流程的某个状态下无效,这种情况会在两方之间进行集成的时候——比如在客户端-服务器模型、以及在 P2P 模型中多个参与方之间进行集成的时候产生很多问题。
有时多个参与方也会是同一业务流程的一部分,有时业务流程也会被其中一方而非所有各方拥有。而这种能够让多方互动正常运作的先决条件,就是要确保共同业务流程及其当前状态的透明度。所有这一切,都让能够在多方之间实施分布式业务流程的区块链技术变得极具吸引力。
通过共享业务流程和包含状态,基于区块链技术的集成模型扩展了共享协议和服务合约,而且所有参与实体都能以智能合约的形式共享同一业务流程。但是,为了验证业务请求、处理并得出相同的结论,业务流程也需要保持相同的状态,而这只有通过分布式账本才能实现。共享智能合约过去的全部状态并不是实现这一目标的手段,而是共享业务流程运行的先决条件。
从这个角度来可,区块链可以被看作是系统集成进化的下一个阶段。正如我们接下来将会深入解释的那样,区块链网络可以充当一种分布式企业服务总线和业务流程管理机制,它不会包含在某个单独的业务实体之中,而是跨越覆盖到多个企业组织内。下图:集成技术开始从封闭系统进化到共享系统:
首先是协议(比如 FTO),然后是应用程序接口合约(比如 WSDL、SOAP),接下来是业务流程本身(比如智能合约),最后数据会移出到封闭系统之外,进入公共共享空间,并成为集成基础设施的一部分。在某些方面,这种趋势类似于微服务的横切责任(cross-cutting responsibilities)从服务内部转移到支持平台。
通过区块链,通用数据模型和当前业务流程可以从企业内部转移到共享业务网络上。但需要注意的是,这种方法并非普遍使用,甚至不太可能成为一种主流系统集成机制。因为只有当网络中的所有参与方对数据模型和业务流程具有相同的理解时,才有可能采取这种行动。所以,基于区块链技术的系统集成只适用于那些有标准化业务流程的行业,比如金融、供应链、医疗保健等。
至此,我们已经按照时间顺序了解了集成技术的进化,现在可以更全面地了解B2B集成进化的各个主要阶段:
第一代:系统集成协议
这其实是在公用对象请求代管者体系结构(CORBA)和面向服务结构(SOA)之前的集成技术,主要利用通用协议进行数据交换,这种方式并不会理解数据、合约和业务流程:
1、集成模式:客户端-服务器,其中服务器组件仅由一方控制,典型的示例有数据库、文件服务器、消息代理等;
2、显式共享基础架构:低级系统协议、以及诸如FTP这样的应用程序接口;
3、隐式非共享基础架构:应用程序合约、数据格式、以及不支持通用基础基础架构的业务流程。
第二代:应用程序集成合约
第一代系统集成技术使用的是几年前的系统协议,允许应用程序以通用合约的形式共享应用程序接口。而第二代系统集成技术已经能够让应用程序了解数据、以及数据结构和潜在错误条件了,不过这一代技术仍然无法了解系统中的业务流程和当前状态:
1、集成模式:利用合约描述应用程序接口的客户端-服务器模型;
2、显式共享基础架构:协议、应用程序合约和应用程序接口定义;
3、隐式非共享基础架构:业务流程和远程状态仍是私有的。
第三代:分布式业务流程
第三代系统集成技术是基于区块链技术的一代,并且又向前迈进了一步,但该技术仍然需要证明是一个可行的企业级系统集成架构。区块链系统集成技术使用 P2P 协议,并且能够在多个系统之间共享业务流程,这些系统都是由去信任的各方控制的。之前的系统集成技术需要对共享协议和应用程序接口的理解,但这需要依赖对完整业务流程及其当前状态的共同理解,也只有这样才能形成有意义的跨组织分布式业务流程网络,并从中获得回报:
1、集成模式:通过与分布式业务流程形成业务往来,实现多方 P2P 集成;
2、显式共享基础架构:业务流程及其所需的状态;
3、隐式非共享基础架构:其他非流程相关的状态。
实际上,有许多基于区块链项目采用了不同的方法也解决业务集成难题,在此我们列举一些 B2B 集成领域里最受欢迎、也是最有趣的许可开源区块链项目:
1、Hyperledger Fabric 是目前最受欢迎、也是最先进的区块链框架之一,最初由 IBM 公司开发,现在已经是 Linux Foundation 项目的一部分了;
2、Hyperledger Sawtooth 最初是由英特尔公司开发的项目,现在也归入了 Linux Foundation 旗下分布式项目,它以可更换的模块化和完整组件而广受欢迎;
3、Quorum 是一个基于以太坊区块链的企业级分布式系统解决方案;
4、Corda 是另一个基于Java虚拟机中间件技术的技术,能够让企业利用合约交易、交换价值。
现阶段,已经由很多企业/组织使用上述系统框架构建了业务网络,使网络中的成员组织能够利用这种新型集成模式互相集成和交互。当然,除了上述提供网络节点的全栈区块链项目之外,还有一些“混合”解决方案。举个例子,Unibright 项目旨在利用自动生成的智能合约,将熟悉的标准(比如 BPMN)中定义的内部业务流程与现有区块链网络连接起来。这种智能合约可以有公有链和私有链生成,并且成为企业之间另一个系统集成支柱。
实际上,区块链技术已经开始尝试在我们现实生活中的很多领域里应用。一些公有链项目声称将利用这一新兴技术来改变世界,相比之下,私有链和许可区块链并没有做出太多这样的承诺,而是在稳步向前发展。
企业级的集成往往具有很多细节上的问题,比如所有系统都是由一家实体所控制、参与者之间具有某种程度的信任等等。就目前而言,这些问题仍然由现代企业服务总线、业务流程管理和微服务架构来解决的。
但是,当我们谈到多方参与的 B2B 集成时,和传统企业级集成所遇到的问题就不太一样了。这些系统基本上会由多个企业/组织控制,单独一方无法查看业务流程,互相也不信任——在这种场景下,我们看到企业/组织开始尝试一种全新的、基于区块链的集成技术,这种技术不仅依赖于协议与合约的共享,还依赖于端到端的业务流程和状态共享。
需要说明的是,“区块链即集成”(Blockchain as Integration)这种趋势与区块链行业内多年来不断发展的总体方向是一致的,即从共享最低限度的协议,到以合约、应用程序接口和现有业务流程和状态的共享。
这种共享集成基础架构能够支持全新的、透明集成模型——其中,先前那些不公开的业务流程现在将在开源协作模型下被共同拥有、共同拟定、共同构建、共同维护、形成标准化。也只有在这种情况下,才能够让企业/组织获得激励、共享业务流程并形成一个互利互益的网络,促进联合创新、标准化、以及更深层次的集成。