与iPaaS,API管理和区块链的敏捷云到云集成

云到云集成是混合集成体系结构的一部分 。 它使您能够实施快速而灵活的集成方案,而无须设置复杂的基于VM或基于容器的基础架构。 云到云集成的一个关键用例是使用快速失败方法进行的创新,您可以在其中快速实现新想法。 您通常会在几天或几周内思考,而不是几个月内思考。 如果某个想法失败,则将其丢弃并开始另一个新想法。 如果这个想法行之有效,您可以将其扩展并带入生产环境,内部云或混合基础架构中。 最后,您可以公开提出该想法,并将其轻松地提供给企业,合作伙伴或公共最终用户中的任何感兴趣的服务使用者。

需要敏捷,快速失败开发的一个很好的例子是区块链,因为这是一个非常热门的话题,但是如今框架不成熟,并且变化非常频繁。 请注意,区块链不仅与比特币和金融业有关。 这只是冰山一角。 区块链是比特币的基础架构,它将改变各种行业,从银行,制造业,供应链管理,能源等开始。

中间件和集成是区块链项目成功的关键

成功的区块链项目的关键是中间件,因为它可以与企业架构的其余部分集成。 区块链只有与您的其他应用程序和服务一起工作,才能增加价值。 查看有关如何将流分析与TIBCO StreamBase和以太坊相结合以实时关联区块链事件以主动采取行动 (例如欺诈检测)的示例。

区块链缺点是它目前还不成熟 。 API随每个次要发行版而变化,开发工具存在缺陷,并且缺少认真开发所需的许多功能,并且每个季度都会出现新的区块链云服务,框架和编程语言。

这篇博客文章展示了如何利用iPaaS和API Management的云集成来快速实现创新项目,快速失败并轻松采用不断变化的技术和业务需求。 我们将使用TIBCO Cloud Integration(TCI)TIBCO MasheryHyperledger Fabric作为IBM Bluemix云服务运行。

IBM Hyperledger Fabric作为Bluemix Cloud Service

Hyperledger是一个独立供应商的开源 区块 链项目 ,由各种组件组成。 许多企业和软件供应商致力于为各种问题和用例构建不同的解决方案。 一个示例是IBM的Hyperledger Fabric。 与其他以太坊区块链平台相比, Hyperledger的灵活性非常 ,它的入门套件比其他以太坊更为复杂,因此易于设置和使用。

这就是为什么我使用BlueMix BaaS(区块链即服务)快速入门的原因,而不必花费几天时间来建立自己的Hyperledger网络。 您只需单击几下即可启动具有四个对等方和会员服务的Hyperledger Fabric区块链基础架构。 大约需要两分钟。 Hyperledger Fabric正在快速发展。 因此,这是快速更改功能,不断变化的需求和(可能)快速失败的项目的一个很好的例子。

我的项目使用Hyperledger Fabric 0.6版本作为免费的beta云服务。 我在中间件微服务中利用其基于Swagger的REST API,将其他云服务与区块链互连:

但是,当我开始该项目时,已经很清楚REST接口已被弃用,并且将不再包含在即将发布的1.0版本中。 因此,我们知道需要在几周或几个月内轻松迁移到另一个API。

云到云集成,iPaaS和API管理,用于敏捷和故障快速开发

如引言中所述, 中间件是将区块链项目与现有企业架构互连的成功关键 。 本示例利用以下中间件组件:

  • iPaaS :TIBCO云集成(TCI)由TIBCO托管和管理。 无需任何设置或安装即可使用它来快速构建与Hyperledger Fabric集成的REST微服务。 TCI还允许配置缓存,限制和安全性配置,以确保区块链与其他应用程序和服务之间的受控通信。
  • API管理 :TIBCO Mashery用于向其他服务使用者公开TCI REST微服务。 这可以是内部用户,合作伙伴或公共最终用户,具体取决于用例。
  • 在内部部署/云原生集成基础架构上 :分别使用TIBCO BusinessWorks 6(BW6)和TIBCO BusinessWorks Container Edition(BWCE),可以在内部或内部平台(如CloudFoundryKubernetes)上在现有基础架构中部署和生产成功的TCI微服务或任何其他基于Docker的平台。 当然,您也可以继续使用TCI自身内部的服务在TIBCO托管和管理的公共云中运行和扩展生产服务。

