【Japan Dreamin’ 2021】SalesforceインテグレーションパターンとMuleSoftの活用 をざっくりまとめてみた
2021年1月30日(土)に開催されたSalesfoeceのコミュニティカンファレンスであるJapan Dreamin’ 2021。今年は3回目の開催になりますがオンラインで開催されました。当日はYoutubeLiveとDiscode、そしてZoomと様々なツールを駆使して開催されました。わたくしも無事参加できたのですが、最近コンテンツがぽつぽつと公開されているのを見つけましたので、ちょっとテキスト化してみようかと思います。
第3弾はおなじみの岡本さんによるセッション「SalesforceインテグレーションパターンとMuleSoftの活用」・・・これは当日は見なかったほうのセッションでしたが・・・・こうしてYoutubeで見ることが出来るなんてオンライン開催も捨てたもんではないですね。
↓↓↓↓↓動画はこちら↓↓↓↓↓↓↓↓
Mulesoftの岡本です!からセッションは始まりました。
岡本さんは現在Mulesoft a SalesforceCompany(Salesforceの事業部的なポジション)にいます。日本リージョン1人目のアーキテクチャです。
Salesforceとインテグレーション
Salesforceのインテグレーションと言えばこの図です。Mulesoftが加わったことによってカスタマー360が簡単に色鮮やかにつながってハッピー・・・なのですがこの図はあくまで完成形であってそこに至るまでに考えないといけないことがあります。
全体のITの中でSalesforceは中心にいるわけではなく数多くあるシステムのひとつです。これらのデータの接続を統合的に管理する必要があります。こういった企業システム全体のインテグレーションを円滑に進めるのがMulesoftの責務です。
これをMulesoftではアプリケーションネットワークと呼んでいて、数あるシステムのインテグレーション(連携)の間にMulesoftが入ることによって連携がスムーズにし、モニタリングできるようになります。
結果としてITシステム全体を見渡せるようになります。
これを実際にSalesforceとつなぐ部分を具体的にどう効率化するかといった話でよく出てくるのがAPI-let Connectivityという考え方です。システム間を接続する方法は様々ありますが、これをAPIをベースにして、レイヤーに整理する事によって個々のインテグレーションを柔軟で開発生産性・再利用性高くできるという考え方です。このAPIを抽象化・可視化する・・・それらのプロセスをやりやすくするというのがをMulesoftの考え方です。
Salesforceと外部システムのインテグレーションにおける選択肢
Salesforceには様々なインテグレーションオプションがありますが、そのうち論理レイヤーがプロセスとデーターの部分についてパターンとそれに対するMulesoftの効能を紹介します。
インテグレーションを行うにあたっての10個あげています。タイミング、Salesforceスキル(Salesfoece側でどれだけコードを書かないか)、フレキシビリティ、通信方向、データの場所、プロトコル、エンドポイントの要件、セキュリティ、追加のツール、UXといった観点からどういったアプローチが必要なのかを考えてみます。
Lightning Connect
Salesforce側でカスタムオブジェクトと同様に扱える外部オブジェクトというものを生成し、そこからSalesforceのUIを通して最新のデータを参照する機能です。
ユーザがアクセスしたいデータだけを見たいときには適した方法です。コンプライアンス上Salesforceにデータを保管したくない場合にも適したケースでもあります。
ただこれにはデータソースがODataに対応していなければならないという制限があります。
ここにMulesoftを使ったアーキテクチャの場合としてはAPI Kit OData Extentionというのが用意されています。この場合ODataランタイムはMulesoftに向くことになりMulesoftがODataのプロトコルを分解し、データを変換し外部データソースを繫ぐことが出来ます。Mulesoftが適切に変換することでODBCやJDBCが使えます。またODataに対応していないデータソースと外部オブジェクトによる接続が可能になります。
Bulk/REST/SORP API
Salesforceにデータを入れる際に比較的よく使われるインテグレーションパターンです。基本的にSalesforceはAPIが用意されていてオブジェクトにクラット操作、Bulkオペレーションができます。この方式はガバナンスやバルクデータをどう用意するのか、どのプログラミングで変換するのかが課題です。またSORPの場合は煩雑になってしまうという課題もあります。
これをMulesoftを介することでシンプル化かつガバナンスを保持することが出来ます。当然Mulesotの中でバルクAPIの変換したり適切にセキュリティを保持する機能も提供されます。これによりインテグレーションがフレキシブルに実現します。
Streaming API (Push Topics)
CometDというプロトコルでHTTPのプロトコルを利用してセミリアルタイムを実現したアーキテクチャです。PushTopicsを確立するためにはプログラミングが必要になります。
CometDのライブラリを使ってプログラミングをするのは非常に煩雑になるためMulesoftを中心に置くことで解決できます。もしデータが受け取れなかった場合はReplayIDを使って受け取りデータの耐久性を維持できます。StreamingAPIのいいところは外部データセンターのデータがファイアーウォールによって守られていてもファイアーウィールに穴をあけなくてもSalesforceを通すことで適切にアクセスできます。
Platform Events
ストリーミングAPIの一種です。Push TopicsがSOQLで定義するのに対し、Platform Eventというバスに対してAPEXなどでイベントを送って、それが外部システムにプッシュ通知される考え方です。双方向で受け取ったイベントに対し返すことが出来るのがメリットです。データのタイプを自由に決められるためより業務合ったデータの形でやりとりすることができます。
これもMulesoftを介することによってPush Topicと同様のメリットを利点を得ることが出来ます。2WayイベントフローのようなものもMulesoftを介してサポートすることも出来ますし、Push Topicsと同様にクライアントアプリケーションでCommetDのライブラリをサービスコンシューマが実装する必要もありません
Change Data Capture
こちらもストリーミングAPIの一種で、オブジェクトが変更された際に変更履歴を自動的に送り付けるというタイプのものです。
こちらもMulesoftを介することで同じようなメリットを得ることが出来ます。Salesforce上でNoCodeでオブジェクトの項目を送ると選んで設定するだけなのでエンジニアがいない場合でもMulesoftのスペシャリストがいれば連携できるようになります。
Apex Callouts
Salesforce側でApexのプログラミングを行う事によって、SoapもしくはRestのコールアウトを行うというものです。単純にSalesforceのデータを外部に送ることも出来ますし、サードパーティのデータをApexのなかでApexRestで取ってきて外に送るということも出来ます。重要なところはApexの中でトランザクショナルに処理が行えるというところと、データがSalesforceのデータセンターを流れるという事です。
このApex CalloutsもMulesoftを介することによって、Apexコールアウト先のAPIポイントが無いような場合にいったんMulesoftにGWを置くとかMulesoft側でAPIを用意する・・で実現することが出来ます。
ワークフローアウトバンドメッセージ
Soapのみの対応ですがSalesforceのワークフロー/承認プロセスを使って任意のシステムに対してSoarのアウトバウンドコールをするものです。SalesforceスキルがNoCodeでよいというメリットがありますがカスタマイズ性に乏しいというデメリットもあります。
こういったものはあまり使い勝手がよくない部分がありますがMulesoftを使うとなるべくSalesforceのコードを書かずに表現力の高いインテグレーションを実現できるようになります
ここまで連携パターンを紹介してきましたがまとめとしては豊富なSalesforceもデータインテグレーションのパターンをMulesoftによってより柔軟性を実現できるという事です。
そして最後に告知です
Mulesoft Meetuo Tokyoというコミュニティイベントもあります。
アーキテクト・コンサルタント・・・募集しています。英語できなくても経験や能力があれな即戦力で行けると思います
<Japan Dreamin>
Japan Dreamin’ は Salesforce のコミュニティカンファレンスです。ビジネスユーザ・システム管理者・開発者・アーキテクト・マーケター・Salesforce 社員・Salesforce に関わる全ての人が組織や役割を超えて繋がることのできるイベントです。著名スピーカーによるセッションの他、参加者同士が楽しめるアクティビティをお届けします。
Youtubeチャンネル