http://salesforcememo.com/2017/03/25/how-to-prepare-for-and-pass-integration-architecture-designer/
を翻訳しました。文責:佐野初夫(hsano@benkyoenkai.org)
Salesforce認定統合アーキテクチャデザイナーは、Salesforceプラットフォームを統合する安全でスケーラブルなソリューションを設計するために必要な統合要件を評価します。 設計者は、さまざまなプラットフォームへの複雑な統合パターンの設計と実装の経験があり、ビジネスと技術の利害関係者にソリューションと設計のトレードオフを伝えています。
基本から始めましょう。 コンピュータサイエンスの観点から統合(連携)とは何ですか? 定義はこうです:
さまざまなコンピューティングシステムとソフトウェアアプリケーションを物理的または機能的にリンクして、調整された全体として機能するプロセス。
ポイント トゥ ポイント
ハブアンドスポーク
エンタープライズサービスバス(ESB)
ミドルウェアは、異種のコンピュータシステムを接続し、それらが会話できるようにするソフトウェアです。ミドルウェアが提供する機能:
ミドルウェアの主要な概念:英語PDF
ETL(抽出、変換、ロード)
抽出、変換、ロード(ETL)とは、次のプロセスを指します。
トランザクション性(暗号化、署名、信頼できる配信、トランザクション管理)
トランザクション性は、必要な各リソースに対して必要なすべての操作を含むグローバルトランザクションをサポートする機能として定義できます。トランザクション性は、4つのACID(原子性、一貫性、分離、耐久性)のすべてのプロパティのサポートを意味します。原子性は、作業単位(トランザクション)のオールオアナッシングの結果を保証します。
Salesforceはそれ自体がトランザクションですが、Salesforceの外部で開始された分散トランザクションやトランザクションには参加できません。したがって、複雑なマルチシステムトランザクションを必要とするソリューションでは、トランザクション性(および関連するロールバック/補償メカニズム)がミドルウェアレイヤーに実装されていると想定されます。
キューイングとバッファリング
キューイングとバッファリングは、要求と応答のアーキテクチャではなく、一般に非同期メッセージパッシングに依存しています。非同期システムでは、宛先プログラムがビジーであるか、接続が危険にさらされている場合、メッセージキューは一時的なストレージを提供します。さらに、ほとんどの非同期ミドルウェアシステムは、メッセージキューをバックアップするための永続的なストレージを提供します。
非同期メッセージプロセスの主な利点は、受信側アプリケーションが何らかの理由で失敗した場合でも、送信側が影響を受けずに続行できることです。送信されたメッセージは、受信側が再起動した後の処理のためにメッセージキューに蓄積されるだけです。
Salesforceは、ワークフローベースのアウトバウンドメッセージの形式で、明示的なキュー機能のみを提供します。他の統合シナリオ(オーケストレーション、プロセスの振り付け、サービスの品質など)に真のメッセージキューを提供するには、ミドルウェアソリューションが必要です。
Salesforceは、主要な統合パターンとそれらの実際の使用例を含む非常に有益なPDFを作成しました。
ソース:開発ドキュメント
Force.comプラットフォームと統合するには非常に多くの方法があるため、適切な統合の選択を行うことが、配備を成功させるための鍵になることがよくあります。 次のセクションでは、利用可能な各オプションについてもう少し詳しく説明します。
Apexクラスとメソッドを公開して外部アプリケーションがRESTアーキテクチャを介してコードにアクセスできるようにする場合は、Apex REST APIを使用します。 Apex REST APIは、承認のためにOAuth 2.0とセッションIDの両方をサポートしています。
ApexメソッドをSOAP WebサービスAPIとして公開して外部アプリケーションがSOAP経由でコードにアクセスできるようにする場合は、Apex SOAP APIを使用します。 Apex SOAP APIは、承認のためにOAuth 2.0とセッションIDの両方をサポートしています。
メールサービスを使用して、受信メールのコンテンツ、ヘッダー、添付ファイルを処理できます。たとえば、メッセージの連絡先情報に基づいて連絡先レコードを自動的に作成するメールサービスを作成できます。この機能を利用するには、Messaging.InboundEmailHandlerインターフェースを実装するグローバルクラスを作成する必要があります。
global class CreateTaskEmailExample implements Messaging.InboundEmailHandler
Universal Containersは、お客様がサポートリクエストをメールで送信できるように、メール-to-ケースを実装しました。 ケースは正しく作成されているが、メールの添付ファイルがケースに直接添付されていないことがわかりました。 代わりに、それらはオープンアクティビティ関連リストの下の電子メールに添付されていました。
添付ファイルがケースに直接添付されるようにするには、どの2つのオプションを検討する必要がありますか?
2つの答えを選択してください。
Salesforce UIでデータを単純に表示するには、CanvasまたはCustom Web Tabの実行を確認できます。 認証が必要な場合はCanvasを使用し、認証されていない外部Webサイトを表示する必要がある場合はCustom Web Tabを使用します。
セールスフォースでどうやって連携するの?
https://www.slideshare.net/RoyGilad/integration-the-cloud-implementation
様々なソリューションがあります。連携を構築する前に、まず次のj質問に答えましょう。
1.連携したいのはどれ?=>ユーザインターフェース/ロジック/データ
2.どれくらいの量?=>10代、1,000代、10,000代、1,000,000代
3.どの程度の頻度?=>リアルタイム/時間/日/週
4.同期が必要?=>同期/非同期
Salesforceには2つのWSDLファイルが用意されていますが、違いは何ですか?
エンタープライズWSDL:
上記の理由により、Enterprise WSDLは主にお客様を対象としています。
パートナーWSDL:
上記の理由により、Partner WSDLは主にパートナーを対象としています。
Bulk APIはRESTful APIであり、大量のデータセットのロードまたは削除に最適です。これを使用して、Salesforceがバックグラウンドで処理するバッチを送信することにより、多数のレコードを非同期でクエリ、挿入、更新、アップサート、または削除できます。
Workbenchは、Bulk REST APIへのインターフェースを提供します。
データの処理は通常、次のステップで構成されます。
リモートシステムへの呼び出しでは、要求の機密性、整合性、および可用性を維持する必要があります。次のセキュリティに関する考慮事項は、このパターンでのApex SOAPおよびHTTP呼び出しの使用に固有です。
Integration Architectがリモートシステムへの安全で認証された接続を確立して、リモートシステムがSalesforceを信頼するようにするために推奨するメカニズムはどれですか。答えを1つ選択してください
ブラウザーのセームオリジンポリシーに違反する可能性のあるマルチドメインに、クライアント側のコールアウトを行うVisualforceページを作成するときに、統合アーキテクトが考慮すべき2つのことは何ですか?2つの答えを選択してください
Universal Containersは、SalesforceがETLツールからの安全な接続のみを受け入れるようにしたいと考えています。カスタムApex Webサービスへの呼び出しはどのように保護する必要がありますか?答えを1つ選択してください
Salesforceは、名前付き資格情報をコールアウトエンドポイントとして指定するコールアウトのすべての認証を、たとえ必要がなくても管理します。
名前付き資格情報で定義されているサイトについて、外部サイトへの呼び出しに必要なリモートサイト設定をスキップすることもできます。
以上