ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Web サービスの定義
Web サービスは文脈によって 2 つの意味があります:
- 広義: ブラウザや API から利用できるネットワーク経由のソフトウェア全般(Gmail、Slack、GitHub、Stripe など)
- 狭義(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 大方式
| 項目 | SOAP | REST |
|---|---|---|
| プロトコル | HTTP / SMTP / TCP | HTTP のみ |
| データ形式 | XML 必須 | JSON 主流(XML も可) |
| 仕様記述 | WSDL | OpenAPI (Swagger) |
| トランザクション | WS-* 群で対応 | 独自実装 |
| 学習コスト | 高い | 低い |
| 用途 | 金融・大企業基幹 | Web / モバイル / 公開 API |
SOAP メッセージの例
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body>
<m:GetUser xmlns:m="http://example.com/users">
<m:UserId>123</m:UserId>
</m:GetUser>
</soap:Body>
</soap:Envelope>
<!-- レスポンス -->
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<m:GetUserResponse xmlns:m="http://example.com/users">
<m:User>
<m:Id>123</m:Id>
<m:Name>Taro</m:Name>
</m:User>
</m:GetUserResponse>
</soap:Body>
</soap:Envelope>
API エコノミー — 機能を API で売る
2010 年代以降、特定機能を API で提供する SaaS が爆発的に成長しました。代表例:
| サービス | 機能 | 料金モデル |
|---|---|---|
| Stripe | クレジットカード決済 | 取引額 2.9% + ¥30 |
| Twilio | SMS / 音声通話 API | 従量課金(メッセージ毎) |
| SendGrid | メール送信 | 月間メール数 |
| Auth0 | 認証・認可 | 月間アクティブユーザー数 |
| Algolia | 全文検索 | レコード数 + 検索数 |
| Cloudinary | 画像変換・配信 | 転送量 + 変換数 |
アーキテクチャの進化: モノリス → SOA → マイクロサービス → Service Mesh
| 世代 | 時期 | 特徴 |
|---|---|---|
| モノリス | 〜2000s | 1 つの大きなアプリ。デプロイは一括 |
| SOA (Service Oriented Architecture) | 2000s | 業務単位でサービス分割、ESB でつなぐ |
| マイクロサービス | 2010s | 細かく分割、各チームが独立デプロイ |
| Service Mesh | 2020s | Istio / 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) — サービス間通信基盤
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?