僕は生粋のプログラマではなくて、所詮システム設計屋なので、WCFの勉強を深めるたびに便利~という気持ちは全然こう持ち上がってこなく、むしろ背筋が寒くなります。何故かというと、その実装が簡単すぎるからです。実装が簡単だと、その技術の中身を知ることなしにそれを使って開発し、システムの根幹として使用することが簡単だと錯覚するバカ経験の少ない開発者やシステム設計者が出てきて、システム設計的には正しくない実装がされたために動かないプログラムやシステムが量産される様が想像できてしまうからです。こんなのは経験があれば、あーDCOM/CORBAの復活だと思うわけですが、最近は皆さん忘れているか、あえて思い出そうとしていないか、それとも脳天気を装っているかのようです。もっとも初めてのプログラミングがEclips 上でJavaなんて最近の若い人には遙か昔の話ですね。
WCFを使ってXML WEB Serviceのアプリケーションを作って、システム開発するのは、本当に簡単です。わずか十数行書けば、読むと眠くなるWS-*の仕様書通りにアプリが組み上がります。ただそれでわーいなのではなくて、WCFの実装がここまで極端に簡単にできるようになっているのは、SOAに基づいたシステム設計というより分散システム設計が大変複雑で、難しくて、考えることもいっぱいあって、コーディングになんて時間がかけられないから、マイクロソフトが簡単にしてくれたということを忘れてしまってはいけません。
したがって本当に時間をかけるべきところは分散システム設計であり、それは今までのDCOMやCORBAのような分散オブジェクト技術でのシステム開発や WSEでのWeb Service開発と何ら代わりがないのです。だからあえて書けば分散システムの基本的な知識もなしにWCFなんて使うべきじゃありません。ただ単にネットワーク越しにアプリケーション間でデータのやりとりをしたいだけであれば、別の方法を考えるべきです。基本はソケットでもいいでしょうし、次バージョンの.NET FXでサポートされる名前付きパイプでもいいかもしれません。それでもネットワーク越しにデータのやりとりがあるなら、それはすでに分散処理システムなのであり、その設計には細心の注意が必要なのです。
前置きが長くなりましたが、分散処理、分散システムを理解するためにいくつか私の読んできた本を紹介したいと思います。
図解でわかる分散オブジェクト技術のすべて―ネットワーク&システム構築 | |
小泉 修
日本実業出版社 2001-10 おすすめ平均 |
タイトルと表紙の装丁、そして価格ではだまされてはいけない本です。分散オブジェクトに関する一通りの説明がきちんとなされており、何よりわかりやすいので、最初に手に取る本としては最高の本です。正直もう絶版じゃないかと思っていたのですが、まだ入手できるようなので、これから分散システムについて学習おすすめて行こうという人は手にしておいた方がいいです。ただ内容は何せ2001年の本なので最新の話はないですが、過去の技術について学んでおくことは今使われている技術の理解の妨げには全くならず、かえってその理解を加速してくれるはずです。
分散システム―原理とパラダイム | |
アンドリュー・S. タネンバウム マールテン・ファン スティーン Andrew S. Tanenbaum
ピアソンエデュケーション 2003-10 おすすめ平均 |
何か一冊だけ読むとしたら間違いなくこの本です。分散システムについて学ぶには最高のテキストです。とにかく最低でもこれは読みましょう。もともと大学院・大学生向けの教科書なので眠くなっちゃいますし、枕にちょうどいい厚みですが、くじけずに読んでいきましょう。
詳説ビジネスプロセスモデリング―SOAベストプラクティス | |
マイケル ハーベイ Michael Havey 長瀬 嘉秀
オライリージャパン 2006-06-01 おすすめ平均 |
SOAに関する書籍は正直これって言うのがないのですが、とりあえずこれをあげておきます。SOAの考え方もそうですし、WS-*の仕様についても書籍化される頃には情報が遅かったりすることもあるので、この辺は適宜NET上のドキュメントやBlogもチェックしておくべきでしょう。可能ならアメリカのTechEdでのIndigo(WCFの開発コードネーム)やWSEのセッションのWEBキャストを捜して、それを見ておくと良いと思います。
コメント
難しいことは難しくしておくべきかもしれない
Matzにっき(2007-06-04) :RubyよりPHPを好む初心者 本当…
書籍:図解でわかる分散オブジェクト技術のすべて―ネットワーク&システム構築
書籍:図解でわかる分散オブジェクト技術のすべて―ネットワーク&システム構築