見出し画像

【Japan Dreamin’ 2021】SalesforceインテグレーションパターンとMuleSoftの活用 をざっくりまとめてみた

2021年1月30日(土)に開催されたSalesfoeceのコミュニティカンファレンスであるJapan Dreamin’ 2021。今年は3回目の開催になりますがオンラインで開催されました。当日はYoutubeLiveとDiscode、そしてZoomと様々なツールを駆使して開催されました。わたくしも無事参加できたのですが、最近コンテンツがぽつぽつと公開されているのを見つけましたので、ちょっとテキスト化してみようかと思います。

第3弾はおなじみの岡本さんによるセッション「SalesforceインテグレーションパターンとMuleSoftの活用」・・・これは当日は見なかったほうのセッションでしたが・・・・こうしてYoutubeで見ることが出来るなんてオンライン開催も捨てたもんではないですね。

↓↓↓↓↓動画はこちら↓↓↓↓↓↓↓↓

Mulesoftの岡本です!からセッションは始まりました。

画像1

岡本さんは現在Mulesoft a SalesforceCompany(Salesforceの事業部的なポジション)にいます。日本リージョン1人目のアーキテクチャです。

画像2


Salesforceとインテグレーション

Salesforceのインテグレーションと言えばこの図です。Mulesoftが加わったことによってカスタマー360が簡単に色鮮やかにつながってハッピー・・・なのですがこの図はあくまで完成形であってそこに至るまでに考えないといけないことがあります。

画像4

全体のITの中でSalesforceは中心にいるわけではなく数多くあるシステムのひとつです。これらのデータの接続を統合的に管理する必要があります。こういった企業システム全体のインテグレーションを円滑に進めるのがMulesoftの責務です。

画像6

これをMulesoftではアプリケーションネットワークと呼んでいて、数あるシステムのインテグレーション(連携)の間にMulesoftが入ることによって連携がスムーズにし、モニタリングできるようになります。

結果としてITシステム全体を見渡せるようになります。

画像7

これを実際にSalesforceとつなぐ部分を具体的にどう効率化するかといった話でよく出てくるのがAPI-let Connectivityという考え方です。システム間を接続する方法は様々ありますが、これをAPIをベースにして、レイヤーに整理する事によって個々のインテグレーションを柔軟で開発生産性・再利用性高くできるという考え方です。このAPIを抽象化・可視化する・・・それらのプロセスをやりやすくするというのがをMulesoftの考え方です。

画像28


Salesforceと外部システムのインテグレーションにおける選択肢

Salesforceには様々なインテグレーションオプションがありますが、そのうち論理レイヤーがプロセスとデーターの部分についてパターンとそれに対するMulesoftの効能を紹介します。

画像11

インテグレーションを行うにあたっての10個あげています。タイミング、Salesforceスキル(Salesfoece側でどれだけコードを書かないか)、フレキシビリティ、通信方向、データの場所、プロトコル、エンドポイントの要件、セキュリティ、追加のツール、UXといった観点からどういったアプローチが必要なのかを考えてみます。

画像12


Lightning Connect

Salesforce側でカスタムオブジェクトと同様に扱える外部オブジェクトというものを生成し、そこからSalesforceのUIを通して最新のデータを参照する機能です。

ユーザがアクセスしたいデータだけを見たいときには適した方法です。コンプライアンス上Salesforceにデータを保管したくない場合にも適したケースでもあります。

ただこれにはデータソースがODataに対応していなければならないという制限があります。

画像13

ここにMulesoftを使ったアーキテクチャの場合としてはAPI Kit OData Extentionというのが用意されています。この場合ODataランタイムはMulesoftに向くことになりMulesoftがODataのプロトコルを分解し、データを変換し外部データソースを繫ぐことが出来ます。Mulesoftが適切に変換することでODBCやJDBCが使えます。またODataに対応していないデータソースと外部オブジェクトによる接続が可能になります。

画像26


Bulk/REST/SORP API

Salesforceにデータを入れる際に比較的よく使われるインテグレーションパターンです。基本的にSalesforceはAPIが用意されていてオブジェクトにクラット操作、Bulkオペレーションができます。この方式はガバナンスやバルクデータをどう用意するのか、どのプログラミングで変換するのかが課題です。またSORPの場合は煩雑になってしまうという課題もあります。

