商业网络
本章介绍并探讨了一个新概念— 商业网络。通过了解什么是商业网络以及它们是如何运作的,你将能够理解区块链技术如何从根本上改善它们。区块链,尤其是 Hyperledger Fabric 区块链,为企业网络提供了显著的优势,因为它从根本上简化了将企业联系在一起的信息和流程,既降低了成本,又为网络中的企业创造了新的机会。
我们将看到商业网络的概念如何让你通过观察与之互动的对手方来分析一个企业。尽管业务网络是特定于行业的,但是单个网络可以用于支持多个用例,并链接到其他业务网络以形成网络的网络。
我们将花一些时间介绍商业网络的词汇,介绍一些关键术语,如参与者、资产、交易和事件。然后,这些元素被组合起来定义正在分析的业务问题的行为。我们能够使用业务需求来创建可用于实施解决方案的技术蓝图。在本章结束时,您将准备好使用 Hyperledger Fabric 和 Hyperledger Composer 来实现这些想法,这将在下一章中进行。
虽然在实施区块链网络之前,有必要了解业务网络的概念,但您会发现它对于更广泛的问题是一个有用的概念,例如执行区块链分析、与现有系统集成以及如何构建您的应用程序和企业架构。从这个意义上来说,本章可以独立阅读,不需要在之后实现网络。
我们将在本章中讨论以下主题:
- 商业网络语言
- 商业网络的概念
- 定义商业网络
- 介绍参与者
- 介绍资产
- 引入交易
- 介绍事件
- 实施业务网络
有目的活动的繁忙世界
想象一下,我们正乘坐飞机在一个大城市上空飞行。我们可以看到工厂、银行、学校、医院、零售店、汽车展厅、港口的船只等等。这些是定义城市的结构。
如果我们仔细观察,我们会看到这些结构内部和之间发生的事情。卡车可能正在向工厂运送铁矿石,顾客可能正在从银行取钱,学生可能正在参加考试——下面是一个繁忙的世界!
如果我们能看得更近一点,我们会发现所有这些人和组织都参与了彼此之间有意义的活动。学生接受老师的评估,这将有助于他们进入大学。银行贷款给客户,然后他们可以搬回家。用原材料制造部件的工厂,由客户组装成复杂的产品。人们从经销商那里购买二手车,用来每天上班或度假。
我们可能会对所有这些结构和它们之间的过程的多样性感到惊讶。我们甚至会想,这一切是如何做到如此轻松地协同工作的!
然后,我们可能会反思所有这些不同的活动,并想知道它们是否都有一些共同点?有没有可重复的模式可以让我们理解所有这些复杂性?有没有一个决议,所有这些活动看起来都一样?在某种意义上,所有这些人和组织都在做同样的事情吗?
答案当然是肯定的!下面一节给我们一个更好的解释。
为什么是商业网络语言?
商业网络是一种思维方式,它允许我们审视所有这些活动,并用一种非常简单的语言来描述它们。而且,因为我们试图用一种对区块链人来说有意义的语言来描述这个世界,而且因为区块链是一种简单的技术,我们希望这种语言的词汇也简单。在下一节中,您将看到这一点!
但是在我们开始之前,让我们问问自己为什么我们想要创造一种区块链人能理解的语言?好吧,如果我们可以,那么我们可以把区块链的所有好处带给这个语言所描述的世界。而且,我们可以简洁地总结这些好处——增加信任。
增加信任意味着学生可以向他们的大学出示他们的高中证书,他们可以对资格的真实性有信心。这意味着银行可以以最低的利率向客户提供贷款,因为它对客户的财务状况有信心。这意味着零部件制造商可以为他们的产品收取更高的价格,因为他们的客户反过来可以确定原材料的质量,知道它们的出处。最后,二手车的买家可以对他们的购买充满信心,因为他们可以证明它以前只有一个,小心,所有者!
定义商业网络
我们可以用商业网络的概念来概括所有这些想法:
商业网络是经历由交易描述的生命周期的参与者和资产的集合。事件在事务完成时发生。
你可能想知道这意味着什么。在所有这些构建之后,我们告诉你几个明显简单的句子描述了所有这些复杂性?
简单的答案是肯定的——我们将很快通过更详细地描述我们所指的参与者、资产、交易和事件来解释。然后,你会发现所有这些丰富的行为都可以用一个相对简单的语言词汇来描述。
更深刻的想法
事实上,业务网络背后有一个更深层次的想法——技术的语言和词汇应该与业务领域的语言和词汇紧密匹配,从而消除了在业务概念和技术概念之间进行大量翻译的需要。通过用与业务相同的语言描述底层技术,业务网络摆脱了不相关技术的概念。它使人们更容易对世界进行推理,更准确地将想法转化为完全可操作的系统。
实际上,这意味着虽然我们最初的商业网络词汇很简单,但它是一种语言的开始,随着时间的推移,这种语言的结构会变得非常丰富,只要它描述了现实世界中发生的事情的细节和细微差别。我们稍后将回到这个想法,但是现在让我们从理解参与者开始。
介绍参与者
威廉·莎士比亚说,世界是一个舞台,男男女女都是演员。类似地,一个商业网络也有一个角色——一组为了某种形式的互惠互利而相互交流的参与者。我们称这些参与者为商业网络中的参与者。例如,教育网络的参与者可能是学生、教师、学校、学院、主考人或政府督学。保险网络的参与者可能是投保人、经纪人、承保人、保险公司、保险辛迪加、监管机构或银行。
参与者的概念对于理解商业网络至关重要。一开始你可能会觉得这个术语有点吓人,但是真的没什么好担心的。理解的关键在于名字——参与者在商业网络中扮演 角色。我们感兴趣的是他们的行动。这个词的不同形式被用来强调他们相互作用的不同方面:例如,参与者、一方和对方。所有这些形式都植根于行动的理念。像往常一样,我们发现吟游诗人对这个世界是如何运作的略知一二!
学会爱这个词,因为它是一个开门器!简而言之,你理解商业的基本原则——与谁做生意至关重要。但它比这个更重要。当你决定是否有机会从区块链的使用中获益时,首先要做的是识别商业网络中的参与者。你需要了解演员阵容,然后才能真正理解发生了什么。而且,随着你对参与者之间的互动了解得越来越多,你将能够更好地理解作为一个特定的参与者意味着什么。
参与者的类型
商业网络中有不同类型的参与者,我们将他们分为三大类。令人惊讶的是,我们不打算首先描述最重要的类别!
个人参与者
希望这是一个相当明显的类别——教师、学生或银行客户都是个人参与者的例子。无论你称他们为个体、人,甚至是人类,这第一类都是我们作为参与者的直觉思维,因为我们把他们和自己联系在一起。
你可能认为个人是网络中最重要的参与者。毕竟,企业的存在是为了服务个人,不是吗?嗯,是的,他们做的,但它比那更微妙一点。虽然企业网络的存在通常是为了满足个人终端消费者的需求,但区块链是一种对网络中的企业更有价值的技术。这是因为它允许他们更好地协调彼此的活动,从而降低成本,并为最终消费者提供新的商品和服务的机会。这就是为什么你会听到人们说出诸如区块链对 B2B 比 B2C 或 C2C 更重要之类的句子——他们试图传达商业网络的巨大胜利是使用区块链作为高效和创造性的企业对企业互动的普遍结构。
当然,个人参与者很重要。企业需要了解他们的最终消费者,而最终消费者通常使用企业网络提供的服务相互交流。例如,如果我希望通过银行网络向您转账,我们各自的银行需要知道我们双方是谁,以便交易可以正确地验证和路由。
最后,一个公平的经验法则是,商业网络中认识的个人比网络中的企业多。这没什么好惊讶的——只是值得指出这一点,这样你就完全理解了作为一名个人参与者意味着什么!
组织参与者
组织参与者是商业网络中最重要的参与者。汽车经销商、银行、学校和保险公司都是组织参与者的例子。当我们第一次想到一个特定的商业网络时,我们确定这些参与者,然后是他们相互提供的商品和服务以及最终消费者。这些组织参与者为业务网络提供了基础设施——使其工作的人员、流程和技术。
虽然组织是由个人组成的,但从概念上讲,他们是相互独立的。一个组织有自己的身份,和自己的目的。它以非常真实的意义存在,独立于属于它的个体。组织为业务网络提供了一种永恒感。虽然组织内的个人可能会随着时间的推移而变化,组织内的个人数量可能会增加或减少,甚至组织内的不同角色可能会来来去去,但组织保持不变;这是一个生命周期比任何个人都要长的结构。
关于个人与其组织之间关系的性质,需要注意的最后一点是,按照个人的组织角色的定义,是个人履行组织的职能。当银行向客户提供贷款时,由银行员工代表银行执行。这样,个人就是组织的代理人,而个人的角色决定了它所能完成的一系列任务。例如,学校老师可以给学生布置家庭作业,但这需要校长聘请新老师。简而言之,个人代表组织行事,并得到组织的授权。
系统或设备参与者
系统或设备参与者代表业务网络中的技术组件。他们真的是一种特殊的个人参与者,如果你觉得有帮助,你可以这样想他们。然而,有两个原因,我们为什么叫他们分开。
首先,在今天的商业网络中有许多技术成分!例如,有 ERP 系统、支付引擎、预订系统、交易处理器等等。事实上,当今商业网络中的大部分繁重工作都是由这些系统完成的。这些系统与拥有它们的组织相关联,就像我们前面讨论的个人一样,这些系统代表它们拥有的组织行动——它们也是组织的代理。
将区块链并入业务网络将会增加更多的系统参与者,其他参与者(个人、组织和系统/设备)可以与这些参与者进行交互。了解这些区块链系统参与者非常重要,因为他们将为业务网络提供非常有用的服务!
其次,设备正成为商业世界中更重要的一部分。而且,虽然今天的许多设备相对简单,但毫无疑问,设备正在获得更多的自主特性。我们都听说过自动驾驶汽车的出现,正是本着这种精神,我们引入了设备参与者的概念。认为这些设备在商业网络中发挥更大的作用可能越来越重要。因此,虽然我们不期望汽车很快变得智能(不管那意味着什么!),将这些日益自主的设备称为网络中的主动实体而非被动实体是有帮助的。
参与者是代理
我们对参与者类型的研究表明,他们都有一个共同点——他们有很大程度的能动性——他们积极做事。虽然系统和设备有一定程度的自主性,但这受到它们的编程和算法的限制,尽管如此,以这种方式思考它们还是有帮助的。而且,这些相对独立的参与者之间的互动可以促进商业网络中的下一个概念,即资产。我们将在后面看到,在参与者之间移动的实体——资产——没有这种自主性。这些受到参与者施加在它们身上的力的影响。稍后将详细介绍。
参与者和身份
最后,也是非常重要的,参与者拥有身份。比如学生有学生证,司机有驾驶证,公民有社保号。很明显,参与者和用来识别参与者的东西是有区别的。将这两个概念紧密联系在一起,但又相互独立,这一点非常重要。
例如,一个参与者可能以不同的身份参与不同的业务网络—它可能是参与保险网络和抵押贷款网络的同一家银行,但它在这两个网络中有不同的身份。此外,即使在单个网络中,参与者也可能暴露其当前身份,从而被假冒。在这种情况下,他们被泄露的身份将被撤销,并发布一个替换身份供真正的参与者使用,从而拒绝冒充者,允许恢复信任。不同的身份,但相同的参与者——这就是我们要传达的信息。
正是由于这种对冒名顶替的担忧,某些身份被故意定期过期。例如,X.509 数字证书有一个过期日期,过期后它们将不再有效。但是,不能因为证书已经过期,就认为参与者已经不在。
其实完全相反。与参与者的身份相比,参与者的相对持久性意味着它可以用于提供业务网络中谁做什么的长期历史参考。随着时间的推移,参与者提供的身份一致性有助于我们对业务网络中的交互历史进行推理。我们可以在没有参与者的概念的情况下做到这一点——只使用身份,并对他们如何以及何时相对于彼此发生变化保持清醒的头脑,但这将更不直观。
关于参与者的话题也不过如此;你现在是专家了!正如你所知道的,参与者可能是商业网络中最重要的东西,这也是为什么我们花了相当多的时间来讨论他们。现在让我们把注意力转向在参与者之间移动的对象,即资产。
介绍资产
我们已经看到了商业网络是如何被在其中运作的参与者定义的。这些参与者是活跃的代理人,他们在网络中进行有意义的互动,他们的交易是至关重要的。我们现在问自己这个问题,参与者之间有什么流动?简单的答案是资产。
为了理解资产的含义,让我们看一些例子。我们注意到一个学生从他们的导师那里收到了作业。该学生随后可向大学出示其教育证书。汽车经销商向买家出售汽车。保险公司为投保人的同一辆车投保,签发保单。投保人提出索赔。这些例子都包含资产:课程、教育证书、汽车、保单和索赔。
参与者之间的资产流动
我们可以看到,资产是在参与者之间流动的对象。虽然参与者有很大程度的自主权,但是资产是相当被动的。资产的这种属性是基础性的——资产往往对交换它们的交易方最有意义。这并不是说其他参与者对这些资产不感兴趣,而是强调了资产的被动性质。那么,是什么让资产如此重要呢?为什么我们要费心去谈论这些被动的物体呢?
答案在于我们对“资产”这个词的选择。资产是价值为 T1 的东西。尽管资产相对被动,但它们代表了参与者之间交换的价值。用这个基于价值的镜头再看一下这些示例资产:课程、教育证书、汽车、保单和索赔。课程作业对老师和学生都是有价值的;教育证书对学生和大学都是有价值的;汽车对经销商和购买者来说都是有价值的;保单对保险公司和保单持有人来说是有价值的;索赔对索赔人和保险公司都是有价值的。希望现在清楚了为什么资产是重要的,为什么它们被称为资产!
作为一个小注意,不要认为因为我们有资产,我们就一定有负债——我们并不完全这样使用这个术语。毫无疑问,如果我们要衡量对我们有利或不利的对象,我们会将它们称为资产或负债,但这并不是这里发生的事情——我们将资产用作具体名词,而不是质量或抽象名词。
有形和无形资产
让我们通过考虑有形资产和无形资产来继续我们对资产的理解。有形资产是我们可以触摸和感受到的东西——汽车、纸币或作业。无形资产是抵押贷款、知识产权、保险单和音乐文件等东西。在一个日益数字化的世界里,我们将会看到更多的无形资产。你会听到人们说物体正在变得非物质化,无形资产的概念很好地抓住了这个概念。
应该注意几个小问题,以避免我们对无形这个词的用法产生混淆。首先,当我们处理数字账本时,从某种微不足道的意义上来说,区块链上的一切都是无形的。有趣的是物体本身的性质——使用“无形”这个词有助于你记住寻找你在现实世界中看不到的东西。
第二,无形资产的使用并不是作为一种价值陈述。通常,在会计系统中,当我们难以定义某些东西时,例如商誉,我们会使用这个术语。同样,我们不是在这个意义上使用这个词;我们的无形资产有比这更具体、明确和可交换的形式,因为它们是有价值的东西,即使你不能触摸它们。
资产结构
现在让我们重新关注一下资产的结构。一个资产有一组称为属性的属性和一组称为关系的属性。属性很容易理解,它们是对象的特征。例如,一辆汽车有制造日期、颜色和引擎大小。或者,抵押贷款有一个价值,寿命和还款时间表。特定的资产由一组特定的属性值来标识。例如,我的车可能是 2015 年生产的,是白色的,有一个 1.8 升的发动机。另一个例子是,你的抵押贷款可能价值 100,000 美元,期限为 25 年,按月支付。区分这种差异很重要——资产的一般结构、其类型和资产的特定 实例之间的差异。
其次,资产也有一组称为关系的属性。关系是一种特殊的属性——它是对另一种资产的引用!你可以立即明白为什么这很重要。例如,一辆汽车有一份保险文件。汽车是价值对象,保险单据是价值对象。此外,保险文件会列出保单持有人的姓名。在我们的例子中,主体和客体都是资产,它们以一种提供本质意义的方式相互关联。
我们稍后会看到,描述或建模这些关系是一项极其重要的活动,因为我们正在描述世界是如何运转的。在前一个例子中,我们犯了一个故意的错误——是的,真的!这是因为在现实世界中,保单文件才是最重要的,因为它为汽车和保单持有人命名。在建模中,我们称之为联想关系,我们将看到为什么正确处理这种事情非常重要。例如,在汽车的任何地方你都找不到保险文件——汽车被保险是因为它在有效的保单文件中被命名。此外,如果我想为更多的人驾驶汽车投保,我会将他们的名字添加到保单文件中,而不是汽车上!稍后会详细介绍这一点——现在,记住资产有属性和引用,特定的对象有这些属性的具体值就足够了。
同样值得一提的是,资产属性的本质是什么,而不是对另一个资产的引用。一个简单的答案是:当属性变得太大时,将它们分解成一个资产引用!当然,那是一个很不满意的答案!为什么?因为我没告诉你大的定义是什么!更好的答案是,当一个属性满足一个单独的关注点时,就需要一个引用。这个原则——关注点分离——在任何系统中都是一个关键的设计原则。例如,保险单的有效期不是一个单独的关注点,但是汽车和指定的司机是单独的关注点。这个原则帮助我们独立地思考保险单、汽车和司机,这反过来允许我们更真实地模拟现实世界。最后,在资产的这个方面,属性和关系属性是特定于领域的——它们与手头问题的性质相关。因此,对于汽车制造商来说,颜色可能是汽车的一种属性,但对于油漆制造商来说,颜色绝对是一种资产类型!
所有权是一种特殊的关系
在商业网络中,有一种特殊的关系特别重要,那就是所有权的概念。所有权是一种关联关系,如我们前面讨论的保险单文档。让我们考虑一个具体的例子——一个人拥有一辆汽车。车主是车的属性吗?车是人的属性吗?稍加思考后,我们可能会意识到,这两种说法都没有抓住拥有某物的含义。所有权是人和车之间的映射。所有权是一个与汽车和车主截然不同的概念。
理解这种对所有权的思考方式很重要,因为在许多情况下,我们通过汽车或通过所有者来模拟所有权关系,这对于许多目的来说已经足够了。但是,所有权关系的本质是一种关联关系,认识到这一点很重要——因为区块链通常用于记录业务网络中的所有权和所有权转移。例如,政府通常持有土地或车辆的所有权记录。在这些情况下,考虑的主要资产是所有权关系。当车辆或土地在参与者之间转让时,改变的是所有权记录,而不是资产。这很重要,因为我们经常对一辆车或一块土地的历史感兴趣,虽然车辆或土地本身可能不会改变,但它的所有权绝对会改变。因此,重要的是要弄清楚我们是在谈论资产的历史,还是所有权的历史。这种历史通常被称为出处——它们告诉我们谁拥有一项资产,以及它是如何随着时间的推移而变化的。这两个方面都很重要,因为了解资产的来源可以增加我们对它的信心。
资产生命周期
这种起源的想法让我们很自然地想到了资产生命周期的概念。如果我们考虑一项资产的历史,那么在某种非常有意义的意义上,一项资产被创造出来,随着时间的推移而改变,最终不复存在。例如,考虑抵押贷款。当银行同意贷款给客户时,它就存在了。它在抵押期间仍然存在。随着利率的变化,它根据固定利率或可变利率确定每月还款额。经银行和抵押贷款持有人双方同意,抵押贷款的期限可以改变。最后,在抵押结束时,它不再存在,尽管它的历史记录可能会保留。如果客户希望提前还清贷款(也许他们会搬回家),抵押贷款可能会提前终止;如果他们拖欠贷款,情况就不那么幸运了。在某种意义上,我们看到抵押贷款被创建,期限被周期性地改变,然后抵押贷款被正常或意外地完成。生命周期的概念在商业网络中非常重要,我们将在稍后讨论事务时详细讨论它。
回到资产,我们可以看到,在资产的生命周期中,资产也可以被转化。这是一个非常重要的想法,我们考虑资产转换的两个方面——即转换是否涉及划分或聚集,以及它是同质还是异质转换。这些术语听起来有点吓人,但是它们非常容易理解,最好用每个术语的例子来描述。
在第一个例子中,我们考虑一个已经被开采的珍贵宝石。一般来说,开采的宝石对于任何珠宝商来说都太大了,不能用在一件珠宝中。它必须被破碎成更小的石头,每一块石头都可以用来制作一件珠宝。如果我们看一个大的,开采的宝石的历史,我们会看到它经历了分裂的过程。最初的资产是一个宝石,它被转化成一组更小的宝石,每个宝石都与原始宝石相关。我们可以看到,资产转换是同质的,因为尽管较小的宝石肯定是不同的资产,但它们与原始资产是相同类型的。类似的同质转化过程经常发生在无形资产上,例如,当一笔大额商业贷款或保险请求由几家公司联合进行以分散风险时,或者当股票被分割时。
在我们的下一个例子中,我们考虑珠宝商使用较小的宝石。我们想象他们用宝石为顾客打造一枚精美的戒指。为了制作戒指,他们使用所有的技能将宝石镶嵌在通过肩部与环相连的挡板上。珠宝商的手艺令人钦佩——他们能把一小片银和一颗宝石变成一件贵重的珠宝。让我们考虑一下所考虑的资产。我们可以看到金属块和宝石已经结合,或者说聚合,形成了戒指。我们还注意到,戒指是一种不同于宝石或银块的资产,作为投入。我们可以看到这些输入经历了一个异质转换,因为输出资产是不同的类型。
在许多资产生命周期中都可以看到这些聚集和分裂的过程。它在制造业生命周期中非常受欢迎,但带有无形资产。例如,我们在合并中看到,公司可以合并在一起,或者收购,一家公司通过被另一家公司合并而不复存在。分拆或分拆的逆向过程被形象地描述为资产分割。
用事务详细描述资产的生命周期
让我们考虑一下资产在其生命周期中是如何移动的。我们已经知道,资产会被创造、转化,并最终不复存在。虽然生命周期是一个非常有用的概念,但这些步骤似乎有些有限。当然,对于一项资产在其生命周期中所经历的一系列步骤,还有更丰富的描述吗?答案是肯定的!事务定义了一个丰富的、特定于领域的词汇表,用于描述资产如何随时间演变。例如,保险单被请求、修改、签署、交付、索赔、赔付、作废或更新。这个生命周期的每一步都是一个事务——我们将在下一节中更多地讨论事务。
最后,与资产一样,参与者可以经历由事务描述的生命周期。所以,你可能会想,资产和参与者有什么区别?嗯,这实际上是对形式和功能的思考。仅仅因为资产可以有一个由事务描述的生命周期,同样也可以有参与者,并不意味着它们是一回事。就像鸟类、昆虫和蝙蝠会飞一样,它们肯定没有亲缘关系。在一般意义上,我们将参与者和资产视为资源——它们只在最一般的意义上相关。
我们关于资产的讨论到此结束!正如我们在该主题的结尾所看到的,交易在描述资产和参与者生命周期中至关重要,所以现在让我们转向这个主题!
引入交易
到目前为止,我们已经了解了商业网络的基本性质——它由参与有意义的资产交换的参与者组成。现在让我们来关注商业网络中最重要的概念——交换。
变革是一个基本概念
为什么交换是最重要的理念?好吧,没有它,参与者和资产就没有了目的!
这似乎是一个过分夸张的说法!然而,如果你想一想,参与者只有在彼此交换商品和服务(统称为资产)的意义上才有意义。如果一个参与者不与另一个参与者交流,他们就不会以任何有意义的方式存在。资产也是一样——如果它们不在参与者之间交换,那么它们也不会以任何有意义的方式存在。如果资产不能在不同的参与者之间移动,那么它就没有生命周期,因为资产对于参与者来说是私有的,并且在参与者的私有环境之外的业务网络中没有任何用途。
因此,变化是商业网络的基本原则。当我们考虑交换、转让、商业、购买、销售、协议和合同时,所有这些激励性的想法都与业务和变化的影响有关。变化给商业世界带来动力和方向。我们捕捉变化的方式是通过交易。这就是为什么交易是商业网络中最重要的概念——它定义并记录变化——资产的变化;资产所有权的变更;参与者的变化。每当业务网络中发生任何变化,都会有一个事务来解释它。
事务定义和实例
术语“事务”通常以两种密切相关但不同的方式使用,意识到这种差异很重要。我们有时用交易这个术语来概括描述交易中发生的事情。例如,我们可以定义一项财产交易,即买方向财产所有人支付约定的金额,以换取对财产的占有,并交换所有权凭证。(几乎总是,买方也获得随后出售财产的权利。从这个意义上说,交易一词是用来从参与者和所涉资产的角度来概括描述交换过程的。
交易这个词的另一个含义是描述一个特定的交易。例如,我们可以说,2018 年 5 月 10 日,黛西以 300 英镑从温彻斯特自行车店购买了一辆自行车。我们在这里使用术语“事务”来描述事务的特定实例。这两种用法关系非常密切,上下文几乎总是清楚地表明我们在谈论哪一种。
这两种用法的根本区别在于,前者定义了事务的含义,而后者捕获了事务的特定实例。在现实世界中,我们总是看到交易实例的例子——每当我们去商店买东西时,我们都会得到一张收据!在我们之前的例子中,Daisy 可能收到了自行车的收据。收据可能是纸做的,尽管现在它经常被发送到我们的电话或电子邮件地址。这张收据是交易的副本——是黛西对所发生事情的个人记录。自行车行也保留了一份交易记录的复印件,以备自己记账之用。
隐性和显性交易
请注意,您并不经常看到像这样的事务的显式事务定义;定义被编码在你与之互动的人、过程和技术中。对于像 Daisy 这样的低后果事务,事务定义是隐式的。只有在有争议的情况下,我们才能知道交易是如何定义的。例如,如果黛西的自行车链条在几天后断裂,她可能合理地期望链条将被免费修理,或者自行车被替换,或者她将得到退款。在这一点上,黛西决定了她与温彻斯特自行车店交易的真实性质。
看起来这种隐式事务定义只有缺点——但事实并非如此。首先,每个国家的法律都有公平交易的明确概念,当 Daisy 参与交易时,会给予她合理的期望。在大多数国家,这被称为诸如货物销售法之类的法律,它规定了商业交易中所有相关方的权利和责任。其次,缺乏明确的合同简化了黛西和自行车店之间的互动。在大多数情况下,自行车在购买后的很长一段时间内性能良好,对于大多数实际用途来说,收据就足够了。每次进行简单的购买时,重复大家都知道是正确的事情,既费钱又及时。这种简化就是人们常说的减少摩擦的一个例子。
对于后果严重的事务,或者那些有特殊条件的事务,情况就大不相同了——事先明确事务定义是至关重要的。如果我们再次查看 Daisy 的交易,我们可以看到,如果有争议,就会有其他后续交易——例如,自行车可能已经更换了链条,或者在极端情况下,她可能已经拿回了她的钱。我们可以看到,一般来说,我们需要几个条件交易来描述参与者之间对于这样一个交易的满意的交互。这意味着,如果黛西得到的是抵押贷款,而不是自行车,就有必要指定几项交易以及执行这些交易的条件。你可能听说过一个术语来描述这种交易和条件的集合,即合同。
合同的重要性
对于高价值的资产,有一份合同是很重要的。它定义了一组相关的交易以及交易发生的条件。合同通常以特定的资产类型为中心,并涉及一组定义良好的参与者类型。如果你看看现实世界中的契约,它包括了关于实例的声明和关于定义的声明的组合。在合同的顶部,所有的资产和参与者都将以特定的值进行布局——即 Daisy(买方)、Winchester bikes(卖方)、300 英镑(价格)、2018 年 5 月 10 日(购买日期)等等。只有在所有这些类型到实例的映射都已布置好之后,才根据这些类型、事务以及它们发生的条件来定义契约,而不参考特定的实例值。这就是为什么合同一开始读起来有点奇怪——但是一旦你可以从参与者、资产和交易以及它们各自的价值方面看到结构,它们实际上就很容易理解,并且对这种结构来说更加强大。
签名
我们在合同中看到的最后一样东西是在它的底部——签名!从许多方面来说,签名是合同中最重要的部分,因为它们代表了所有的相对人都同意合同中包含的信息这一事实。当然,我们在现实世界中会看到很多签名。黛西的购物收据上通常有她的签名——无论是实体的还是数字的,通过私钥。在简单的交易中,商店的签名实际上是隐含的——他们将交易代码放在品牌收据上,并保留一份副本以备不时之需——这满足了签名的目的。
但是,对于后果更严重的交易,将要求所有交易对手明确签署合同。更为直接的是,为了确保每一方在签订合同时都是睁着眼睛的,可能会要求独立的第三方(如律师、公证人或监管者)在合同上签字,以验证明确参与交易的交易对手是否自愿、自由地参与。
用于多方交易处理的智能合同
理解这些想法绝对至关重要。它们并不特别复杂,尤其是当你把它们和你每天做的事情联系起来的时候!当谈到理解区块链如何帮助多个交易对手创建和达成与高价值资产相关的低摩擦交易时,我们需要理解这些术语及其重要性,无论是独立的还是相互关联的。
现在,当我们看一个商业网络时,我们可以看到它充满了由合同管理的多方交易!这就是为什么交易是商业网络中最重要的概念;它们定义并捕捉不同交易方之间商定的有价值资产的交换。
现在,让我们使用一个你在区块链可能听过很多次的术语——“智能合约”。它们只是这些想法的数字表现。智能合同是一种数字形式的合同,这意味着它们可以很容易地被计算机系统解释和执行。实际上,所有实现高或低后果交易的计算机系统都实现了契约。但是,与区块链不同,这些系统没有内置词汇的技术,无法将这些想法转化为技术平台。
数字交易处理
正如我们在本章开始时提到的,这是在区块链实施的商业网络的大构想。他们使从现实世界到计算机系统的翻译尽可能简单。特别是 Hyperledger Fabric,使所有这些想法变得非常清晰,这样我们就可以轻松地建模和实现业务网络。它保持了所有现有想法的完整性,但以一种基本的数字方式实现它们——使用计算机程序、网络和存储。
事务处于业务网络的中心,因为它们作用于资产和参与者。然而,还不止这些。即使我们在业务网络中添加了更多的概念,它们也必须始终服从于事务。事务性是与业务网络的所有方面相关的通用属性。这就像我们在本章前面提到的飞翔能力——业务网络中的每个对象都受制于事务,并且必须是事务的主体。
启动交易
我们可以看到,交易通常是由商业网络中的一个参与者发起的。该参与者通常是特定服务提供商提供的服务的消费者。例如,在购买自行车时,黛西希望使用温彻斯特自行车公司提供的服务。
大多数由参与者发起的交易都与资产状态的变化有关,但在某些情况下,交易可能涉及参与者状态的变化。例如,如果我通过契约投票更改了我的名字,那么在某种意义上,被转换的资产就是我——参与者。这强化了事务的核心性质——不管对象是什么,它们都会捕捉变化。
交易历史
当我们之前讨论资产的来源时,我们看到资产的历史很重要——它为网络中的参与者提供了信心——这增加了信任。同样,交易历史也很重要,因为它也能增加信任。为什么?好吧,这又回到了那些签名上。任何改变都必须得到参与交易的所有参与者的同意,并且每个交易中的签名提供了每个交易对手都同意交换的信心。事务的历史甚至更好——它显示所有时间点,网络中的每个参与者都同意每个事务描述的每个变化!
区块链历史记录包含按顺序排列的交易。虽然,订单似乎意味着交易发生在一个时间定义的序列,这只是部分正确的。例如,如果我在上午 11 点将钱存入我的银行帐户,然后在上午 11 点 30 分从我的银行帐户付款,那么第一笔交易发生在第二笔交易之前,这是一种非常真实的感觉。
同样,如果你在上午 11 点将钱存入银行账户,然后在上午 11 点 30 分付款,那么你的交易就有了明确的顺序。然而,现在让我们问一下,我们上午 11 点的交易是在彼此之前还是之后发生的?或者,我们上午 11:30 的交易?我上午 11 点的交易是否记录在你上午 11 点 30 分的交易之后,即使它可能在某种意义上发生在那之前,这有关系吗?
交易流
这个例子告诉我们,在讨论事务历史时,事务的依赖性很重要;依赖于先前交易的交易记录在它们之后。对于独立的事务流,这个排序就不那么重要了。我们必须小心一点,因为事务有一个讨厌的习惯,就是相互纠缠在一起。例如,如果你上午 11 点 30 分的交易向我的银行账户付款,那么两个看似独立的交易流已经开始相互干扰。这意味着我们不能任意推迟交易的记录。
请注意,我们不是在谈论事务的实际发生——在特定时间或特定地点——而是在事务历史中记录该事务。这有点像一本奇怪但全面的历史书,记录了拿破仑在 1800 年到意大利的旅行,同时注意到美国国会图书馆在 1800 年成立,同时还提到了日本的 Motoori Norinaga 于 1800 年完成的文学作品 Kojiki-den。重要的是这些事件都被记录了下来——它们在书中的先后顺序并不重要,只要它们大致同时出现就行。
将交易分离到不同的业务网络中
这个看似虚构的交易历史示例实际上为我们提供了对业务网络设计的深刻见解——复杂交互网络中所有交互的一个记录不是一个好主意。这个例子开始说明,将一个业务网络与一个特定的关注点相关联可能是更好的设计,而不是试图将所有的历史结合到一个网络中。在我们的类比中,法国、美国和日本历史最好有不同的历史书,并相互参照!
这个想法对你如何接近区块链网络有着具体而重要的影响。这不仅仅是好的设计,而是将业务网络分离成独立的关注点,然后将它们连接在一起的基本设计。它将导致更简单、更容易理解、更可伸缩、更可扩展和更有弹性的系统。你将能够从小处着手,不断成长,并且相信无论事情如何发展,你都能够应对变化。您将看到 Hyperledger Fabric 使用称为网络和渠道的概念明确支持多个业务网络的概念,我们将在后面更详细地讨论这些概念。
交易历史和资产状态
更详细地检查业务网络历史,我们可以看到,资产(或参与者)的历史有两个要素,即,其当前价值,以及导致该价值的有序交易集。如果我们从任意时间点开始连续应用影响资产的所有事务,我们可以在所有时间点生成资产的价值。实际上,我们将事务历史视为在业务网络中不同时间和地点发生的一组事务事件,从而确定其在任何给定时间点的状态。
我们将通过分类帐世界状态和分类帐区块链的概念,在 Hyperledger Fabric 中明确表达业务网络的这两个方面。世界国家保存商业网络中资产的最新价值,而区块链保存商业网络中所有交易的记录。这使得 Hyperledger Fabric 比其他区块链更强大一点——像他们一样,它记录区块链中的所有交易。此外,它还计算资产的当前价值,使您非常容易确信您正在使用最新的状态。这些最近的值往往是最重要的,因为它们代表了世界的当前状态。这也是大多数参与者在发起新交易时感兴趣的。
作为交易历史的商业网络
在一个非常真实的意义上,我们可以认为商业网络是一部交易史。这是什么意思呢?我们已经看到,业务网络是由参与合同定义的多方交易资产交换的参与者组成的。然而,如果我们稍微重新定位自己,我们会看到网络是其交易历史的产物,而交易历史又不能与发起交易的资产和参与者分开。
所有这些概念都是一个整体的一部分,这个整体支撑并强化着它自己。参与者只是我们理解的第一步——进入商业网络世界的入口。通过更多的学习,我们认识到事务实际上是中心,同时也是没有意义的,除非它们指的是网络内部的资产和参与者,它们都创建、改变和描述!正是交易历史将所有的东西汇集成一个连贯的整体,从这个意义上说,这就是业务网络。
监管机构和商业网络
最后,我要说的是一种特殊的参与者,这种参与者在各种商业网络中都很常见——监管者。大多数商业网络的本质是有一个参与者,其角色是确保交易遵守某些规则。例如,在美国,证券交易委员会 ( SEC )确保参与证券资产交易的参与者按照约定的法律和规则进行交易,从而给予投资者对股票市场的信任。或者,在英国,司机和车辆许可机构 ( DVLA )确保车辆根据英国法律适当投保、纳税和交换。另一个例子是在南非,食品科学和技术协会确保涉及农业、食品分销、食品加工和食品零售的交易符合南非的相关法律。
每个商业网络都有某种监管机构来确保适当的监督。简单地说,监管者确保每个人都按照商业网络的规则来玩游戏。我们可以看到,在一个商业网络中,所有的交易都以数字形式记录在区块链上,这实际上使监管者能够以更高效、更及时的方式开展工作。
当然,有人可能会问,如果所有的交易都可以被适当授权的参与者获得,而这些参与者可以证明正确或不正确的行为,那么我们为什么需要一个监管者呢?答案是,监管者有能力制裁网络中的某些参与者——特别是将他们排除在网络之外,并没收他们的资产或他们非法交易的资产。这些制裁是网络中最强大的交易,因为它们提供了最终的权力,因此必须仅在极端情况下使用。
恭喜你!鉴于你已经走到这一步,你已经真正理解了商业网络的基本性质。更好的是,在我们对商业网络的讨论中,实际上只剩下一个概念:事件。让我们转到商业网络的最后一个方面,你会发现理解它是有力量的。
从使用 Composer 设计业务网络的角度讨论事件
到目前为止,我们已经看到商业网络的词汇包含了一组紧密联系的概念——参与者、资产和交易。虽然数量很少,但这些概念非常有表现力——它们包含了大的思想,有许多方面,它们相互支持和加强。
这并不是说缺少了,而是通过增加一个额外的概念,我们将显著增加这个词汇的描述和设计能力。这最后一个概念是事件——组合中的最后一个成分!好消息是,你可能以前听说过这个术语,它支持的许多观点是显而易见的。但是不要搞错,事件是一个非常强大的概念,值得花一点时间去掌握——你在这个话题上的投资将会得到丰厚的回报。
普遍的概念
我们认为一个事件表示一个特定事实的发生。例如,总统抵达澳洲,或者股市今天收盘上涨 100 点,或者卡车抵达配送中心都是事件的例子。基本思想似乎很简单——事件是指发生重大事件的时间点。一个事件代表了某种转变——将世界从一种状态转移到一种完全不同的状态。这就是事件的本质——历史从一条平滑的线转变为一组连接起来的点——每个点代表一个重大事件。
在商业网络领域,我们可以在任何地方看到事件。发起事务的参与者是事件。经历一系列转换的资产是事件。同样,参与者之间交换的资产也是事件。资产的生命周期不过是一系列事件!我们现在将参与者加入和离开业务网络视为事件。想想交易历史,我们把它看作是一组关于参与者和资产的事件。天哪,一旦我们睁开眼睛,事件真的无处不在!如果我们不小心,我们就会被这些小小的太空入侵者淹没!
消息携带事件通知
我们认为消息是事件通知的载体。在现实世界中,我们通过短信、电子邮件或者新闻源收到事件通知。因此,我们对事件和事件的传播进行了区分。这是一个非常重要的区别,因为它说明了我们是通过一个媒介与事件相联系的。
现在让我们树立这样的观念——我们稍后将回到这个观念——尽管只有一个事件,但是可以通过单独的消息通知来通知多个参与者。我们看到事件生产者和事件消费者之间存在松散耦合。这一切都意味着事件有一种略微无形的性质——它们略微抽象的性质使它们难以确定,除非通过它们被感知的信息。
现在,一句温和的警告可能是合适的——如果我们沉迷于事件,我们可能会失去对重要事情的关注。首先,很明显,我们只需要考虑重大事件——可能导致某种行动的事件。事件之外的一切都只是噪音——我们不需要考虑。当然,构成显著的因素将是特定的领域和问题——股票市场价格上涨在金融网络中是显著的,但在教育网络中不是。所以现在,让我们使用事件作为工具,当商业网络中发生重大事件时,当我们需要了解是什么促使参与者采取行动时。让我们看看如何使用这个工具。
一个说明事件结构的例子
举一个股票市场事件的例子。每当一只股票的价格上涨或下跌,我们都可以把它描述为一个事件。例如:
| UTC:2018-11–05t 13:15:30:34.123456+09:00 MZK 股票从 13000 日元上涨 800 日元 |
我们可以看到,这是对 2018 年 11 月 5 日在一个非常特定的时间股票 ABC 上涨 800 日元的事件的描述。
就像资产和参与者一样,我们可以看到术语事件可以指事件的类型或实例。在我们的例子中,我们已经展示了合并成一个的类型和实例信息。该事件的类型为股市 分笔成交点,结构为时间:2018-11–05t 13:15:30:34.123456+09:00,符号 : MZK,货币:日元上一次 : 13000,变化 : +800。对于结构中的每个元素,我们已经显示了该事件的特定实例。我们可以从这个事件中非常清楚地看到结构化形式发生了什么。
事件和交易
我们可以看到,事件与事务密切相关。事实上,因为一个事件通常描述一项交易,所以这两个术语互换使用并不罕见。然而,事件描述了比事务更广泛的一类活动。具体来说,当事件描述一个变更时,事务捕获变更的记录元素。交易通常是外部事件的结果——这种事件不会因特定参与者或资产的行为而发生。在这种情况下,产生的事务使用来自外部事件的信息子集作为输入。但是,除了在这种有限的意义上,事件本身不是交易的一部分。这需要一点思考——我们实际上是在挑选一些细微但重要的差异。
看似矛盾的是,事务也可以生成事件!天哪,这看起来越来越复杂了!但是想一想——事件只是描述了正在发生的事情,有时事件是由事务明确产生的,而不是由于任何事务之外的力量而发生的。在我们的股票分笔成交点示例中,一个交易可能会生成一个事件,表示 MZK 股票在一个分笔成交点内上涨了 5%以上!这个事件可能是股票快速上涨,结构符号 : MZK,涨幅:6.1%——是明确的由交易产生。交易体现了业务流程的一部分,通过这一部分可以识别和传达高百分比的股票变化。从某种意义上来说,这个事件是交易的一部分。
外部事件与显性事件
因此,我们可以看到,事件分为两类——外部事件和显性事件。我们通常不认为这两个术语是对立的,但它们巧妙地描述了业务网络中两种不同类型的事件。我们的第一个事件类型是一个外部事件——它是在业务网络外部生成的。这个事件将由参与者处理,因此可能会导致一个事务—不要忘记,只考虑重要的事件—会导致一个动作的事件。对于外部事件,大量的事件内容被捕获为事务输入,但不会记住事件的其他内容。如果我们想要保存一个外部事件,我们生成一个显式的事务来完成。
外显事件不同。因为它们是在事务中生成的,所以它们自动成为事务历史的一部分。当交易被提交到分类帐时,这些事件将被释放到网络中——在网络中,它们将被任何和所有对它们感兴趣的参与者消费。在显式事件的情况下,分类帐本身就是事件生产者。
事件促使参与者采取行动
因此,我们可以看到,事件是重要的,因为它们确定了导致参与者行动的变化!就像在现实世界中一样,当一个事件发生时,人们和组织会听到它,处理其中的信息,并因为处理而产生行动。我们可以看到,事件为参与者采取行动提供了一个主要的动机刺激——通常是通过发起新的交易,有时是通过产生新的事件。
松散耦合设计
现在让我们回到松耦合思想。事件生产者和事件消费者并不直接了解彼此——他们被称为松散耦合。例如,当一个参与者被添加到一个商业网络中时,现有的参与者不需要联系新加入者来介绍他们自己。相反,如果现有的参与者感兴趣,他们会收听新的参与者事件。同样,如果一个参与者加入一个网络,它不需要接触它感兴趣的每个人和每件事,它只需要监听它认为重要的事件——可能导致它采取行动的事件。我们可以看到,事件生产者和事件消费者并不明确地了解彼此——他们只知道事件——因此通信可以非常容易地起起落落——它的可伸缩性更好。
我们现在看到松耦合是事件和事务之间的主要区别。事务显式地将参与者彼此绑定在一起——在一个事务中,我们命名所有的交易对手。在一个事件中,我们完全不知道事件的生产者和消费者之间有什么联系,甚至不知道他们之间是否有联系。从设计的角度来看,这意味着我们可以创建一个非常灵活的系统。参与者可以通过事件以几乎无限灵活的方式相互耦合,这确实反映了我们在现实世界中看到的丰富性。
事件的效用
现在我们明白了为什么我们在业务网络的定义中加入了事件。事件允许业务网络具有几乎无限的灵活性。陶醉在这一点点混乱中——在某种意义上,它可能不太容易分析,这没关系。现实世界是不可分析的——事件在参与者之间提供了一种高效的协调机制,因此重要的变化可以通过多方交易达成一致并被记录下来。
恭喜你!还记得商业网络定义吗?
商业网络是经历由交易描述的生命周期的参与者和资产的集合。事件在事务完成时发生。
我们已经意识到,这几个句子可能比第一次出现时更有力量——它们确实描述了一个非常丰富的世界。让我们做一个工作实例来看看这些想法是如何工作的!
实施业务网络
我们已经浏览了商业网络的世界,我们已经看到了参与者之间资产的多方交易处理的重要性——它是这些网络的命脉。事实上,由于今天的商业网络的重要性,大量的技术已经被部署在他们的追求中。如果你在 IT 行业工作过一段时间,你可能听说过企业对企业 ( B2B ),甚至可能听说过电子数据交换 ( EDI )【协议】。这些术语描述了企业如何相互交换信息的理念和技术。您可能听说过或体验过 AS1、AS2、AS3 和 AS4 等网络协议。这些定义了关于如何在两个组织之间交换业务数据的标准机制。如果你没有听说过这些术语,不要担心——关键的一点是,商业网络在今天确实存在,并且应用了许多技术。
实施业务网络意味着什么?当涉及到有形资产(如汽车、设备或重要文档)的交换时,区块链会捕获业务网络中资产、参与者、交易和事件的表示。但是,在无形资产的情况下,这有一点不同——在某种有意义的意义上,资产的日益非物质化意味着它们在计算机系统中的表现与资产本身一样真实。
去物质化的重要性
以音乐为例。一百年前,它会被记录在胶木上,然后通过一系列的技术创新,它转移到乙烯基,光盘,数字迷你光盘。每一步都比前一步更便宜,质量更高。但是,大约 25 年前,不同的事情发生了!第一个 MP3 格式是为了支持高保真音频捕获而引入的。
这是去物质化的步骤,和其他步骤很不一样。是的,它更便宜,质量更高,但关键是它停止了音乐的物理表现。这种去物质化的模式越来越普遍——诸如债券、证券、掉期、抵押贷款等金融产品主要以数字形式呈现。越来越多的文档和表格正变得数字化——从诸如飞机票和火车票这样的小例子,到更重要的教育证书、就业和健康记录。这种数字化的趋势意味着区块链比我们想象的更有意义。
因此,当我们在区块链上实现业务网络时,我们通常接近于处理业务网络中的实际资产。甚至在有形资产的情况下,关于资产的信息也和资产本身一样重要,这是有争议的。这似乎有些夸张,但请仔细想想。假设你有一辆车。汽车需要汽油,需要上税、保养和保险。它需要每年进行一次测试,以确保它适合上路行驶。有很多经济活动都围绕着你的车!这意味着关于汽车的信息非常有价值——事实上,在汽车的整个生命周期中,总运行成本通常是汽车成本的两倍。所以,也许关于车的信息比车更有价值!?
区块链对 B2B 和 EDI 的好处
区块链可以为跨多个组织的企业对企业的信息处理提供更简单、更全面的方法。鉴于电子数据交换 ( EDI )协议仅与信息交换有关,区块链可以将数据存储在分类账中,用智能合约处理数据,并且通过共识来通信和交换数据。区块链为多方交易处理提供了一种整体方法。在区块链中,业务网络中的所有处理、数据和通信都是从一个一致的系统中访问的。这与传统的 B2B 方法形成对比,在传统的 B2B 方法中,数据、处理和交换由不同的系统管理。这种分离直接导致跨这些系统连接信息的大量处理,以及总体透明性的缺乏。这个过程被描述为协调—它确保在业务网络的不同部分的信息之间没有显著的差异—它是及时的和昂贵的。
我们现在看到了在区块链上实现业务网络的好处。资产及其完整的事务生命周期有一个共享的视图,而不是记录资产的一组不同的系统,以及操作它们的不同程序。区块链提供了对资产及其生命周期、参与者、交易和事件的明确共享理解。区块链的这种共享性质通过增加透明度提供了更多的信任,并从根本上简化和加快了处理过程。例如,组织不必定期与其他对应方进行协调,以确保他们的系统一致,因为在区块链中,一切都是一致的。
因此,假设我们想从多方交易处理中获得区块链的好处——我们该如何做呢?这就是我们将在本章的剩余部分所关注的——基本的架构方法,但主要是设计工具,您可以用它来为业务网络实现区块链技术平台。
与区块链互动的参与者
首先,哪些参与者与区块链互动?首先要说的是,商业网络中区块链的主要受益者是拥有最多数据的参与者,通常是组织。这并不是说个人不能托管《区块链纪事报》的一个实例,而是他们更有可能与管理部分区块链的组织进行互动。事实上,他们可能甚至不知道他们正在消费一个区块链。在组织内部,尽管使用应用程序与区块链进行交互的是个人,但重要的是,他们将代表组织进行交互-他们是组织的代理。
同样,当涉及到系统和设备参与者时,设备不太可能拥有区块链账本的副本。这样,设备更像是个人参与者。相反,网络中的系统可以代表一个组织,或者在某些情况下,实际上代表这个组织。这意味着什么,一个系统代表一个组织?好吧,如果我们考虑一个 B2B 系统,那么一个组织确实在网络上表现为它的 B2B 网关——对于所有的意图和目的,网关就是组织。通过这种方式,我们可以看到,一个大系统与区块链总账的一个实例紧密结合是有意义的。
使用 API 访问业务网络
组织、个人、系统和设备通过一组业务网络 API 与区块链进行交互。我们一会儿将看到这些 API 是如何创建的,但是现在知道区块链网络像常规 it 系统一样被消费就足够了。区别是内部的——这些 API 是在区块链基础设施上实现的,这最终提供了一组比实际可能提供的更简单、更丰富的 API。然而,区块链 API 的消费者不需要担心这一点——他们只需发布 API,他们需要的服务就会发生。正在发生的权衡是,区块链基础设施需要业务网络中的组织之间进行更多的协调。他们必须事先就参与者、资产、交易和事件以及它们如何发展达成一致。虽然他们可以而且应该在区块链之外独特地处理、存储和交流信息,但在区块链时,他们必须达成一致。这就是权衡:预先同意在正常运行中彻底简化业务流程的承诺。
在高层次上,业务网络 API 很容易理解。在车辆网络中,我们可能有诸如buyVehicle()
、insureVehicle()
、transferVehicle()
、registerVehicle()
等 API。这些 API 是特定于领域的——刚刚提到的 API 将与商业票据网络中的 API 非常不同— issuePaper()
、movePaper()
和redeemPaper()
。API 是特定于领域的,这一点很重要,因为这使得它们对于使用它们的网络参与者来说是有意义的——这样的 API 说的是参与者的语言。
三层系统架构
这些 API 在一个非常标准的系统架构内工作。通常,终端用户会在他们的 web 浏览器或移动设备上运行表示层。这将使用由应用程序根据正在开发的整体解决方案定义的 API 与应用服务器层进行通信。这个应用层可能运行在云中或本地系统上。它是应用程序的所有应用程序逻辑所在的地方,也是区块链提供的业务网络 API 的消费者。该应用程序可能正在做其他工作,如访问数据库或执行分析——但从我们的角度来看,它是与区块链网络的交互点。它使用区块链 API,而不是终端设备。总之,这些 API 在一个典型的三层系统体系结构中运行,包括表示层、应用层和资源管理层。
或者,如果我们有一个设备或系统与区块链交互,那么它将没有表示层——它将直接使用应用程序 API 或区块链 API。实际上,设备是表示层,系统是应用层。同样,这都是非常标准的。
Hyperledger 结构和 Hyperledger 组合器
基本设计方法同样非常简单。我们使用 Hyperledger Composer 对特定业务网络中的参与者、资产、交易和事件进行建模。然后,我们使用该模型来生成区块链-智能合同和分类帐,这些合同和分类帐实现了部署到使用 Hyperledger Fabric 创建的区块链网络的这些元素。我们还使用 Hyperledger Composer 模型来生成一组特定于域的 API,以访问在 Hyperledger Fabric 区块链中操作它们的事务。正如我们所看到的,这些 API 将由代表个人、组织、系统和设备的应用程序使用。
摘要
在这一章中,我们已经了解了商业网络,并对它们进行了详细的探讨。通过理解参与者、资产、交易和事件的关键组成部分,我们已经看到,在某种意义上,所有的业务网络都有相同的关注点。
通过对不同类型的参与者(个人、组织、系统和设备)进行分类,我们能够恰当地描述谁发起了捕捉业务网络变化的交易。通过理解资产的概念——有价值的东西,无论是有形的还是无形的——我们能够描述和理解在参与者之间移动的资源,以及它们如何表达参与者相互交互的原因。理解参与者和资产使我们能够理解如何在事务中捕捉这些变化。最后,事件的概念使我们能够了解网络何时发生重大变化,并采取相应措施。
我们花了一些时间讨论如何使用 API 来使用这些概念,在下一章中,我们将更多地关注这个方面——如何在一个商业网络的真实例子中展示所有这些想法。我们将特别使用 Hyperledger Fabric 和 Hyperledger Composer,以便您可以看到如何在实践中应用这些想法。