facebook twitter youtube
Salesforce Java Android PHP JavaScript MySQL Perl node.js HTML iOS
in node.js - 26 11月, 2013
by mr58 - 2 comments
node.jsとの出会い

最近「node.js」と言うフレーズを良く耳にします。今更かもですが。
どうもサーバーサイドでJavaScriptを実行した結果を返すものらしい。

思えばインターネットが一般家庭に広がりを見せ始めた1990年代半ばあたり
企業はもとより、個人でもマニアックな方もいれば少し進んだ学生でさえも
いわゆるホームページ(ウェブサイト)を持つようになったと記憶してます。

当時は今と比較すれば回線も、PCの処理能力も、処理をするアプリ(ブラウザ)も含めて
まだまだ発展途上で遅く、画像1枚を表示するのにも大変時間のかかる時代でした。

その中でも人の想像力と言う意味では、現代とさして変わらず
インタラクティブな事を望んでいたと思います。

簡単なものでは、時間別に挨拶を表示したり、キリ番と呼ばれる
アクセスカウンターのキリの良い数字(1000番目など)の訪問者には
「おめでとうございます」など表示していたページを多々見かけました。
※ゲストブックに記入してくださいとか指示する人もいましたね。踏み倒し禁止!とか

一方それをビジネス用途で活用する際には、企業のニュース事項などを
今でいうブログのような仕組みで更新するためのシステムもありました。
もともと一般的に使うようになったブログの元ネタなのかもしれません。

またポータルサイトと言う、様々な情報をまとめることで
閲覧者を集め、広告による収益を産み出すビジネスモデルも流行ったと思ってます。

そこでは大きく2種類の動的サイト構築手法があって
1つはサーバーサイドで実行し、結果のHTMLを返却する「CGI」と呼ばれるもの。
もう1つは情報としては静的なものだが、静的なページを短いサイクルで作成し続け
常に最新の情報を表示しようと試みているもの。

結局仕組みとしては全てCGIで事足りるが、それだとサーバーの負荷がかかりすぎて
回線や閲覧者側の環境以外に、サーバーの負荷によって
ページの表示がさらに遅くなる問題が発生しました。
その為、個人に特定した情報でない場合は、上記の短いサイクルでの静的ページの作成によって
サーバーに負荷がなるべくかからないようにしていたと思います。
※他にも画像は専用サーバーにまとめるなどもしているところはしていたかと

そういった手法にちょっとしたエッセンスのような役割で
JavaScriptを用いたユーザービリティ向上などの手法を取り入れていたと思います。

まとめると
「回線」「PCの処理能力」「アプリ(ブラウザ)の性能」に「サーバーの処理能力」の関係があり
・個人に特定した情報(会員サイト等)はサーバー側で処理
・不特定多数の情報(ポータルサイト等)は静的ページで対応
・ユーザビリティ向上のためにJavaScriptを活用
の関係がしばらく続いていたと認識してます。

それに2000年代の後半からはAjaxと言う仕組みが導入され
部分的な動的処理(サーバーサイド処理)ができるようになりました。
これは簡単に言えば、ショッピングサイトなどで表示されている商品情報は誰が見ても同じだが
画面の右上には「○○○○さん、現在のポイントは×××です」などと表記されてあり
その部分だけページ表示後に改めてサーバー側に要求する仕組みです。
全部を処理する必要はないが、一部だけでも動的な情報が必要な場合に有効で
サーバーの負荷分散の効果もあるのかもしれませんが、
どちらかと言うと開発側の都合のほうが大きいのではないかなと感じます。

そんな感じで、ちょっと前置きが長くなりましたが
node.jsはサーバーの負荷を下げる狙いがメインにありながらも
開発言語を統一することで技術者の負担も下げることができると注目されているようです。

そんな私はまだnode.jsについて知らないので
次回以降少しづつ探ってみたいと思います。