コンテンツにスキップ

システム全体像を描く

ほかに 28 言語で読めます

English · Español · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Français (Canada) · Deutsch (Schweiz)

A hand-drawn map of a region in ink and watercolor, half finished: towns, roads, a river and a rail line on one side, faint pencil lines on bare paper on the other.
AI で生成した画像

モジュール4/6:Data Architectコース第4章「企業のデータを理解する」。各モジュールは単独でも読めます。 前へ:Salesforceを取り巻くシステム · 次へ:組織戦略は全体像の判断である

このモジュールが答える問い: データがどこへ行くのかを示す全体像は、どう描けばよいのか?

新しいシナリオと真っ白なホワイトボードを渡されたら、私が最初に描くものの一つがシステム全体像です。美しくなくていいし、すべてのAPIも、まだデータモデルも要りません。企業全体を見たいのです。ユーザーは誰か、どのシステムが関わっているか、Salesforceはどこにあるか、何がそれを取り巻いているか、データはどこから来てどこへ行くか。そして矢印をたどりたいのです。よい全体像は箱の絵ではありません。アーキテクチャ上の判断をあらわにする方法です。

真っ白なキャンバスから始める

Section titled “真っ白なキャンバスから始める ”

私はCTAの候補者にこれを練習させます。シナリオを読み、それから描き始める。頭の中で全部解けるまで待たないでください。描くことが解く助けになります。だから初日の後の宿題は、データモデルに挑戦する前に全体像を描き始めることなのです。データモデルを先に描けば、何がSalesforceに属するかをもう決めつけています。全体像を先に描けば、その判断を形づくるべきシステムが見えます。

高いところから始めて、掘り下げていきましょう。まず企業全体、それから重要なところの細部へ。

スティーブの全体像のレイアウト スティーブのシステム全体像のレイアウト。まだ矢印はない。左に上から順に、社内ユーザー、パートナーユーザー、顧客。中央に雲のついた青いSalesforce(設計の中心となる組織)があり、その下にパートナーコミュニティと顧客コミュニティが接している。上には、左上に公開Webサイト、Salesforceの上に従業員用IDプロバイダーとパートナー用IDプロバイダー、右に寄せた電子署名用のAppExchangeアプリ。Salesforceの右に連携層があり、同じ列のその下にData 360がある(ニアコア:コアで管理し、コアの外でホストする。ユーザーが直接つながることはなく、多くのバックエンドシステムに届く)。その先に社内システム:ERP、財務、注文管理、ウェアハウス。下には顧客チャネル:メール、Webフォーム、電話、メッセージング。右下にはデータの入出力:アーカイブ、データロード、そしてコピーせず参照する外部データ。6つのステップフレームで組み上がる:空のゾーン、次に人々、Salesforceとそのコミュニティ、上のID、連携層と社内システム、最後にチャネルとデータ。 上:ID、APPEXCHANGE、WEB 人 右:社内システム 下:顧客チャネル 右下:データの出入り © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

ステップ1/6:真っ白なキャンバス。ゾーンだけです。

スティーブの全体像レイアウト

Section titled “スティーブの全体像レイアウト ”

システム全体像の描き方はたくさんあります。これは私のやり方にすぎません。長年かけて磨いてきたもので、全体像をすばやく組み立てる方法を見てもらうために紹介します。私はすべてのSalesforceの全体像にこれを使っていて、それは一つの文のように読めます。左の人々が中央のSalesforceにアクセスし、上のシステムを通じて信頼され、下のチャネルを通じてサービスを受け、右のバックオフィスとつながる。

左に人々。上から順に、社内ユーザー、パートナー、顧客。 まだすべてのペルソナではありません。**誰がこのアーキテクチャにたどり着こうとしているのか?**に答えられる程度で十分です。それぞれのグループは、自分が入ってくる場所を指します。社内ユーザーはSalesforceへ、パートナーはパートナーコミュニティへ、顧客は顧客コミュニティへ。システムはそれだけで存在しているのではありません。誰か、あるいは何かがそれを使おうとしているのです。

スティーブの全体像のレイアウト スティーブのシステム全体像のレイアウト。まだ矢印はない。左に上から順に、社内ユーザー、パートナーユーザー、顧客。中央に雲のついた青いSalesforce(設計の中心となる組織)があり、その下にパートナーコミュニティと顧客コミュニティが接している。上には、左上に公開Webサイト、Salesforceの上に従業員用IDプロバイダーとパートナー用IDプロバイダー、右に寄せた電子署名用のAppExchangeアプリ。Salesforceの右に連携層があり、同じ列のその下にData 360がある(ニアコア:コアで管理し、コアの外でホストする。ユーザーが直接つながることはなく、多くのバックエンドシステムに届く)。その先に社内システム:ERP、財務、注文管理、ウェアハウス。下には顧客チャネル:メール、Webフォーム、電話、メッセージング。右下にはデータの入出力:アーカイブ、データロード、そしてコピーせず参照する外部データ。6つのステップフレームで組み上がる:空のゾーン、次に人々、Salesforceとそのコミュニティ、上のID、連携層と社内システム、最後にチャネルとデータ。 上:ID、APPEXCHANGE、WEB 人 右:社内システム 下:顧客チャネル 右下:データの出入り 社内ユーザー 営業、サービス、オペレーション パートナーユーザー 顧客 人 © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

