区块链和物联网解决方案实用指南(二)(3)

本文涉及的产品
简介: 区块链和物联网解决方案实用指南(二)

区块链和物联网解决方案实用指南(二)(2)https://developer.aliyun.com/article/1515722

云计算作为创新平台

云计算为创建新业务模型提供了机会,同时提供了重新设计现有业务模型的工具。 云计算为高度技术化和创新化的服务生态系统提供了简单、自助、灵活和低成本的基础设施。 与其说是处理能力,不如说云计算的作用是成为一个创新平台。 让我们深入了解云计算的世界,以了解其与工业 4.0 发展的关系和重要性。

云计算模型

云计算是共享计算资源的概念,包括内存、计算、网络和存储能力,用于运行应用程序。 将计算模型定义为云模型的特征包括自助式资源分配、软件定义的资源和按需付费的货币化。 这些通常以商业化的三种模型呈现:基础设施即服务IaaS)、平台即服务PaaS)和软件即服务SaaS)。 此外,它们可以以公共和私有的部署模式交付:


查看前面图表中的交付模型,可以了解服务消费者应关注的能力有哪些:

  • IaaS 模型中,正如其名称所示,云服务提供商负责维护网络、存储、服务器和虚拟机组件。包括其许可证、备份、更新和升级在内的每一层都是服务承包方的责任。
  • PaaS 提供了另外三个层次:操作系统、中间件和运行时能力,为服务使用者提供更多的基础设施和软件许可证管理抽象;他们只需处理应用程序代码和二进制文件以及其使用的数据。
  • SaaS 将计算提升到更高的抽象级别:服务使用者只需使用订阅的解决方案。

IBM Cloud Public(也称为 Bluemix)提供了此处描述的所有功能。通过其控制台提供 IaaS、PaaS 和 SaaS 解决方案。你可以实例化物理或虚拟机器和应用程序运行时,并订阅服务目录中提供的任何服务,包括 IBM Watson IoT 和 IBM Blockchain 平台。

当这些模型部署在公共网络(如互联网)的多租户环境中时,称为公共云,即一个人和一家公司共享相同的资源的地方。当公司或个人在私有或公共网络的单租户环境中使用其中任何模型时,称为私有云。

云计算对工业 4.0 的重要性

在云计算模型出现之前,IT 部门需要经历漫长、昂贵和困难的过程才能使解决方案对其客户可用。他们必须购买服务器;等待交付;在数据中心中为其提供空间;准备网络和虚拟化;安装操作系统、中间件、数据库和运行时;然后开发应用程序并将其部署到生产环境中。

当云计算在上述场景中发生时,提供相同的计算能力并开始开发应用程序只需几分钟。你只需要支付所使用资源的费用。

在开发创新解决方案时,最小可行产品(MVP)可能不会产生预期结果,导致基础设施、平台软件和附加服务不断变化。如果创建的 MVP 不符合目标用户的需求呢?在第一种情况下,你已经支付了所需的所有资源,因此即使关闭解决方案,你已经花费了资本支出。然而,在第二种情况下(云),你只支付了服务费用,所以只是运营支出。如果解决方案非常合适,人们使用得很多呢?在第一种情况下,你必须遵循更简单(但仍然困难)的路径来提供更多资源,而在云计算中,你可以在需要时随时扩展解决方案资源,而不是一直都需要。

云计算还提供了使用物联网、认知计算、区块链和其他在互联网上创建和提供的最佳服务和技术来测试新服务和创建新应用程序的能力。这些服务是创建新解决方案和商业模式的强大工具,为客户提供不同的体验,无论使用同一服务的人数是 1、10、100 还是 100 万人。

物联网

正如之前所述,数据是工业 4.0 成功的关键因素。收集和分析的数据越多,预测和建议就越有说服力。

