SlideShare a Scribd company logo
1 of 46
Download to read offline
EWD.js アーキテクチャー
CAMTA-JP, GT.M 研究会
澤田 潔
MTA2015 宮崎 08/30 2
アジェンダ
●
EWD.js とは?
● EWD.js の特徴
●
EWD.js アーキテクチャー
● EWD.js のメッセージング
● EWD.js プログラミングのキーポイント
● 高信頼性 ( セキュア ) ウェブサービス
●
負荷分散 / 機能分散 (ewd-federator)
●
実用 EWD.js アプリ開発
●
レガシー M アプリをフェニックス!
MTA2015 宮崎 08/30 3
EWD.js とは?
●
アプリケーション開発フレームワーク
– ブラウザベースのクラサバ・アプリを開発する
– ウェブ サービスを提供する
– レガシー Mumps アプリケーションを覚醒!
– (Legacy Mumps application modernisation)
●
ランタイム プラットフォーム
– Node.js ベースのアプリケーション サーバ機能
– ウェブ サーバ機能
– JSON データベースとしてインテグレーション
●
Caché, GT.M, GlobalsDB, MongoDB
MTA2015 宮崎 08/30 4
アジェンダ
●
EWD.js とは?
●
EWD.js の特徴
● EWD.js アーキテクチャー
●
EWD.js のメッセージング
● EWD.js プログラミングのキーポイント
● 高信頼性 ( セキュア ) ウェブサービス
● 負荷分散 / 機能分散 (ewd-federator)
●
実用 EWD.js アプリ開発
● レガシー M アプリをフェニックス!
MTA2015 宮崎 08/30 5
EWD.js の特徴
●
100% JavaScript
– ブラウザ
– バック - エンド ( ビジネスロジック ) : Node.js
● 100% JSON ベースのデータ
– ブラウザ
– バックエンド
– データベース
●
旧来の Mumps コードは Node,js からアクセス可能
●
高性能
– Node.js
– データベースへはイン - プロセスインターフェイス
● 高スケーラブル
– ステートレス
MTA2015 宮崎 08/30 6
アジェンダ
●
EWD.js とは?
● EWD.js の特徴
● EWD.js アーキテクチャー
●
EWD.js のメッセージング
● EWD.js プログラミングのキーポイント
● 高信頼性 ( セキュア ) ウェブサービス
● 負荷分散 / 機能分散 (ewd-federator)
●
実用 EWD.js アプリ開発
● レガシー M アプリをフェニックス!
MTA2015 宮崎 08/30 7
EWD.js アーキテクチャー
MTA2015 宮崎 08/30 8
EWD.js アーキテクチャー
※ 各子プロセスは、一度に一つのリクエストを処理
MTA2015 宮崎 08/30 9
EWD.js アーキテクチャー
※ 子プロセスは、処理が完了すると、すぐに利用可
能なプールへ結果を戻す
MTA2015 宮崎 08/30 10
EWD.js アーキテクチャー
※ 子プロセスは、リクエストを送信すると子プロセス
プールから削除
MTA2015 宮崎 08/30 11
EWD.js の開発
MTA2015 宮崎 08/30 12
アジェンダ
●
EWD.js とは?
● EWD.js の特徴
●
EWD.js アーキテクチャー
● EWD.js のメッセージング
● EWD.js プログラミングのキーポイント
● 高信頼性 ( セキュア ) ウェブサービス
● 負荷分散 / 機能分散 (ewd-federator)
●
実用 EWD.js アプリ開発
● レガシー M アプリをフェニックス!
MTA2015 宮崎 08/30 13
EWD.js のメッセージング
MTA2015 宮崎 08/30 14
EWD.js のメッセージング
MTA2015 宮崎 08/30 15
EWD.js のメッセージング
MTA2015 宮崎 08/30 16
EWD.js のメッセージング
MTA2015 宮崎 08/30 17
EWD.js のメッセージング
MTA2015 宮崎 08/30 18
EWD.js のメッセージング
MTA2015 宮崎 08/30 19
EWD.js のメッセージング
MTA2015 宮崎 08/30 20
EWD.js のメッセージング
MTA2015 宮崎 08/30 21
EWD.js のメッセージング
MTA2015 宮崎 08/30 22
EWD.js のメッセージング
MTA2015 宮崎 08/30 23
EWD.js のメッセージング
MTA2015 宮崎 08/30 24
アジェンダ
●
EWD.js とは?
● EWD.js の特徴
●
EWD.js アーキテクチャー
● EWD.js のメッセージング
●
EWD.js プログラミングのキーポイント
● 高信頼性 ( セキュア ) ウェブサービス
● 負荷分散 / 機能分散 (ewd-federator)
●
実用 EWD.js アプリ開発
● レガシー M アプリをフェニックス!
MTA2015 宮崎 08/30 25
ブラウザからメッセージ送信 (index.html)
index.html
<h3> ハローワールドアプリ </h3>
<input type="button"
value=" メッセージを送信 "
onClick="sendMessage()"/>
<div id="response"></div>
ボタンをクリックした際に発火
する JavaScript 関数
MTA2015 宮崎 08/30 26
ブラウザからメッセージ送信 (app.js)
app.js
var sendMessage = function() {
EWD.sockets.sendMessage({
type: "sendHelloWorld",
params: {
text: ' ハローワールド !',
sender: 'MTA',
date: '2015/08/30 14:39:40'
}
});
};
サーバ側メッセージハンドラ名
JSON 形式
送信データ
MTA2015 宮崎 08/30 27
バックエンドモジュール (helloworld.js)
helloworld.js
module.exports = {
onMessage: {
sendHelloWorld: function(params, ewd) {
var savedMsg =
new ewd.mumps.GlobalNode('ABC', []);
savedMsg._setDocument(params);
return {savedInto: 'ABC'};
}
}
}
サーバ側
メッセージハンドラ
GlobalNode オブジェクト
※ MUMPS データベース内
の、ある物理的なグローバ
ル・ノードを表す。ブラウザ側へ
JSON 形式データを返す
(バックエンドと同じ
ハンドラ名)
MTA2015 宮崎 08/30 28
ブラウザ側ハンドラ (app.js)
app.js
EWD.application = {
onMessage: {
sendHelloWorld: function(messageObj) {
var text =
' 送信メッセージは ' +
' 保存に成功しました ' +
' 保存先は :' +
messageObj.message.savedInto;
document
.getElementById('response')
.innerHTML = text;
}
}
};
クライアント側
メッセージハンドラ
受信データを修飾して
指定した ID へ HTML 挿入
JSON 形式
受信データ
MTA2015 宮崎 08/30 29
ブラウザ側 HTML(index.html)
Index.html
<h3> ハローワールドアプリ </h3>
<input type="button"
value=" メッセージを送信 "
onclick="sendMessage()">
<div id="response">
送信メッセージは保存に
成功しました保存先は :
ABC
</div>
挿入された HTML
MTA2015 宮崎 08/30 30
ポーリング不要!
●
ポーリング
– イベントが発生しているかどうかを定期的にチェック
する仕組み
● ウェブソケット ( ブラウザ側ハンドラ ) によって、バックエ
ンドは " 何時でも” ブラウザへメッセージを送信すること
ができる
– 特定のブラウザへ
– 特定の EWD.js アプリが動作しているすべてのブラウザへ
– 接続中のすべてのブラウザへ
MTA2015 宮崎 08/30 31
サーバ側の同期 / 非同期
●
バックエンド・モジュールは Node.js の子プロセスで実行
● EWD.js は、ブロッキング , 同期 I/O を利用する余裕がある
ので、 EWD.js の子プロセスは 1 度に1個のリクエストを処
理
●
すべての子プロセスが使用中なら、着信リクエストは非同
期のマスター Node.js プロセスにキューイングされる
● 子プロセスのプールサイズは需要に応じて設定可能
MTA2015 宮崎 08/30 32
サーバ側の同期 / 非同期
●
EWD.js で使用するデータベースコネクタは同期処理
● バックエンドの JavaScript ロジック
– メンテナンスが容易
– 直感的にクライアントリクエストとシンクロしながら書くこ
とが可能
● いわゆる「コールバック地獄」や、疑似同期シンタックスは
ありません ( No “ callback hell ” or pseudo-synchronous syntax )
● 以上の理由から
– 迅速な開発
– JavaScript ロジックの保守性が大幅に向上
MTA2015 宮崎 08/30 33
アジェンダ
●
EWD.js とは?
● EWD.js の特徴
●
EWD.js アーキテクチャー
● EWD.js のメッセージング
● EWD.js プログラミングのキーポイント
●
高信頼性 ( セキュア ) ウェブサービス
● 負荷分散 / 機能分散 (ewd-federator)
●
実用 EWD.js アプリ開発
● レガシー M アプリをフェニックス!
MTA2015 宮崎 08/30 34
高信頼性ウェブサービス
●
バックエンド EWD.js の JavaScript のメソッドは、 JSON
ウェブサービスとして公開可能
● アクセスは自動的にセキュアが確保される
● すべての HTTP リクエストには、 HMAC-SHA256 デジタル
署名が必要
●
Amazon ウェブサービスにで使用されているものと同じセ
キュリティ
●
例 :
– EWD.js システム間でのライトウェイトなピア · ツー · ピア
のアクセス
MTA2015 宮崎 08/30 35
高信頼性ウェブサービス
セキュアな JSON
ウェブサービス コール
アマゾンウェブサービス
と同等な
シークレットキーを共有
MTA2015 宮崎 08/30 36
アジェンダ
●
EWD.js とは?
● EWD.js の特徴
●
EWD.js アーキテクチャー
● EWD.js のメッセージング
● EWD.js プログラミングのキーポイント
● 高信頼性 ( セキュア ) ウェブサービス
●
負荷分散 / 機能分散 (ewd-federator)
●
実用 EWD.js アプリ開発
● レガシー M アプリをフェニックス!
MTA2015 宮崎 08/30 37
負荷分散 / 機能分散
ewd-federator
ewd-federator
Cache / GlobalsDB / GT.M
persistent JSON cacheing, storage
Node.js
REST
Clients
REST
Requests
EWD.js
system
HTTP-based
Web Service
REST-based
Service
Back-end
Servers
HTTP
REST
HM
AC-SHA256
Signed
HTTP
EWD.js
system
EWD.js
system
Aggregate
responses
Intercept
Incoming
request
Intercept
Incoming
response
レ
プ
リ
ケ
ー
シ
ョン
サーバからの
レスポンスを
インターセプトして
ルーティングを変更
クライアントからの
REST リクエストを
インターセプトして
ルーティングを変更
サーバからの
レスポンスを集約
してクライアントへ返す
MTA2015 宮崎 08/30 38
アジェンダ
●
EWD.js とは?
● EWD.js の特徴
●
EWD.js アーキテクチャー
● EWD.js のメッセージング
● EWD.js プログラミングのキーポイント
● 高信頼性 ( セキュア ) ウェブサービス
●
負荷分散 / 機能分散 (ewd-federator)
● 実用 EWD.js アプリ開発
● レガシー M アプリをフェニックス!
MTA2015 宮崎 08/30 39
EWD.js アプリ開発関連 Lib 選択条件
● ライセンス
– プロプラエタリ or オープンソース (GPL,Apache,MIT,etc)
●
ドキュメントの整備状況
– example, install, config, method, event, i18n
●
サポータの活発度
– isseu レポート
● パワーユーザの有無
– ex: NASA が採用 , マイクロソフトが採用など
●
パトロン
– ex: BootStrap は Twitter 社が開発元
●
活性度
– 開発・バグフィックスの停滞 / 停止がないか
● 潜在する致命的リスク ( いわゆるハシゴ外しの有無 )
– ある日突然有償!
– バージョンアップ時の互換性欠如
– 企業買収
MTA2015 宮崎 08/30 40
実用 EWD.js アプリ開発
●
ユースケース:フル オープンソース
● サーバ側
安定バージョン
2015.08.10 現在
ライセンス 開発元 考察
OS Ubuntu 14.02 GPL Canonical 誰にでも使いやすい最新かつ安定した
長期サポート版 (LTS)
Node.js Ver 0.10.38 MIT Node.js
Developers
Google V8 JS エンジン
サーバサイド JavaScript
EWD.js Build 100 Apache2.0 M/GateWay
DataBase
InterFace
NodeM 0.5.0 AGPL3 FWSLC API 仕様が cache.node 互換の G
T.M 専用の node.js I/F
DataBase GT.M V6.2-001 AGPL3 F.I.S
MTA2015 宮崎 08/30 41
実用 EWD.js アプリ開発
●
ユースケース:フル オープンソース
● ブラウザ側 Javascript モジュール + CSS
種別 モジュール 安定バージョン
2015.08.10 現在 ライセンス 開発元 考察
ブラウザ仕様 HTML5 5.0 W3C W3C
JavaScript
基本ライブラリ
jQuery 2.1.4 MIT jQuery チー
ム
JS ライブラリのデファクトス
タンダード。マイクロソフトも
採用
HTML+CSS
基本ライブラリ
Boot Strap 3.3.4 MIT Twitter NASA 採用
セレクト BOX
強化ライブラリ
select2 3.5.2 MIT Select2 チーム
お知らせ
ライブラリ
toastr 1.2.0 MIT Toastr チーム
日時
フォーマッタ
moment 2.10.3 MIT moment チー
ム
UI ライブラリ Jquery UI 1.11.4 MIT & GPL jQuery Project
MTA2015 宮崎 08/30 42
EWD.js アプリ開発に必要なスキル
役割 スキル その他
デザイン ,UI 画面 HTML5, スタイルシート (CS
S), JavaScript
スマホ , タブレット , PC ブラウザ
等デバイスの画面サイズの差異
とそれに応じた Widget 適応力
クライアント
プログラミング
画面制御
サーバ API
JavaScript, CSS, JavaScri
pt ライブラリ , EWD.js, クラ
イアント OS
JavaScript と JS ライブラリを利
用して、画面コンポーネントのコン
トローラを管理 , XSS 対策
サーバ
プログラミング
ビジネスロジック
クライアント API
DB API
Node.js, Node.js 対応ライブ
ラリ , EWD.js, サーバ OS
Login/Logout 管理 , Session 管
理 , セキュアマネージメント
M-DB マネージ
メント
M 言語ルーチ
ンメンテ
データベースマ
ネージメント
DB API
M 言語 , DB マネージメント ,
サーバ OS
レガシー M 言語ルーチンを EW
D.js サーバモジュール API に基
づき Outer ラッパーを開発
MTA2015 宮崎 08/30 43
アジェンダ
●
EWD.js とは?
● EWD.js の特徴
●
EWD.js アーキテクチャー
● EWD.js のメッセージング
● EWD.js プログラミングのキーポイント
● 高信頼性 ( セキュア ) ウェブサービス
●
負荷分散 / 機能分散 (ewd-federator)
● 実用 EWD.js アプリ開発
●
レガシー M アプリをフェニックス!
MTA2015 宮崎 08/30 44
レガシー M アプリをフェニックス!
●
EWD.js は単一のプログラム言語スキル
– JavaScript
● アプリ開発のメインコントローラを革命的移行
– From :超希少な M 言語開発リソース
– To : 容易に人材確保が可能な JavaScript 開発者
●
JavaScript の機能を介して、レガシー M 言語のコア機
能をインタフェース
– レガシー M コードは、 Node,js 用にラッピング
● 事例
– VA Fileman の GUI 版
MTA2015 宮崎 08/30 45
レガシー M アプリをフェニックス!
●
Astute Semantics VistA FilemanGUI
MTA2015 宮崎 08/30 46
ご清聴ありがとうございました

