MuleSoft 入門(1)MuleSoft による API-led なアプリケーションネットワーク

December 19, 2019 Naoki Kitaarashi

こんにちは、アピリオ北嵐です。今回から MuleSoft 入門編ブログをシリーズに渡ってお届けしたいと思います。昨年 Salesforce 社に買収された MuleSoft は今年から日本でも本格的に展開が開始されています。アピリオ/ウィプロはグローバルでは 2016 年からお客様への MuleSoft 導入を支援しており、現在も世界中に延べ 200 名以上の資格保有者を有し、各拠点からプロジェクトを支援しています。日本でも MuleSoft Japan の立ち上げと歩調を合わせて MuleSoft チームを立ち上げ、お客様への支援を開始しております。

まだまだ日本語でのリソースが少なく日本人の開発者にとって MuleSoft の学習は少し大変な状況ですので、この入門シリーズでは MuleSoft が提唱する API 主導のシステム連携、MuleSoft Anypoint Platform の紹介、Anypoint Studio による API 開発の流れ、API の管理/デプロイ、カスタム開発の方法など、MuleSoft による API 開発の基本から簡単な応用テクニックまでを網羅しようと思っています。ブログは私と弊社 MuleSoft チームの中西が担当します。

MuleSoft とは

MuleSoft は 2006 年に MuleSource として創業され、2009 年に MuleSoft に社名を変更、そして 2018 年 5 月に Salesforce に買収され現在は Salesforce 傘下で事業活動が行われています。メインプロダクトである Mule は、Java ベースのライトウェイトな ESB(Enterprise Service Bus)であり、様々なアプリケーション、システム、ネットワークを統合するための統合プラットフォーム(Integration Platform)です。Mule は iPaaS(Integration Platform as a Service)として機能し、クラウドサービスとオンプレミスサービスを統合するための様々な機能とツールを提供します。

API-led Connectivity: API 主導のシステム連携

MuleSoft の最大の特徴は、クラウド環境でシステム間を連携する技術として主流になった RESTful API を使ってシステムを接続することをゴールにしていることです。従来のESBと言えば、レガシーからオープンまで様々なリソース/プロトコルをサポートし、それらを単一のデータソースに接続することを特徴としていましたが、MuleSoft は API-led Connectivity(API主導のシステム間連携)により、データとアプリケーションを再利用可能な形式で接続し提供することを目指しています。

[従来の ESB と MuleSoftプラットフォームの違い] 
※ モノリシック:全ての機能を1つの固まりとして集約している状態

MuleSoft における API はフラットに準備するのではなく、3層に分けて API によるアプリケーション・ネットワークを構築します。各層の特徴は下記の表のようになり、これらの層に分けて API を設計・開発することで、柔軟性と再利用性を最大限高めるのがベストプラクティスとされています。

APIの種類
説明

Experience API

(ユーザーエクスペリエンス)

API を使用するクライアントアプリケーションの違い(認証、I/F 項目、セキュリティなど)を吸収する層。この層を設けることで、Process API の再利用性を高めることができる

Process API

(業務プロセス)

複数の System API を組み合わせて、業務的な機能を提供する層

System API

(ソースシステム)

企業内部の既存のリソースやクラウド上の外部リソースにアクセスしてデータを取得・更新する機能を提供する API。この層では、再利用性を高くするために業務色をできるだけ排除して I/F を設計する

[MuleSoft における3層 API]

API の再利用

MuleSoft による API 環境の導入では、API の再利用性を高めることが重要視されています。この API の再利用を最大化できるように、API は下記の特徴を持つべきとされています。

  • HTTP ベースの RESTfull API として提供する(SOAPではなく REST )
  • 利用者が API を自由に検索できて、簡単に利用できる(組織内を探し回らなくても、能動的に見つけることが可能)
  • 実装が簡単で、再利用し易い単位で API が提供されている
  • 非機能(セキュリティ、性能、スケーラビリティ)もきちんと配慮されている

これらの特徴を全て満たせるように、MuleSoft は API の管理・運用のプラットフォーム、設計・実装のツール、クラウド上の API の実行環境、公開リポジトリと、組織における API の導入を支援する統合的なプラットフォームを提供しています。