场景:TIBCO云集成+ Mashery + Hyperledger Fabric区块链+ Salesforce

我实施了以下技术方案,目的是从技术角度展示采用故障快速方法进行敏捷的云到云集成 (而不是构建出色的业务案例):该方案通过可视化代码通过TCI实现了新的REST微服务和配置。 该REST服务连接到两个云服务: Salesforce和Hyperledger Fabric。 下图显示了体系结构:

以下是实现此方案的步骤:

  • 创建一个REST服务,该服务接收客户ID和客户名称作为参数。
  • 使用Salesforce CRM的其他数据来增强REST调用中的输入数据。 在这种情况下,我们得到一个块哈希,该哈希存储在Salesforce中作为对区块链数据的引用。 区块哈希允许仔细检查Salesforce是否具有有关客户的最新信息,而区块链本身可确保来自CRM,ERP,大型机等各种系统的客户更新以正确,安全,分布式的链存储和更新–所有相关系统都可以访问,而不仅仅是Salesforce。
  • 使用Hyperledger REST API通过Salesforce的块哈希来验证Salesforce中有关客户的当前信息是最新的。 如果Salesforce具有较旧的区块哈希,则将Salesforce更新为最新值(最新的哈希区块和存储在区块链上的当前客户数据)
  • 将最新的客户数据返回给TCI REST服务的服务使用者
  • 配置缓存,限制和安全性要求,以便服务使用者不会发生意外行为
  • 利用API管理将TCI REST服务公开为公共API,以便外部服务使用者可以订阅付款计划并在其他应用程序或微服务中使用它。

实施:通过DevOps进行可视编码,Web配置和自动化

本节更详细地讨论了实现的相关步骤,包括开发和部署链代码(Hyperledger的区块链中智能合约的术语),在TCI的IDE中使用可视化代码实现REST集成服务,以及公开该服务通过TIBCO Mashery作为API。

IBM Bluemix Cloud上的Hyperledger Fabric链代码

Hyperledger Fabric具有一些详细的“入门”教程。 我使用了“ Hello World”教程并将其用于我们的用例,以便您可以在区块链网络上存储,更新和查询客户数据。 Hyperledger Fabric将Go用作链式代码,并将在将来的版本中允许使用其他编程语言,例如Java。 这既有利又不利。 好处是您可以利用这些编程语言中的现有专业知识。 但是,您还必须注意不要使用“错误”功能,例如线程,不确定循环或其他会在区块链上导致意外行为的功能。 就个人而言,我更喜欢以太坊的概念。 该平台使用Solidity (一种明确设计用于开发智能合约(即链代码)的编程语言)。

通过REST服务与TIBCO Cloud Integration进行云到云集成

要实现REST微服务,必须执行以下步骤:

  • 利用Swagger使用API​​ Modeler Web UI创建REST服务接口
  • 将Swagger接口导入TCI的IDE
  • 使用Salesforce活动从Salesforce的云界面读取区块哈希
  • 使用Rest Client活动对Hyperledger Fabric的REST接口进行HTTP请求
  • 在活动之间配置图形映射(REST请求àSalesforceàHyperledger FabricàREST响应)
  • 在云中将微服务部署到TCI的运行时,并通过Swagger UI对其进行测试
  • 在TCI的Web UI中配置缓存和限制

最后一点在区块链项目中非常重要。 区块链基础架构没有毫秒级的响应延迟。 此外,每次区块链更新都会花费金钱– 比特币 ,以太或您用来“支付采矿费用”并在区块链基础设施中达成共识的任何货币。 因此,您可以比其他项目更充分地利用区块链项目中的缓存和限制(当然,只有在适合您的业务场景的情况下)。

这是TCI图形开发环境中已实现的REST服务:

以及TCI的Web用户界面中的缓存配置:

