ewd 3トレーニング・コース #4 ewd-xpressのインストールと構成
TRANSCRIPT
EWD 3トレーニング・コース #4
ewd-xpress のインストールと構成M/Gateway Developments Ltd.
Rob Tweed訳 : 日本ダイナシステム株式会社 嶋 芳成
GT.M 版編集 : 澤田 潔※ 本稿オリジナルは Cache’ 向けとして編纂
05/02/2023 2
ewd-xpress• EWD 3 アプリケーションの実行時の完全な
バック・エンド環境• 対話型のブラウザ・ベースのアプリケーション• 対話型の React Native なモバイル・アプリケー
ション• HTTP による Web サービス• REST サービス
• EWD 3 モジュールを用いて構築• 拡張可能
EWD 3 トレーニング・コース #4
05/02/2023 3
パッケージ済みの EWD 3 プラットフォーム
• アプリケーションを構築し実行させたいのなら理想的• 対話型のブラウザ・ベースのデスクトップ・アプ
リケーション• React Native を用いたモバイル・アプリケー
ション• REST と Web サービスのバック・エンド
• Node.js バック・エンドも含む• 特に、もし Caché または GT.M を使いたい
のなら• 必要な EWD 3 モジュールはすべて統合済み• インストールと構成方法はとても簡単
EWD 3 トレーニング・コース #4
05/02/2023 4
Linux と GT.M で始めます
• あらかじめ必要な条件• Ubuntu14.04 以降 ( あるいは CentOS7)• まともな現代的なブラウザ
• Chrome を推奨• まともなテキスト・エディタ
• 例えば vi, Sublime, atom, etc• サーバ側のファイルを編集可能な環境 (Samba 等 )
• GT.M がインストール済みで稼働していること• GT.M Ver 6.0 以降• もし、 ubuntu64bit 版で GT.M を最初からインストールす
る場合は、 ewd-3-installers を利用すると便利 : https://github.com/robtweed/ewd-3-installers/blob/master/ewd-xpress/install_gtm.sh
EWD 3 トレーニング・コース #4
05/02/2023 5
ステップ 1• Node.js をインストールする (curl と nvm を利用 )• Linux bash コマンド・プロンプトを用いて
チェック• node –v
• v4.4.7 と表示されるはず
EWD 3 トレーニング・コース #4
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bashsource ~/.nvm/nvm.shnvm alias default 4.4nvm install 4.4 # 現時点では 4.4.7nvm use defaultecho 'nvm use default' >> ~/.profile
sudo ln -s /usr/local/bin/node /usr/bin/nodesudo ln -s /usr/local/lib/node /usr/lib/nodesudo ln -s /usr/local/bin/npm /usr/bin/npmsudo ln -s /usr/local/bin/node-waf /usr/bin/node-wafn=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
05/02/2023 6
ステップ 2• EWD 3 の全作業用のディレクトリを作る• 即ち ~/ewd3
EWD 3 トレーニング・コース #4
05/02/2023 7
ステップ 3• ewd-xpress と ewd-xpress-monitor をイ
ンストールする
cd ~/ewd3npm install ewd-xpress ewd-xpress-monitor
• 警告はすべて無視します• 完了すると、新しいディレクトリができています
~/ewd3/node_modules
EWD 3 トレーニング・コース #4
05/02/2023 8
ステップ 4• Node.js 4.4.x 用の最新版の NodeM をインス
トールし、 ~/.profile に GT.M 環境変数を設定
EWD 3 トレーニング・コース #4
cd ~/ewd3npm install nodemsudo ln -sf $gtm_dist/libgtmshr.so /usr/local/lib/sudo ldconfigbase=~/ewd3[ -f "$GTMCI" ] || export GTMCI="$(find $base -iname nodem.ci)"nodemgtmr="$(find $base -iname v4wnode.m | tail -n1 | xargs dirname)"echo "$gtmroutines" | fgrep "$nodemgtmr" || export gtmroutines="$nodemgtmr $gtmroutines"
echo 'base=~/ewd3' >> ~/.profileecho '[ -f "$GTMCI" ] || export GTMCI="$(find $base -iname nodem.ci)"' >> ~/.profileecho 'nodemgtmr="$(find $base -iname v4wnode.m | tail -n1 | xargs dirname)"' >> ~/.profileecho 'echo "$gtmroutines" | fgrep "$nodemgtmr" || export gtmroutines="$nodemgtmr $gtmroutines"' >> ~/.profile
05/02/2023 9
ステップ 5 (a)• ewd-xpress をセットアップし構成する• 次のものを、
~/ewd3/node_modules/ewd-xpress/example/ewd-xpress.js
• 次の場所にコピーします
~/ewd3/ewd-xpress.js
EWD 3 トレーニング・コース #4
05/02/2023 10
ステップ 5 (b)• ~/ewd3/ewd-xpress.js
• 例えば、 vi を用いて• config オブジェクトの GT.M 環境変数を修正、 ex:
EWD 3 トレーニング・コース #4
var config = { managementPassword: ‘keepThisSecret!’, serverName: ‘New EWD Server’, port: 8080, poolSize: 1, database: { type: 'gtm', params: { gtm_chset: 'utf-8' , gtmver: 'V6.2-002A_x86_64' , gtm_icu_version: '5.0' , gtmgbldir: '/home/jds/.fis-gtm/V6.2-002A_x86_64/g/gtm.gld' , gtmroutines: '/usr/lib/fis-gtm/V6.2-002A_x8664/utf8 /home/mta/ewd3/node_modules/nodem/src' , gtmdir: '/home/mta/.fis-gtm' , gtm_dist: 'gtm_dist=/usr/lib/fis-gtm/V6.2-002A_x8664/utf8' , } }};
コンマ「 , 」に注意GT.M 環境変数
05/02/2023 11
ステップ 5 (b)• ~/ewd3/ewd-xpress.js• 例えば、 Notepad ++ を用いて• Config オブジェクト内の Caché mgr パ
スの指定を修正、例えば、
EWD 3 トレーニング・コース #4
Var config = { managementPassword: ‘keepThisSecret!’, serverName: ‘New EWD Server’, port: 8080, poolSize: 1, database: { type: ‘cache’, params: { path: ‘~//InterSystems//Cache2015-2//mgr’ } }};
コンマ「 , 」に注意
二重の「 / 」記号に注意 !二重の「 / 」記号に注意 !二重の「 / 」記号に注意 !
05/02/2023 12
ステップ 6• ewd-xpress-monitor をセットアップする• 新しいディレクトリを作る
~/ewd3/www~/ewd3/www/ewd-xpress-monitor
• 次にあるファイルをすべて、
~/ewd3/node_modules/ewd-xpress-monitor/www
• 次の場所にコピーする
~/ewd3/www/ewd-xpress-monitor
EWD 3 トレーニング・コース #4
05/02/2023 13
ステップ 7• ewd-xpress を起動する• Linux コマンド・プロンプト・ウィンドウ
で、
cd /ewd3node ewd-xpress
EWD 3 トレーニング・コース #4
~/ewd3>node ewd-xpresswebServerRootPath = ~/ewd3/www/Worker Bootstrap Module file written to node_modules/ewd-qoper8-worker.js=================================================ewd-qoper8 is up and running. Max worker pool size: 1
05/02/2023 14
ステップ 8• ブラウザで、次の URL を入力する
• http://[ サーバアドレス ]:8080/ewd-xpress-monitor/index.html • 管理用のパスワードの入力を求められたら次のよ
うに入力
• keepThisSecret!
• ewd-xpress と ewd-xpress-monitor が完全に稼働していることが分かりました。
EWD 3 トレーニング・コース #4
05/02/2023 15
ewd-xpress 起動ファイル
• ~/ewd3/ewd-xpress.js• 名前は必要なら変更しても構いません
• config オブジェクトを定義する• ewd-xpress の start() 関数を呼び出す• config オブジェクトは引数として渡す
EWD 3 トレーニング・コース #4
05/02/2023 16
ewd-xpress 起動 config オブジェクト例var config = { managementPassword: ‘keepThisSecret!’, serverName: ‘New EWD Server’, port: 8080, poolSize: 1, database: { type: 'gtm', params: { gtm_chset: 'utf-8' , gtmver: 'V6.2-002A_x86_64' , gtm_icu_version: '5.0' , gtmgbldir: '/home/jds/.fis-gtm/V6.2-002A_x86_64/g/gtm.gld' , gtmroutines: '/usr/lib/fis-gtm/V6.2-002A_x8664/utf8 /home/mta/ewd3/node_modules/nodem/src' , gtmdir: '/home/mta/.fis-gtm' , gtm_dist: 'gtm_dist=/usr/lib/fis-gtm/V6.2-002A_x8664/utf8' , } }};
EWD 3 トレーニング・コース #4
GT.M 環境変数
05/02/2023 17
ewd-xpress 起動var config = { managementPassword: ‘keepThisSecret!’, serverName: ‘New EWD Server’, port: 8080, poolSize: 1, database: { type: ‘gtm’, params: { // snip } }};
var ewdXpress = require(‘ewd-xpress’).master;ewdXpress.start(config);
EWD 3 トレーニング・コース #4
05/02/2023 18
ewd-xpress 起動 config オブジェクト
var config = { managementPassword: ‘keepThisSecret!’, serverName: ‘New EWD Server’, port: 8080, poolSize: 1, database: { type: ‘gtm’, params: { // snip } }};
EWD 3 トレーニング・コース #4
ewd-xpress-monitor アプリの起動時に入力する管理パスワード
05/02/2023 19
ewd-xpress 起動 config オブジェクト
var config = { managementPassword: ‘keepThisSecret!’, serverName: ‘New EWD Server’, port: 8080, poolSize: 1, database: { type: ‘gtm’, params: { // snip } }};
EWD 3 トレーニング・コース #4
ewd-xpress-monitor 内で、この ewd-xpress インスタンスの名前を表示する複数インスタンスを起動するときに便利
05/02/2023 20
ewd-xpress 起動 config オブジェクト
var config = { managementPassword: ‘keepThisSecret!’, serverName: ‘New EWD Server’, port: 8080, poolSize: 1, database: { type: ‘gtm’, params: { // snip } }};
EWD 3 トレーニング・コース #4
Express がリクエストの受信を待つポート
05/02/2023 21
ewd-xpress 起動 config オブジェクト
var config = { managementPassword: ‘keepThisSecret!’, serverName: ‘New EWD Server’, port: 8080, poolSize: 1, database: { type: ‘gtm’, params: { // snip } }};
EWD 3 トレーニング・コース #4
要求を処理するために、 ewd-xpress によって起動されるワーカー・プロセスの最大個数
05/02/2023 22
ewd-xpress 起動 config オブジェクト
var config = { managementPassword: ‘keepThisSecret!’, serverName: ‘New EWD Server’, port: 8080, poolSize: 1, database: { type: ‘gtm’, params: { gtm_chset: 'utf-8' , gtmver: 'V6.2-002A_x86_64' , gtm_icu_version: '5.0' , gtmgbldir: '/home/jds/.fis-gtm/V6.2-002A_x86_64/g/gtm.gld' , gtmroutines: ‘~~~~~~' , gtmdir: '/home/mta/.fis-gtm' , gtm_dist: 'gtm_dist=/usr/lib/fis-gtm/V6.2-002A_x8664/utf8' , } }};
EWD 3 トレーニング・コース #4
ワーカー・プロセスをどのデータベースに接続するかCaché または GT.M
05/02/2023 23
ewd-xpress 起動var config = { managementPassword: ‘keepThisSecret!’, serverName: ‘New EWD Server’, port: 8080, poolSize: 1, database: { type: ‘gtm’, params: { gtm_chset: 'utf-8' , gtmver: 'V6.2-002A_x86_64' , gtm_icu_version: '5.0' , gtmgbldir: '/home/jds/.fis-gtm/V6.2-002A_x86_64/g/gtm.gld' , gtmroutines: ‘~~~~~~' , gtmdir: '/home/mta/.fis-gtm' , gtm_dist: 'gtm_dist=/usr/lib/fis-gtm/V6.2-002A_x8664/utf8' , } }};
EWD 3 トレーニング・コース #4
GT.M の場合、グローバル ディレクトリのありか
05/02/2023 24
ewd-xpress 起動var config = { managementPassword: ‘keepThisSecret!’, serverName: ‘New EWD Server’, port: 8080, poolSize: 1, database: { type: ‘gtm’, params: { path: ‘~//InterSystems//Cache2015-2//mgr’ } }};
EWD 3 トレーニング・コース #4
他の Caché データベースパラメータも利用可能 - username (_SYSTEM) - password (SYS) - namespace (USER)
デフォルト値と異なる値の場合にのみ指定する必要がある
05/02/2023 25
ewd-xpress の準備完了
• これでアプリケーションを開発することができます
• JavaScript の任意のフレームワークを利用可能• 自身で開発した JavaScript コードも含む
EWD 3 トレーニング・コース #4