Salesforceと外部システム連携について(下)
ご挨拶
こんにちは!SHIFTのSalesforceグループの張です。
前回のブログ では、①アウトバウンド連携としてSalesforceから他のシステムのAPIを呼び出方法について記載しました。
今回は、②インバウンド連携として外部システムからSalesforceのAPIを利用する際の考慮事項について紹介したいと思います。 私の経歴は前回のブログでいたしましたので、今回は省略させていただきます。
外部システムからSalesforceへの連携
外部システムからSalesforceへの連携イメージは以下の図のようになります。
外部システムとSalesforceの連携設計において、考慮すべきポイントは以下の4つです。
ア:APIの種類の選択
APIを選択する前に、まずはユーザーケースをしっかりと整理することが重要です。ユーザーケースとは、実際に業務で行いたい処理内容や、扱うデータ、求められるパフォーマンスなどの要素を指します。この整理を通じて、最適なAPIを選択するための基盤を作りましょう。以下のポイントを考慮して、ユーザーケースを整理してください。
1. データの更新頻度とボリューム
大量データの処理が必要な場合
もし一度に大量のデータを処理しなければならない場合は、Bulk API や Batch API といったバッチ処理に特化したAPIを選ぶ ことをお勧めします。
これらは、大量データのインポートやエクスポートに適しており、データの一括処理が効率よく行えま す。
リアルタイムでのデータ処理が求められる場合
データの読み書きをリアルタイムで行う必要がある場合は、REST API や SOAP API を選択するのが良いでしょう。これらは同期的にデータの取得や更新を行うことができ、リアルタイムのやり取りに適しています。
2.システム間の連携の要件
異なるシステム間でのデータ交換が主な目的
異なるシステム間でデータの交換や連携を行う場合は、REST API や SOAP API がよく使われます。これらのAPIは柔軟性が高く、他のシステムとの統合が容易です。特に、REST API はWebサービスやモバイルアプリケーションとの連携でよく利用されています。
高いパフォーマンスと簡便さが求められる場合
もしリアルタイムでデータの変更を監視したり、高頻度でデータを受信する必要がある場合には、Streaming API を利用するのが適しています。このAPIを使用すると、リアルタイムでデータの変更を効率的に監視することができます。
3.レスポンスの速度と安定性
高速なレスポンスが求められる場合
高速なレスポンスが求められるアプリケーションでは、REST API や GraphQL API が最適です。これらのAPIは低遅延で効率的なデータの取得が可能であり、ユーザーの要求に迅速に応答できます。
スケーラビリティと安定性が重要な場合
多くのリクエストを処理しなければならない場合や、スケーラビリティが重視される場合は、REST API や SOAP API が適しています。これらのAPIは、負荷が高くても安定したパフォーマンスを提供することができます。
4.API利用のコストと制限
APIを利用する際には、コストや利用制限も重要な要素です。多くのAPIには使用回数やデータ量に制限があり、特に大量データを扱う場合や高頻度でAPIを呼び出す場合には、コストがかさむことがあります。選択するAPIがどのような制限を設けているか、また自分の予算と照らし合わせて、最適なAPIを選ぶことが必要です。
どのAPIを使用するか については、以下の表で簡潔にまとめています。整理したユーザーケースの内容を基に、最適なAPIを選択してください。
各種APIの開発者ガイドを以下参照してください:
イ:連携ETLツールの選択
ETLとは、Extract(抽出)、Transform(変換)、Load(ロード)の略で、データの抽出・変換・ロードを行うソフトウェアのことです。Salesforceと他のシステムを連携させる場合、ETLツールを利用してSalesforceからデータを抽出し、変換してから他のシステムにロードすることができます。ETLツールを使用することで、大量データを高速に処理でき、システムへの負荷を軽減し、データ変換処理も効率的に行えます。これにより、Salesforceと他のシステム自体の負荷も少なくなります。しかし、ETLツールを導入するには費用がかかります。
連携ツールを選定する際に考慮すべきポイントについては以下の通りです。
ウ:認証方式検討
適切な認証方式を選定するためには、セキュリティ要件や利便性を考慮する必要があります。認証方式にはいくつかの種類があり、システムの特徴に応じて最適なものを選択することが重要です。
今回は、SalesforceとMuleSoftの連携を例に説明します。
MuleSoftがSalesforceと接続する際には、Salesforceで接続アプリケーションを作成し、MuleSoftにConsumer Keyや証明書などを連携させます。MuleSoftで設定を行うことで、接続が可能になります。
MuleSoftとSalesforceの認証方式にはいくつかの種類があります。今回はその中からOAuth JWTを例に説明します。
・認識方式の種類が以下となります。
OAuth JWT認証接続の作成手順が以下①~③となります。(場合によって、設定内容が異なることがあります。ご了承ください。)
今回「自己署名証明書の作成」のイメージを記載致します。
接続アプリケーション作成イメージが以下となります。
接続アプリケーション作成完了後、コンシューマキーを確認して、MuleSoftチームに連携する。
コンシューマキーの確認イメージが以下となります。
③ ①②設定内容を基にMulesoftのSalesforceConnectを設定行います。設定完了後、接続テスト実行出来ます。ここは接続テスト実行を割愛します。
エ:その他考慮事項
連携に関するその他の考慮すべき点については、以下に記載します。
その他1:APIコールの制限(参照サイト:API 要求の制限と割り当て )
・ 同時APIコール数の制限
○ 20秒以上の同時コール数
○ 制限数: 25(DEとトライアル: 5)
・ 合計APIコール数の割り当て
○ 組織に対する24時間あたりのコール数
○100,000 +(ライセンス数×ライセンス種類ごとの割り当て)+追加
その他2:即応性・高負荷トランザクションが求められる要件は避ける
その他3:独自の連携処理をカスタムAPIとしてLightning Platform側で開発することで再利用性を上げ、APIコール数削減に寄与
おわりに
最後までお読みいただきありがとうございました。各システム間の連携は実際には複雑です。私は約4年、Salesforceと他のシステムの連携に携わる経験がありますが、自分の理解はまだ浅いと感じています。このブログは、これまでの経験を元に自分が理解できる範囲でまとめました。システム間のデータ連携の設計と開発の際、お役に立てたら嬉しいです。
《おすすめ関連マガジン》
お問合せはお気軽に
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/