画面とモデル部分の 分離という話は、いろいろ言われていて、そのモデルとしてもStrutsとかいろいろでてるけど、画面とサーバープログラムを、ばちっと切ってしまうかんじではない。
Strutsでも、ActionFormは、画面に関連してしまう部分があるし、struts-config.xmlでも、結局どのJSPを使うかという指定をしてしまうので、完璧に画面部分とサーバー部分を分けるわけではない。
しかし、ここで、WebAPIで、POSTなりGetなりの引数で、値をわたして、サーバー側プログラムを呼び出し、XMLで結果を受け取るというカタチにすれば、
・クライアント側画面はAJAXで、
・サーバー側は、CGIでも、サーブレットでもまあ、Strutsでもいいけど
(この場合XMLを返すStrutsにする)、
とにかく、HTTPプロトコルで、引数を受け取り、XMLで返すプログラム
というカタチで、完璧に分けられる。クライアント側の画面は、どうにでも変えられるし、きまってなくってもいい。
っていうかたちで自由度があがる。
サーバー側プログラムも、いろんなWebAPIを呼び出し、加工して返すWebAPIを作って、それを呼び出したり、WebAPIをラッピングするカタチでカスタマイズして、そのカスタマイズしたのを呼び出す。。。
というかんじで、柔軟にサーバー側も加工できる。
そー言う意味で、クライアントサーバーを柔軟に展開するのは、AJAXとWebAPIの組み合わせがいいのかもしれない。
とくに、標準があって、カスタマイズをかけるようなシステムの場合、ラップしたりマッシュアップして加工しやすかったり、画面を自由に変えやすいAJAXとWebAPIの組み合わせがいいのかもしれない。