画像15

これをMulesoftを介することでシンプル化かつガバナンスを保持することが出来ます。当然Mulesotの中でバルクAPIの変換したり適切にセキュリティを保持する機能も提供されます。これによりインテグレーションがフレキシブルに実現します。

画像16


Streaming API (Push Topics)

CometDというプロトコルでHTTPのプロトコルを利用してセミリアルタイムを実現したアーキテクチャです。PushTopicsを確立するためにはプログラミングが必要になります。

画像17

CometDのライブラリを使ってプログラミングをするのは非常に煩雑になるためMulesoftを中心に置くことで解決できます。もしデータが受け取れなかった場合はReplayIDを使って受け取りデータの耐久性を維持できます。StreamingAPIのいいところは外部データセンターのデータがファイアーウォールによって守られていてもファイアーウィールに穴をあけなくてもSalesforceを通すことで適切にアクセスできます。

画像26


Platform Events

ストリーミングAPIの一種です。Push TopicsがSOQLで定義するのに対し、Platform Eventというバスに対してAPEXなどでイベントを送って、それが外部システムにプッシュ通知される考え方です。双方向で受け取ったイベントに対し返すことが出来るのがメリットです。データのタイプを自由に決められるためより業務合ったデータの形でやりとりすることができます。

画像19

これもMulesoftを介することによってPush Topicと同様のメリットを利点を得ることが出来ます。2WayイベントフローのようなものもMulesoftを介してサポートすることも出来ますし、Push Topicsと同様にクライアントアプリケーションでCommetDのライブラリをサービスコンシューマが実装する必要もありません

画像20

Change Data Capture

こちらもストリーミングAPIの一種で、オブジェクトが変更された際に変更履歴を自動的に送り付けるというタイプのものです。

画像21

こちらもMulesoftを介することで同じようなメリットを得ることが出来ます。Salesforce上でNoCodeでオブジェクトの項目を送ると選んで設定するだけなのでエンジニアがいない場合でもMulesoftのスペシャリストがいれば連携できるようになります。

画像22

Apex Callouts

Salesforce側でApexのプログラミングを行う事によって、SoapもしくはRestのコールアウトを行うというものです。単純にSalesforceのデータを外部に送ることも出来ますし、サードパーティのデータをApexのなかでApexRestで取ってきて外に送るということも出来ます。重要なところはApexの中でトランザクショナルに処理が行えるというところと、データがSalesforceのデータセンターを流れるという事です。

画像26

このApex CalloutsもMulesoftを介することによって、Apexコールアウト先のAPIポイントが無いような場合にいったんMulesoftにGWを置くとかMulesoft側でAPIを用意する・・で実現することが出来ます。

画像24

ワークフローアウトバンドメッセージ

Soapのみの対応ですがSalesforceのワークフロー/承認プロセスを使って任意のシステムに対してSoarのアウトバウンドコールをするものです。SalesforceスキルがNoCodeでよいというメリットがありますがカスタマイズ性に乏しいというデメリットもあります。

画像25

こういったものはあまり使い勝手がよくない部分がありますがMulesoftを使うとなるべくSalesforceのコードを書かずに表現力の高いインテグレーションを実現できるようになります

画像26


ここまで連携パターンを紹介してきましたがまとめとしては豊富なSalesforceもデータインテグレーションのパターンをMulesoftによってより柔軟性を実現できるという事です。

そして最後に告知です

Mulesoft Meetuo Tokyoというコミュニティイベントもあります。

アーキテクト・コンサルタント・・・募集しています。英語できなくても経験や能力があれな即戦力で行けると思います

画像27


<Japan Dreamin>

Japan Dreamin’ は Salesforce のコミュニティカンファレンスです。ビジネスユーザ・システム管理者・開発者・アーキテクト・マーケター・Salesforce 社員・Salesforce に関わる全ての人が組織や役割を超えて繋がることのできるイベントです。著名スピーカーによるセッションの他、参加者同士が楽しめるアクティビティをお届けします。

Youtubeチャンネル
















この記事が気に入ったらサポートをしてみませんか?