以前、読まないといけないと思っていた、
- Webサービスのサービスやメソッドの名前について
Javaでは一般的にクラス名に名詞、メソッド名に動詞を付けるのが
ルールですね。
例えば
CustomerDataクラスのinsertCustomerRecordメソッド
データベースに顧客情報の追加処理が実装されているんだな、
というのが想像できます。
SOAではサービス名、オペレーション名に動詞を付けます。
つまり、
CustomerServiceサービスのCreateNewCustomerという感じです。
"顧客データのレコードを追加する"ではなく、
"新規顧客の作成"となるわけです。
ビジネス上に意味の持つ名前を付ける、というわけです。
- WSDLのメリットについて
WSDLの最大のメリットは機械(つまりコンピュータ上で動くプログラム、
ツール)で読み取り可能なインターフェイスが定義されている、
ということです。
さらにオープンスタンダードであるということ。
SOAPがなくなってもWSDLは生き残るかもしれません。
- ステートレスかステートフルか、また同期は非同期か
ステートレスの方が良い、セッションレプリケートすると
パフォーマンスが悪くなるとかは
通常のWebアプリケーションを設計するときと同様。
非同期か同期かも結局、作るものによって変わる。
この辺はその都度考えないといけない。
- オペレーション粒度について
またSOAに限ったことではありませんが、リモートの場合は
オペレーションの粒度は大きくなります。
例えば、本の情報を得るのに
著者名取得メソッド
タイトル取得メソッド
値段メソッド
と粒度の細かい分け方では、呼び出し回数が増え、その分
通信によるオーバヘッドが大きくなります
getBookInfoというオペレーションを作成し、一回の呼び出しで
一気に情報が取れます。
確かに、AmazonのWebサービスもそうなってます。