物联网不仅是一种自动化框架技术,还是从连接的设备中收集大量数据的绝佳方式。通过结合不同的数据源(机器和机器人传感器、安全摄像头、心率监测器、环境和气象数据),可以定义和分析领域,了解业务背景的当前实际情况,并对其进行更加理性的分析。还可以洞察如何变得更加高效、更加可预测和更加灵活,因为可以实时处理数据的收集,如下图所示:


处理结果也可以成为改变机器和机器人当前运行的动作的触发器,甚至可以在继续处理之前修复正在创建的产品中的缺陷,以执行自我修复任务。

区块链——简化业务链

随着商业模式的发展,它们往往会采用更精益的方法。在这种情况下,精益产业意味着只专注于对产品的目标客户有价值的事物。任何不为产品提供价值的程序、产品的一部分或创建产品的过程都被视为无用的,必须予以删除或更改,以便为端到端解决方案增加更多的价值。以同样的方式,智能商业模式往往只包含为业务模型增加价值和知识的步骤,这意味着在这个领域外包仍然是一件大事。如果不知道如何将端到端服务链整合到业务中,要想变得精益并不容易和廉价。

当外包或分散业务任务对模型至关重要时,区块链会发挥作用,通过提供分散任务的机会来实现。让我们看一下下面的传统汽车销售流程图:


每当客户购买一辆汽车时,经销商的账簿中都会为该汽车创建一个新条目,并向汽车制造商下订单,后者会在其账簿中创建另一个条目,并向其供应商订购零件,这也会在他们的账簿中创建订单条目。区块链通过为过程的所有利益相关者使用共享账簿来简化该过程:


该过程本身现在具有审计性并且最终产品可以被端到端地追踪,使新车主对产品的来源有所了解。

区块链实现了一个既精简又可审计的以产品为驱动的业务流程。

摘要

在这一章中,您了解到了在工业 4.0 背景下关键技术如云计算、物联网和区块链的重要性。

云计算是一种提供低成本、可扩展和自助技术采用的计算模型,创建了一个适合创建创新业务模式的环境。

物联网不仅是一个自动化工具包,还可以被视为数据收集和创建数字化上下文的框架,类似于真实世界的上下文;它创造了一个数字化的现实环境,模拟了与真实世界相同的条件。

区块链通过简化去中心化流程实现了精益生产线,并帮助公司集中精力发挥自身优势,而不必在不为最终产品产生聚合价值的任务上花费时间和金钱。

在下一章中,我们将研究以往项目中获得的最佳实践和经验教训,解决了我们所面临的一些问题以及如何解决这些问题。

第九章:开发区块链和物联网解决方案的最佳实践

正如对每种新兴技术都是如此,成为早期采用者充满了挑战和需要学习的教训。本章的重点是提出一些解决方案,我们可以将其应用于现实项目中,以避免陷入麻烦。

本章将涵盖以下主题:

  • 云应用的参考架构
  • 如何使用 12 因素应用程序开发模型创建云原生应用程序
  • 无服务器计算
  • 使用 Hyperledger Composer 作为应用程序开发的加速器

开发云应用程序

与云应用程序相关的潜在问题很多,从资源的简单误用到无法解决的问题都有。应用简洁的架构并使用 12 因素应用程序开发模式可确保在应用程序扩展或缩减时不会陷入麻烦。

容器是将应用程序与其所有依赖项(包括其代码、运行时、中间件、库和操作系统)打包的标准化方式。Docker 和 Garden 是可以在 IBM 云平台上运行的容器,但也有其他容器类型可供使用,如 Rockt。使用容器增加了应用程序的可移植性,因此宿主操作系统是哪个特定的 Linux 发行版,以及您的应用程序是在不同的发行版上构建的都无关紧要,因为操作系统是容器化应用程序的一层,两个发行版一起交付。

以下图示了容器化应用程序的结构:


云平台使用容器化应用程序并将其部署到一组服务器中。我们可以将这些应用程序移到灵活的计算环境中,以更好地利用现有基础设施,并跟踪服务发现组件中部署的容器。

