- PR -

Webサービスを公開するクラスの単位は?

1
投稿者投稿内容
頭脳パン
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 89
投稿日時: 2008-03-15 16:09
VS2005,C#にてWebサービスを使ったスマートクライアントを作成しています。

Webサービスで公開する機能は、WebServiceを継承したクラスを
作成すると思いますが、このクラスは
どの単位で作成するのが適当でしょうか?

今、考えているのはある程度、機能をまとめて
それをWebサービスで公開する単位で考えています。

一応考えられそうなのが
a,b,c,dメソッドがあるとして、X画面ではa,b Y画面ではc,dとしたら

(1)画面毎に、WebServiceクラスを作成
 (画面毎)
(2)a,b,cはある機能を提供することが類似しているとして
 abcでまとめてWebServiceクラスを作成、dでまた1クラス作成
 (機能でまとめる)
(3)すべてを1クラスにまとめる
(4)公開メソッドを共通化して、公開メソッドを1つにして
   あとは、すべての要求をそのメソッドの中で分岐する。
   (4)は、できるのかどうかわかりませんが。

一般的に、どのようなまとめ方をしますでしょうか?
業務でWebサービスを使用している方など、ご知恵をおかしください。
indigo-x
大ベテラン
会議室デビュー日: 2008/02/21
投稿数: 207
お住まい・勤務地: 太陽の塔近く
投稿日時: 2008-03-16 10:35
私は(3)(4)あたりです。(少数派です)

 業務用のWEBサービスは広く公開する訳ではないので

  (極端に言えばPORTがあればでもいいと思ってます)

   で、Binaryでシリアル化してBase64でやり取りします

   (いいのかよ!!て感じですが。
     他の有名ブログでもやっている人は見ているのでよいのでは。。。。。。)
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2008-03-17 21:52
どういった WebService を作っているかによるんじゃないかな。
たとえば機能の寄せ集め的な WebService を作っているならまとめてしまってもいいかも。
逆に一連の手続きっぽいものだったら僕の場合は分けそうだな。

indigo-x さんの案、こういった考え方がなかったから面白い。
ただ受け側が毎回デシリアライズしてやる必要がある?
_________________
かるあ のメモスニペット
indigo-x
大ベテラン
会議室デビュー日: 2008/02/21
投稿数: 207
お住まい・勤務地: 太陽の塔近く
投稿日時: 2008-03-18 08:21
毎回デシリアライズは必要ですが、上手く作れば共通化できます。
有名ブログで、速度比較していたんですが
  Binary→Base64の方が若干早いです。(通信も早いはず)
オマケで良い事はSoapなら汎用型またはエンコード済み等をしなければ
ならないですがBinaryなら何もいらないです。
頭脳パン
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 89
投稿日時: 2008-03-18 21:45
ご回答ありがとうございます。

やはり、決まった方法はなく微妙なところなんですね。

作成予定の機能は、どちらかというと
「一連の手続きっぽいもの」のほうですね。

毎回デシリアライズは面白いですが、保守性がちょっと気になりますね。
1

スキルアップ/キャリアアップ(JOB@IT)