OOモデリングの問題

14 views
Skip to first unread message

hozawa

unread,
Sep 8, 2009, 7:20:38 AM9/8/09
to bpminna
小沢です。

同じ概念を表すのと、両方とも伝票の情報を照会するので、伝票一覧と単票照会を一つのサービスに纏めてしまった例を見ました。メッセージモデリングをし
ていれば、これは別々の要素だと判断がついたと思うのですが、機能中心のOOモデリングをしていたので気が付かなかったのだと思います。

一つをサービスで一覧と単票情報を取得できるのは使い勝手がよいと言われましたが、単票の項目を変えると、このサービスを使って単票と一覧情報を取得し
ている全てのサービスコンスーマーを修正しなくてはならないので、保守コストが高くなってしまいます。
取得するデータ項目も異なるので、内部処理も異なっています。ここまでしてサービスの再利用性を高めるのは失敗です。

小沢

Hiki-

unread,
Sep 13, 2009, 7:30:59 AM9/13/09
to bpminna
お疲れ様です。いつも情報共有いただき、ありがとうございます。

一点、質問なのですが、、
単票照会と伝票一覧照会を別のサービスにしても、やはり
サービス単票の項目を変えたときは、コンシューマに影響が出てしまうと思いました。
私の理解が間違っているのでしょうか?

あと、サービスは機能に近いものだと思っていましたが、機能で無いとすると、どんな
日本語訳が適しているでしょうか。お手すきの際にお教えください。

Hitoshi Ozawa

unread,
Sep 13, 2009, 6:44:18 PM9/13/09
to bpm...@googlegroups.com
2009年9月13日20:30 Hiki- <yoshinori...@oracle.com>:

> 一点、質問なのですが、、
> 単票照会と伝票一覧照会を別のサービスにしても、やはり
> サービス単票の項目を変えたときは、コンシューマに影響が出てしまうと思いました。
> 私の理解が間違っているのでしょうか?
>

影響範囲の問題です。単票照会の項目を変更した場合に、APIが変わったので一覧参照用のプロセスも変更する必要があると、別々にするようにも影響が広くなります。

また、これはオペレーションのインターフェースの定義の問題です。オラクルさんは、サービス=オペレーションにしているのでしょうか?

> あと、サービスは機能に近いものだと思っていましたが、機能で無いとすると、どんな
> 日本語訳が適しているでしょうか。お手すきの際にお教えください。
>

日本でも一般的にサービスっと訳さないで使われていると思います。良い訳がないからだと思っています。

小沢

Yoshinori Ichikawa

unread,
Sep 14, 2009, 11:17:31 AM9/14/09
to bpm...@googlegroups.com

オラクルさんは、サービス=オペレーションにしているのでしょうか?

そういうケースはあまりないですね。

先週から今週にかけて、サービスの抽出をしていたので、
つい質問してしまいました。
-- 

--------------------------------------------------------

Yoshinori Ichikawa(市川 義規)   

Oracle Corporation Japan
Oracle Consulting Services 
Technology Consulting

--------------------------------------------------------

Hitoshi Ozawa

unread,
Sep 16, 2009, 8:02:38 AM9/16/09
to bpm...@googlegroups.com
2009年9月15日0:17 Yoshinori Ichikawa <yoshinori...@oracle.com>:
> >
>
> オラクルさんは、サービス=オペレーションにしているのでしょうか?
>
> そういうケースはあまりないですね。
>
OOにそんなに詳しくないユーザだとサービス=オペレーション=インターフェース
になったりして。

> 先週から今週にかけて、サービスの抽出をしていたので、
> つい質問してしまいました。
>
サービス識別をされているのですか。サービス識別=サービス設計やアクティビティ=サービスと思っている人もいます。このような場合、SOAもまだまだ気長に考えないとって思ってしまいます。

小沢

hozawa

unread,
Sep 18, 2009, 11:34:52 AM9/18/09
to bpminna
小沢です。

サービスの呼び出しのオーバヘッドを減らすために、1つのプロセスに連続して同じサービスのオペレーションを呼び出している場合は、一つのサービスに纏
めることはありますでしょうか?
また、サービスの機能が異なっている場合でも、実装が同じであれば、一つのサービスに纏めた方がよいのでしょうか?それとも、行う処理が異なるので、
別々のサービスにして、サービスの実装内で同じオブジェクトを呼び出すのが良いのでしょうか?例えば、「更新「と「除外」は、両方とも実装ではただデー
タベーステーブルの項目を更新するので、「更新」サービスのみを作ればよいのでしょうか?

小沢

On 9月15日, 午前12:17, Yoshinori Ichikawa <yoshinori.ichik...@oracle.com>
wrote:
> >オラクルさんは、サービス=オペレーションにしているのでしょうか?
> そういうケースはあまりないですね。
> 先週から今週にかけて、サービスの抽出をしていたので、
> つい質問してしまいました。

Yoshinori Ichikawa

unread,
Sep 29, 2009, 1:32:40 AM9/29/09
to bpm...@googlegroups.com

>サービスの呼び出しのオーバヘッドを減らすために、1つのプロセスに連続して同じサービスのオペレーションを呼び出している場合は、一つのサービスに纏
めることはありますでしょうか?

同じサービスの異なるオペレーションを、ひとつのプロセスから
連続して呼び出す場合に、異なるオペレーションをひとつの
オペレーションにまとめることがあるか、という質問でしょうか
(すいません、ご質問の意味がよくわかりませんでした)?

普通はまとめないと思います。まとめない理由は、そのサービス
を呼び出す、他のプロセス/サービスに影響を与える懸念が
あるのと、そもそもサービスのオペレーションは、そういう観点で
作るものではないと思うからです。オーバーヘッド、というのも
わかるのですが、Webサービス呼び出しのオーバーヘッドが
問題となるケースがあまりピンときませんでした。

>また、サービスの機能が異なっている場合でも、実装が同じであれば、一つのサービスに纏めた方がよいのでしょうか?それとも、行う処理が異なるので、
別々のサービスにして、サービスの実装内で同じオブジェクトを呼び出すのが良いのでしょうか?例えば、「更新「と「除外」は、両方とも実装ではただデー
タベーステーブルの項目を更新するので、「更新」サービスのみを作ればよいのでしょうか?

更新と除外(削除、deleteのことですか?)では、実装は違うと
思います(SQL文が違うので)。ここでいう「実装」とは、実装に
使用される技術分類のことですか?実装分類が同じだから
同じサービスにする、というのも、ちょっと無いと思います。

ちなみに、あるエンティティに対する「更新」と「削除」については、
私は同じサービスでオペレーションを分ければ良いと思って
いますが、世間的にはサービスを分ける方が多いらしい(?)です。
このレベルだと、何が正しいのか厳密にはよくわかりません。
誰でも納得できる明快な論拠があると良いのですが。。

Hitoshi Ozawa

unread,
Oct 1, 2009, 7:51:03 AM10/1/09
to bpm...@googlegroups.com
小沢です。

ご返事、有難うございます。
やはり会社(それとコンサルタント?)によって考え方が異なるようです。
ここはまた勉強会を開いて意見交換するのがよいのかな?
前回、IBMさんがこられた勉強会は、技術系の男性ばかりで、私も徹夜明けで髭もそってなくて、後ろの隅で朝食代わりにノリ弁を食べていたのが印象的に悪かったのかな?逃げるように帰ってしまったような気がして。

小沢

2009年9月29日14:32 Yoshinori Ichikawa <yoshinori...@oracle.com>:
Reply all
Reply to author
Forward
0 new messages