Out of Memory

本ブログは更新を停止しました。Aerieをよろしくお願いいたします。

目次

Blog 利用状況

ニュース

2009年3月31日
更新を停止しました。引き続きAerieを御愛顧くださいませ。
2009年2月3日
原則としてコメント受付を停止しました。コメントはAerieまでお願いいたします。
詳細は2月3日のエントリをご覧ください。
2008年7月1日
Microsoft MVP for Developer Tools - Visual C++ を再受賞しました。
2008年2月某日
MVPアワードがVisual C++に変更になりました。
2007年10月23日
blogタイトルを変更しました。
2007年7月1日
Microsoft MVP for Windows - SDKを受賞しました!
2007年6月20日
スキル「ニュース欄ハック」を覚えた!
2006年12月14日
記念すべき初エントリ
2006年12月3日
わんくま同盟に加盟しました。

カレンダー

中の人

αετο? / aetos / あえとす

シャノン? 誰それ。

顔写真

埼玉を馬鹿にする奴は俺が許さん。

基本的に知ったかぶり。興味を持った技術に手を出して、ちょっと齧りはするものの、それを応用して何か形にするまでは及ばずに飽きて放り出す人。

書庫

日記カテゴリ

SOAってのは要するに…

# ここ3日ほどで理解したSOA。間違えていたらビシバシ突っ込んで。

まずはこれを見てくれ。こいつをどう思う?

単純にまとめるとこうなる!.NET のアプリケーション アーキテクチャ実装例 (Part1 / 修正版)

サービス志向ってのは、オブジェクトやコンポーネントよりも大粒度な「サービス」を組み合わせてシステムを作ろうって考え方だ。
で、サービスってのは何かと言うと、この図中のUI層を取り除いた部分だ。
図では、データ層のサービスエージェントが他のサービスに接続されている。
このようにして、ひとつのシステムを、複数のサービスを接続することで組み立てるのがサービス志向。

サービスはビジネス層とデータ層から成る。
従来の3層構造では、各層はオブジェクトやコンポーネントによって構成されていたが、層の構成要素をサービスにするものがサービス志向であるとも言える。
だから、各層の中に、ビジネス層とデータ層がいっぱい詰まっているわけだ。

ビジネスコンポーネントやビジネスワークフローが、より小さな複数のサービス(ビジネスサービスとかアクティビティサービスと呼ぶ)から構成されることもあるし、データ層を薄皮でラップしたようなサービス(エンティティサービス)を持つこともある。
データアクセスはサービスエージェントに一任してしまい、DALCを持たないサービスというのもあり得る。
もちろん、すべてのサービスがWWWを通じて世界中に公開されていなければならないということは無く、企業内のローカルネットワーク内に閉じていても一向に構わない。

で、そうしたサービス群の一番上に、ちょこんとUI層が乗る形になる。

SOAの重要なポイントは2つ。
1つは、サービスがビジネスロジックを内包するということ。
オブジェクトやコンポーネントはビジネスロジックの構成要素であったが、サービスは業務を抽象化したビジネスロジック自体であり得る(もちろん、より大きなビジネスロジックを構成する一部分であることもある)。
もう1つは、サービス間が疎結合だということ。
各サービスの実装技術に依存しない中立的な通信手段(代表的なものはWebサービスだが、Webサービスが必須なわけではない)でサービス間を接続することによって、サービスの独立性を保つことができる。

…とは言うものの、CORBAもDCOMも、オブジェクト自体の実装技術は問わない通信規約であったはずで、Webサービスを使っておけば安泰ということは無いと思うのだが、どうかなぁ。

投稿日時 : 2007年10月4日 13:04

Feedback

# re: SOAってのは要するに… 2007/10/04 13:20 凪瀬

自分がSOAに懐疑的なのは、サービス同士を繋げるってそんなに簡単にいかんだろう、という点ですね。

ただ、外との連携を考慮したサービス作りというか設計をしてこなかった人に対して
これからは外部との連携を考慮した設計をするようにしないといけないよ、と
諭すのにはアリなのかな、と思うのです。

国内大手SIerのひとりよがりフレームワークみたいな設計じゃあかんよ、という意識改革運動と思えばいいのだろうか。

# re: SOAってのは要するに… 2007/10/04 13:44 じゃんぬねっと

すごく・・・ロジカルです・・・。

# re: SOAってのは要するに… 2007/10/04 13:49 黒龍

> ビジネスコンポーネントやビジネスワークフローが、より小さな複数のサービス(ビジネスサービスとかアクティビティサービスと呼ぶ)から構成されることもあるし、データ層を薄皮でラップしたようなサービス(エンティティサービス)を持つこともある。