More Related Content

What's hot

Cld021 最新技術満載の windows_server_
Cld021 最新技術満載の windows_server_Cld021 最新技術満載の windows_server_
Cld021 最新技術満載の windows_server_Tech Summit 2016
 
Cld021 最新技術満載の windows_server
Cld021 最新技術満載の windows_serverCld021 最新技術満載の windows_server
Cld021 最新技術満載の windows_serverTech Summit 2016
 
Windows Virtual Desktop 構築手順書(202001)
Windows Virtual Desktop 構築手順書(202001)Windows Virtual Desktop 構築手順書(202001)
Windows Virtual Desktop 構築手順書(202001)Emi Morishita
 
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発Naoki (Neo) SATO
 
Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策
Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策
Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策wintechq
 
17 E-5 震災とHackとクラウドと 亀渕分
17 E-5 震災とHackとクラウドと 亀渕分17 E-5 震災とHackとクラウドと 亀渕分
17 E-5 震災とHackとクラウドと 亀渕分Keiji Kamebuchi
 
Microsoft Azure 仮想マシンの マイクロソフトサーバーソフトウェアのサポート
Microsoft Azure 仮想マシンの マイクロソフトサーバーソフトウェアのサポートMicrosoft Azure 仮想マシンの マイクロソフトサーバーソフトウェアのサポート
Microsoft Azure 仮想マシンの マイクロソフトサーバーソフトウェアのサポートwintechq
 