每个平台都有自己使用容器化应用程序部署模型的方式,如下图所示:


一个容器是基于容器镜像部署的,容器镜像是基本镜像、依赖项和应用程序的只读定义。每个相同应用的容器都是基于该镜像部署的,而在运行时对容器所做的任何更改仅在该容器处于活动状态时存在,并且仅适用于该容器的实例。

参考架构

云计算为部署应用程序创建了一个抽象的环境;我们使用虚拟运行时。这意味着我们没有位置意识,也不能保证我们的应用程序会留在同一个数据中心或虚拟机中。我们甚至不能确信应用程序的 IP 地址在 10 分钟后仍然相同。以下图表显示了使用 IBM Cloud Public(Bluemix)成功应用的云应用程序的参考架构:


云原生应用程序应该水平扩展,这意味着每当工作负载需求增加时,应用程序应该增加该应用程序的实例数量以处理新请求。同样,如果工作负载减少,应该减少应用程序实例的数量。

使用 12 因素应用程序模型进行开发

12 因素应用模型是一组应该遵循的实践,以使云应用程序具有可伸缩性。它为敌对的云环境变化提供支持。

该模型的 12 个原则如下:

  • **代码库:**我们的代码库在修订控制中被跟踪,并且被部署多次。
  • **依赖关系:**我们应该明确声明和隔离依赖关系。
  • **配置:**我们应该将应用程序配置参数存储在环境中。
  • **后端服务:**我们应该将后端服务视为附加资源。
  • **构建、发布、运行:**我们应该严格区分构建和运行阶段。
  • **进程:**我们应该将应用程序作为一个或多个无状态进程执行。
  • **端口绑定:**我们应该通过端口绑定导出服务。
  • **并发性:**我们应该通过进程模型进行横向扩展。
  • **可处置性:**我们应该通过快速启动和优雅关闭来最大程度地提高鲁棒性。
  • **开发/生产对等性:**我们应该尽可能地使开发、演示和生产保持相似。
  • **日志:**我们应该将日志视为事件流。
  • **管理进程:**我们应该将管理和管理任务作为一次性进程运行。

这些原则减少了与云计算相关的简单错误的数量。

您不必将所有这些概念都应用于您开发的所有云原生应用程序。例如,如果您不需要脚本来预加载数据库,则不需要应用管理进程原则。然而,如果您正在使用一个需要保持状态或与不同应用程序共享状态(如会话)的应用程序,那么使用后端服务是必不可少的,因为您永远不知道响应用户请求的容器所在的物理或虚拟计算机主机是什么。

无服务器计算

无服务器计算是部署模型,其中应用程序部署在环境中,但不一定始终运行。它的容器在首次执行时启动,并在请求需要执行它时保持活动。在空闲一段时间后,该应用程序的容器被停止。重要的是要注意,停止的容器需要一段时间才能启动,因此实时响应并不是无服务器应用程序的优势。

无服务器应用程序(或者像许多云服务提供商所称的云函数)是部署并附加到触发器的微服务,该触发器负责启动包含该功能的容器并运行它。触发器可以是数据库更改,传递给代理的消息,HTTP 请求或其他类型的请求。

云提供商通常根据云函数的执行持续时间和资源分配(通常是内存)收费。例如,一个云函数可能需要 500 毫秒,并使用 256MB 的内存。

一个成功的云函数不需要大量计算和大量请求(定期过程)。为了方便构建和部署无服务器应用程序过程,无服务器框架是一个不错的选择,因为它支持谷歌云、AWS、IBM 云和微软 Azure 对无服务器计算的实现。

使用 Hyperledger Composer 进行区块链开发

Hyperledger Composer 是 Linux Foundation 在 Hyperledger 品牌下托管的一个项目。该项目旨在创建一个框架和工具集,加速使用 Hyperledger Fabric 开发区块链应用程序,并简化与其他应用程序的集成。需要牢记的是,任何框架都意图通过抽象部分复杂性来简化解决方案的某个方面,但也会限制对所应用抽象的控制。

