- 目次
1.MuleSoftとそのビジネスインパクト
MuleSoft(※)はSalesforce社が提供するiPaaS(integration Platform as a Service)製品です。MuleSoftを導入することにより、異なるアプリケーションやデータソースを迅速かつ効率的に統合することが可能となります。その結果、業務プロセスの最適化、迅速なシステム統合、運用コストの削減、スケーラビリティの向上といった多くのビジネスインパクトをもたらします。またMuleSoftが提唱するAPI主導アーキテクチャに従うことで、ビジネスのスピードと柔軟性が大幅に向上し、競争力を強化できます。
2.MuleSoftのポテンシャルを引き出すためのシステムアーキテクチャ
MuleSoftはiPaaSとしての豊富な機能を備えており、MuleSoft単体でも様々な要件を実現できます。また、MuleSoftは他のサービスやプロダクトと連携するためのコネクタも多数提供しており、これらのコネクタと他のプロダクトを組み合わせることで、より複雑な要件の実現が可能です。さらに、開発・運用面に関しても、MuleSoftはAPIのライフサイクルをフルサポートするサービスを提供しています。
このように、MuleSoft単体でも十分にパワフルな製品ですが、これらのポテンシャルを有効に活用するためにはシステムアーキテクチャを十分に検討する必要があります。本記事では、より実践的なシステムアーキテクチャとして、MuleSoftと他のプロダクトとの組み合わせの例をご紹介します。
3.MuleSoftの実践的アーキテクチャ例
まず、MuleSoftや他のプロダクトを組み合わせたシステム間連携のための仕組み全体を、本記事では「システム間連携基盤」と表記しています。以下は当社の実際の事例をもとに作成した仮想的なシステム構成です。

当社では大規模システムを多く扱っており、iPaaSの連携元/先にはレガシーなシステムも多数含まれています。レガシーなシステムは、新たな投資が困難、改修コストが非常に高い、既存方式との統合が求められる、などの理由から、連携方式が複雑化することがしばしば発生します。
例えば、連携元システム側の制約により既存のメッセージング・キューでの連携方式を変更することができず、連携先システムの追加がアジリティ高く実現できないという問題がありました。この問題に対し、MuleSoftで既存のメッセージング・キューからメッセージを取得し、連携先システムに対してはより柔軟なインタフェースであるAPIを提供することで解決しました。また、認証認可については、既存システムで利用していた認証認可サービスをMuleSoftにも適用することで、システムの統合的なID管理を実現しています。このような事例は、既存システムを多く扱った経験があり、また難航しがちなシステム間の調整に強みを持つNTTデータだからこそ、全体最適なアーキテクチャを実現できた事例と言えます。
本記事は、当社のiPaaS構築ノウハウを基に、複数のサービスやプロダクトを組み合わせたシステム間連携方式の設計例をご紹介します。
3-1.認証認可サービス
既存システムが認証認可サービスを具備する場合、既存の認証認可サービスと連携することが要件として提示されることがあります。MuleSoftはその要件にも柔軟に対応できます。MuleSoftは標準でOIDCやSAMLに準拠しており、これらの仕様に基づいてAPIを保護することができます。また、MuleSoftはOAuth2.0のクライアント・クレデンシャルズフローに標準機能で対応しており、MuleSoft単体で認可機能を提供することも可能です。

3-2.データベース
システム間連携基盤への要件として、マスタデータを保持する機能が求められる場合があります。この場合、システム間連携基盤としてデータベースを持つことで、要件に対応することが可能となります。Database Connectorなどのコネクタを利用してMuleSoft外部のデータベースと連携し、データの永続化が可能です。また、MuleSoftは「Object Store v2」というKVSサービスを提供しています。キャッシュ機能などの短命なデータ保管用途の場合はObject Store v2を利用するとよいでしょう。

3-3.FTPサーバ
他システムと連携する際、連携元/先システム側の制約により既存IFを変更できない場合があります。従来のシステム間連携でよく利用されてきたFTPによるファイル転送IFはその代表的な例です。このような場合、FTP Connectorなどのコネクタを利用してMuleSoft外部のFTPサーバと連携することで要件に対応することができます。ただし、MuleSoftが提供するのはコネクタによるFTPクライアント機能であり、FTPサーバ機能は提供していない点には注意が必要です。