Windows Admin Center 2110
Windows Admin Center 2110Windows Admin Center 2110
Windows Admin Center 2110Norio Sashizaki
 
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオS05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオMicrosoft Azure Japan
 
AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...
AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...
AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...Norio Sashizaki
 
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発lalha
 
Servcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternServcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternTakekazu Omi
 
Azure Data Box Family Overview and Microsoft Intelligent Edge Strategy
Azure Data Box Family Overview and Microsoft Intelligent Edge StrategyAzure Data Box Family Overview and Microsoft Intelligent Edge Strategy
Azure Data Box Family Overview and Microsoft Intelligent Edge StrategyTakeshi Fukuhara
 
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...Norio Sashizaki
 
2014年12月 ソネット bit-drive セミナー資料
2014年12月 ソネット bit-drive セミナー資料2014年12月 ソネット bit-drive セミナー資料
2014年12月 ソネット bit-drive セミナー資料wintechq
 
Windows Server 2012 R2 のすべて
Windows Server 2012 R2 のすべてWindows Server 2012 R2 のすべて
Windows Server 2012 R2 のすべてwintechq
 
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)kekekekenta
 
Windows Admin Center on Azure
Windows Admin Center on AzureWindows Admin Center on Azure
Windows Admin Center on AzureNorio Sashizaki
 