Hyperledger Composer 工具包

Hyperledger Composer 并不是解决 Hyperledger Fabric 提出的所有复杂性的通用解决方案。它剥夺了一些可以自定义的任务灵活性。然而,它所做的是提供一个工具包,用于创建链码项目,构建区块链应用程序包(.bna文件)并将它们部署到 Hyperledger Fabric。

使用 Hyperledger Composer 开发业务网络的重点是使用项目结构和通用语言创建资产、参与者、交易、查询和访问控制列表。在创建业务网络定义之后,Composer 有工具可以将应用程序打包并部署到 Hyperledger Fabric 平台。

Hyperledger Composer REST 服务器

为了简化与其他应用程序的集成,Hyperledger Composer 提供了 Composer REST 服务器,这是建立在 LoopBack 框架之上的 API 服务器,连接到定义的业务网络。它检索资产、交易和参与者的信息,并提供了一个 REST API 服务器和一个服务合同,以 swagger 格式描述,以便与业务网络进行交互。

Composer REST 服务器提供了许多有用的功能。最值得一看的是身份验证、多用户模式和数据源配置。

身份验证和多用户模式

当您创建业务应用程序时,请求进行身份验证并不少见。Composer REST 服务器提供了连接到许多身份验证和授权提供程序的手段,使用 Passport 中间件。虽然该项目声称 Passport 有超过 300 种身份验证和授权策略,但我们的经验表明,并非所有这些都能即插即用;有时,您必须创建自定义代码才能使它们正常工作。然而,我们已成功地实现了 Google、GitHub、Auth0 和 LDAP 的身份验证策略。

多用户模式允许多个参与者使用单个 Composer REST 服务器,而不是为每个参与者部署独立的 Composer REST 服务器。在这种模式下,使用主名片检索 API,但与业务网络的交互是使用其自己的名片。此模式需要启用用户身份验证。

数据源配置

Composer REST 服务器使用数据源存储用户会话数据。这并不意味着必须配置显式数据源;如果没有配置数据源,Composer REST 服务器将使用即插即用的内存连接器。

当使用多个 Composer REST 服务器实例以实现高可用性或负载平衡时,这些实例不共享内存,因此需要数据源。可以使用任何具有 loopback 连接器的数据源。在我们的经验中,MongoDB、Cloudant 和 Redis 可以即插即用;只需按照 Hyperledger 提供的步骤安装连接器并配置环境变量即可。

摘要

在本章中,我们已经了解了在云环境中开发和部署应用程序的影响。我们考虑了容器的工作原理,以及如何将容器化的应用程序部署到云平台,以及另一种模型:无服务器计算。我们还介绍了云原生应用程序开发的 12 因素模型原则。

然后,我们将 Hyperledger Composer 视为开发区块链解决方案的加速器。我们探讨了各种功能,包括使用身份验证、多用户模式和数据源配置。

这本书提供了有关使用 IBM Watson IoT 平台和 Hyperledger Compose 创建简单应用程序的信息。这些远非是唯一支持物联网和区块链解决方案的平台和工具,但概念是相同的,可以应用。如果您对使用所解释的工具进行扩展功能感兴趣,无论是 Watson IoT 还是 Hyperledger Fabric / Composer,都提供了详尽的文档以及大量社区提供的文章,但是,我们的观点是实践是了解它们是否适合特定解决方案的最佳方式,因此,即使您想学习如何使用工具包,也只需尝试一下,简单的用例是良好的教师。

进一步阅读

