Seasarプロダクトの選択のしかた

半年来続けていた決済系システムの作り替え案件が一段落しそう。
この案件では様々なSeasarプロダクトを使用したのでどうしてのような選択になったのかを中心にまとめてみたい。


端末サーバー

TCPの独自プロトコルで接続を受け付けるDaemonプログラム。1電文1サービスクラスで、seasarコンテナでサービス、ロジックを管理することですっきりした構成になった。

SOAP API

SOAPでサービスにアクセスを受け付けるサーバー。 s2axis2 を使うことでPOJOのサービスクラスを開発するだけですんだ。

管理者画面

様々な種類のアクターが使う管理者画面。HTMLテンプレートで画面仕様をそのまま実装に落とし込みたかったので teeda を使いページ駆動開発。おかげでスムーズに開発ができた。機能追加も楽々。
また分業がしやすいという利点もある。
さらに s2mai (メール送信), s2pager 等、地味ながら強力なプロダクトにも助けられた。

ユーザ向け画面(PC,ケータイ)

ケータイ用画面があること、URLがお客さんによってかわることなどから teeda は選択肢から外れ、 SAStrutsCubby を検討。結局、柔軟なURL構成が可能で mayaa との相性が良い Cubby を選択することに。
お客さんごとのテンプレート切り替えも mayaa で簡単に実現できた。

コア

コアロジックは、各フロントエンドで使うLogicやDaoを共有。

まとめ

おかげで様々なSeasarプロダクトを実践で試すことができた。画面をすべて teeda で作れると良いのだけれど、そこは得手不得手というか、管理者画面のようなものは teeda が得意な分野、ユーザ向け画面は cubbySAStruts がよいのではと思った。
また、 s2mai や s2pager 等、コンテナを軸に地味ながら強力なプロダクト群も非常に便利。
こういったUtil系のプロダクトがもっともっと充実してくるとさらに便利になっていくかも。