SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

Web APIによるデータ連携デザインパターンとツール活用

Web API利用の難しさ

 原因の大きな部分は、Web API利用の難しさです。第一にRDBMS/SQLによるテーブル型のデータ利用がエンジニアと既存アプリケーションに強固に根付いていることです。RDBMS/SQLによるデータ利用は40年以上の歴史があります。実際に業務データを扱う方法としてRDBMS/SQLはとても優れており、今後も主要な業務アプリケーションではRDBMSとSQLが使い続けられると考えられます。Web APIの多くはRESTというソフトウェアアーキテクチャスタイルで設計されており、ACID特性を持つRDBMSとは根本的にスタイルが異なります。RDBMSの正規化という考え方は、APIのエンドポイントにはありません。APIの利用用途に合わせて必要十分なデータを階層構造ではなくフラットにデザインされています。REST APIの利用がRDBMS/SQLと比べて格段に難しいということではありません。重要なことは「すでに多くのエンタープライズエンジニアがRDBMS/SQLを習得している。そして既存のアプリケーションやツール群(IDEなどの開発、帳票、BI、ETLツールなど)、RDBMSを扱うことを前提に構築されている」ということです。新たにWeb APIでデータ連携に対応するには、エンジニアの技術習得コスト、既存システムの接続方法を改修するコスト、既存のツールでWeb APIを扱えない場合はリプレースのコストが発生します。企業もしくはシステムインテグレーターが敬遠してしまうのも無理がありません。

 第二に、API習得には無駄が多いことです。SaaSごとにAPIは異なります。JDBCやODBCのように業界標準というものがあるわけではありません(GoogleやMicrosoftによるOPEN API Initiativeという業界標準化の活動は始まったばかりです)。複数のSaaSを導入したり、スイッチコストの低さから頻繁に使用するSaaSを変更したりする場合、API習得のコストは膨大になります。さらにWebサービスは早いペースで機能追加をしており、APIも年に複数回変更される場合があります。もしあなたが帳票、BI、ETLツールの開発担当者なら一般的に使われているSaaSとしてAPI連携対応をユーザーが期待する公開APIの数はゆうに数十を超えるでしょう(図4)。システムインテグレーターの場合も同様に、顧客がそれだけのAPI連携を要求してくることが予想されるわけです。

図5 クラウド時代の代表的なデータ連携先(一部)
図5 クラウド時代の代表的なデータ連携先(一部)

API連携ツールの活用がAPI利用拡大のカギに

 なぜデータを連携することが必要なのか? 実はデータをつなぐこと自体に価値はありません。データの価値は「どう使うか?」「何を読み取り、判断するか?」にあります。経営学的な内部調達と外部調達判断のセオリーでは、ビジネスにおいて本来的な価値を生むプロセスではなく、プロセスに無駄が多いプロセス、そして、誰がやっても変わらないようなプロセスは外部調達を選ぶことが定石です。複数のAPI連携を習得しなければならないシステムインテグレーターやBI、帳票、ETL、DWHなどの製品ベンダーがAPI連携にツールを使ってAPI連携の開発コストを低減し、資源(人、金、時間)を「データを使う」ことに集中させることは経営として理に適っていると言えます。これはユーザー企業でも同様です。

API連携をサポートするツール例

 図6のように、データ連携の方式、サイクル、フォーマット、考え方はオンプレ時代とクラウド時代では大きく異なります。それ故にデータ連携に使われるツールも新しいものが求められます。

図6 オンプレ時代とクラウド時代のデータ連携の比較
図6 オンプレ時代とクラウド時代のデータ連携の比較

 API利用の方法をツールの種類別に見てみます。

APIをユーザーが実際に操作する製品・サービス

APIプログラミング

 最もシンプルな方法は、プログラム言語でHTTPリクエストの実行メソッド(GET/PUT/POST/DELETE)、レスポンス(JSON/XML)、認証(OAuthなど)をコードとして書き込む方法です。Webサービスに慣れたエンジニアには、この方法が一番シンプルで使いやすいでしょう。サービス提供元のAPI仕様をフルに活用することで高度かつ最新の仕様を利用できるといったメリットがあります。

図7 FacebookのAPIリファレンス
図7 FacebookのAPIリファレンス

API入力補助ツール

 コマンドラインツールのcURL、GUIツールのPostmanなどで、APIを準備されたユーザーインターフェースから実行する方法です。実際の業務データの読み書きに利用するというよりは、API仕様確認やテストのためのツールという位置づけです。

図8 Postman
図8 Postman

APIマネジメントツール

 Swagger、Apigee(Google社が買収)やCData API Serverなど。APIの生成、ホスト、ドキュメント作成、セキュリティ管理、モニタリング、テストなど、さまざまな面でAPIマネジメントを容易にしてくれます。APIを作る側のツールとしての位置づけが大きいですが、各種のAPIをODataなどの統一された方法で管理することもできます。

図9 Swagger
図9 Swagger

ユーザーが APIを意識せずに利用できる製品・サービス

Point-to-Point型サービス

 IFTTT(If this, then that)、Zapier、Microsoft Flow、Yahoo myThingsなど。元となるSaaSにおいてトリガーとなるアクションが行われると相手先のSaaSで事前の登録しておいたオペレーションが行われるものです。「Facebookにタグ付けされた写真が投稿されたら、Dropboxに写真を保存する」といった例です。プログラミング不要で、Citizen Developerがパーソナライズされたフローを組むのに非常に便利です。

図10 IFTTT
図10 IFTTT

APIドライバー製品

 Web APIエンドポイントをテーブルにモデル化して、JDBC、ODBC、ADO.NETなどのSQLの標準テクノロジーで使えるようにするライブラリ製品です。APIデータを見やすいテーブルとして扱えることや、IDE、その他JDBC、ODBC、ADO.NETに対応するBI・帳票・ETLツールであれば、ドライバーを配置するだけでAPIの利用が可能であり、RDBMS/SQL技術者には扱いやすい製品でしょう。既存アプリケーションやツールのREST受け入れのための改修が不要な点もメリットです。他のPoint-to-point型サービスや、API連携内包ツールにOEMとして使われることも多いです。

図11 CData ADO.NET Data ProviderでSalesforceをVisual Studioで使用
図11 CData ADO.NET Data ProviderでSalesforceをVisual Studioで使用

API連携機能内包ツール

 BI、帳票、DWH、ETLツールなどで、ベンダーがWeb APIとの接続機能をネイティブに提供する形態です。ユーザーから見ると、慣れ親しんだツールを使うため、スイッチコスト・習得コストが不要で、API連携としてはハードルが最も低いでしょう。利用者の中にはWeb APIを利用しているという意識をせずにツールからSaaSデータを利用しているということも多いです。

図12 ASTERIA WARPでSharePointデータを利用
図12 ASTERIA WARPでSharePointデータを利用

次のページ
Web API連携のパターンと利用シーン

この記事は参考になりましたか?

特集記事連載記事一覧

もっと読む

この記事の著者

桑島 義行(CData Software Japan合同会社)(クワジマ ヨシユキ)

CData Software Japan 合同会社 技術担当ディレクター キャリアを通じてデータマネジメント、データアナリティクス・DWH などのデータ活用を専門で扱うデータベースアーキテクト。国内のメーカー系システムインテグレータで15年以上勤務した後、現在は米国本社のデータ連携コンポーネントベ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/9760 2016/11/14 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー