Webアプリケーションの開発に採用されるプログラミング言語やツール、フレームワークはさまざまだ。統一されたものはないが、全体の傾向としてよりリッチなUIを持ったリッチインターネットアプリケーションに向かいつつあるのは間違いのないところだ。
RIAが注目されるまで、Webアプリケーションの台座はWebブラウザでありつづけたが、RIAに注目が移ったことでデスクトップアプリケーションがその座を狙いはじめている。WebブラウザをWebアプリケーション専属とするPrismはその端的な例だが、ほかにもデスクトップアプリケーションそのものがWebサービスの取り込みをはじめている。統合デスクトップ環境ではGnomeが目指しているオンラインデスクトップがいい例だ。
ここでデベロッパへ視点を移したい。デスクトップアプリケーションでWebサービスを活用するということは、非同期にネットワーク通信を実装することを意味している。どういった仕組みでそれを実装するのか、レイヤをはさんで抽象化するべきかなど、考えるべき課題は多い。デスクトップアプリケーションにおけるWebサービスのインテグレーションはこれから注目される開発分野になるだろう。
ここではそうした設計実装視点のひとつとして、ここでは、Nazmul Idris氏によって2007年1月に公開されたCreating multi-threaded Swing apps that consume web servicesを紹介したい。David Herron氏はRIA開発におけるJavaのポジションについて3日(米国時間)、自身のブログで言及。JavaはRIA開発に対応する能力を持っているとし、Nazmul Idris氏の公開しているドキュメントに触れている。
Nazmul Idris氏のドキュメントでは、SwingWorkerを使ってマルチスレッド実装を行う場合の指針が紹介されている。開発実装レベルのホワイトペーパだが、Javaデベロッパにとっては有益なものだろう。興味があるデベロッパは一読されたい。