見えてきた!? Windows Virtual Desktop のしくみ
見えてきた!? Windows Virtual Desktop のしくみ見えてきた!? Windows Virtual Desktop のしくみ
見えてきた!? Windows Virtual Desktop のしくみTakashi Ushigami
 
Windows Server 2003 サポート終了対策
Windows Server 2003 サポート終了対策Windows Server 2003 サポート終了対策
Windows Server 2003 サポート終了対策wintechq
 

What's hot (20)

Cld021 最新技術満載の windows_server_
Cld021 最新技術満載の windows_server_Cld021 最新技術満載の windows_server_
Cld021 最新技術満載の windows_server_
 
Cld021 最新技術満載の windows_server
Cld021 最新技術満載の windows_serverCld021 最新技術満載の windows_server
Cld021 最新技術満載の windows_server
 
Windows Virtual Desktop 構築手順書(202001)
Windows Virtual Desktop 構築手順書(202001)Windows Virtual Desktop 構築手順書(202001)
Windows Virtual Desktop 構築手順書(202001)
 
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
 
Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策
Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策
Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策
 
17 E-5 震災とHackとクラウドと 亀渕分
17 E-5 震災とHackとクラウドと 亀渕分17 E-5 震災とHackとクラウドと 亀渕分
17 E-5 震災とHackとクラウドと 亀渕分
 
Microsoft Azure 仮想マシンの マイクロソフトサーバーソフトウェアのサポート
Microsoft Azure 仮想マシンの マイクロソフトサーバーソフトウェアのサポートMicrosoft Azure 仮想マシンの マイクロソフトサーバーソフトウェアのサポート
Microsoft Azure 仮想マシンの マイクロソフトサーバーソフトウェアのサポート
 
Windows Admin Center 2110
Windows Admin Center 2110Windows Admin Center 2110
Windows Admin Center 2110
 
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオS05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
 
AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...
AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...
AKS on Azure Stack HCI/Windows Serverの準備と監視 _ Preparing and monitoring AKS on...
 
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
 
Servcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternServcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design Pattern
 
Azure Data Box Family Overview and Microsoft Intelligent Edge Strategy
Azure Data Box Family Overview and Microsoft Intelligent Edge StrategyAzure Data Box Family Overview and Microsoft Intelligent Edge Strategy
Azure Data Box Family Overview and Microsoft Intelligent Edge Strategy
 
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
 
2014年12月 ソネット bit-drive セミナー資料
2014年12月 ソネット bit-drive セミナー資料2014年12月 ソネット bit-drive セミナー資料
2014年12月 ソネット bit-drive セミナー資料
 
Windows Server 2012 R2 のすべて
Windows Server 2012 R2 のすべてWindows Server 2012 R2 のすべて
Windows Server 2012 R2 のすべて
 
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
 
Windows Admin Center on Azure
Windows Admin Center on AzureWindows Admin Center on Azure
Windows Admin Center on Azure
 
見えてきた!? Windows Virtual Desktop のしくみ
見えてきた!? Windows Virtual Desktop のしくみ見えてきた!? Windows Virtual Desktop のしくみ
見えてきた!? Windows Virtual Desktop のしくみ
 
Windows Server 2003 サポート終了対策
Windows Server 2003 サポート終了対策Windows Server 2003 サポート終了対策
Windows Server 2003 サポート終了対策
 

Similar to EWD.js アーキテクチャー

マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後Akira Inoue
 
Go azure keynote-クラウド利用のあらゆるニーズに応える windows azure の進化
Go azure keynote-クラウド利用のあらゆるニーズに応える windows azure の進化Go azure keynote-クラウド利用のあらゆるニーズに応える windows azure の進化
Go azure keynote-クラウド利用のあらゆるニーズに応える windows azure の進化GoAzure
 
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)友太 渡辺
 
DEV-016_止まらないサービスを! ~マイクロサービス プラットフォーム「Azure Service Fabric」~
DEV-016_止まらないサービスを! ~マイクロサービス プラットフォーム「Azure Service Fabric」~DEV-016_止まらないサービスを! ~マイクロサービス プラットフォーム「Azure Service Fabric」~
DEV-016_止まらないサービスを! ~マイクロサービス プラットフォーム「Azure Service Fabric」~decode2016
 
EWD 3トレーニング・コース #2 EWD 3 の概要
EWD 3トレーニング・コース #2 EWD 3 の概要EWD 3トレーニング・コース #2 EWD 3 の概要
EWD 3トレーニング・コース #2 EWD 3 の概要Kiyoshi Sawada
 
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]Aya Tokura
 
