URLを指定するのがREST、と簡単に考えていたが、本来のRESTはROA(Resource Oriented Architecture)という設計思想に基づくものだった。
HTTPのメソッドとレスポンスコードがこんなにたくさんあるとは思わなかった。こんな世界は理想だけど現実にはないだろう、と思ったが、Amazon S3が忠実にROAであることにびっくりした。Rails2.0がROAになったし、Web業界のWebサービスはROAか。
ROAの条件としてステートレス性があるが、Javaのフレームワークでは逆にJBoss SeamやWicketなどステートフルが次にはやりそうだ。こっちは業務アプリケーションを作る際の問題を解決してくれるように見えて、開発者の負担を軽減する。アプリケーション利用者に新たなメリットをもたらすかは不明だが。
ステートフルにすることで解決できる問題をROAでも解決できればROA万歳!なのかなあ。でも、トランザクション処理やバッチ処理ばっかりの業務アプリをROAで実現するのは無理っぽいし。参照と単一登録/更新はクライアントで状態を持って、トランザクション、バッチ中心はサーバ側で状態を持つという区分けがきちんとできればユーザは使いやすくなるかな。