これちょっと引っかかります。その上で書いてるようにシステム(機能)境界に位置するのがサービスでビジネスサービスとかアクティビティサービスやらエンティティサービスってのはもうロジックですね。(粒度が細かい)この辺聞いたことないんですが
ビジネスロジックやらと同じ粒度でサービスを言う場合はサービスとしての機能(通信、認証、ビジネスロジックのためのデータ整形など)を行う層、ロジックという意味で使われます。SOAでいうサービスは全部ひっくるめてサービスです。(と、上で書いてありますが^^;)
サービスがサービスを内包というのはたとえば購買手続き中に与信照会などを呼び出す場合。購買手続き自体もサービスとして独立してますし与信照会も独立してます。

サービスってのはWebサービスとはイコールじゃなくてサーバが提供する機能ってことで今までどおりのCORBAでもやDCOMでも良いんですがこいつらはステートを意識しすぎちゃうんですね。(COM+やMQならいいかな?)SOAでいわれるサービスってのは基本はステートレスというかサービス自体の独立性が高いのものをさすと思います。

プログラムのときに疎結合を実現するためにinterfaceによる契約指向でコーディング、設計すると思いますがシステム全体を大きな機能でそれぞれ独立性を高めておけば再利用ができるかも?ってのがSOAですね。Interfaceにあたる部分がWebサービスでの呼び出し規約(WSDL)にあたります。

えらく長文になっちゃってすんません。私の理解としてはこんな感じっす。

# re: SOAってのは要するに… 2007/10/04 14:01 凪瀬

wikipediaの記事とかでも指摘があるのですが

http://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E6%8C%87%E5%90%91%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3

SOAにおけるサービスをどういう粒度とすべきかという点は難しい課題に思えますね。

私の理解だとコンポーネント指向と粒度が異なるだけでさして変わらないものに思うのですが…。

# re: SOAってのは要するに… 2007/10/04 14:34 シャノン

> これちょっと引っかかります。その上で書いてるようにシステム(機能)境界に位置するのがサービスでビジネスサービスとかアクティビティサービスやらエンティティサービスってのはもうロジックですね。(粒度が細かい)この辺聞いたことないんですが

http://www.microsoft.com/japan/msdn/architecture/way/03/
とか
http://enterprisezine.jp/article/detail/17?p=2
に書いてありました。

# re: SOAってのは要するに… 2007/10/04 14:54 黒龍

なるほど~。エンティティサービスだけですがイメージはわかりました。SOAなんで「それもサービスで」って感じですねぇ。DALCは全部エンティティサービスでってんじゃちょっと細かすぎる気がしないでもないですが・・・。

# re: SOAってのは要するに… 2007/10/04 17:29 Chuki

SOAって別にWebサービス前提とかじゃないし、そもそもロジックだけなんてもんじゃないはずなんですが^^;

ホストに対するC/S系を指してSOAと言ったのが初出な位ですから。

ということで、SOA自体は、かなり大きなレベルのシステム間を連携させようというアーキテクチャだから、あんまりWebサービスにとらわれないほうがいいんじゃないかなぁ...
#ERPサービスとSCMサービスを繋ぐ、位の勢いですから。

#SOAって言葉自体、会社によっていうことが違うからあんまり深く考えないほうが良いかもです。

# re: SOAってのは要するに… 2007/10/04 19:22 通りすがり

分散環境って意味では.NETに関してはWCFにまとめちゃえって感じで
ずいぶんすっきりしましたね。
まぁだからと言ってRemotingとWSを簡単に切り替えるにはそれなり
の設計をしておく必要があると思いますが。

# re: SOAってのは要するに… 2007/10/05 9:23 けろ

>Webサービスが必須なわけではない)でサービス間を接続することによって、サービスの独立性を保つことができる。

これは、激しく同意しますが、Chukiさんがおっしゃっているように、
「SOAって別にWebサービス前提とかじゃないし、そもそもロジックだけなんてもんじゃないはずなんですが」が私の意見ですね。

>CORBAもDCOMも、オブジェクト自体の実装技術は問わない通信規約であったはずで、Webサービスを使っておけば安泰ということは無いと

安泰ってことはないと思いますね。
不必要ならWebサービスも使わない方がいいですというのが
私の考えですが、どうなんだろう?

# re: SOAってのは要するに… 2007/10/09 10:40 シャノン

> Chukiさん
詳細きぼん。

> 不必要ならWebサービスも使わない方がいいです
じゃあどうするんだろう…

# Software as/plus Service 2007/11/01 14:13 Out of Memory

Software as/plus Service

タイトル
名前
Url
コメント