[Seasar-user:1100] Re: S2Axis 1.0.0 (alpha) リリース

Koichi Kobayashi koichik
2004年 10月 8日 (金) 04:47:16 JST


小林 (koichik) です.

On Thu, 07 Oct 2004 05:59:28 +0900
Taro Kato <kato @ gluegent.com> wrote:

> ちょっと眠いですが取り急ぎ。

うーみゅ,「のんびりと議論できれば」と書いたのに 3 時間あまりで
返事を頂いてしまったとは.(^^;

> 結局、Seasar を意識させて Axisを意識させないツクリ → 小林さん
> Axisを意識させて Seasar を意識させないツクリ → 加藤
> 
> …ということの違いだということが分かりました。

以前のメールで「主従関係が逆転している」と書いたのは
そういうことです.

> name さえ付いていれば、どんなものも、たとえば xaDataSource さえ
> Webサービスになってしまうんですよね?

はい.
この経緯については,
http://d.hatena.ne.jp/koichik/20040818#1092855650
の最後の方と,それに対するひがさんのコメントを参照してください.
でも,やっぱり DataSource まで公開されちゃうのはいかがなものか?
という気もするので,公開するコンポーネントを選択できるように
したいと考えています.

> > 実際のところ,サービスはステートレスにすべきなのではないでしょうか?
略
> うーん「想い」は分かりますが、なんかいろいろと、代替策、代替策…と
> いう感じですよね。それとできない理由を「すべきだから」って、Axis設計者
> もなにそれって思いませんか?Axis使う意味がなくありませんかね?
> ステートレスにするために相当Axis頑張ってますよ。そんな仕様SOAPにないのに。

「できない」ではなくて「やらない」なのでご注意を.
その理由はまさに「そんな仕様SOAPにない」からです.

> ボクはこのクッキーをうまく使ったステートレス対応に感動して、どうにか
> DelphiのSOAPクライアントでAxisサーバーと共有できるようにって、Delphiの
> システムソースに手を入れてまで実現したんですけどね。
> 言うなればスタティックメソッドの固まりが、メンバを持ったオブジェクトにな
> るわけですから劇的な変化だと思いません?
> Webサービスはすぐに、パラメータとリターンが巨大化するんですよねー。
> 通信経路を通る量は減りますし。必要に応じて何手か前で渡していた物を得て
> いたものの結果を得るということができますから、まさしくリモートオブジェク
> トのイメージで扱えますよ。

ようやく分かってきました.
加藤さんの Axis の使い方は,いわゆる「Web サービス」を
提供するためではなく,比較的閉じたシステムにおいて RPC を
実現する手段として,なのですね.CORBA の代替みたいな.
それなら ?wsdl や session スコープを利用してもいいですよね.
でも,ちょっと (かなり?) 特殊ではないかという気がしますけど.

> もうすでにクライアントプログラムは、動的に ?wsdlで取得して操作するように
> しているものがありますので、配布済みのものを差し替える必要が出ちゃうって
> ことです。やりたいのはサーバーサイドの、クライアントサイドの預り知らない
> ところの若干の修正なのに、それが波及しちゃうって感じです。

なるほど.(^^;
まさに,こういうことになるから ?wsdl などを外部との
インタフェースに使う事は好ましくないだろう,と前のメールで
書いたわけです.

> でももし本当にSeasarが主でAxisが従なら、もっと軽量のSOAP実装を使った
> 方が良いような気がするんですけどね?

需要があれば対応すると思いますよ.
S2Strats の他に S2Tapestry があるように.
今 Axis が選ばれているのは,それが一番メジャーだと
思われているからで,それ以外の理由はあまり無いのでは
ないでしょうか.

> ただ多かれ少なかれ、他のS2シリーズも同様だと思いますが、
> seaserを新規導入するために既存のフレームワークと同調してほしいという
> 要求はあると思います。
> 「インパクトが大きいなら採用を見送る!」なんていうことが無いように。
> 究極は「え!何も変更箇所はないけど、seaser入っているんですか?」って
> のが理想です。

普通に「Web サービス」を提供しているシステムであれば,
現状の alpha でもインパクトはほとんど無いと思います.
サービスの実装クラスを dicon に記述 (同じ URL で
アクセスできるようにname 属性を付ける) し,WSDD からその
<service> 要素を削除するだけだと思うのですが.
違っていたらご指摘ください.とても重要な事なので.
問題になるのは,標準から外れた部分である session スコープや
?wsdl などを使っていた場合が主だと考えています.
加藤さんはまさにこのケースだったわけです.(^^:
気になるのは,加藤さんがレアケースなのか,よくある
ケースなのか? ということ.
他の人の意見が聞きたいです.

実際には問題になるケースがもう一つあって,カスタムの
シリアライザ・デシリアライザを使う場合です.
これについてはサポートしなくてはなりませんね.
それに気づく事が出来たのは加藤さんのおかげです.
自分の考えでは,サービスごとに異なったマッピングを
必要とする事はまれではないかと思えるので,
サービス Handler ではなく,グローバル Handler でも
十分に扱えるのではないかと考えています.
それなら alpha の S2Handler でも対応できるのではないかと
思うのですが,このあたりはまだ勉強不足ですね.


自分の思惑としては,alpha ダメ! beta でなきゃ! という
流れになってコミッタ禅譲となるはずだったのですが,
ちょっと違っちゃったかな (苦笑).
加藤さんの気分を害してしまったかもしれないし.
ま,コミッタうんぬんは抜きにして,はぶさんのおごりで (笑)
飲みに行きましょう.
Axis の事,特に苦労話とか落とし穴とか聞かせてください.
それでは.


-- 
<signature>
    <name>Koichi Kobayashi</name>
    <e-mail>koichik @ improvement.jp</e-mail>
</signature>



Seasar-user メーリングリストの案内