トップITシステムWebアプリサーバーの常識を覆す「Node.js」I/Oのイベント管理がキモ動画の再生障害のお知らせ:動画の一部が再生できない事象が発生しています。日経コンピュータ2012.08.01コピーしましたPRなぜNode.jsでは、非同期処理を実現できるのか。そのカギとなっているのが、I/O処理のイベントを管理するライブラリ「libuv」である。libuvは、Node.jsと一緒にインストールされる。OSによるディスクへの書き込みや通信などの処理に関するイベントを監視し、そのステータスをNode.jsに通知する機能を持つ(図1)。これを利用することで、Node.jsのアプリケーションは書き込みや通信の終了を待つことなく、ほかの要求を処理することができるわけだ。非同期処理をするためには、「処理が終わったら通知する」仕組みが必要。ある[画像のクリックで拡大表示]イベントを監視するプログラムは独自に開発することももちろん可能だ。OSによってイベントの扱いについての監視の仕様が大きく異なるため、開発者にとっては負担が大きい。OS、FreeBSD、Solaris、さらにWindowsと、多くのOSをサポートする。サービス本部アプリケーションサービス部の大津繁樹シニアエンジニアは評価する。ほかのソフトウエアを使う選択肢もある。Perlを使って開発するなら「AnyEvent」、Pythonなら「Twisted」、Rubyなら「EventMachine」といった非同期処理を実現するソフトがある。システムサービス事業部の黒柳為之氏は説明する。JavaScriptが呼び水にNode.jsの二つめの特徴は、JavaScriptでコードを記述できる点である。Node.jsは米グーグルが開発したJavaScriptエンジン「V8」をベースにしたエンジンを実装しており、サーバー上でJavaScriptを実行できる。サーバーアプリケーションをJavaScriptで開発できることは、ユーザー企業にとって利点が多い。JavaScriptを知る技術者は多く、スクリプト言語であるため習得もしやすい。技術部の村瀬大輔氏は指摘する。名村卓執行役員は、「JavaやCで非同期処理のコードを書くのには、かなりのスキルと時間が必要だ。Node.jsとJavaScriptを組み合わせれば、初心者でも簡単なチャットシステムを2~3時間で開発できる」と話す。記事は執筆時の情報に基づいており、現在では異なる場合があります。現場の負担軽減を!医療界でのAWS活用法500万社が導入。情報銀行の成り立ち、事例、現状課題やその行方を網羅。経営戦略である以上、「会計」の知識やスキルが欠かせません。