soapintegrationlegacy-modernizationautomation

単発の SOAP スクリプトが見えない連携基盤に育ってしまう理由

SOAPless Team3 min read

SOAP 連携は、最初から大げさな基盤として始まることはあまりありません。

たいていは、

とりあえず 1 本スクリプトを書けばいい

から始まります。

それで済むのは、最初のうちだけです。

どこで話が変わるのか

同じ SOAP 連携が、いつの間にか次にも使われ始めると空気が変わります。

  • 別の夜間バッチ
  • 社内の管理画面
  • もう 1 つのバックエンドサービス
  • ブラウザ向けのプロキシ

この時点で、最初の 1 本は単なるスクリプトではなくなります。

なぜスクリプトが太っていくのか

SOAP は、呼び出し側に契約の細かい事情を多く背負わせます。

  • 認証方式
  • envelope の組み立て
  • namespace
  • SOAPAction や binding の選択
  • fault の扱い

つまり、そのスクリプトは業務ロジックだけではなく、小さな連携ランタイムでもあります。

見えない基盤になったサイン

だいたい次のような会話が出始めたら、もう単発ではありません。

  • 「正しいリクエスト形はどれ?」
  • 「バッチの認証処理を別のサービスでも使えない?」
  • 「XML を手でいじらずに試せる場所はある?」
  • 「staging と production で endpoint が違うのはどこで吸収する?」

この段階では、シェルスクリプトや補助モジュールの中に、説明されていない基盤ができ始めています。

何を 1 か所に寄せるべきか

同じ SOAP 依存が複数のリリースをまたいで残るなら、価値があるのは次を集約することです。

  • 認証処理
  • リクエストの整形
  • WSDL からの契約把握
  • fault の正規化
  • テストとドキュメントの入口

ここまで来ると、管理された連携境界を 1 つ置いた方が自然です。

実務上の結論

単発スクリプトは、単発で終わるなら問題ありません。

でも、連携が残るなら、あるいは利用者が増えるなら、SOAP の細部をコピーしたスクリプト群のまま運用するのは、壊れやすい基盤を偶然育てるのとほとんど同じです。