モダンネットワークプログラミング入門 WEB+DB PRESS vol.55
先日も少し書きましたが、WEB+DB PRESS vol.55 で特集記事を執筆させていただきました。本日発売です。
タイトルは、モダンネットワークプログラミング入門です。
マルチコアCPUから最高の性能を引き出す
本特集では,マルチコアCPUの性能を存分に引き出し,大量のクライアントからの莫大な数のアクセスにさらされても,常に爆発的な性能を発揮する先進的なネットワークプログラムの書き方を,実践的な実装パターンとしてやさしく解説します。
WEB+DB PRESS vol.55 特集3
弾さんの連載最終回は、えとらぼの皆さんです^^;
目次
第1章:ネットワークプログラミングの基礎知識
なぜいま「ネットワークプログラミング」なのか
第2章:ソケットAPI
ネットワークプログラミングの基本を押さえる
第3章:ネットワークプログラムのI/O戦略
非同期,並列,イベント駆動,マルチスレッド
第4章:実践! モダンネットワークプログラミング
マルチスレッド+イベント駆動サーバの実装
来たる(もう来ている?)マルチコアCPU時代にあわせて並列性の高いプログラムを書こうとしているとき、必ず考える必要がある話題について取り上げました。
特に3章の「ネットワークプログラムのI/O戦略」では、ネットワークプログラムの様々な書き方を概観しています。 マルチコア時代の高並列性IOアーキテクチャ Wavy の話題も関連しています。
2章では、基本的なソケットAPIの使い方に加えて、イマドキのI/O多重化機構であるepollとkqueueの使い方についても取り上げました。サンプルコードも付いています。
第1章では、なぜいまネットワークプログラミングが必要なのかーということについて書きました。分散処理etcの話を書いたのですが、思えば2番目の特集で取り上げられているHTML5の「Web Sockets」を使うと、サーバーサイドではネットワークプログラミングが必要になりそうです。
epollやkqueue、pthreadの使い方が分かっても、それらを実際にどう組み合わせてプログラムを書くのかーという問題もあります。
そこで4章では、実際にマルチスレッドとイベント駆動を駆使した具体的なプログラムの書き方について取り上げました。最後にpreforkモデルとマルチスレッド+イベント駆動モデルの性能比較をしています。
最後にコラムでは MessagePack と MessagePack-RPC についても少し取り上げました。
この特集が少しでもネットワークプログラムの設計や実装の参考になれば幸いです。
ついでに「実はMessagePack-RPCって超便利なんじゃないか!?」なんて思っていただけたら大成功です^^;