ステップ2/6:誰がこのアーキテクチャにたどり着こうとしているのか?

中央にSalesforce。 飾りのない箱が一つ。Salesforceが企業の中心だからではありません(そうではないと3つのモジュールで言ってきました)。それが、私がその周りを設計しているシステムだからです。それが錨なのです。

そのすぐ下に、接するようにコミュニティ。 パートナーコミュニティと顧客コミュニティは別々のエンドポイントなので、それぞれ自分の箱を持ちます。しかし、Salesforceにぴったり接して置きます。同じ組織の中で動いているので、たどり着くのに連携は何も要らないからです。

スティーブの全体像のレイアウト スティーブのシステム全体像のレイアウト。まだ矢印はない。左に上から順に、社内ユーザー、パートナーユーザー、顧客。中央に雲のついた青いSalesforce(設計の中心となる組織)があり、その下にパートナーコミュニティと顧客コミュニティが接している。上には、左上に公開Webサイト、Salesforceの上に従業員用IDプロバイダーとパートナー用IDプロバイダー、右に寄せた電子署名用のAppExchangeアプリ。Salesforceの右に連携層があり、同じ列のその下にData 360がある(ニアコア:コアで管理し、コアの外でホストする。ユーザーが直接つながることはなく、多くのバックエンドシステムに届く)。その先に社内システム:ERP、財務、注文管理、ウェアハウス。下には顧客チャネル:メール、Webフォーム、電話、メッセージング。右下にはデータの入出力:アーカイブ、データロード、そしてコピーせず参照する外部データ。6つのステップフレームで組み上がる:空のゾーン、次に人々、Salesforceとそのコミュニティ、上のID、連携層と社内システム、最後にチャネルとデータ。 上:ID、APPEXCHANGE、WEB 人 右:社内システム 下:顧客チャネル 右下:データの出入り 社内ユーザー 営業、サービス、オペレーション パートナーユーザー 顧客 パートナーコミュニティ 顧客コミュニティ Salesforce 設計の中心となる組織 Salesforce コミュニティ 人 © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

ステップ3/6:中央にSalesforce、そのすぐ下にコミュニティ。

上にID。 開発者が忘れがちなIDプロバイダーを一番上に置きます。社内ユーザー用に一つ、パートナー用にもう一つあるかもしれません。AppExchangeパッケージもそこに置き、右に寄せます。それらは組織とデータをやりとりするバックオフィスシステムではなく、組織に持ち込まれる機能だからです。公開Webサイトは左上に置きます。

スティーブの全体像のレイアウト スティーブのシステム全体像のレイアウト。まだ矢印はない。左に上から順に、社内ユーザー、パートナーユーザー、顧客。中央に雲のついた青いSalesforce(設計の中心となる組織)があり、その下にパートナーコミュニティと顧客コミュニティが接している。上には、左上に公開Webサイト、Salesforceの上に従業員用IDプロバイダーとパートナー用IDプロバイダー、右に寄せた電子署名用のAppExchangeアプリ。Salesforceの右に連携層があり、同じ列のその下にData 360がある(ニアコア:コアで管理し、コアの外でホストする。ユーザーが直接つながることはなく、多くのバックエンドシステムに届く)。その先に社内システム:ERP、財務、注文管理、ウェアハウス。下には顧客チャネル:メール、Webフォーム、電話、メッセージング。右下にはデータの入出力:アーカイブ、データロード、そしてコピーせず参照する外部データ。6つのステップフレームで組み上がる:空のゾーン、次に人々、Salesforceとそのコミュニティ、上のID、連携層と社内システム、最後にチャネルとデータ。 上:ID、APPEXCHANGE、WEB 人 右:社内システム 下:顧客チャネル 右下:データの出入り 社内ユーザー 営業、サービス、オペレーション パートナーユーザー 顧客 公開Webサイト 従業員用IdP シングルサインオン パートナー用IdP シングルサインオン AppExchangeアプリ 電子署名 パートナーコミュニティ 顧客コミュニティ Salesforce 設計の中心となる組織 Salesforce コミュニティ 人 ID、アプリ、Web © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

ステップ4/6:上にID。開発者が忘れる箱です。

右に連携、その先にバックオフィス。 連携層、つまりESBやiPaaS(名前が挙がっているならMuleSoft)は、Salesforceのすぐ右にある縦長のバーです。社内システムはその後ろに置きます。ERP、財務、注文管理、従来システム、ウェアハウス。これでページは左から右へ読めます。人々、Salesforce、連携、バックオフィス。