通过TIBCO Mashery通过API管理向服务使用者公开REST服务

服务使用者可以直接访问已部署的TCI微服务,也可以通过API管理(例如TIBCO Mashery)将其公开。 后一种选项允许使用易于使用的工具以集中方式定义规则,付款计划和安全配置。

请注意,部署到TCI并将其API暴露于Mashery也可以一步完成。 两种产品松耦合,但高度集成。 还要注意,这通常不是手动完成的(如本技术演示中所示),而是利用MavenJenkins之类的框架集成到DevOps基础架构中,以自动化部署和测试步骤。

具备快速失败方法的敏捷云到云集成

现在,我们的方案已成功实现。 但是,已经很清楚,不推荐使用REST接口,并且该接口不再包含在即将发布的1.0版本中。 在区块链框架中,您可以期待非常频繁的更改。

在实施此示例时,IBM在拉斯维加斯的大型用户会议IBM Interconnect上宣布Hyperledger Fabric 1.0现已公开可用 。 好吧,从那天起,它确实可以在Bluemix上使用,但是如果您尝试启动该服务,则会收到以下消息:“由于对有限Beta的高需求,我们已经达到了容量。” 我认为我们正在使用诸如Amazon AWSMicrosoft AzureGoogle Cloud Platform或IBM Bluemix之类的公共云基础架构,这是一个奇怪的错误,正是出于这个原因,它很容易扩展……J

无论如何,结果是我们仍然必须使用0.6版本,并且尚不知道何时才能迁移到1.0版本。 好消息是,iPaaS和云到云集成可以快速实现更改。 对于我们的TCI REST服务,我们只需要使用Java活动替换调用Hyperledger REST API的REST活动,并立即使用Hyperledger的Java SDK。 目前,仅提供适用于Node.js客户端SDK-并不是“企业项目”的真正选择,在该项目中您想分别利用JVM和Java平台而不是JavaScript。 旁注:在“ 没有JavaScript的DApp的静态类型安全 ”中,也很好地讨论了在区块链项目中使用Java与JavaScript的主题。

这篇博文仅关注一个小示例,当然Hyperledger Fabric 1.0还将带来其他新功能和概念变化。 SaaS云产品(例如Salesforce)也是如此。 您无法控制他们何时更改其API以及更改的确切范围。 但是您必须在相对较短的时间内采用它,否则您的服务将不再起作用。 iPaaS是这些情况的理想解决方案,因为您在私有数据中心或公共云平台中没有太多复杂的设置。 您只需将其“作为服务”使用,更改,替换逻辑或停止它并扔掉就可以开始一个新项目。 与API Management和DevOps支持的隐式集成还允许轻松,快速地为您的服务使用者公开新版本。

结论:通过云解决方案快速失败进行创新

区块链还处于初期。 对于平台,工具,甚至是基本概念和理论(例如共识算法或安全实施),都是如此。 如果供应商说Blockchain现在是1.0并且已经准备好黄金时段,请不要信任他们。 如今,它仍然感觉更像是0.5 beta版本。 这不仅适用于Hyperledger及其相关项目(例如IBM的Hyperledger Fabric),还适用于所有其他项目,包括以太坊以及围绕它兴起的所有有趣的框架和创业公司。

因此, 您需要在当今的区块链开发中变得灵活敏捷 。 您需要能够快速失败。 这意味着Swift建立一个项目,尝试新的创新想法,并在不起作用时将其丢弃; 开始下一个。 其他创新想法也是如此-不仅仅是区块链。

中间件有助于将新的创新思想与现有应用程序和企业体系结构集成 。 它用于互连所有内容,实时关联事件以及在关联信息中发现见解和模式,以创造新的附加值。 为了支持创新项目,中间件还需要灵活,敏捷并且支持快速失败方法。 这篇文章展示了如何利用iPaaS和TIBCO Cloud Integration以及API Management和TIBCO Mashery在创新的云到云集成项目中构建创新的中间件微服务。

翻译自: https://www.javacodegeeks.com/2017/04/agile-cloud-cloud-integration-ipaas-api-management-blockchain.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值