10.

Web サービスとは — SOAP/REST/SaaS と現代のサービス指向

編集
この記事の要点
  • Web サービスはネットワーク経由で機能を提供するソフトウェアの総称
  • 広義: SaaS (Stripe / Slack / GitHub) / 狭義: SOAP / REST など API で機能提供するもの
  • クラウド階層: SaaS (利用) / PaaS (実行環境) / IaaS (仮想インフラ)
  • アーキテクチャ進化: SOA (2000s) → マイクロサービス (2010s) → Service Mesh (2020s)
  • 代表的な API エコノミー: 決済 (Stripe) / SMS (Twilio) / メール (SendGrid) / 認証 (Auth0)
  • 統合パターン (EIP): メッセージング / パブリッシュサブスクライブ / イベント駆動

Web サービスの定義

Web サービスは文脈によって 2 つの意味があります:

  1. 広義: ブラウザや API から利用できるネットワーク経由のソフトウェア全般(Gmail、Slack、GitHub、Stripe など)
  2. 狭義(W3C 定義): ネットワーク経由で機械同士が相互運用する仕組み。SOAP / WSDL / UDDI の三点セットを指す古典的定義

現代では広義の意味で使われることがほとんどです。「Web サービスを開発する」と言えば、ブラウザ・モバイル・API クライアントが叩く SaaS 型アプリケーションのことを指すのが一般的です。

クラウドサービスの階層: SaaS / PaaS / IaaS

意味利用者
SaaS完成済みソフトを利用Gmail / Salesforce / Slack / Notionエンドユーザー
PaaSアプリ実行環境Heroku / Vercel / Google App Engine開発者
IaaS仮想インフラAWS EC2 / GCP Compute Engine / Azure VMインフラ担当
FaaS関数単位の実行AWS Lambda / Cloud Functions開発者
BaaSバックエンド機能Firebase / Supabase / Amplifyフロント開発者

SOAP vs REST — Web サービスの 2 大方式

項目SOAPREST
プロトコルHTTP / SMTP / TCPHTTP のみ
データ形式XML 必須JSON 主流(XML も可)
仕様記述WSDLOpenAPI (Swagger)
トランザクションWS-* 群で対応独自実装
学習コスト高い低い
用途金融・大企業基幹Web / モバイル / 公開 API

SOAP メッセージの例



  
  
    
      123
    
  




  
    
      
        123
        Taro
      
    
  

API エコノミー — 機能を API で売る

2010 年代以降、特定機能を API で提供する SaaS が爆発的に成長しました。代表例:

サービス機能料金モデル
Stripeクレジットカード決済取引額 2.9% + ¥30
TwilioSMS / 音声通話 API従量課金(メッセージ毎)
SendGridメール送信月間メール数
Auth0認証・認可月間アクティブユーザー数
Algolia全文検索レコード数 + 検索数
Cloudinary画像変換・配信転送量 + 変換数

アーキテクチャの進化: モノリス → SOA → マイクロサービス → Service Mesh

世代時期特徴
モノリス〜2000s1 つの大きなアプリ。デプロイは一括
SOA (Service Oriented Architecture)2000s業務単位でサービス分割、ESB でつなぐ
マイクロサービス2010s細かく分割、各チームが独立デプロイ
Service Mesh2020sIstio / Linkerd でサービス間通信を統制

マイクロサービス間通信の例

# Kubernetes 上のマイクロサービス構成例
services:
  user-service:    # ユーザー管理
    api: REST
    db: PostgreSQL

  order-service:   # 注文処理
    api: gRPC
    db: PostgreSQL
    depends_on: [user-service, payment-service]

  payment-service: # 決済
    api: REST
    external: Stripe API

  notification-service: # 通知
    api: イベント駆動
    queue: RabbitMQ / Kafka
    depends_on: [order-service]

# Service Mesh (Istio) でこれらの間通信を:
# - mTLS で暗号化
# - リトライ・サーキットブレーカー
# - 分散トレーシング (Jaeger)
# - メトリクス (Prometheus)

エンタープライズ統合パターン (EIP)

Gregor Hohpe の書籍で体系化された、分散システム間でメッセージをやり取りするためのデザインパターン群:

  • Message Channel: キューやトピックでメッセージを送る経路
  • Publish-Subscribe: 1 つのイベントを複数の購読者に配信
  • Content-Based Router: メッセージ内容で配送先を決定
  • Message Translator: フォーマット変換(XML→JSON 等)
  • Dead Letter Channel: 処理失敗メッセージの退避先
  • Saga パターン: 複数サービスにまたがるトランザクション

FAQ

Q: SOAP は今でも使われている?
A: 銀行・保険・政府系の基幹システムでは現役。新規開発では REST / gRPC が主流です。

Q: SaaS とパッケージソフトの違いは?
A: SaaS は提供者が運用、月額・年額課金、自動アップデート。パッケージは買い切りで自社運用。

Q: マイクロサービスにすればスケールする?
A: 万能ではありません。分割の境界設計・運用コスト(監視・トレース)・データ整合性の難しさが付いてきます。小〜中規模ではモジュラーモノリスが推奨されることも。

関連項目

  • API — Web サービスを利用するためのインターフェース
  • REST / GraphQL / gRPC — 通信方式
  • マイクロサービス — 現代的なサービス分割アーキテクチャ
  • Service Mesh (Istio / Linkerd) — サービス間通信基盤
編集
Post Share
子ページ
  1. 動画・音楽配信
  2. ECサイト
  3. クラウド
  4. SNS
  5. レンタルサーバー
  6. 認証
  7. プラットホーム
  8. ネットワーク
  9. その他
同階層のページ
  1. プログラミング言語
  2. データベース
  3. ネットワーク
  4. OS
  5. ソフトウェア
  6. ハードウェア
  7. ファームウェア
  8. API
  9. セキュリティ
  10. Webサービス
  11. AI 人工知能
  12. 技術・設計・規格
  13. SEO
  14. 開発工程
  15. エンジニア
  16. 電子工作
  17. その他用語一覧
  18. クラウド・インフラ