ゆーたんのつぶやき

株式会社ノークリサーチにてIT関連のシニアアナリストとして活動しています。

Javaとネットワーク基礎



神保町の本屋さんを散歩していたら、良さげな本を見つけました。
技術評論社
Javaネットワークプログラミング 基礎からわかる完全入門」
という本です。
http://www.gihyo.co.jp/books/syoseki-contents.php/4-7741-2168-1


Javaの場合、UNIXのソケットプログラミングやWindows
Winsockプログラミングと比べると、煩雑な部分がかなり
隠蔽されています。アドレス設定の際にhostent構造体を
意識することはありません。サーバー側のソケット作成は
とりわけ簡便になっていて、ServerSocketを使っていれば
bind()やらaccept()やらをコールする必要もありません。


元々ネットワークを意識して設計されているので、当然と
言えば当然なのですが、それ故にHTTPやSMTPなどを使った
アプリケーションを開発している際、水面下で起きている
ネットワークレベルの動きを理解しないまま済ませてしまう
というある種の弊害も生じてきます。


普通にコーディングし、それがうまく動いている時は何ら
問題ないのですが、いざトラブルが起きた時はプロトコル
レベルでの知識が必要になります。例えば「文字化け」が
発生してしまった場合にはHTTPでもSMTPでもヘッダ情報
(Content-Type)を直接確認する必要が出てきたりします。
或いはWEBページで「NetScapeで閲覧した時にだけ何故か
変な表示が出てくる」ということで調べてみると、ページ
のリダイレクト(ステータスコード30X)が関係していたり
といったこともあったりします。いずれの場合もある程度
プロトコルを理解していないと対処が難しくなってきます。


だからといって、ネットワークの専門家が読むような本と
格闘するわけにも行きません。アプリケーションの開発を
本業とする若手エンジニアがJavaプログラミングと絡めた
形でササッと勉強してもらうための本がなかなかないので
苦労していたのですが、上記の本はその目的にはピッタリ
です。


インターネットやTCP/IPの歴史的な経緯に簡単に触れた後
パケットフォーマットの丁寧な説明があり、それに続いて
HTTP、SMTPFTPPOP3といった主要なプロトコルの詳細
な解説がサンプルコードと共にやさしく記述されています。


「若手エンジニアにプログラムコードの水面下で動いている
ネットワーク層の仕組みを一度整理して身につけて欲しい」
というニーズには最適の一冊だと思います。