120512 metro styleapp_javascript
120512 metro styleapp_javascript120512 metro styleapp_javascript
120512 metro styleapp_javascriptTakayoshi Tanaka
 
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践de:code 2017
 
Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takeharaHiroshi Okunushi
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~Akira Inoue
 
Azureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみるAzureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみるKazunori Hamamoto
 
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発Naoki (Neo) SATO
 
20201023_MySQL開発最新動向
20201023_MySQL開発最新動向20201023_MySQL開発最新動向
20201023_MySQL開発最新動向Machiko Ikoma
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Akira Inoue
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 日本マイクロソフト株式会社
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発Akira Inoue
 
EWD 3トレーニングコース#2 EWD 3の概要
EWD 3トレーニングコース#2 EWD 3の概要EWD 3トレーニングコース#2 EWD 3の概要
EWD 3トレーニングコース#2 EWD 3の概要Kiyoshi Sawada
 
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...日本マイクロソフト株式会社
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発tak-nakamura
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発Yuta Matsumura
 

Similar to EWD.js アーキテクチャー (20)

マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
 
Go azure keynote-クラウド利用のあらゆるニーズに応える windows azure の進化
Go azure keynote-クラウド利用のあらゆるニーズに応える windows azure の進化Go azure keynote-クラウド利用のあらゆるニーズに応える windows azure の進化
Go azure keynote-クラウド利用のあらゆるニーズに応える windows azure の進化
 
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)
 
DEV-016_止まらないサービスを! ~マイクロサービス プラットフォーム「Azure Service Fabric」~
DEV-016_止まらないサービスを! ~マイクロサービス プラットフォーム「Azure Service Fabric」~DEV-016_止まらないサービスを! ~マイクロサービス プラットフォーム「Azure Service Fabric」~
DEV-016_止まらないサービスを! ~マイクロサービス プラットフォーム「Azure Service Fabric」~
 
EWD 3トレーニング・コース #2 EWD 3 の概要
EWD 3トレーニング・コース #2 EWD 3 の概要EWD 3トレーニング・コース #2 EWD 3 の概要
EWD 3トレーニング・コース #2 EWD 3 の概要
 
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
 
120512 metro styleapp_javascript
120512 metro styleapp_javascript120512 metro styleapp_javascript
120512 metro styleapp_javascript
 
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
 
Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takehara
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
 
Azureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみるAzureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみる
 
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
 
20201023_MySQL開発最新動向
20201023_MySQL開発最新動向20201023_MySQL開発最新動向
20201023_MySQL開発最新動向
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
EWD 3トレーニングコース#2 EWD 3の概要
EWD 3トレーニングコース#2 EWD 3の概要EWD 3トレーニングコース#2 EWD 3の概要
EWD 3トレーニングコース#2 EWD 3の概要
 
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 

More from Kiyoshi Sawada

EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/WebサービスにアクセスするEWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/WebサービスにアクセスするKiyoshi Sawada
 
EWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作る
EWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作るEWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作る
EWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作るKiyoshi Sawada
 
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化するEWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化するKiyoshi Sawada
 
EWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させる
EWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させるEWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させる
EWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させるKiyoshi Sawada
 
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合するEWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合するKiyoshi Sawada
 
EWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッション
EWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッションEWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッション
EWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッションKiyoshi Sawada
 
EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理
EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理
EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理Kiyoshi Sawada
 
EWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) Documentデータベースのできること
EWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) DocumentデータベースのできることEWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) Documentデータベースのできること
EWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) DocumentデータベースのできることKiyoshi Sawada
 
EWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩く
EWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩くEWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩く
EWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩くKiyoshi Sawada
 
EWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩く
EWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩くEWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩く
EWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩くKiyoshi Sawada
 
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩く
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩くEWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩く
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩くKiyoshi Sawada
 
EWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクト
EWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクトEWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクト
EWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクトKiyoshi Sawada
 
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクトEWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクトKiyoshi Sawada
 
EWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスする
EWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスするEWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスする
EWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスするKiyoshi Sawada
 
EWD 3トレーニングコース#18 GlobalストレジでNoSQLデータベースをモデル化する
EWD 3トレーニングコース#18 GlobalストレジでNoSQLデータベースをモデル化するEWD 3トレーニングコース#18 GlobalストレジでNoSQLデータベースをモデル化する
EWD 3トレーニングコース#18 GlobalストレジでNoSQLデータベースをモデル化するKiyoshi Sawada
 
EWD 3トレーニングコース#17 Globalストレジ・データベース入門
EWD 3トレーニングコース#17 Globalストレジ・データベース入門EWD 3トレーニングコース#17 Globalストレジ・データベース入門
EWD 3トレーニングコース#17 Globalストレジ・データベース入門Kiyoshi Sawada
 
EWD 3トレーニングコース#16 ewd-xpressサービス
EWD 3トレーニングコース#16 ewd-xpressサービスEWD 3トレーニングコース#16 ewd-xpressサービス
EWD 3トレーニングコース#16 ewd-xpressサービスKiyoshi Sawada
 
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するEWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するKiyoshi Sawada
 
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いるEWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いるKiyoshi Sawada
 
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみるEWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみるKiyoshi Sawada
 

More from Kiyoshi Sawada (20)

EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/WebサービスにアクセスするEWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
 
EWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作る
EWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作るEWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作る
EWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作る
 
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化するEWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
 
EWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させる
EWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させるEWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させる
EWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させる
 
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合するEWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
 
EWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッション
EWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッションEWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッション
EWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッション
 
EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理
EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理
EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理
 
EWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) Documentデータベースのできること
EWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) DocumentデータベースのできることEWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) Documentデータベースのできること
EWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) Documentデータベースのできること
 
EWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩く
EWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩くEWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩く
EWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩く
 
EWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩く
EWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩くEWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩く
EWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩く
 
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩く
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩くEWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩く
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩く
 
EWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクト
EWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクトEWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクト
EWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクト
 
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクトEWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
 
EWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスする
EWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスするEWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスする
EWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスする
 
EWD 3トレーニングコース#18 GlobalストレジでNoSQLデータベースをモデル化する
EWD 3トレーニングコース#18 GlobalストレジでNoSQLデータベースをモデル化するEWD 3トレーニングコース#18 GlobalストレジでNoSQLデータベースをモデル化する
EWD 3トレーニングコース#18 GlobalストレジでNoSQLデータベースをモデル化する
 
EWD 3トレーニングコース#17 Globalストレジ・データベース入門
EWD 3トレーニングコース#17 Globalストレジ・データベース入門EWD 3トレーニングコース#17 Globalストレジ・データベース入門
EWD 3トレーニングコース#17 Globalストレジ・データベース入門
 
EWD 3トレーニングコース#16 ewd-xpressサービス
EWD 3トレーニングコース#16 ewd-xpressサービスEWD 3トレーニングコース#16 ewd-xpressサービス
EWD 3トレーニングコース#16 ewd-xpressサービス
 
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するEWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
 
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いるEWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
 
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみるEWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
 

