BT

マイクロサービス(µServices)は4年前すでに定義されていた

| 作者: Jan Stenberg フォローする 34 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2014年7月25日. 推定読書時間: 2 分 |

原文(投稿日:2014/07/04)へのリンク

“私は4年前,マイクロサービス(µServices)という新語を考え出して,それについて書きました。SOA(Service Oriented Architectures / サービス指向アーキテクチャ)の出現で一般的にイメージされていた,大規模で複雑で費用のかかるサービスから,軽量サービスを区別するためです。” 最近になってこのような主張をしたのはPeter Kriens氏だ。

かつてOSGi Alliance所属していた氏は,常に同一のプロセス内で通信し,オーバーヘッドを伴わないサービスとして,OSGiマイクロサービスを定義した。サービスの呼び出しがオブジェクトのメソッドコールとほぼ同じ速度で動作することで,サービスが軽量オブジェクトに近いものになる。オーバーヘッドの少なさを表すためにマイクロ(µ)という,異論のありそうなシンボルを使用してこれらのサービスを命名した氏は,さらにマイクロサービス指向のVMアーキテクチャを示す"µsoa"という新語も生み出した。

WebサービスとOSGiマイクロサービスは,機能分割に使用する基本アーキテクチャとしては同じものだ,と氏は主張する。しかしながら,Webサービスが常にプロセス外の世界とコミュニケーションしている点を考慮すれば,実行方法や目的,オーバーヘッドについては大きな違いがあると言わざるを得ない。

James Lewis氏やMartin Fowler氏が今年初めに説明したマイクロサービスでは,通信はプロセス間で行われることを条件としている。

“すなわち,アーキテクチャスタイルとしてのマイクロサービスとは,ひとつのアプリケーションを小さなサービスの集合体として開発するアプローチなのです。個々のサービスは自分自身のプロセスで動作し,軽量な通信機構,多くの場合はHTTPリソースAPIを使って通信します。”

Russ Miles氏は,近く発刊予定の"Antifragile Software"という書籍の中で,一般的に認められているマイクロサービスの特性を列挙している。

“目的がひとつでシンプル(もつれのない)な,自律的かつ個別にデプロイ可能なサービス。システムの変更ストレス要因に従って構成され,一切の,特に状態に関して共有性を持たないこと。”

サービスがオブジェクトであるか関数であるか,起動方法が同期的か非同期的か,HTTPを使用するか他のプロトコルを使用するかは問わない,と具体的に記している。

定義を区別する手段についてPeter Kriens氏は,優れたモジュール分割設計を実現する凝縮性(Cohesion)が最も大きな問題であって,サイズの問題ではないと述べている。凝縮性とは,明確に定義された単一の責任に対して凝縮されたサービスの持つメソッド間の,概念的な近さを表す尺度である。そこから氏は,マイクロサービスの別の呼び方として凝縮的Webサービス(cohensive web-service)という名称も提案している。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT