◆Nodeのインストール
http://nodejs.org/のサイトで,WindowsとMacにはインストーラが,そしてLinux用にソースコードが提供されている。
インストーラは実行すると,Windowsは「C:\Program Files (x86)\nodejs\node.exe」と,Macは「/usr/local/bin/node」として,それぞれ実行ファイルがインストールされる。
基本的にLinuxにおいては,ソースコードからのコンパイルになります。GCCなどのコンパイラ環境がすでにインストールされている状態で,次のような手順でインストール
$ wget http://nodejs.org/dist/v0.9.2/node-v0.9-2.tar.gz
$ tar zxvf node-v0.9.2.tar.gz
$ cd node-v0.9.2
$ ./configure
$ make
# make install
最後の「make install」はrootユーザで行い,「/usr/local/bin/node」として実行ファイルがインストールされます。
◆モジュールの使い方について
ブラウザ上で動くJavaScriptはすべてのjsファイルがマージされたものとしてスコープが適用されますが,nodeにはモジュールという単位で各機能を分割することができます。
モジュールが1つのjsファイルとなります。それぞれのグローバルスコープはそれぞれのjsファイル内で"閉じた"状態になり,exportsオブジェクトを通して外部に渡すことができます。モジュールの参照はrequire関数を使います。読み込んだモジュールのexportsオブジェクトを返してくれます。
モジュール参照の一例を見てみましょう。
exports.printFoo = function(){ return "foo" }
このコードをfoo.jsファイルとして保存します。このfooモジュールは,文字列「foo」を返すだけのprintFooメソッドを実装しています。
var foo = require('./foo.js');
console.log(foo. printFoo());
こちらのコードをmain.jsファイルとして,同じディレクトリに保存します。foo.jsをモジュールとして読み込んで,fooオブジェクトで参照します。printFooメソッドの結果をコンソールに出力します。
node main.js
を実行すると,コンソールに「foo」と出るのが確認できます。
*ファイルはUTF-8で保存することによって、日本語が取り扱える。
2012年11月2日金曜日
2012年11月1日木曜日
サーバサイドJavaScript-1
◆Node.jsについて
Node.jsとは,ブラウザGoogle Chrome用に開発されたJavaScriptエンジンV8がサーバ上でプログラムを実行できるように,ファイルやネットワークI/Oなど多くの機能を追加したもの。
軽量で効率よく多くのリクエストを処理するネットワークアプリケーションの構築ができるプラットフォーム
①2つのモデル
・ノンブロッキングI/O
・イベントループ
JavaScriptの1つの特徴にシングルスレッドで動作している。
これはNode.jsでも同様で,デッドロックなどを意識する必要がないが、一度に1つの処理しかできないため複数の処理ができない。
そのためNode.jsではノンブロッキングI/Oを採用
従来型たとえば,データベースにアクセスして検索を実行して結果を取得する。この場合,データベースに問い合わせてから結果が返ってくるまで,待ち時間となる。
一般的にはライブラリなどでデータベースから結果が返るまでの間,呼び出し元の処理をとめている。そのため結果を利用した処理を続けてできます。
ノンブロッキングI/Oは,データベースに問い合わせたら次の処理に移ります。結果の受け取りはコールバックで実現。このように基本的に重い入出力処理は非同期で実行するのがノンブロッキングI/O
イベントループ
さらにリクエストやコールバックの発生はイベントとして扱い(登録し),そのイベントに関する処理が終わったら,次のイベントを処理する。このようなイベントループをNode.jsは採用している。
Node.jsとは,ブラウザGoogle Chrome用に開発されたJavaScriptエンジンV8がサーバ上でプログラムを実行できるように,ファイルやネットワークI/Oなど多くの機能を追加したもの。
軽量で効率よく多くのリクエストを処理するネットワークアプリケーションの構築ができるプラットフォーム
①2つのモデル
・ノンブロッキングI/O
・イベントループ
JavaScriptの1つの特徴にシングルスレッドで動作している。
これはNode.jsでも同様で,デッドロックなどを意識する必要がないが、一度に1つの処理しかできないため複数の処理ができない。
そのためNode.jsではノンブロッキングI/Oを採用
従来型たとえば,データベースにアクセスして検索を実行して結果を取得する。この場合,データベースに問い合わせてから結果が返ってくるまで,待ち時間となる。
一般的にはライブラリなどでデータベースから結果が返るまでの間,呼び出し元の処理をとめている。そのため結果を利用した処理を続けてできます。
ノンブロッキングI/Oは,データベースに問い合わせたら次の処理に移ります。結果の受け取りはコールバックで実現。このように基本的に重い入出力処理は非同期で実行するのがノンブロッキングI/O
イベントループ
さらにリクエストやコールバックの発生はイベントとして扱い(登録し),そのイベントに関する処理が終わったら,次のイベントを処理する。このようなイベントループをNode.jsは採用している。
2012年10月2日火曜日
2012年10月1日月曜日
サーバサイドJava-001
第1章の基本的まとめ
1-1
【Webアプリケーションとは】
インターネット機能を特徴を利用したアプリケーション
①Webアプリケーションを公開するにはWebアプリケーションを実行するための環境Webサーバが必要
②利用する際はネットワークに接続したパソコン、携帯端末のWebブラウザが必要
具体的なものは
①インターネット検索エンジン(Google、Yahooなど・・・)
②アマゾンの通信販売
③Twitter、FacebookなどのSNS(ソーシャル・ネットワーキング・サービス)
など
【サーバとクライアント】
サービスを提供するのがサーバ
サーバが提供するサービスを受け取るのがクライアント
【静的なページと動的なページ】
静的なページ:ブラウザなどのクライアントやサーバの状態によらず、常に同じコンテンツを返す
動的なページ:ブラウザのリクエストの内容やサーバの状態によって返すページを毎回生成して返す
検索エンジンによって検索すると、毎回違うページになっていることが見られます。
1-2
【Webアプリケーションに必要なもの】
①WebアプリケーションはHTTPと呼ばれるプロトコルを利用して、サーバとクライアントとの通信を行う。
②Webクライアントはブラウザ
③Webアプリケーションの動かすにはアプリケーションサーバが必要
(Webサーバとアプリケーションサーバが一緒なものもある)
*Webサーバとは本来、HTTPサーバという
Webのプログラム
①URIを指定して実行
②プログラムは利用するユーザの情報をデータベースから参照/格納し、メールサーバと通信を行い、登録されたメールへ登録完了のメールを送信するなど行ったサービスを提供します(ショッピングなど)
【サーバサイド技術】
サーブレット
①オブジェクト指向言語
②マルチプラットフォーム
JSP
1-1
【Webアプリケーションとは】
インターネット機能を特徴を利用したアプリケーション
①Webアプリケーションを公開するにはWebアプリケーションを実行するための環境Webサーバが必要
②利用する際はネットワークに接続したパソコン、携帯端末のWebブラウザが必要
具体的なものは
①インターネット検索エンジン(Google、Yahooなど・・・)
②アマゾンの通信販売
③Twitter、FacebookなどのSNS(ソーシャル・ネットワーキング・サービス)
など
【サーバとクライアント】
サービスを提供するのがサーバ
サーバが提供するサービスを受け取るのがクライアント
【静的なページと動的なページ】
静的なページ:ブラウザなどのクライアントやサーバの状態によらず、常に同じコンテンツを返す
動的なページ:ブラウザのリクエストの内容やサーバの状態によって返すページを毎回生成して返す
検索エンジンによって検索すると、毎回違うページになっていることが見られます。
1-2
【Webアプリケーションに必要なもの】
①WebアプリケーションはHTTPと呼ばれるプロトコルを利用して、サーバとクライアントとの通信を行う。
②Webクライアントはブラウザ
③Webアプリケーションの動かすにはアプリケーションサーバが必要
(Webサーバとアプリケーションサーバが一緒なものもある)
*Webサーバとは本来、HTTPサーバという
Webのプログラム
①URIを指定して実行
②プログラムは利用するユーザの情報をデータベースから参照/格納し、メールサーバと通信を行い、登録されたメールへ登録完了のメールを送信するなど行ったサービスを提供します(ショッピングなど)
【サーバサイド技術】
サーブレット
①オブジェクト指向言語
②マルチプラットフォーム
JSP
登録:
投稿 (Atom)