SaaS和云端合作的模式:有哪些用于合作的工具类型?

由于很多人对于两个API之间无法直接进行数据协作的问题并不理解,所以我将这个问题进行了模式分类,探讨了API的协作方式。

概述

这种说法可能会引起一些误解,但有个工程师表达得很好。

“API是基本的元件。元件之间不能连接其他元件。”

    API は基本的には、リクエストを出してもらうのを待っている状態です。Webhook でもない限り勝手にデータを送ってきたりはしません。

在这种情况下,如果要协调API的数据,就需要通过某种应用程序/工具调用API并转换接收到的数据,然后将数据流入到数据的协调目标中。这涉及到ETL(提取、转换、加载)过程。

有人说:“虽然这样说,但在使用本地应用程序时,并不需要使用ETL,可以在应用程序一侧进行数据交互的实现。”这意味着在本地应用程序中实现了数据获取(通过ODBC/JDBC)、转换(利用SQL逻辑)等处理,并将其加载到应用程序中。

API问题:
– API的规范各不相同。REST只是一种架构风格,而不是协议。接收JSON或XML并不能直接在应用程序中使用,需要进行模式定义和转换。
– SaaS(云服务)没有数据协作功能(大多数情况下)。在SaaS之间的协作中,需要使用外部的数据协作应用程序/工具,并且协作的难度远比RDB或文件协作要复杂。

使用ETL/EAI工具来集成Web API

许多用户所设想的数据协作方式。
不管是ETL作为SaaS、数据库还是文件如CSV,它都能与之合作进行数据协作。就像是小丑一样,它可以连接SaaS、文件或应用程序等任何合作伙伴。它执行提取(Extract)、转换(Transfer)、加载(Load)的完整流程,这是理所当然的。

20170927-cloud-integration-pattern-1.PNG

问题在于,ETL工具必须实现每个数据源的支持。
CData驱动器将近100个Web API封装成ETL工具中已实现的标准接口,如JDBC/ODBC。

ETL链接示例:

使用ASTERIA WARP与Apache Cassandra进行数据链接
使用Infromatica与Google BigQuery进行数据链接
使用Talend与Cybozu kintone进行数据链接
提供超过90种组件,适用于SSIS
使用Magic xpi与Marketo进行数据链接
使用Waha!Transformer与Dynamics365进行数据链接
使用RACCOON与NetSuite进行数据链接

通过应用程序/工具直接进行集成

使用CData等库可以避免在应用程序或工具中直接编写调用API的代码,这种情况下不需要中间件,非常简单。如果无法在打包应用程序中进行API编码,或者希望在自定义应用程序中避免API编码,可以使用CData等库。

CData为您提供了JDBC、ADO.NET、ODBC等库。

慎重に考えて、API連携部分是要编写代码还是使用第三方库。
– 在数据量和结构上,从库中执行SQL是否正确?是否可以接受?
– 编写代码的成本(包括维护成本)
– 第三方锁定和黑盒化的缺点

以下是来自IDE、BI、DWH、Office 工具的SaaS集成示例:
使用EntityFramework6开发DynamoDB数据集成应用程序
使用NetBeans开发Salesforce数据集成应用程序
使用PowerBI可视化MoneyForward数据
使用Tableau可视化kintone数据
使用Excel对Salesforce数据进行CRUD操作
使用Access链接表更新Google Sheets数据

使用中继应用程序的软件即服务之间的协作。

就像之前所述,SaaS之间的协作需要使用中继工具。
ETL的协作也可以归入这个类别。
近来出现了一些无服务器的FaaS,如AWS Lambda和Azure Functions等,非常方便。

选择哪个工具需要注意的是:
– ETL工具是否具备良好的数据源适配能力?同时成本较高。
– FaaS非常方便,但需要编码处理事务等会比较困难。对于像SOA这样的任务关键型数据协调类型来说并不适用。而对于分析、通知、推荐等SOE类型的任务来说,成本低、易于构建且可扩展的FaaS绝对是推荐的选择。

CData组件可以在这里使用以标准化连接。我们将来还将在FaaS和云ETL等方面进行利用,并进行文章介绍。

20170927-cloud-integration-pattern-4.PNG

使用中间服务器或FaaS的SaaS之间的协作示例:
C#:Salesforce和kintone的数据同步
Java:Salesforce和kintone的数据同步
Excel中的Salesforce-MoneyForward流程
使用Lambda+PyODBC+CData ODBC驱动程序进行Twitter数据协同
使用Azure Functions实现Google Home和SharePoint的协作

软件即服务(SaaS)内置了协作功能。

20170927-cloud-integration-pattern-5.PNG

CData 提供了内置的驱动程序给SaaS供应商。

bannerAds