Submit Search
Node.js+MongoDB in SPA
0 likes
4,041 views
Naoki Sasaki
Web Applicatgion in Just Now!
Software
Related topics:
Node.js Development
Read more
1 of 13
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
More Related Content
PDF
Lt7 SPA
GIG inc.
PDF
Nginx
kantohibi
PDF
tansuの紹介
Yuya Matsushima
PDF
React entry
Nobuaki Miura
PDF
テンプレートエンジンの話 #jjug
Yusuke Yamamoto
PDF
モダンすぎる静的サイトの作り方
Yuya Matsushima
PPTX
Html5biz on May 10th, 2013
光一 原田
PDF
WordPress Cloud Design Pattern
Wataru OKAMOTO
Lt7 SPA
GIG inc.
Nginx
kantohibi
tansuの紹介
Yuya Matsushima
React entry
Nobuaki Miura
テンプレートエンジンの話 #jjug
Yusuke Yamamoto
モダンすぎる静的サイトの作り方
Yuya Matsushima
Html5biz on May 10th, 2013
光一 原田
WordPress Cloud Design Pattern
Wataru OKAMOTO
Similar to Node.js+MongoDB in SPA
(20)
PPT
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
PDF
Nodeにしましょう
Yuzo Hebishima
PDF
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
ODP
HTML5 アプリ開発
tomo_masakura
PPTX
HTML5最新動向
Shumpei Shiraishi
PDF
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
PPTX
HTML5&API総まくり
Shumpei Shiraishi
PDF
ES6時代におけるWeb開発者とセキュリティ業界の乖離
Yosuke HASEGAWA
PDF
SocketStream入門
Kohei Kadowaki
PDF
densan2014-late01
Takenori Nakagawa
PDF
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
PDF
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Shumpei Shiraishi
PDF
MEANスタック提案プレゼンテーション
Takumi Yokoyama
PDF
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
Naoya Ito
PDF
Java scriptの進化
maruyama097
PDF
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
Kensaku Komatsu
PPTX
Speed Up Web 2012
彰 村地
PDF
Node.jsでブラウザメッセンジャー
Yahoo!デベロッパーネットワーク
PDF
GraphQL入門 (AWS AppSync)
Amazon Web Services Japan
PDF
node-handlersocket
koichik
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
Nodeにしましょう
Yuzo Hebishima
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
HTML5 アプリ開発
tomo_masakura
HTML5最新動向
Shumpei Shiraishi
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
HTML5&API総まくり
Shumpei Shiraishi
ES6時代におけるWeb開発者とセキュリティ業界の乖離
Yosuke HASEGAWA
SocketStream入門
Kohei Kadowaki
densan2014-late01
Takenori Nakagawa
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Shumpei Shiraishi
MEANスタック提案プレゼンテーション
Takumi Yokoyama
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
Naoya Ito
Java scriptの進化
maruyama097
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
Kensaku Komatsu
Speed Up Web 2012
彰 村地
Node.jsでブラウザメッセンジャー
Yahoo!デベロッパーネットワーク
GraphQL入門 (AWS AppSync)
Amazon Web Services Japan
node-handlersocket
koichik
Ad
Node.js+MongoDB in SPA
1.
Node.js + MongoDB シングルページ
Webアプリケーション(SPA) Aug 2015, Naoki Sasaki
2.
Webの歴史 • 静的HTMLドキュメントの表示とハイパーリンクによるHTMLドキュメン ト間のリンク • HTMLドキュメント内の一部を動的に置き換える(サーバサイド・インク ルードなど) •
JSP/ASP/PHPなど、HTMLドキュメント内にスクリプトを埋め込み、サー バサイドで実行した結果の HTMLドキュメントをクライアントへ返す • クライアントから Ajaxにより Servlet/EJBなどへリクエストを発行し動的 にクライアント上の HTML DOMを書き換える(レスポンシブル Webアプ リケーション)
3.
これまでのWeb • クライアントからの要求に従って HTMLドキュメント をなるべく高速に返すという設計で成り立っている •
そのため、Apacheなどの Webサーバはクライアント リクエストを待ち構えるスレッドを数十∼数百個事前 に作成(スレッド・プール)し、そのスレッドがリク エストされた HTMLドキュメントを生成しクライアン トへ返し、接続を切った後にスレッドプールへ返す方 法を取っている
4.
これからのWeb • クライアントがサーバへHTMLドキュメントを要求するの は最初のごく小さなHTMLドキュメントで、以降サーバへ HTMLドキュメントの再読込は一切行わない • クライアントとサーバ間では
WebSocketによりリクエス ト/レスポンスを行い HTML DOM構造を動的に変更し続け る(シングルページWebアプリケーション) • そのため、クライアント/サーバ間は WebSocket通信の ために常時接続が保たれる
5.
従来のWebサーバの問題 • スレッド・プーリング方式の Webサーバでは一 度に数百のリクエストを高速に応えることはで きるが、WebSocketを使用し、常時接続状態が 要求されるシングルページWebアプリケーショ ンの場合には数百のプーリングされた待ち受け スレッドをすぐに使い果たしてしまう
6.
Node.jsの登場 • Node.jsはクライアントリクエストをイベント・ドリブンで処理する(ス レッド・プールという概念はない) • クライアントから要求があるとイベント・ハンドラへ要求を渡し、待ち受け ハンドラは次のクライアント・リクエストを待つ •
イベント・ハンドラはクライアントとの接続が切れるまで存在する • そのため、WebSocketによってクライアント/サーバ間で常時接続状態に なっている場合でもスレッド・プーリング方式のように数百コネクション、 またはそれ以上となっても問題が発生しない • 一般的なエントリレベルサーバ(Xeon 3GHz 4-Core、16GB)で同時数十万 接続が可能とされている
7.
Node.jsのパフォーマンス
8.
Node.jsのスケーラビリティ • 1 Node.jsサーバでパフォーマンスが低下するほ どの同時接続数が見込める場合には、Node.jsを クラスタリングすることができる •
一般的なロード・バランサやリバース・プロキ シ(NGInxなど) • Cluster.jsなどの実装
9.
Databaseのおさらい • データベースの種類 • ISAM
DB • テーブルへキーおよびデータ情報を持ち、キーによるデータベースアクセスを行う • データベースを構造的に表現するのはプログラムロジックによって行われる • RDBMS(SQL) • テーブル・スペース内のテーブルへ行・列でデータがストアされる • データベースを構造的に表現するためにはSQL(SELECT)文によるクエリが必要 • XML(オブジェクト) DB • テーブル・スペース、テーブル、行、列という概念はなく、XML形式のオブジェクトを格納するオブジェク ト指向データベース • データベース内のオブジェクトがデータの構造そのものを表している • 特定のデータへは XPath記法によるクエリーが可能
10.
MongoDB • MongoDBとは XML
Databaseの入出力を JSON形式に置き 換えたものである • XML DB同様に JSON形式で表現されたオブジェクト・ データをデータベースへ格納する • オブジェクト・データのクエリには XPath同様の機能を備 えたjQuery様の“$(#foo)”といった記法で記述する • RDBMSで言うストアド・プロシージャとして JavaScript が使用可能
11.
MongoDB • データベース内にはどのような構造のオブジェク トであっても格納できるが、これは諸刃の剣で あるため、XMLでの DTD(Data
Definition Descriptor)と同様にオブジェクト構造を厳格に 定義するための機能として JSV(JSON Validation)がある。これによって一貫したオブ ジェクトのみデータベースへストアできる
12.
MongoDBのスケーラビリティ • MongoDBの組み込み機能により、複数マシン間 のレプリケーションが可能 • サーバをダウンさせることなくレプリケーショ ンサーバを作成し、負荷分散を行わせることが 可能
13.
まとめ • Node.js+MongoDBを組み合わせることにより、フロントエンドの Webク ライアント、アプリケーション・サーバ、データベースまで同一言語 (JavaScript)で記述できる •
そのためビジネス・ロジックの見直しが必要になった場合など、クライ アントで行っていた処理をAPサーバ(Node.js)へ移行する、MongoDB のストアド・プロシージャへ移行するなどと言ったことが簡単に行える • ユーザの状態を永続化する場合などには単に JavaScriptオブジェクトを シリアライズし MongoDBへストアするのみでOK • (これは JavaScriptが Classベースのオブジェクト指向言語ではな く、Prototypeベースのオブジェクト指向言語であるため)
Download