EWD.js アーキテクチャー

  • 2. MTA2015 宮崎 08/30 2 アジェンダ ● EWD.js とは? ● EWD.js の特徴 ● EWD.js アーキテクチャー ● EWD.js のメッセージング ● EWD.js プログラミングのキーポイント ● 高信頼性 ( セキュア ) ウェブサービス ● 負荷分散 / 機能分散 (ewd-federator) ● 実用 EWD.js アプリ開発 ● レガシー M アプリをフェニックス!
  • 3. MTA2015 宮崎 08/30 3 EWD.js とは? ● アプリケーション開発フレームワーク – ブラウザベースのクラサバ・アプリを開発する – ウェブ サービスを提供する – レガシー Mumps アプリケーションを覚醒! – (Legacy Mumps application modernisation) ● ランタイム プラットフォーム – Node.js ベースのアプリケーション サーバ機能 – ウェブ サーバ機能 – JSON データベースとしてインテグレーション ● Caché, GT.M, GlobalsDB, MongoDB
  • 4. MTA2015 宮崎 08/30 4 アジェンダ ● EWD.js とは? ● EWD.js の特徴 ● EWD.js アーキテクチャー ● EWD.js のメッセージング ● EWD.js プログラミングのキーポイント ● 高信頼性 ( セキュア ) ウェブサービス ● 負荷分散 / 機能分散 (ewd-federator) ● 実用 EWD.js アプリ開発 ● レガシー M アプリをフェニックス!
  • 5. MTA2015 宮崎 08/30 5 EWD.js の特徴 ● 100% JavaScript – ブラウザ – バック - エンド ( ビジネスロジック ) : Node.js ● 100% JSON ベースのデータ – ブラウザ – バックエンド – データベース ● 旧来の Mumps コードは Node,js からアクセス可能 ● 高性能 – Node.js – データベースへはイン - プロセスインターフェイス ● 高スケーラブル – ステートレス
  • 6. MTA2015 宮崎 08/30 6 アジェンダ ● EWD.js とは? ● EWD.js の特徴 ● EWD.js アーキテクチャー ● EWD.js のメッセージング ● EWD.js プログラミングのキーポイント ● 高信頼性 ( セキュア ) ウェブサービス ● 負荷分散 / 機能分散 (ewd-federator) ● 実用 EWD.js アプリ開発 ● レガシー M アプリをフェニックス!
  • 7. MTA2015 宮崎 08/30 7 EWD.js アーキテクチャー
  • 8. MTA2015 宮崎 08/30 8 EWD.js アーキテクチャー ※ 各子プロセスは、一度に一つのリクエストを処理
  • 9. MTA2015 宮崎 08/30 9 EWD.js アーキテクチャー ※ 子プロセスは、処理が完了すると、すぐに利用可 能なプールへ結果を戻す
  • 10. MTA2015 宮崎 08/30 10 EWD.js アーキテクチャー ※ 子プロセスは、リクエストを送信すると子プロセス プールから削除
  • 11. MTA2015 宮崎 08/30 11 EWD.js の開発
  • 12. MTA2015 宮崎 08/30 12 アジェンダ ● EWD.js とは? ● EWD.js の特徴 ● EWD.js アーキテクチャー ● EWD.js のメッセージング ● EWD.js プログラミングのキーポイント ● 高信頼性 ( セキュア ) ウェブサービス ● 負荷分散 / 機能分散 (ewd-federator) ● 実用 EWD.js アプリ開発 ● レガシー M アプリをフェニックス!
  • 13. MTA2015 宮崎 08/30 13 EWD.js のメッセージング
  • 14. MTA2015 宮崎 08/30 14 EWD.js のメッセージング
  • 15. MTA2015 宮崎 08/30 15 EWD.js のメッセージング
  • 16. MTA2015 宮崎 08/30 16 EWD.js のメッセージング
  • 17. MTA2015 宮崎 08/30 17 EWD.js のメッセージング
  • 18. MTA2015 宮崎 08/30 18 EWD.js のメッセージング
  • 19. MTA2015 宮崎 08/30 19 EWD.js のメッセージング
  • 20. MTA2015 宮崎 08/30 20 EWD.js のメッセージング
  • 21. MTA2015 宮崎 08/30 21 EWD.js のメッセージング
  • 22. MTA2015 宮崎 08/30 22 EWD.js のメッセージング
  • 23. MTA2015 宮崎 08/30 23 EWD.js のメッセージング
  • 24. MTA2015 宮崎 08/30 24 アジェンダ ● EWD.js とは? ● EWD.js の特徴 ● EWD.js アーキテクチャー ● EWD.js のメッセージング ● EWD.js プログラミングのキーポイント ● 高信頼性 ( セキュア ) ウェブサービス ● 負荷分散 / 機能分散 (ewd-federator) ● 実用 EWD.js アプリ開発 ● レガシー M アプリをフェニックス!
  • 25. MTA2015 宮崎 08/30 25 ブラウザからメッセージ送信 (index.html) index.html <h3> ハローワールドアプリ </h3> <input type="button" value=" メッセージを送信 " onClick="sendMessage()"/> <div id="response"></div> ボタンをクリックした際に発火 する JavaScript 関数
  • 26. MTA2015 宮崎 08/30 26 ブラウザからメッセージ送信 (app.js) app.js var sendMessage = function() { EWD.sockets.sendMessage({ type: "sendHelloWorld", params: { text: ' ハローワールド !', sender: 'MTA', date: '2015/08/30 14:39:40' } }); }; サーバ側メッセージハンドラ名 JSON 形式 送信データ
  • 27. MTA2015 宮崎 08/30 27 バックエンドモジュール (helloworld.js) helloworld.js module.exports = { onMessage: { sendHelloWorld: function(params, ewd) { var savedMsg = new ewd.mumps.GlobalNode('ABC', []); savedMsg._setDocument(params); return {savedInto: 'ABC'}; } } } サーバ側 メッセージハンドラ GlobalNode オブジェクト ※ MUMPS データベース内 の、ある物理的なグローバ ル・ノードを表す。ブラウザ側へ JSON 形式データを返す (バックエンドと同じ ハンドラ名)
  • 28. MTA2015 宮崎 08/30 28 ブラウザ側ハンドラ (app.js) app.js EWD.application = { onMessage: { sendHelloWorld: function(messageObj) { var text = ' 送信メッセージは ' + ' 保存に成功しました ' + ' 保存先は :' + messageObj.message.savedInto; document .getElementById('response') .innerHTML = text; } } }; クライアント側 メッセージハンドラ 受信データを修飾して 指定した ID へ HTML 挿入 JSON 形式 受信データ
  • 29. MTA2015 宮崎 08/30 29 ブラウザ側 HTML(index.html) Index.html <h3> ハローワールドアプリ </h3> <input type="button" value=" メッセージを送信 " onclick="sendMessage()"> <div id="response"> 送信メッセージは保存に 成功しました保存先は : ABC </div> 挿入された HTML
  • 30. MTA2015 宮崎 08/30 30 ポーリング不要! ● ポーリング – イベントが発生しているかどうかを定期的にチェック する仕組み ● ウェブソケット ( ブラウザ側ハンドラ ) によって、バックエ ンドは " 何時でも” ブラウザへメッセージを送信すること ができる – 特定のブラウザへ – 特定の EWD.js アプリが動作しているすべてのブラウザへ – 接続中のすべてのブラウザへ
  • 31. MTA2015 宮崎 08/30 31 サーバ側の同期 / 非同期 ● バックエンド・モジュールは Node.js の子プロセスで実行 ● EWD.js は、ブロッキング , 同期 I/O を利用する余裕がある ので、 EWD.js の子プロセスは 1 度に1個のリクエストを処 理 ● すべての子プロセスが使用中なら、着信リクエストは非同 期のマスター Node.js プロセスにキューイングされる ● 子プロセスのプールサイズは需要に応じて設定可能
  • 32. MTA2015 宮崎 08/30 32 サーバ側の同期 / 非同期 ● EWD.js で使用するデータベースコネクタは同期処理 ● バックエンドの JavaScript ロジック – メンテナンスが容易 – 直感的にクライアントリクエストとシンクロしながら書くこ とが可能 ● いわゆる「コールバック地獄」や、疑似同期シンタックスは ありません ( No “ callback hell ” or pseudo-synchronous syntax ) ● 以上の理由から – 迅速な開発 – JavaScript ロジックの保守性が大幅に向上
  • 33. MTA2015 宮崎 08/30 33 アジェンダ ● EWD.js とは? ● EWD.js の特徴 ● EWD.js アーキテクチャー ● EWD.js のメッセージング ● EWD.js プログラミングのキーポイント ● 高信頼性 ( セキュア ) ウェブサービス ● 負荷分散 / 機能分散 (ewd-federator) ● 実用 EWD.js アプリ開発 ● レガシー M アプリをフェニックス!
  • 34. MTA2015 宮崎 08/30 34 高信頼性ウェブサービス ● バックエンド EWD.js の JavaScript のメソッドは、 JSON ウェブサービスとして公開可能 ● アクセスは自動的にセキュアが確保される ● すべての HTTP リクエストには、 HMAC-SHA256 デジタル 署名が必要 ● Amazon ウェブサービスにで使用されているものと同じセ キュリティ ● 例 : – EWD.js システム間でのライトウェイトなピア · ツー · ピア のアクセス
  • 35. MTA2015 宮崎 08/30 35 高信頼性ウェブサービス セキュアな JSON ウェブサービス コール アマゾンウェブサービス と同等な シークレットキーを共有
  • 36. MTA2015 宮崎 08/30 36 アジェンダ ● EWD.js とは? ● EWD.js の特徴 ● EWD.js アーキテクチャー ● EWD.js のメッセージング ● EWD.js プログラミングのキーポイント ● 高信頼性 ( セキュア ) ウェブサービス ● 負荷分散 / 機能分散 (ewd-federator) ● 実用 EWD.js アプリ開発 ● レガシー M アプリをフェニックス!
  • 37. MTA2015 宮崎 08/30 37 負荷分散 / 機能分散 ewd-federator ewd-federator Cache / GlobalsDB / GT.M persistent JSON cacheing, storage Node.js REST Clients REST Requests EWD.js system HTTP-based Web Service REST-based Service Back-end Servers HTTP REST HM AC-SHA256 Signed HTTP EWD.js system EWD.js system Aggregate responses Intercept Incoming request Intercept Incoming response レ プ リ ケ ー シ ョン サーバからの レスポンスを インターセプトして ルーティングを変更 クライアントからの REST リクエストを インターセプトして ルーティングを変更 サーバからの レスポンスを集約 してクライアントへ返す
  • 38. MTA2015 宮崎 08/30 38 アジェンダ ● EWD.js とは? ● EWD.js の特徴 ● EWD.js アーキテクチャー ● EWD.js のメッセージング ● EWD.js プログラミングのキーポイント ● 高信頼性 ( セキュア ) ウェブサービス ● 負荷分散 / 機能分散 (ewd-federator) ● 実用 EWD.js アプリ開発 ● レガシー M アプリをフェニックス!
  • 39. MTA2015 宮崎 08/30 39 EWD.js アプリ開発関連 Lib 選択条件 ● ライセンス – プロプラエタリ or オープンソース (GPL,Apache,MIT,etc) ● ドキュメントの整備状況 – example, install, config, method, event, i18n ● サポータの活発度 – isseu レポート ● パワーユーザの有無 – ex: NASA が採用 , マイクロソフトが採用など ● パトロン – ex: BootStrap は Twitter 社が開発元 ● 活性度 – 開発・バグフィックスの停滞 / 停止がないか ● 潜在する致命的リスク ( いわゆるハシゴ外しの有無 ) – ある日突然有償! – バージョンアップ時の互換性欠如 – 企業買収
  • 40. MTA2015 宮崎 08/30 40 実用 EWD.js アプリ開発 ● ユースケース:フル オープンソース ● サーバ側 安定バージョン 2015.08.10 現在 ライセンス 開発元 考察 OS Ubuntu 14.02 GPL Canonical 誰にでも使いやすい最新かつ安定した 長期サポート版 (LTS) Node.js Ver 0.10.38 MIT Node.js Developers Google V8 JS エンジン サーバサイド JavaScript EWD.js Build 100 Apache2.0 M/GateWay DataBase InterFace NodeM 0.5.0 AGPL3 FWSLC API 仕様が cache.node 互換の G T.M 専用の node.js I/F DataBase GT.M V6.2-001 AGPL3 F.I.S
  • 41. MTA2015 宮崎 08/30 41 実用 EWD.js アプリ開発 ● ユースケース:フル オープンソース ● ブラウザ側 Javascript モジュール + CSS 種別 モジュール 安定バージョン 2015.08.10 現在 ライセンス 開発元 考察 ブラウザ仕様 HTML5 5.0 W3C W3C JavaScript 基本ライブラリ jQuery 2.1.4 MIT jQuery チー ム JS ライブラリのデファクトス タンダード。マイクロソフトも 採用 HTML+CSS 基本ライブラリ Boot Strap 3.3.4 MIT Twitter NASA 採用 セレクト BOX 強化ライブラリ select2 3.5.2 MIT Select2 チーム お知らせ ライブラリ toastr 1.2.0 MIT Toastr チーム 日時 フォーマッタ moment 2.10.3 MIT moment チー ム UI ライブラリ Jquery UI 1.11.4 MIT & GPL jQuery Project
  • 42. MTA2015 宮崎 08/30 42 EWD.js アプリ開発に必要なスキル 役割 スキル その他 デザイン ,UI 画面 HTML5, スタイルシート (CS S), JavaScript スマホ , タブレット , PC ブラウザ 等デバイスの画面サイズの差異 とそれに応じた Widget 適応力 クライアント プログラミング 画面制御 サーバ API JavaScript, CSS, JavaScri pt ライブラリ , EWD.js, クラ イアント OS JavaScript と JS ライブラリを利 用して、画面コンポーネントのコン トローラを管理 , XSS 対策 サーバ プログラミング ビジネスロジック クライアント API DB API Node.js, Node.js 対応ライブ ラリ , EWD.js, サーバ OS Login/Logout 管理 , Session 管 理 , セキュアマネージメント M-DB マネージ メント M 言語ルーチ ンメンテ データベースマ ネージメント DB API M 言語 , DB マネージメント , サーバ OS レガシー M 言語ルーチンを EW D.js サーバモジュール API に基 づき Outer ラッパーを開発
  • 43. MTA2015 宮崎 08/30 43 アジェンダ ● EWD.js とは? ● EWD.js の特徴 ● EWD.js アーキテクチャー ● EWD.js のメッセージング ● EWD.js プログラミングのキーポイント ● 高信頼性 ( セキュア ) ウェブサービス ● 負荷分散 / 機能分散 (ewd-federator) ● 実用 EWD.js アプリ開発 ● レガシー M アプリをフェニックス!
  • 44. MTA2015 宮崎 08/30 44 レガシー M アプリをフェニックス! ● EWD.js は単一のプログラム言語スキル – JavaScript ● アプリ開発のメインコントローラを革命的移行 – From :超希少な M 言語開発リソース – To : 容易に人材確保が可能な JavaScript 開発者 ● JavaScript の機能を介して、レガシー M 言語のコア機 能をインタフェース – レガシー M コードは、 Node,js 用にラッピング ● 事例 – VA Fileman の GUI 版
  • 45. MTA2015 宮崎 08/30 45 レガシー M アプリをフェニックス! ● Astute Semantics VistA FilemanGUI
  • 46. MTA2015 宮崎 08/30 46 ご清聴ありがとうございました