スティーブの全体像のレイアウト スティーブのシステム全体像のレイアウト。まだ矢印はない。左に上から順に、社内ユーザー、パートナーユーザー、顧客。中央に雲のついた青いSalesforce(設計の中心となる組織)があり、その下にパートナーコミュニティと顧客コミュニティが接している。上には、左上に公開Webサイト、Salesforceの上に従業員用IDプロバイダーとパートナー用IDプロバイダー、右に寄せた電子署名用のAppExchangeアプリ。Salesforceの右に連携層があり、同じ列のその下にData 360がある(ニアコア:コアで管理し、コアの外でホストする。ユーザーが直接つながることはなく、多くのバックエンドシステムに届く)。その先に社内システム:ERP、財務、注文管理、ウェアハウス。下には顧客チャネル:メール、Webフォーム、電話、メッセージング。右下にはデータの入出力:アーカイブ、データロード、そしてコピーせず参照する外部データ。6つのステップフレームで組み上がる:空のゾーン、次に人々、Salesforceとそのコミュニティ、上のID、連携層と社内システム、最後にチャネルとデータ。 上:ID、APPEXCHANGE、WEB 人 右:社内システム 下:顧客チャネル 右下:データの出入り 社内ユーザー 営業、サービス、オペレーション パートナーユーザー 顧客 公開Webサイト 従業員用IdP シングルサインオン パートナー用IdP シングルサインオン AppExchangeアプリ 電子署名 パートナーコミュニティ 顧客コミュニティ 連携層(ESB) ERP 注文、請求書 財務 支払い 注文管理 ウェアハウス 分析 Salesforce 設計の中心となる組織 Salesforce コミュニティ 人 ID、アプリ、Web 社内システム 統合レイヤー © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

ステップ5/6:連携、その先にバックオフィス。

下にチャネル。 顧客と直接つながるものなら何でも。メール-to-ケース、Web-to-リード、電話、メッセージング。

右下にデータの入出力。 外部のデータソース、アーカイブ、データロード。

Data 360は右側、連携層の下に。 ユーザーが接続することはなく、そのテナントは多くのバックエンドシステムに接続するので、配管と一緒に、それらの線が短くなる場所に置きます。社内システム、ウェアハウス、右下のデータのそばです。データチームはその画面を開きますが、その画面は組織の中にあります。Data 360はニアコア、つまりコア上で管理され、コアの外でホストされています(モジュール1)。Salesforceに戻る1本の線が、誰がそれを管理しているかを示します。箱をどこに置くかが、それが何をするのかを物語るべきです。

この配置のどれも神聖なものではありません。決まりごとの価値は、毎回視覚的な言語を発明し直さなくて済むことと、私の図を一度見た人なら次の図をもっと速く読めることにあります。

スティーブの全体像のレイアウト スティーブのシステム全体像のレイアウト。まだ矢印はない。左に上から順に、社内ユーザー、パートナーユーザー、顧客。中央に雲のついた青いSalesforce(設計の中心となる組織)があり、その下にパートナーコミュニティと顧客コミュニティが接している。上には、左上に公開Webサイト、Salesforceの上に従業員用IDプロバイダーとパートナー用IDプロバイダー、右に寄せた電子署名用のAppExchangeアプリ。Salesforceの右に連携層があり、同じ列のその下にData 360がある(ニアコア:コアで管理し、コアの外でホストする。ユーザーが直接つながることはなく、多くのバックエンドシステムに届く)。その先に社内システム:ERP、財務、注文管理、ウェアハウス。下には顧客チャネル:メール、Webフォーム、電話、メッセージング。右下にはデータの入出力:アーカイブ、データロード、そしてコピーせず参照する外部データ。6つのステップフレームで組み上がる:空のゾーン、次に人々、Salesforceとそのコミュニティ、上のID、連携層と社内システム、最後にチャネルとデータ。 上:ID、APPEXCHANGE、WEB 人 右:社内システム 下:顧客チャネル 右下:データの出入り 社内ユーザー 営業、サービス、オペレーション パートナーユーザー 顧客 公開Webサイト 従業員用IdP シングルサインオン パートナー用IdP シングルサインオン AppExchangeアプリ 電子署名 パートナーコミュニティ 顧客コミュニティ Data 360 ニアコア:コアで管理し、コ アの外でホストする 連携層(ESB) ERP 注文、請求書 財務 支払い 注文管理 ウェアハウス 分析 メール メール-to-ケース Webフォーム Web-to-リード 電話 コンタクトセンター メッセージング SMS、チャット アーカイブ 古いケース データロード 移行 外部データ コピーせず参照 Salesforce 設計の中心となる組織 Salesforce コミュニティ 人 ID、アプリ、Web 社内システム 顧客チャネル データの出入り 統合レイヤー 破線:まだ稼働していない、または参照のみ © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

ステップ6/6:レイアウト全体。まだ矢印はありません。以降の全体像はすべてこの位置を保ちます。

表記はシンプルに保ちましょう。すべてのシステムはカードです。名前、役割、そしてそれがどんな種類のものかを示す小さなアイコン。ERP、データベース、IDプロバイダー、人々のグループ。いま説明した領域は、ラベル付きの薄いゾーンとして描くので、レイアウトそのものが見えます。下部の凡例が、すべてのアイコンと線の意味を示します。

箱の中に詰め込みすぎないでください。Salesforceをその部品に開いて描く(組織の中にSales CloudとService Cloudを置き、その間に矢印を引く)のは、非常に複雑な全体像のときだけです。そして、それぞれが読み手に何かを伝えるのでない限り、15種類もの図形を発明しないでください。誰かが全体像を30秒見て、アーキテクチャを理解し始められるようにしたいのです。凝っていても役に立ちません。役に立つのは明快さです。

