API エコノミーやマイクロサービスアーキテクチャ、FintechをはじめとするさまざまなX-Techといった言葉が叫ばれるなか、APIマネジメント企業の買収のニュースといった形で「API」というキーワードを聞くことが増えています。
本記事では、さまざまなクラウド上のユニークなサービスが出てきている今、API を使ったデータ連携で何ができるようになるのか、どんな代表的ユースケースがあるのか、そしてユーザー企業やシステムインテグレーターがよりAPIを利用しやすくするためのツール活用について見ていきましょう。
Web APIとは?
API とは Application Programming Interface の略であり、「ソフトウェアコンポーネントが互いにやり取りするのに使用するインターフェースの仕様である」と定義されています。最近使われているAPIとは、Web API の意味で使われていることが多く、Web API とは「HTTP 要求メッセージ群と XML またはJSON形式などの応答メッセージの構造定義で構成される」と説明されます(Wikipedia「アプリケーションプログラミングインタフェース」から抜粋)。
図 1 のように、人がウェブページを参照する時には、ブラウザのURLから、もしくは、ページ内のリンクをクリックすることでWebサーバーにHTTPリクエストが発行され、HTTPレスポンスとして人が解読可能なHTMLや画像・動画などのハイパーメディアをウェブページとして返します。同様に、アプリケーションからHTTPでリクエストを発行し、WebサーバーがHTTPでJSONもしくはXML形式でアプリケーションが解読可能なフォーマットでデータだけを返すことがWeb APIの仕組みです。
Web API は私たちの生活のさまざまなところで利用されています。身近な利用例では、いろいろなアプリケーションやウェブサイトに組み込まれているGoogleマップAPIや、ウェブサイト上からFacebookアプリケーションを開かなくても「いいね」や投稿できるFacebook APIなどがあります。
企業内の業務アプリケーションでも、顧客管理のためのサービスとして Salesforce や Dynamics CRM、スケジューラやメールなどのコラボレーションのためのサービスとして Google Workspace(旧 G Suite)や Office 365をはじめ、多くのSaaSと呼ばれるクラウド上のウェブサービスが普及しています。
ユーザー(人)がブラウザからSaaSを利用する場合には、図2のようにブラウザに表示されたウェブページをユーザーインターフェース(以下、UI)としてアプリケーション操作(データの入力や参照)を行います。人がUIを通じてアプリケーション操作を行うという点では、社内設置型(オンプレ)のカスタムアプリケーションと方法に変わりはありません。
一方、人ではなく他のアプリケーションから SaaS データを連携利用するためには、図 3 の Web APIを使った連携を行う必要があります。設置型のカスタムアプリケーションに他のシステムからアクセスする場合には、アプリケーションのデータベース(Oracle、MySQL、SQL Server、PostgreSQL などのRDBMS)から CSV 形式などのファイルに出力する、もしくは直接データベースに ODBC、JDBC、ADO.NET といったデータベース接続の標準規格でアクセスを行うことでデータを連携する方法があります。この場合、主要なRDBMSと標準規格によって多くのエンジニアがデータ連携を簡単に行うことができます。
しかし、SaaS に他システムからアクセスする場合には、SaaS 内のデータベースに外部からアクセスすることは当然できません。そのため、Web API が SaaS を運営するサービス事業者から提供されておりWeb API を通じてデータ連携を行います。冒頭の「API」というキーワードは、この「SaaS・Web サービスのデータをアプリケーション間で利用するための Web API」の利用のことを指しています。Web APIは大変便利な反面、個々のSaaS、Webサービスごとに異なるAPI仕様が発生してしまうこと、JDBC、ODBCのような業界標準ができていないという困難を生んでいます。
APIがもたらす拡張されたデータ連携の価値
データ連携の目的は、今も昔も不変です。「データを扱いやすいように一元管理する」「可用性を向上させる」「自動化(オートメーション)で効率化を進める」といった基本的なデータの利用価値を高める使い方と、「データやアプリケーションロジックを部品化、共通化することでアプリケーション開発・運用を効率化する」といった拡張された価値の大きく2つに分けて考えられます。
これまでのRDBMS間のODBC、JDBC、ADO.NETといった標準的なデータ接続テクノロジーは主に自社内でのアプリケーション連携時に利用されてきました。例えば、MDM(マスターデータマネジメント)によるデータの一元管理や、EAI/ETLツールによるビジネスプロセスのオートメーション化です。ERPといった全社リソースの全体最適化とまではいかなくても、データはアプリケーション間で連携して使われるべきであるという考え方はエンタープライズアプリケーションのデザインとして定着しています(図 4の青い部分)
最近では、SaaS の導入が進みWeb APIを使ったデータ連携が可能となると、データ連携のメリットは自社内だけではなく、外部を巻き込んだエコシステムで語られることとなっています。自社では競争力の源泉となるコアビジネスの機能をアプリケーションとして実装し、付随する機能は API 連携で外部から補完することでコアの価値と多様な付随機能を効率よく両立することができます。複数のアプリケーションのWeb APIを組み合わせてまったく新しいサービスを提供するマッシュアップも盛んになっています。このような「オープンイノベーション」を使った拡張的なサードパーティエコシステムが形成されています。これが「APIエコノミー」と呼ばれるものです。ここにはパソコンから利用するアプリケーションだけでなく、モバイルアプリケーション、センサーやスマートデバイスを用いたIoT、APIバンキングなどの決済手段、シェアドエコノミーなど幅広い製品やサービスがAPIを通じて繋げられ、新しい価値を生みだしています。
データ連携の自社利用でも、API連携によるメリットが得られます。個々の従業員が自らの業務を効率化するのに、社内で利用されているさまざまなSaaSやGoogle Drive、Box、OneDriveといったクラウドストレージ内のファイル間のデータ同期を自ら行えるIFTTTやMicrosoft Power Automate(旧Microsoft Flow)などのオートメーション化のサービスや、データのクレンジングやマッピングといったデータプレパレーションがノンプログラミングでできるセルフサービス型のETLツールの利用が拡大しています。これらは、非エンジニア(Citizen Developer)によるパーソナライズされたデータ利用と言えます。
他方で、アーキテクチャでは、旧来のモノシリック(一枚岩)なシステムではなく、業務システム全体を小さなサービスをAPIで組み合わせることによってデザインし、変化に対応しやすいシステムを作り上げる「マイクロサービスアーキテクチャ」を実現できるようにもなりました。このようにアプリケーション内のデータベースやロジックの全部もしくは指定された部分を安全に公開しアプリケーション間での利用を実現するWeb APIによって、データ連携の可能性は大きく広がったと言えるでしょう。
実は進んでいないデータ連携
しかし、このようなWeb APIによって拡張されたデータ連携のメリットを実感できない企業の方が多いのではないでしょうか? それどころか、導入した複数のSaaS間のデータ連携ができておらず、データの一元管理やオートメーションが後退してしまったという状況も多いように見受けられます。クラウドで提供されるSaaSは、時間をかけずに導入ができること、導入にコストがかからず課金が月額や使用量であることがメリットの一部です。短期導入やトライアルとしての部分導入を図った結果、顧客マスター、製品マスター、会計項目、人事マスターなどの本来一元化が図られるべき主要データすら連携せずに導入してしまうということが少なからず起こってしまいます。SaaSは基本的なデザインとして、それ単体で機能することを第一に作られているので、データ連携を導入前にあまり考えていなかったというのは不思議ではありません。また、オンプレで運用される帳票やBIツールからSaaSアプリケーションデータやNoSQLデータが抜け落ちているという悩みも聞かれます。
なぜ、このようなことが起きてしまうのでしょうか?
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は異なります。複数のSaaSを導入したり、スイッチコストの低さから頻繁に使用するSaaSを変更したりする場合、API習得のコストは膨大になります。さらにWebサービスは早いペースで機能追加をしており、APIも年に複数回変更される場合があります。もしあなたが帳票、BI、ETLツールの開発担当者なら一般的に使われているSaaSとしてAPI連携対応をユーザーが期待する公開APIの数はゆうに数十を超えるでしょう(図5)。システムインテグレーターの場合も同様に、顧客がそれだけのAPI連携を要求してくることが予想されるわけです。
API連携ツールの活用がAPI利用拡大のカギに
なぜデータを連携することが必要なのか? 実はデータをつなぐこと自体に価値はありません。データの価値は「どう使うか?」「何を読み取り、判断するか?」にあります。経営学的な内部調達と外部調達判断のセオリーでは、ビジネスにおいて本来的な価値を生むプロセスではなく、プロセスに無駄が多いプロセス、そして、誰がやっても変わらないようなプロセスは外部調達を選ぶことが定石です。複数のAPI連携を習得しなければならないシステムインテグレーターやBI、帳票、ETL、DWHなどの製品ベンダーがAPI連携にツールを使ってAPI連携の開発コストを低減し、資源(人、金、時間)を「データを使う」ことに集中させることは経営として理に適っていると言えます。これはユーザー企業でも同様です。
API連携をサポートするツール例
図 6 のように、データ連携の方式、サイクル、フォーマット、考え方はオンプレ時代とクラウド時代では大きく異なります。それ故にデータ連携に使われるツールも新しいものが求められます。
API 利用の方法をツールの種類別に見てみます。
APIをユーザーが実際に操作する製品・サービス
◇ APIプログラミング
最もシンプルな方法は、プログラム言語でHTTPリクエストの実行メソッド(GET/PUT/POST/DELETE)、レスポンス(JSON/XML)、認証(OAuthなど)をコードとして書き込む方法です。Webサービスに慣れたエンジニアには、この方法が一番シンプルで使いやすいでしょう。サービス提供元のAPI仕様をフルに活用することで高度かつ最新の仕様を利用できるといったメリットがあります。
◇ API入力補助ツール
コマンドラインツールのcURL、GUIツールのPostmanなどで、APIを準備されたユーザーインターフェースから実行する方法です。実際の業務データの読み書きに利用するというよりは、API仕様確認やテストのためのツールという位置づけです。
◇ APIマネジメントツール
Swagger、ApigeeやCData API Serverなど、APIの生成、ホスト、ドキュメント作成、セキュリティ管理、モニタリング、テストなど、さまざまな面でAPIマネジメントを容易にしてくれます。APIを作る側のツールとしての位置づけが大きいですが、各種のAPIをODataなどの統一された方法で管理することもできます。
ユーザーが APIを意識せずに利用できる製品・サービス
◇ Point-to-Point型サービス
IFTTT(If this, then that)、Zapier、Microsoft Power Automate、Yahoo myThingsなど。元となるSaaSにおいてトリガーとなるアクションが行われると相手先のSaaSで事前の登録しておいたオペレーションが行われるものです。「Facebookにタグ付けされた写真が投稿されたら、Dropboxに写真を保存する」といった例です。プログラミング不要で、Citizen Developerがパーソナライズされたフローを組むのに非常に便利です。
◇ 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として使われることも多いです。
◇ API連携機能内包ツール
BI、帳票、DWH、ETLツールなどで、ベンダーがWeb APIとの接続機能をネイティブに提供する形態です。ユーザーから見ると、慣れ親しんだツールを使うため、スイッチコスト・習得コストが不要で、API連携としてはハードルが最も低いでしょう。利用者の中にはWeb APIを利用しているという意識をせずにツールからSaaSデータを利用しているということも多いです。
「データ連携ツール“ASTERIA Warp”製品を利用したWEB API連携」は 末項の“Appendix”で紹介しています。是非ご覧ください。
Web API連携のパターンと利用シーン
SaaS(クラウド)×オンプレ(設置型)サーバーの連携パターン
サーバーツール(BI、帳票、DWH、ETL)などからSaaSに接続して利用するケース、オンプレ基幹システム(Java、.NETなど)とSaaSのデータを連携して、複数のSaaSとオンプレにまたがったアプリケーションを、ERPのような一つの統合されたシステムのように機能させるケースがあります。オンプレ型のERPと別のERPを二層にしてお互いのデータを連携して使うというケースも海外展開している大企業では一般的となりつつあります。逆にオンプレアプリケーションで管理されている在庫データなどをモバイルデバイスで利用できるようにSaaS型CRMから参照できるように、オンプレDBからWeb APIを介してデータをSaaS型CRMにフィードするといった利用もあります。実装方法としては、サーバー側にADO.NETやJDBCドライバーでSaaSデータを組み込む方法か、直接API連携をする方法が一般的です。複雑なマッピングやオートメーションをする場合にはETL/EAIといったツールを使うと一層便利になります。
SaaS(クラウド)×クライアントの連携パターン
クライアントツールでは、SaaS型CRM、クラウド会計などのデータをExcel形式で一括でダウンロード・一括更新(クレンジングや項目追加など)を行うケース、クライアント型のBI・帳票ツールにSaaSデータを接続するなどが便利です。リアルタイムで発生するセンサーデータをクラウド上のNoSQLデータベースに蓄積して異常値のみを抽出してアラートを検知する、可視化するといったケースも聞かれます。ツールを使った実装方法としては、ODBCドライバーやExcelアドイン製品がよいでしょう。
SaaS(クラウド)×SaaS(クラウド)の連携パターン
同じ種類のSaaS間のデータ移行やデータ同期(例えば、GoogleカレンダーとOffice 365のカレンダーの同期、営業部門利用のSalesforceとカスタマーセンターで利用のDynamics CRM間の営業情報の一元化)、他の種類のSaaS間のデータ連携(例えばMAのMarketoからCRMのDynamicsCRMへ、SFAのSalesforceからERPのNetsuiteへ)。ツールを使った方法としてはサービスごとに異なるWeb APIをAPIマネジメントツールによって共通形式であるODataに変換することで連携する方法や、. NET、Javaなどのアプリケーションを間に挟む形で実現が可能です。
以上のように、API連携を可能とする便利なツールを上手に使いこなすことで、「APIを利用する」「自社のAPIを公開する」ことの双方を効率的に行い、非常に拡張性のある外部エコシステムを上手に利用することが、今後のクラウド時代の業務アプリケーションのオーケストレーションに重要な動きとなります。
CData Softwareでは、60を超えるデータソースに対応するデータドライバー、および、RDBMSからOPEN APIベースのREST APIを高速生成、ドキュメント生成、ホスティングまでを行うAPIマネジメントツールを提供しています。無償評価版をぜひ、お試しください。
(Appendix)データ連携ツール “ASTERIA Warp” 製品を利用した WEB API 連携
データ連携ツール “ASTERIA Warp” とは
社内外に散在している様々なデータベース、Excel や CSV ファイル、クラウドサービスなど 100 種類以上のデータソース(接続先)に対応し、それら各種システムを迅速に “ノーコード” でつなぐ、導入実績No.1* のデータ連携ツールです。
* 出展:テクノ・システム・リサーチ 「2024 年ソフトウェアマーケティング総覧 EAI/ESB 市場編」(数量ベース)
WEB API 連携での利用メリット
WEB API(クラウドサービスなど)との連携で ASTERIA Warp を利用いただくことで以下メリットを享受いただけます。
●接続先 API 仕様を意識せずに連携可能
接続先ごとに異なるAPI 仕様(SOAP、REST など)による接続手順をアダプタ機能に内包することで、API を意識せずに GUI 上の簡易設定のみで容易に連携が可能です。
●OAuth の認証も自動で対応
クラウドサービスへの接続時の認証で用いられる OAuth での認証を自動で行います。また OAuth でのアクセストークンの再取得(リフレッシュトークン利用)も自動で行えます。
●リクエスト/ レスポンスデータの変換も容易に可能
WEB API 連携で利用されるデータフォーマット(XML、JSON など)への変換や、データフォーマットからの CSV や Excel への変換もGUI 上で容易に設定可能です。
[PR]提供:アステリア