C4E:Center for Enablement

C4E は MuleSoft による API-led なアプリケーションネットワークの構築を支える組織横断チームであり、組織への API の導入を支えるための要となります。この手のチームとしてはよくCoE(Center Of Excellence)が使われることが多いですが、CoE が物理的に単独のチーム(Centerlized)を表すのと比べると、 C4E は 複数のチームが協業して活動(Federated)することが大きな特徴となっていて、Mule の世界では再利用中心の API-led を広めていく役割を持つ組織横断チームを C4E と呼んでいます。

MuleSoft の導入を検討すべき組織とは

どのような組織が ESB の導入を検討すべきかについて、MuleSoft のホームページでは下記のようにガイドされています。

  • 社内に3つ以上のシステムがあり、接続する必要がある
  • 将来的に、複数のアプリケーション(クラウド、オンプレ)を接続する必要がある
  • 複数のプロトコル(REST API、SOAP、JMS、ホスト接続等)を用いてシステム間を連携する必要がある
  • 1つのサービスを複数のアプリケーションから利用させたい

MuleSoft は従来の ESB と比べて導入のしきいが低いプラットフォームではあるものの、社内にあるいくつかのシステムを Point to Point で接続するために使用するには too much だと考えます。レガシーシステムを含む多数のシステムとデータが社内に混在しているエンタープライズな企業で、"顧客データにアクセスしたいけど、最新かどうか分からない仕様書しか見つからない。担当者はAさんだったけど、部門移動して現在は誰に聞けばよいか分からない・・・。そもそもネットワーク的に繋がるのだろうか?"などという感じで、社内システムの複雑さゆえに DX 時代に求められるスピード感のある開発が行えないユーザーこそ、MuleSoft 導入の価値が大きいのではないでしょうか。

このシリーズを通して、MuleSoft を使った API ベースのシステム間連携の具体的なイメージをつかんでいたければ幸いです。
次回は Mule による API 開発・運用の要である Anypoint Platform について紹介したいと思います。

 

[MuleSoft 入門シリーズ]

MuleSoft 入門(1)MuleSoft による API-led なアプリケーションネットワーク

MuleSoft 入門(2)ようこそ Anypoint Platform へ

MuleSoft 入門(3)Anypoint Studio による API の実装

MuleSoft 入門(4)DataWeave によるデータ変換

MuleSoft 入門(5)Flow Designer で Mule アプリケーションを開発

MuleSoft 入門(6)MUnit による単体テスト

MuleSoft 入門(7)API 開発におけるテストの考え方

MuleSoft 入門(8)ポリシーと SLA

MuleSoft 入門(9)カスタムポリシーの開発

MuleSoft 入門(10)Mule API のバージョン管理

MuleSoft 入門(11)ランタイムログの自動アーカイブ

著者について

Naoki Kitaarashi

アピリオのシニアコンサルとしてクラウドの世界に身を投じてはや5年あまり。プロジェクトでの立場に応じて、アーキテクト、リーダー、デベロッパーと様々なロールの仕事に携わっています。続々と新しいサービスと技術が登場するSalesforceの世界はエンジニアとして常に刺激を持ち続けられるエリアであり、2019年からはMuleSoftソリューションの起ち上げに関わっています。しばらくはAPI-ledなシステム連携を広めることに全力投球!!

Naoki Kitaarashi のコンテンツをもっと見る
戻る
Apex 知識ゼロの Salesforce 初心者がバッチ開発担当となったが完成できた話
Apex 知識ゼロの Salesforce 初心者がバッチ開発担当となったが完成できた話

この6ヶ月の間で色濃く残る思い出といえば、なんといっても楽しいバッチ開発ライフを送れたことです。Java の知識を持つ私がどのようなステップを踏んで、Apex でバッチを書き上げたのかをご紹介します。

次へ
MuleSoft 入門(2)ようこそ Anypoint Platform へ
MuleSoft 入門(2)ようこそ Anypoint Platform へ

今回は、MuleSoft 上で API を開発・管理するための包括的な機能を提供するクラウド環境である「Anypoint Platform」についてご紹介します。API 主導のシステム連携をサポートするための幅広い...

アピリオまでお気軽にお問合せください

ご質問はこちら