ボリュームを考えるのに詳細設計を待たないでください。一晩に500件の製品を運ぶ矢印と、1日に20万件のGPSの読み取り値を運ぶ矢印は、全体像の上ではまったく同じに見えることがあります。同じ問題ではありません。ですから、矢印を1本でも描く前に、何が動くのかを数えましょう。絵の背後の一覧表を、件数から始めます。重要なデータセットごとに1行、そのボリュームとともに。ゼロは矢印の上には決して現れないかもしれませんが、大きな数に入るのがいつなのかは知っておく必要があります。1時間に数千件や数百万件、数十万件のトランザクション、さらには1秒に数十から数百件のトランザクション。

その数字が仕組みを決めます。一晩に数百件のレコードならバッチです。誰かが待っている呼び出しは、ボリュームが許すなら同期にできます。1秒に数十から数百件なら、レコードごとの呼び出しではなく、プラットフォームイベントのようなイベントが必要かもしれません。矢印は同じに見えます。何がそれを運ぶかを決めるのはボリュームです。だから、仕組みを選ぶ場所である一覧表に記録しましょう。

仕組みは矢印の向きさえ変えることがあります。1分に数件のレコードを送るなら、Salesforceは単純に外部を呼び出せます。矢印はSalesforceから始まります。はるかに多く送るなら、Salesforceは代わりにイベントバスにイベントを発行するかもしれません。外部システムがそれを購読し、取りに呼び出してくるので、今度は矢印が反対側から始まります。さらに大きく、たとえば数百万件のレコードの夜間同期なら、それはバッチ処理です。ですから、仕組みを設計し始めるときには、早めに件数を知っておきましょう。件数は矢印を描き直させることがあるからです。

ボリュームが重要になる場所は2つあり、理由も2つです。データモデルでは、大量データに目を光らせ、アーカイブを計画するために必要です。第2部で深く扱います。システム全体像では、一覧表の大きな数字が、連携パターンと仕組みの選択を決めます。モジュール6では、Steve Truckingの全体像とその一覧表に本物のゼロを書き込みます。件数が手に入ったら、矢印を描きましょう。

システムが配置できたら、それらをつなぎましょう。そこで全体像はアーキテクチャになります。箱はシステムであり、矢印は誰が接続を始めるかを示します。 矢印は接続を開くシステムから始まり、それが呼び出す相手を指します。クライアントからサーバーへ。ラベルが、何がどちらの向きに動くかを示します。

この決まりは、システム同士が話をしているシステム全体像のためのものです。データフロー図では、予想どおり矢印はデータに従います。全体像の決まりをほかの図に持ち込まないでください。混乱を増やすだけです。

矢印を加えた全体像 同じ全体像に、今度は矢印を加えたもの。各矢印は接続を開くシステムから始まり、ラベルが何がどちらの向きに動くかを示す。社内ユーザーはSalesforceへ、パートナーユーザーはパートナーコミュニティへ、顧客は顧客コミュニティへアクセスする。各IDプロバイダーとSalesforceは証明書を共有しており、両端に証明書のある緑の点線で示す。これは直接の呼び出しではなく信頼である。サインオンはユーザーのブラウザを経由するリダイレクトとして伝わるからだ。従業員用IDプロバイダーはSalesforceにユーザー更新も送る。SalesforceはAppExchangeの電子署名アプリに文書を送り出し、連携層に注文を送り出す。連携層はSalesforceに製品を送り込む。連携層はERPに注文を送り出してERPから製品を取り込み、ERPは連携層に注文ステータスを送り込み、連携層は財務から支払いを取り込む。連携層の下にあるData 360は自ら接続を開く:SalesforceからCRMデータを取り出し、ウェアハウスにはゼロコピーで届き、外部データを参照する。下からは、メールがSalesforceにケースを、WebフォームがSalesforceにリードを送り込む。Salesforceはアーカイブに古いケースを送り出し、データロードはレコードを送り込む。 上:ID、APPEXCHANGE、WEB 人 右:社内システム 下:顧客チャネル 右下:データの出入り 社内ユーザー 営業、サービス、オペレーション パートナーユーザー 顧客 公開Webサイト 従業員用IdP シングルサインオン パートナー用IdP シングルサインオン AppExchangeアプリ 電子署名 パートナーコミュニティ 顧客コミュニティ Data 360 ニアコア:コアで管理し、コ アの外でホストする 連携層(ESB) ERP 注文、請求書 財務 支払い 注文管理 ウェアハウス 分析 メール メール-to-ケース Webフォーム Web-to-リード 電話 コンタクトセンター メッセージング SMS、チャット アーカイブ 古いケース データロード 移行 外部データ コピーせず参照 Salesforce 設計の中心となる組織 共有証明書 ユーザー更新 共有証明書 出ていく文書 出ていく注文 入ってくる製品 出ていく注文、入ってくる製品 入ってくる注文ステータス 入ってくる支払い 出ていくCRMデータ ゼロコピー 参照 入ってくるケース 入ってくるリード 出ていく古いケース 入ってくるレコード Salesforce コミュニティ 人 ID、アプリ、Web 社内システム 顧客チャネル データの出入り 統合レイヤー 破線:まだ稼働していない、または参照のみ 接続を開くシステムから始まる。ラベルは何が動くかを示す 共有証明書:信頼、直接の呼び出しなし © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