3-4.メッセージング・キュー
先のFTPの場合と同様に、連携先/元システムのメッセージング・キューと連携することが要件となる場合も想定されます。この場合、JMS ConnectorやAmazon SQS Connectorなどを利用して要件を実現することが可能です。メッセージング・キュー用のコネクタはプロダクト毎に多数提供されているため、プロダクトに合わせて柔軟・迅速に非同期方式を実現できます。また、MuleSoftはAnypoint MQというメッセージング・キューサービスも提供しています。これは、連携先/元システムのメッセージング・キューを利用するのではなく、MuleSoft内部で稼働するAnypoint MQを利用するものです。Anypoint MQを利用することで、MuleSoft単体でメッセージング・キューを構築することも可能になります。

3-5.ジョブスケジューラ
バッチ処理では、月初処理、月末処理など業務カレンダーベースでジョブ実行を制御する要件が想定されます。このような場合、ジョブスケジューラ製品とMuleSoftを連携することで、複雑なカレンダ制御を実現することが可能です。具体的には、HTTP Connectorなどを利用し、ジョブスケジューラからAPI経由でMuleSoft上のバッチ処理を起動します。なお、MuleSoftはcron準拠のスケジューラ機能を標準提供しています。一定時間間隔で起動するような定期バッチ実行などは、MuleSoftの標準スケジューラ機能を利用するとよいでしょう。

3-6.バージョン管理ツール・CI/CDツール
MuleSoftのアプリケーションはローコードベースで開発しますが、以下のようなツール・機能を組み合わせることで、開発ライフサイクル全体を効率化することができます。
(1)統合開発環境(IDE)
MuleSoftでは、Anypoint StudioやAnypoint Code BuilderといったMuleSoft専用の統合開発環境(IDE)が提供されています。これらのIDEはEclipseやVisual Studio Codeベースのため、MuleSoft開発の未経験者でも、スムーズにMuleSoft開発を進められます。
(2)バージョン管理ツール
ローコードベースであっても、Gitのようなバージョン管理ツールでのソフトウェア構成管理は非常に重要です。MuleSoftのソースコードは実際にはXML形式に変換されています。このXMLファイルをバージョン管理ツールで管理することで、チームでの共同開発が容易になります。
(3)MUnit
MuleSoftでは、アプリケーションの単体テストを実装するためのツールであるMUnitが提供されています。E2E(End to End)テストの前に単体テストを実施することで、段階的な品質保証が可能となります。
(4)API Platform API
開発したアプリケーションは、ブラウザからWebコンソールを操作することでMuleSoftの実行環境上にデプロイすることができますが、このような操作をAPI経由で実現するのがAPI Platform APIです。MuleSoftをAPI経由で制御することで、様々な自動化が容易になります。
これらのツール・機能を組み合わせ、CI/CDツールのパイプラインとして実行することで、実装・テスト・デプロイまでの一連の開発ライフサイクルを自動化することができます。その結果、コスト削減・開発アジリティ向上・アプリケーション品質向上といったメリットが得られます。

3-7.システム監視ツール
MuleSoftの運用/監視はAnypoint Monitoringサービスを利用して実現します。
Anypoint Monitoringは、APIの死活監視や、APIへのリクエスト数、CPU使用率などのメトリクス監視が可能です。また、要件によっては、MuleSoftのアプリケーションログのログ監視が求められます。この場合、MuleSoftのアプリケーションログをMuleSoft外部のシステム監視ツールに転送することで実現できます。具体的には、MuleSoftのアプリケーションは内部的にはJavaをベースに動作しているため、一般的なJavaのログライブラリであるLog4jを使用してアプリケーションログをMuleSoft外部のシステム監視ツールに転送します。

4.おわりに
本記事では、MuleSoftと他のプロダクトの組み合わせの例についてご紹介しました。
MuleSoftと他のプロダクトを組み合わせることで、そのポテンシャルをより有効に活用できることがご理解できたかと思います。本記事を契機にMuleSoftの活用の幅が少しでも広がれば幸いです。
NTTデータは今後もMuleSoftを含むiPaaSの取組に注力していく予定です。iPaaS導入を検討されている場合は是非お声がけください。
あわせて読みたい:
~NTTドコモグループがめざす巨大な法人会員基盤が支えるアジリティ追及のサイクルとは~