本章介绍的主题是一个概述,如果您需要更深入地了解任何主题,我们建议阅读以下参考资料:

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
1天前
|
供应链 物联网 区块链
新兴技术趋势与应用:探索区块链、物联网和虚拟现实的未来
在科技迅猛发展的今天,区块链、物联网和虚拟现实等新兴技术正逐步改变我们的生活和工作方式。这些技术不仅在各自领域内展现出巨大的潜力,还通过相互交织和融合,为社会带来全新的应用场景和解决方案。本文将深入探讨这些新兴技术的发展趋势,并剖析其在不同领域中的实际应用,从而揭示它们对未来社会的深远影响。
7 1
|
1天前
|
监控 供应链 物联网
新兴技术趋势与应用:区块链、物联网、虚拟现实的融合与发展
【6月更文挑战第13天】随着科技的飞速发展,新兴技术如区块链、物联网、虚拟现实等正在逐渐改变我们的生活和工作方式。本文将探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,为我们带来更便捷、高效和安全的未来。
|
2天前
|
供应链 安全 物联网
新兴技术浪潮下的未来图景:区块链、物联网与虚拟现实的融合与创新
【6月更文挑战第12天】随着技术的不断进步,新兴技术如区块链、物联网和虚拟现实正在逐渐改变我们的工作和生活方式。这些技术不仅各自拥有独特的发展趋势,而且在相互融合中展现出无限的可能性。本文将探讨这些技术的发展趋势,并分析它们在各个领域中的应用场景,以揭示它们如何共同塑造未来的技术景观。
|
4天前
|
传感器 供应链 物联网
新兴技术的未来蓝图:区块链、物联网与虚拟现实的前景和应用
在当今快速变化的科技世界中,区块链、物联网(IoT)和虚拟现实(VR)作为新兴技术,正逐步改变各行各业的运作模式和用户体验。本文将深入探讨这些技术的发展趋势和应用场景,展示它们如何在不同领域带来革命性的变革,并对未来的潜在影响进行预判。
19 2
|
4天前
|
存储 供应链 物联网
未来科技的风向标:区块链、物联网与虚拟现实的融合趋势
【6月更文挑战第10天】随着技术的不断进步,新兴技术如区块链、物联网(IoT)、虚拟现实(VR)等正在逐渐改变我们的工作和生活方式。本文将探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,共同推动未来科技的发展。
|
8天前
|
人工智能 物联网 区块链
新兴科技趋势:区块链、物联网、虚拟现实的发展与应用探讨
随着科技的不断发展,新兴技术如区块链、物联网、虚拟现实等正日益成为各行各业的关注焦点。本文将探讨这些新技术的发展趋势和广泛应用场景,以期为读者提供对未来科技发展的深入理解。
10 0
|
9天前
|
传感器 供应链 物联网
新兴科技助力未来发展:区块链、物联网和虚拟现实的趋势与应用
在当今数字化时代,新兴技术如区块链、物联网和虚拟现实正在迅猛发展,为各行各业带来了巨大的变革。本文将探讨这些新技术的发展趋势,并深入剖析它们在不同领域的应用场景,揭示其对未来社会发展的重要影响。
14 0
|
9天前
|
安全 物联网 区块链
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【5月更文挑战第37天】 在数字化浪潮不断推进的今天,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正逐步改变我们的生活与工作方式。这些技术的独立发展已经引起了广泛关注,但它们之间的交叉融合与协同效应,则预示着一个更加智能、互联且安全的未来。本文将深入探讨这些技术的最新发展趋势,以及在不同行业中的创新应用,揭示它们如何共同塑造下一代的技术景观。
|
8天前
|
传感器 监控 安全
楼宇自动化中的物联网技术
【6月更文挑战第7天】物联网技术在楼宇自动化中广泛应用,实现设备智能化监控与管理,提高能效,保障安全与便利。通过远程控制,提升管理效率;示例代码展示灯光控制功能。尽管面临设备兼容性、数据安全挑战,物联网技术前景广阔,将持续推动楼宇自动化发展,塑造更智能、舒适的生活工作环境。
|
9天前
|
存储 安全 算法
物联网中的数据加密技术
【6月更文挑战第1天】物联网中的数据加密技术
60 0