矢印を加えました。どの箱も元の場所のままです。それぞれの矢印は接続を開くシステムから始まり、そのラベルが何がどちらの向きに動くかを示します。

ですから、連携層がSalesforceに製品を送り込むなら、矢印は連携層からSalesforceへ向かい、ラベルは入ってくる製品です。Salesforceが取りに外部を呼び出すなら、矢印はSalesforceから始まりますが、ラベルはやはり入ってくる製品です。同じデータでも会話が違い、その違いが、誰が認証情報を必要とし、誰が失敗を処理しなければならないかを教えてくれます。Salesforceは連携層を通じて注文を送ります。出ていく注文です。ERPの出荷情報が返ってきます。入ってくる注文ステータスです。これで、誰がそれぞれの会話を始めるのか、データがどこでSalesforceに入り、どこで出ていくか、どの流れが境界を越えるか、所有がおそらくどこにあるか、どこでさらに問う必要があるかが見えます。

そしてモジュール1を思い出してください。流れが一つしか見えないと、私は心配になります。高いレベルでは、出ていく注文の矢印は、逆向きの流れに依存しています。入ってくる顧客、入ってくる製品、価格。さらに深く見れば、帰りの道があります。受け付け、拒否、ステータス、請求書番号、キャンセル。矢印が、異を唱えるための具体的なものを与えてくれます。

すべての矢印には仕組みが必要

Section titled “すべての矢印には仕組みが必要 ”

ここで全体像はPowerPointのアートではなくなります。レビューボードでは、どの矢印にも3つの問いが投げかけられ得るので、答えを持っていてほしいのです。

  • どう認証するのか? OAuth、証明書、指定ログイン情報、それとも別の何か?
  • 同期か非同期か? SalesforceはERPを待つのか、それとも発行して先に進むのか? ビジネスはどれくらい速く結果を必要としているか?
  • 仕組みは何か? REST呼び出し、イベント、ファイル、メッセージキュー。MuleSoftを通るのか、直接か?

そして、相手側が止まっていたら何が起きるのか? すべての矢印には仕組みが必要です。 説明できないなら、その線は飾りです。

そして「投げっぱなし」は答えではありません。たいていは「投げた後に何が起きるかを設計していない」という意味です。届いたのか? 受け付けられたのか? 失敗したのか? 再試行するのか? 詰まっていることを誰が知るのか? 同じメッセージが2回届いたら? そのどれも全体像には載せません。載せたら読めなくなります。しかし矢印は、そうした問いが存在することをあなたに気づかせるべきです。

どれか1本の矢印を拡大すると、そこにはクライアントとサーバーがあり、それぞれが自分の半分を所有しています。クライアントは接続を開きます。エンドポイントとポートを必要とし、まず認証サーバーからトークンを取得し、サーバーが定義するプロトコルと契約で呼び出し、待つかどうかを選びます。往復の全体が見えるのはクライアントだけなので、再試行できるのもクライアントだけです。サーバーは待ち受け、プロトコル、契約、ペイロードを定義し、入ってくるものを検証し、自分の部分だけを見ます。矢印を描くとき、私はどちらの端がどちらかをすでに知っていて、それがこれらの問いのそれぞれを誰が所有するかを教えてくれます。

すべての矢印には仕組みが必要 全体像から1本の矢印を拡大したもの。クライアントであるSalesforceは指定ログイン情報と外部ログイン情報を持ち、サーバーであるERPに注文を送り出す。ERPには外部クライアントアプリケーションとAPI限定の連携ユーザーがある。OAuthに必要な破線が、クライアントがまず認証サーバーに行き、そこでトークンが発行されることを示す。その下に、行ごとに、クライアントが扱うこととサーバーが定義すること。場所:クライアントにはエンドポイントとポートが必要で、サーバーはURLまたはIPアドレスとポートで待ち受ける。認証:クライアントはまずトークンを取得し、期限切れに対処して再度サインインする。エンドポイントは指定ログイン情報に、認証はその外部ログイン情報にある。サーバーは自分の認証サーバーのトークンを信頼し、外部クライアントアプリケーションと連携ユーザーがクライアントに何を許すかを決める。プロトコルと契約:クライアントはそれを呼び出し、サーバーはそれを定義する。ペイロード:クライアントはシリアライズして読み取り、サーバーはJSON、XML、バイナリのいずれかを定義する。タイミング:クライアントは待つか、待たずに進むか、スケジュールで実行するかを選び、サーバーは処理が追いつかなければならない。追跡:クライアントには往復の全体が見え、サーバーには自分の部分だけが見える。エラーと停止:クライアントはあらゆる種類のエラーに対処し、再試行し、行き詰まったときにそれがわかる。サーバーは入ってくるものを検証するが、再試行はできない。その下に:これは全体像には載らないが、すべての矢印が持っている。 OAuthに必要 認証サーバー トークンを発行する 出ていく注文 クライアント Salesforce サーバー ERP 指定ログイン情報 外部ログイン情報 外部クライアントアプリ ケーション 連携ユーザー(API限定) クライアントが担うこと サーバーが定めること 場所 接続先のエンドポイント(URLまたはIPアドレス)とポートが必要です。 URLまたはIPアドレスで、あるポート(たとえば443)で待ち受けます。 認証 まず認証サーバーからトークンを取得し、期限切れに対処して再度サインインし ます。指定ログイン情報がエンドポイントを、その外部ログイン情報が認証を保 持します。 自分の認証サーバーが発行したトークンを信頼します。クライアントに何を 許すかは、外部クライアントアプリケーションとAPI限定の連携ユーザーが決 めます。 プロトコルと契約 正しいプロトコル、メソッド、動詞で呼び出します(SOAPならWSDLをインポー トします)。 プロトコル(REST、SOAP、gRPC)と契約(メソッド、動詞、パラメー ター、戻り値)を定義します。 ペイロード 取り決めた形式でリクエストをシリアライズし、レスポンスを読み取ります。 ペイロードを定義します:JSON、XML、またはバイナリ。 タイミング 選びます:応答を待つ(同期)、待たずに進む(非同期)、スケジュールで実行 する(バッチ)。 処理が追いつかなければなりません:届いた呼び出しに一つずつ応えるか、 バッチが来たら受け取ります。 追跡 往復の全体が見えます:何が出ていき、何が戻り、どれだけかかったか。 自分の部分だけが見えます:呼び出しの到着、その処理、応答の送出。 エラーと停止 接続、認証、サーバー、レスポンスのエラーに対処し、再試行し、行き詰まった ときにそれがわかります。 入ってくるものを検証し、自分のエラーを報告します。往復が見えないの で、再試行はできません。 これは全体像には載りませんが、すべての矢印が持っています。 © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

