API レイヤー

REST APIやWeb APIのレイヤーは、1つまたは複数のアプリケーションのデータと機能の両方に対して、インタフェースを分離して提供します。これにより、アプリケーションとインテグレーションの実装のために、言語にとらわれない共通の方法が提供されます。Web APIは、WSDL (Web Services Description Language) と呼ばれるコントラクトを作成します。WSDLには、オペレーションと情報への接続のために使用するデータ形式で、サービスが明確に記述されています。 REST APIは、一般的に、このようなコントラクトはありません。代わりにRuby、Java、PHP、JavaScriptといった汎用言語のクライアントライブラリに文書化されています。SOAP (Simple Object Access Protocol) は、従来、企業内部のサービスを外部に公開したり、B2B取引でパートナーと情報を交換したりするために採用されてきました。Web上では、REST APIが推奨されており、多くの企業の行動に影響を与えています。

ユースケース

APIレイヤーが利用される一般的なユースケースには、以下のようなものがあります。

  • REST APIを持たないレガシーアプリケーションに接続しなければならないケース。たとえば、カスタムメイドのCRMや人事システムがあり、従業員がポータルサイトからそこにアクセスできるようにしたい。
  • パートナーや関係各社とインターフェイスを介して、通信できるようにAPIを公開するケース。一般的に、Web APIが作成され、利用されていることでしょう。
  • 複数のアプリケーションやデータソースに接続し、データをまとめ上げ、モバイルアプリに結果を送信したいケース。たとえば、(外部に出しても問題のないような)人事情報や顧客情報を、FacebookやLinkedInなどのSNSで利用可能なデータと統合させることが考えられます。また、社内に複数のCRMシステムが存在しているため、同一の顧客データにアクセスするメンバーに「共通の統一ビュー」を提示したいといった要望もよく聞きます。

以下に、エンタープライズアプリケーションと相互作用するモバイルのユースケースを取り上げてみましょう。

モバイルアプリのインテグレーション

モバイル端末向けにネイティブ(iOS/Android)または HTMLベースのアプリを開発することを決めたら、次の大きな課題は、このアプリをCRMやERPシステムなどのバックエンドアプリケーションとを、どのように接続するかになります。

モバイルアプリの開発者が悩んでいるインターフェースやプレゼンテーションの課題は、Webアプリの作り方を根本から変えました。以前は、サーバー側がHTMLを要求し、クライアント側の「ブラウザー」がレンダリング(表示)していました。新しい「モバイルアプリ」モデルでは、HTTPとAJAXを使用して動的なコンテンツを配信し、RESTサービスによってHTTP上でJSONデータを受け渡す形式で通信を行います。

その結果、バックエンドにあるシステムやインフラの変更を最小限に抑えつつ、それらシステムやインフラをこの新しい「モバイル配信」にいかに迅速に公開するかが、インテグレーションの課題となっています。
これをスピーディに達成できた企業だけが、従来のビジネスモデルを、新しいデバイスや消費者ターゲットに適応させることができています。Muleは、旧来のSOAP/XMLベースのWebサービスとREST/JSONアプリケーションの間に仲介層を提供することで、採用顧客に大きな価値を提供しています。さらに、内部のオブジェクトモデルを外部の消費者に公開する必要がありません。RESTおよび非RESTサービスの両方を含む複数のバックエンドサービスと、洗練された複合アプリケーションとを、容易にオーケストレートすることができます。

実装

このユースケースでは、Muleを使用して既存のアプリケーションをどのように簡単に「RESTify (REST化)」したかを紹介します。「REST化」とは、既存のアプリケーションにRESTサービスのフロントエンドを作成することを意味します。

たとえば、営業チームがモバイルデバイスから次のような新しい販売機会を作成できるようにしたいとします。

  • Salesforce CRMの実装と次のことを同期化して実行します。
  • 一定額以上の商談が発生した場合、上長にメールで通知する。

REST

REST APIとJSONにより、より多くの(開発)言語やデバイスからバックエンドシステムに簡単にアクセスできるようになりました。

Salesforce統合

Salesforceは、アプリケーションのデータ照合に使用されます。Muleには、バルクAPIやストリーミングAPIなど、Salesforceとのコネクターや手プレートがあらかじめ用意されています。

SMTP

