OSS紹介

Node.js

Node.js最新情報

NRIのOpenStandiaが提供するNode.js最新情報

Node.jsの保守サポートサービスの内容はこちら Node.jsの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Node.js 最新トピック

すべてを見る

Node.js バージョンアップ情報

すべてを見る

更新日:2016-11-30

Node.jsの概要

Node.js(ノードジェイエス)は、Ryan Dahl(ライアン・ダール)氏によって開発され、2009年に公開されたサーバサイドJavaScript実行環境です。
Googleが提供するV8 JavaScriptエンジン上で動作し、ApacheのようなWebサーバ環境等やTomcatのようなWebアプリケーション環境をJavaScriptで実現することができます。
サードパーティによるモジュール開発も盛んに行われており、Node.js上でWebアプリケーションを開発するためのフレームワークであるExpress.js(※1)など多数のモジュールが公開されています。

Node.jsでは、従来のサーバ関連技術(Apacheなど)で問題となっていた接続台数増加に伴う性能劣化問題(※2)を解決するために、シングルスレッド、イベントループ、ノンブロッキングI/Oモデルといった技術を採用しています。
このため、Node.jsでは同時接続台数が増えた場合においても高速な処理性能を維持することが可能です。 更に、クライアントサイド・サーバサイドの開発においてJavaScriptを共通して利用できるため、効率的に開発を進めることも可能です。
また、2014年付近からは、MEANスタック(※3)の一要素としてNode.jsが取り上げられ、技術動向の調査を目的としたウェブサイト(※4)においても"ADOPT"(導入を推奨)と評価されるなど、Node.jsが技術的に優れていることを示す評価がなされています。
※1 http://expressjs.com/ja/
※2 C10K問題と呼ばれています。http://www.kegel.com/c10k.html
※3  MongoDB(データベース)、Express(Webアプリケーションフレームワーク)、AngularJS(クライアントサイドMVCフレームワーク)、Node.js(Webサーバ)からなるウェブアプリケーション構築のためのソフトウェア群。頭文字を取ってMEANと呼ばれています。http://meanjs.org/
※4 https://www.thoughtworks.com/radar/platforms/node-js

TOPに戻る

Node.jsのライセンス

Node.jsのライセンスは、MITライセンスです。
MITライセンスは、X Window System (X11)などのソフトウェアに適用されていることから、X11ライセンス、またはXライセンスとも表記されます。
MITライセンスは、数あるソフトウェ アライセンスの中で最も制約が少なく、ソースコードの無償の使用のほか、改変、再配布することも認められています。

TOPに戻る

Node.jsと同類のソフトウェア

Node.jsの他にも、Rhino、Jaxer、RingoJSなどのサーバーサイドスクリプトの実行環境が存在します。

TOPに戻る

Node.jsの機能および特徴

Node.jsは以下の1、2の特徴より、同時接続台数が増えた場合においても高速な処理性能を実現することができます。

1.シングルスレッド+イベントループ

Node.jsでは、複数のクライアントとのやり取りをシングルスレッド+イベントループの形式で行います。(JavaScript環境をベースとしているため)
シングルスレッド+イベントループの処理形式では、マルチスレッドの処理形式と比較し、

  • スレッド単位で消費されるメモリ使用量が少なくて済む(クライアントが増える度にスレッドが増えることがないため、スレッドに対して使用されるメモリ使用量は一定となる)
  • スレッド切替えに伴うオーバーヘッドが少ない

といった利点があります。 但し、イベントループ形式では、データベース接続などの時間がかかるI/O処理が発生した場合に処理結果が返るまで待機し続けるため、その間別の処理(プログラム実行、リクエスト応答など)が行われなくなる問題があります(ブロッキング)。

2.ノンブロッキングI/O

「1.シングルスレッド+イベントループ」で挙げたブロッキングの問題を解決するのが、ノンブロッキングI/Oとなります。
ノンブロッキングI/Oを適用したイベントループ形式では、時間のかかる処理を非同期に実行させ、スレッド自体もブロックさせないため、その間に別の処理を行うことが可能になります。
例えば、ノンブロッキングI/Oでは、データベースに問い合わせを行った際に、問い合わせ結果を待たずにリクエスト応答などの別の処理を行うことができます。

その他の特徴

その他にも以下の特徴があります。
  •  npmによる高速かつ堅牢で一貫性のあるパッケージ管理
  •  サーバサイド、クライアントサイドで処理の共通化ができる
  •  多くの開発者が少なからず知っているJavaScriptで実装できる
  •  アクティブな開発コミュニティ

TOPに戻る

NRIのNode.jsサポート(保守/サポートサービス)

現在、Node.jsのサポート提供は行っておりません。

TOPに戻る

関連OSS

Node.jsのダウンロード

Node.jsのダウンロードページ

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気OpenAM
  • 注目MongoDB
  • OpenIDM
  • Corosync
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • BIND
  • Apache Struts
  • PostgreSQL
  • Pentaho
  • Spring Framework
  • Apache Tomcat
  • Solr
  • Dovecot
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Liferay
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • BIND
  • OpenDJ
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • sendmail
  • Courier-IMAP
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO
?
<--!-->