1本の矢印を拡大:クライアントが扱い、サーバーが定義する。これは全体像には載りませんが、すべての矢印が持っています。

では矢印を逆向きにしましょう。ERPがSalesforceを呼び出すとき、Salesforceがサーバーです。APIを定義し、自身の認可サーバーを動かし、外部クライアントアプリケーションと連携ユーザーを通じて、呼び出し元が何をしてよいかを決めます。同じ問いで、反対の側です。

サーバーとしてのSalesforce 同じ矢印を逆向きにしたもの。クライアントであるERPはクライアントIDと、シークレットまたは証明書を持ち、サーバーであるSalesforceに注文ステータスを送り込む。SalesforceはそれをAPI限定の連携ユーザーとして実行する。OAuthに必要な破線が、ERPがまずSalesforce自身の認可サーバーに行き、そこが外部クライアントアプリケーションのトークンを発行することを示す。その下に、行ごとに、クライアントが扱うこととSalesforceが定義すること。場所:クライアントには組織の私のドメインのURLとAPIバージョンが必要で、Salesforceは私のドメインでHTTPSにより待ち受ける。認証:クライアントは外部クライアントアプリケーションを通じてアクセストークンを取得し、期限が切れたら再度サインインする。Salesforceは自分のトークンを信頼し、アプリケーションのポリシーと連携ユーザーの権限がクライアントに何を許すかを決める。プロトコルと契約:クライアントはREST、SOAP、またはBulk APIを呼び出し、SalesforceはAPIを定義し、組織のオブジェクトと項目が契約になる。ペイロード:JSONまたはXML、BulkならCSV。タイミング:クライアントは待つか、待たずに進むか、バッチで読み込むかを選び、Salesforceは組織のAPI制限の範囲内で処理が追いつかなければならない。追跡:クライアントには往復の全体が見え、Salesforceには自分の部分だけが見える。エラーと停止:クライアントは接続、認証、制限、レスポンスのエラーに対処して再試行する。Salesforceは入ってくるものを検証してエラーを返すが、再試行はできない。その下に:これは全体像には載らないが、すべての矢印が持っている。 OAuthに必要 Salesforceの認可サー バー 外部クライアントアプリケー ションのトークンを発行する 入ってくる注文ステータス クライアント ERP サーバー Salesforce クライアントIDと シークレット、また は証明書 連携ユーザー(API限定) クライアントが担うこと サーバーが定めること 場所 組織の私のドメインのURLとAPIバージョンが必要です。 Salesforceは組織の私のドメインで、HTTPS(ポート443)で待ち受けま す。 認証 外部クライアントアプリケーションを通じて、Salesforceの認可サーバーからア クセストークンを取得し、期限切れに対処して再度サインインします。 自分が発行したトークンを信頼します。クライアントに何を許すかは、外部 クライアントアプリケーションのポリシーと連携ユーザーの権限が決めま す。 プロトコルと契約 Salesforceが定義するAPIを呼び出します:REST、SOAP、またはBulk(SOAPな らWSDLをインポートします)。 SalesforceがAPIとそのバージョンを定義します。組織のオブジェクトと項目 が契約です。 ペイロード APIが求める形でリクエストをシリアライズし、レスポンスを読み取ります。 APIごとにペイロードを定義します:JSONまたはXML、BulkならCSV。 タイミング 選びます:応答を待つ(同期)、待たずに進む(非同期)、バッチで読み込む (Bulk API)。 組織のAPI制限の範囲内で、処理が追いつかなければなりません。 追跡 往復の全体が見えます:何が出ていき、何が戻り、どれだけかかったか。 自分の部分だけが見えます:呼び出しの到着、保存とその自動化、応答の送 出。 エラーと停止 接続、認証、制限、レスポンスのエラーに対処し、再試行し、行き詰まったとき にそれがわかります。 入ってくるもの(入力規則、必須項目、共有)を検証し、エラーを返しま す。再試行はできません。 これは全体像には載りませんが、すべての矢印が持っています。 © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