メールアラートを送信するアプリケーションです。Muleのモジュラーアーキテクチャにより、Apple Push、Android NotificationsやTwilio(SMS)など多くのチャネルに向けて、簡単にメッセージを送信することができます。

インテグレーションの基本原則

以下にインテグレーションの5つの基本原則を紹介します。それら原則のもとで、モバイルアプリのインテグレーションのユースケースも紹介します。

変換 (Transformation)

モバイルアプリからMuleのインターフェースを利用するためのデータ形式は、JSONが最適です。JSONは、モバイルアプリでもMuleでも非常に扱いやすいプロトコルです。この場合、モバイルデバイスから受信したJSONデータを、Salesforceに読み込める形式に変換することが課題となります。以下に簡単なJSONデータオブジェクトを示しますが、これらはモバイルアプリから受信するデータの種類を表しています。

輸送 (Transportation)

Muleのユースケースでは、モバイルアプリと対話するRESTベースのサービスと、HTTP上のSalesforceシステム、SMTPプロトコルを使用する追加の電子メールとを接続する場合に、トランスポートプロトコルネゴシエーションを行います。

オーケストレーション (Orchestration)

オーケストレーションとは、複数の基礎となるコンポーネントを、単一かつ高度な複合サービスに構成することです。このユースケースとしては、RESTベースのモバイルアプリとして、Salesforceの更新をシンプルなメールサービスに集約・配信することなどが一般的でしょう。Muleが提供しているシンプルなインテグレーションフローを使用してすべてを結合することが可能です。

仲介 (Mediation)

時間の経過とともにユーザー数も増加し、複数のバージョンのサービスのサポートが必要になることもあるでしょう。その際に役立つのが、仲介です。さらに、SOAP/XMLとJSONの間でマーシャリングを行う仲介コンポーネントを追加するだけで、このRESTベースのサービスに対して、追加のSOAPインターフェースを提供することが可能です(必要に応じて)。

機能しない統一性 (Non-functional Consistency)

インテグレーションの要件の本質は汎用的なものです。セキュリティ、ロギング、デプロイメント、ランタイムコンポーネントの管理といった、一般的な機能を提供しています。必須ではないが便利な機能や企業独自で必要となる機能もあるかもしれません。もちろんMuleも、これらの各要件に対応する機能を提供しています。

Muleのインテグレーションコンポーネント (Mule Integration Components)

Muleでは、このようなアプリケーションをスムーズに構成するために、シンプルなGUIを用意しています。モバイルアプリと通信するための最初のステップは、HTTPエンドポイントを使用することでしょう。そのエンドポイントが、RESTコンポーネントと結合されていれば、インテグレーションの実装はよりスムーズになります。これにより、モバイルアプリからJSONオブジェクトを取得するために必要な、複雑で面倒な作業のほとんどが解決されます。
またMuleでは、SalesforceやSAPなどの汎用システムに接続するため、「プレビルド」のクラウドコネクターを提供しています。これにより、インテグレーションの開発プロセスを短縮化することが可能です。GUI上で、コネクターをプロジェクトにドラッグし、ユーザー名とトークンを指定。呼び出したいオブジェクトを選択するだけで、インテグレーション開発が完了できます。同様に、フィルタリングロジックの追加や、メール送信用のSMTPサーバーとの通信も大幅に簡略化できます。

下図のプロジェクトフローは、Mule Studioを使用して構築されています。

概要

要するに、Muleによってなにが可能となるのでしょうか?
まず、Muleを使用することで、既存のアプリケーションをそのまま活用しながら、より高度なRESTサービスの構築・構成と、モバイルアプリとの簡単な接続が可能になります。

さらに、Muleが提供するプレビルドのコネクターを使用することで、モバイルアプリとSalesforceの連携がいかに簡単であるかも紹介しました。Salesforceのようなクラウドテクノロジーを採用する企業が直面する大きな課題の1つがデータの接続・連携・統合です。それらをMuleでスムーズに実現できるようになるため、企業にとって好ましいビジネス成果を手に入れられるでしょう。

また、モバイルデバイスは、幅広い顧客への配信チャネルとして、より重要になっています。Muleは、これらデバイスが要求する新しいインタラクションモデルに対応し、シンプルかつ拡張性と信頼性の高いアプローチで、既存のシステムと統合することも可能にします。

詳細はこちらから

APIセキュリティのベストプラクティスを知ることで、APIレイヤーに関する知識を深めることができます。