Web サービスの開発スタイル
OR マッピングを行う際と同様に、Web サービスの開発においてもトップダウン的なアプローチとボトムアップ的なアプローチがあります。
Web
サービスの開発においては、Web サービスの定義(コントラクト)となる WSDL 及び XML
スキーマを基にクラスを作成するのがトップダウン的なアプローチで、クラスから WSDL や XML
スキーマを生成するのがボトムアップ的なアプローチとなります。前者の開発スタイルを "コントラクトファースト"、後者の開発スタイルを
"コードファースト" と呼ぶことが多いようです。
当方にはまだ Web サービスに関する知識や経験が乏しく、どちらの開発スタイルが望ましいと語ることはできませんが、InfoQ でたいへん参考になる記事を見つけました。
●InfoQ: コードファースト ~Webサービスを再考する
同記事では、理想論ではコントラクトファーストが望ましいということになるが、現時点においてはコードファーストの方が生産性が高く、現実的だとまとめています。また、コードファーストの問題点を解消する方法の一つとして、「JiBX」
によるアプリケーションデータモデルと XML 表現の分離を挙げています。
もちろん、利用可能な既存のコンポーネントの有無や開発者のスキルなどによって適した開発スタイルは異なるでしょうし、コントラクトファーストの課題として挙げられている支援ツールの登場によっても状況が大きく変わるかもしれません。しかし、個人的には非常に納得できる意見だと感じました。
関連情報
・Japan.internet.com
デベロッパー - POJOベースのドメインアプリケーションをWebサービスとして公開する
・IBM
Axis2 と JiBX を使って Java クラスを Web サービスに変換する 第1回… - Japan
・IBM
Axis2 と JiBX を使って Java クラスを Web サービスに変換する 第2回… - Japan
・Jungle
Java - 『エンジニア実験室 試してわかるWebサービス』
・Jungle
Java - soapUI 1.7.6 リリース