サーバーとしてのSalesforce:同じ問いで、サーバー側の半分にSalesforceが答えます。

全体像には矢印、会話はスイムレーンに

Section titled “全体像には矢印、会話はスイムレーンに ”

アーキテクトがよい図を台無しにするのはここです。一つの成果物ですべてに答えさせようとするのです。全体像にAPI名、ペイロード、再試行、エラーキュー、変換、すべてのコールバックが載り、やがて誰も読めなくなります。やめましょう。全体像は大きな絵です。システムと、その間の重要な流れです。

やりとりを説明する必要があるときは、2枚目の図を描きます。ただし、すべての連携についてではありません。システムAがBに何かを送る、あるいは問い合わせて答えをもらうだけなら、ラベルの付いた矢印で十分です。スイムレーンがほしいのは、プロセスが会話になるときです。AがBを呼び出し、BがCに確認し、Cが答え、Bが何かを作ってAにコールバックし、人が承認し、別のシステムが続きを引き受ける。私の目安はこうです。やりとりが1、2回を超えるなら、その手順には独自のスイムレーンを。 全体像には矢印、会話はスイムレーンに。

そして、そこでは矢印の意味が違うことに気づいてください。全体像では、矢印は接続です。誰がそれを開き、何が動くか。スイムレーンでは、それぞれの矢印は会話の中の一つのメッセージで、順番に読みます。要求が一方へ行き、応答が反対へ返り、次のステップが続きます。

全体像には矢印、会話はスイムレーンに 同じ3つのシステムを2通りに描いたもの。上部は全体像と同じ:Salesforceが連携層に注文を送り出し、連携層がSalesforceに注文番号を送り込み、連携層がERPに注文を送り出す。下では各システムがレーンになり、会話がページを下へ6つの番号付きステップで進む。1、Salesforceが連携層に注文を送る。2、連携層が参照番号を付けて受け付けたと応答する。3、連携層がERPに注文の作成を依頼する。4、ERPが注文を作成する。5、ERPが連携層に注文番号を返す。6、連携層がSalesforceを呼び出して注文を更新する。応答は薄い色で示す。その下に:全体像では矢印は一つの接続であり、スイムレーンでは矢印の一本一本が順番どおりの一つのメッセージである。 ランドスケープ上:誰が接続し、何が動くか スイムレーン:やり取りを順番に Salesforce 連携層 ERP 出ていく注文 入ってくる注文番号 出ていく注文 注文を送る 1 受付:参照番号 2 注文を作成する 3 注文を作成 4 注文番号 5 注文を更新する 6 全体像では、矢印は一つの接続です。スイムレーンでは、矢印の一本一本が順番どおりの一つのメッセージです。 © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

全体像には3本の矢印、スイムレーンには6つのステップ。全体像では矢印は接続であり、スイムレーンではそれぞれの矢印が、順番に並んだ一つのメッセージです。

全体像がほぼできたように見えたら、矢印を一本ずつたどりましょう。ERPからSalesforce:何が動いているのか、誰が所有しているのか、どう認証するのか、仕組みは何か、同期か非同期か、どれくらい新しくなければならないか? そして次の矢印、さらに次の矢印。ここで抜けが現れます。「あ、パートナーが実際にそれをどう送ってくるのか、詰めていなかった」「ERPに注文は送っているけれど、拒否されたものがどう戻ってくるかは設計していない」。いいことです。本番ではなく、ホワイトボードの上で見つけたのですから。

絵は読みやすく保たなければならないので、詳細はその背後の一覧表に置きます。件数から始めましたね。ここでそれを仕上げましょう。重要なデータセットや流れごとに1行です。

列知りたいこと
データセット顧客、製品、注文、配送、請求書
種類マスター、参照、トランザクション、分析、非構造化
所有者その意味とライフサイクルを誰が所有しているか?
記録システム権威あるバージョンはどこにあるか?
ワークロード業務、分析、ストリーミング
ボリュームゼロの数
組織複数あるなら、どのSalesforce組織か?
認証接続はどう信頼を確立するか?
仕組みとタイミングAPI、イベント、ファイル、フェデレーション。同期、非同期、バッチ
アプローチコピーするか、参照するか、フェデレーションするか?

これで成果物が2つになりました。全体像でアーキテクチャを見ることができ、一覧表でそれを問いただすことができます。

絵の背後の一覧表 全体像の背後の一覧表。流れごとに1行で、ボリュームと仕組みの列を同じ色合いで示す。入ってくる製品:ERPが所有、一晩に約500件の変更、連携層による夜間バッチ、外部クライアントアプリケーションと連携ユーザー、コピー。出ていく注文:Salesforceが所有、1日約2,000件、1分に数件、SalesforceがApexまたはフローのコールアウトと指定ログイン情報で連携層を通じて呼び出すニアリアルタイム、コピー。入ってくる注文ステータス:ERPが所有、1日約16,000件でまとまって届く、ERPが連携層にプッシュし連携層がREST APIでSalesforceを更新する非同期、コピー。入ってくる支払い:財務が所有、1日約1,500件、Bulk API 2.0による1時間ごとのバッチ、コピー。出ていくCRMデータ:Salesforceが所有、数百万件のレコード、Data 360が組織からスケジュールで取り込む、ニアコア、Data 360にコピー。ゼロコピー:ウェアハウスの5年分の履歴、数億行、その場でクエリ、フェデレーション。参照:外部プロバイダー、一度に1件の照会、誰かが必要なときに読む、参照。その下に:全体像では矢印はどれも同じに見えるが、それぞれを何が運ぶかはボリュームが決める。 全体像上の流れ 所有者 ボリューム 仕組みとタイミング 認証 コピー、参照、フェデレー ション 入ってくる製品 ERP 一晩に約500件の変更 バッチ:連携層が毎晩読み込む 外部クライアントアプリケーショ ン、連携ユーザー コピー 出ていく注文 Salesforce 1日約2,000件、1分に数件 ニアリアルタイム:SalesforceがApexま たはフローのコールアウトで、連携層を通 じて呼び出す 指定ログイン情報 コピー 入ってくる注文ステータ ス ERP 1日約16,000件、まとまって 届く 非同期:ERPが連携層にプッシュし、連携 層がREST APIでSalesforceを更新する 外部クライアントアプリケーショ ン、連携ユーザー コピー 入ってくる支払い 財務 1日約1,500件 バッチ:1時間ごと、連携層とBulk API 2.0 を通じて 外部クライアントアプリケーショ ン、連携ユーザー コピー 出ていくCRMデータ Salesforce 数百万件のレコード、すべて Data 360が組織からスケジュールで取り込 む ニアコア:組織内で管理 Data 360にコピー ゼロコピー ウェアハウス 5年分の履歴、数億行 必要なときにその場でクエリ ウェアハウスへのData 360の接続 フェデレーション 参照 外部プロバイ ダー 一度に1件の照会 誰かが必要なときに読む Data 360の接続 参照 全体像では矢印はどれも同じに見えます。それぞれを何が運ぶかは、ボリュームが決めます。 © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

ED-D42の背後の一覧表。全体像の上では矢印はどれも似て見えます。それぞれを何が運ぶかを決めるのはボリュームです。

だから私はこの成果物が好きなのです。考える助けになるからです。「SalesforceとERPをまたいでどうレポートするのか?」モジュール3の問いです。私の図のうち、どれがこれを見事に解いてくれるか? 全体像です。すべてがコアにあるなら標準レポート。データがERPとウェアハウスにあるなら、すぐに見えます。「この顧客の属性はどこでマスター管理すべきか?」それを使っているシステムと、すでに顧客を所有しているシステムを見ましょう。「SalesforceはすべてのGPSの読み取り値を必要とするのか?」誰が生み出し、誰が使い、ワークロードは何か? Salesforceには現在の位置が必要で、別のプラットフォームが履歴を持つのかもしれません。全体像は答えを手渡してはくれません。問題を正しく見る視点を与えてくれるのです。

もう一つの規律です。既存の企業では、こうあってほしいものではなく、存在するものを描きましょう。毎週金曜日にメールで送られるスプレッドシート:描きましょう。SFTPサーバーに置かれるパートナーのCSV:描きましょう。歴史的な理由でESBを迂回している連携:描きましょう。2つのシステムの間で人がデータを打ち直している:示しましょう。記録している最中に現実をきれいにしないでください。目指す全体像を設計する前に、現在の全体像が必要です。それがモジュール6でSteve Truckingについて行うことです。

試験の先へ:AIが変えること。 全体像はエージェントの地図になりつつあります。エージェントが「荷物はどこ?」に答えるなら、全体像は、その答えがSalesforce、パートナーのシステム、テレマティクス、ERP、あるいはその組み合わせのどこから来るのかを示さなければなりません。エージェントはシステムの境界をなくしません。どのシステムが権威を持ち、そこに安全にどうたどり着くのかを知ることを、さらに重要にするのです。

ここでアーキテクトが決めること

Section titled “ここでアーキテクトが決めること ”
  • どのシステムとユーザーの集団が全体像に属するか、そしてその配置がその役割をどう示すか。
  • どの流れがシステムの境界を越え、どの方向に動き、何が返ってくるか。
  • すべての接続がどう認証し、どんな仕組みがそれを運び、それが同期か、非同期か、バッチか、フェデレーションか。
  • ラベル付きの矢印で十分なのはいつで、やりとりに独自のスイムレーンが必要なのはいつか。
  • 絵の背後の一覧表に何を記録するか:所有者、ワークロード、ボリューム、組織、タイミング、認証、そしてコピーか、参照か、フェデレーションか。

全体像は、アーキテクチャができあがった後に描くものではありません。アーキテクチャを見つける方法です。そして完成したと思ったら、眺めて感心しないでください。たどりましょう。まだ説明できない矢印の一本一本が、仕事がどこにあるかを教えてくれます。