SlideShare una empresa de Scribd logo
1 de 31
Copyright © 2016 M/Gateway Developments Ltd
EWD 3 Training Course
Part 4
Installing & Configuring
QEWD
Rob Tweed
Director, M/Gateway Developments Ltd
Twitter: @rtweed
Copyright © 2016 M/Gateway Developments Ltd
QEWD
• Complete EWD 3 run-time back-end
environment for applications:
– Interactive browser-based applications
– Interactive React Native mobile applications
– HTTP Web Services
– REST services
• Built using EWD 3 modules
• Extensible
Copyright © 2016 M/Gateway Developments Ltd
Pre-packaged EWD 3 Platform
• Ideal if you want to build and run applications:
– Interactive browser-based desktop apps
– Mobile apps using React Native
– REST and Web Service back-ends
• with a Node.js back-end
• Particularly if you want to use Caché, Redis or
GT.M
• All the necessary EWD 3 modules have been
integrated for you
– Very simple installation & configuration
Copyright © 2016 M/Gateway Developments Ltd
Getting Started on Windows with Caché
• Pre-requisites
– Windows 7 or later
– Decent modern browser
• Chrome recommended
– Decent text editor
• eg Notepad++
– Caché installed and running
Copyright © 2016 M/Gateway Developments Ltd
Step 1
• Install Node.js
– Go to https://nodejs.org
– Download latest version of Node.js
• LTS version recommended
• Currently 6.9.x
– Invoke the downloaded msi installer file
– Check using Command Prompt windows
• node –v
– Should report v6.9.3
Copyright © 2016 M/Gateway Developments Ltd
Step 2
• Create a directory for all QEWD work:
– eg C:qewd
Copyright © 2016 M/Gateway Developments Ltd
Step 3
• Install QEWD and qewd-monitor:
cd qewd
npm install qewd qewd-monitor
Ignore any warnings
On completion you should find a new directory:
C:qewdnode_modules
Copyright © 2016 M/Gateway Developments Ltd
Step 4
• Get and install the latest cache.node for
Node.js 6.x:
– Move/copy from Downloads directory to:
• C:qewdnode_modules
– Rename to cache.node
https://s3-eu-west-1.amazonaws.com/cache.node/build-124/win64/cache610.node
Copyright © 2016 M/Gateway Developments Ltd
Step 5 (a)
• Set up and configure QEWD
– Copy:
• C:qewdnode_modulesqewdexampleewd-xpress.js
– To:
• C:qewdqewd.js
Copyright © 2016 M/Gateway Developments Ltd
Step 5 (b)
• Edit C:qewdqewd.js
– eg using Notepad++
– Specify your Caché mgr path within the config
object, eg: var config = {
managementPassword: 'keepThisSecret!',
serverName: 'New QEWD Server',
port: 8080,
poolSize: 1,
database: {
type: 'cache',
params: {
path: 'c:InterSystemsCache2015-2mgr'
}
}
};
Copyright © 2016 M/Gateway Developments Ltd
Step 5 (b)
• Edit C:qewdqewd.js
– eg using Notepad++
– Specify your Caché mgr path within the config
object, eg:
Note the double
back-slashes
Note the comma!
var config = {
managementPassword: 'keepThisSecret!',
serverName: 'New QEWD Server',
port: 8080,
poolSize: 1,
database: {
type: 'cache',
params: {
path: 'c:InterSystemsCache2015-2mgr'
}
}
};
Copyright © 2016 M/Gateway Developments Ltd
Step 6
• Set up qewd-monitor
– Create new directories:
• C:qewdwww
• C:qewdwwwqewd-monitor
– Copy all the files in:
• c:qewdnode_modulesqewd-monitorwww
– To:
• c:qewdwwwqewd-monitor
Copyright © 2016 M/Gateway Developments Ltd
Step 7
• Start up QEWD:
– In a Command Prompt window:
cd qewd
node qewd
C:ewd3>node qewd
webServerRootPath = C:qewd/www/
Worker Bootstrap Module file written to node_modules/ewd-qoper8-worker.js
========================================================
ewd-qoper8 is up and running. Max worker pool size: 1
Copyright © 2016 M/Gateway Developments Ltd
Step 8
• In your browser, enter the URL:
– http://127.0.0.1:8080/qewd-monitor/index.html
– When prompted for the management password, enter:
• keepThisSecret!
• QEWD and qewd-monitor should now be fully working!
Copyright © 2016 M/Gateway Developments Ltd
QEWD startup file
• C:qewdqewd.js
– Can be renamed if you wish
• Define a config object
• Invoke the QEWD start() function
– Passing in the config object as an argument
Copyright © 2016 M/Gateway Developments Ltd
QEWD startup config object
var config = {
managementPassword: 'keepThisSecret!',
serverName: 'New QEWD Server',
port: 8080,
poolSize: 1,
database: {
type: 'cache',
params: {
path: 'c:InterSystemsCache2015-2mgr’
}
}};
Copyright © 2016 M/Gateway Developments Ltd
QEWD startup
var config = {
managementPassword: 'keepThisSecret!',
serverName: 'New EWD Server',
port: 8080,
poolSize: 1,
database: {
type: 'cache',
params: {
path: 'c:InterSystemsCache2015-2mgr’
}
}};
var qewd = require('qewd').master;
qewd.start(config);
Copyright © 2016 M/Gateway Developments Ltd
QEWD startup config object
var config = {
managementPassword: 'keepThisSecret!',
serverName: 'New QEWD Server',
port: 8080,
poolSize: 1,
database: {
type: 'cache',
params: {
path: 'c:InterSystemsCache2015-2mgr’
}
}};
The management password that
You enter when you start up
qewd-monitor application
Copyright © 2016 M/Gateway Developments Ltd
QEWD startup config object
var config = {
managementPassword: 'keepThisSecret!',
serverName: 'My EWD App Server',
port: 8080,
poolSize: 1,
database: {
type: 'cache',
params: {
path: 'c:InterSystemsCache2015-2mgr’
}
}};
Used in qewd-monitor
to display the name of this
instance of QEWD
Useful if you have more
than one instance running
Copyright © 2016 M/Gateway Developments Ltd
QEWD startup config object
var config = {
managementPassword: 'keepThisSecret!',
serverName: 'My EWD App Server',
port: 8080,
poolSize: 1,
database: {
type: 'cache',
params: {
path: 'c:InterSystemsCache2015-2mgr’
}
}};
Port on which Express
listens for incoming
requests
Copyright © 2016 M/Gateway Developments Ltd
QEWD startup config object
var config = {
managementPassword: 'keepThisSecret!',
serverName: 'My EWD App Server',
port: 8080,
poolSize: 1,
database: {
type: 'cache',
params: {
path: 'c:InterSystemsCache2015-2mgr’
}
}};
Maximum number
of worker processes
to be started by
QEWD to handle
demand
Copyright © 2016 M/Gateway Developments Ltd
QEWD startup config object
var config = {
managementPassword: 'keepThisSecret!',
serverName: 'New EWD Server',
port: 8080,
poolSize: 1,
database: {
type: 'cache',
params: {
path: 'c:InterSystemsCache2015-2mgr’
}
}};
What database
do you want to
connect to your
worker processes?
- cache
- gtm
Copyright © 2016 M/Gateway Developments Ltd
QEWD startup config object
var config = {
managementPassword: 'keepThisSecret!',
serverName: 'New EWD Server',
port: 8080,
poolSize: 1,
database: {
type: 'cache',
params: {
path: 'c:InterSystemsCache2015-2mgr’
}
}};
If Caché, where is
its mgr directory
located?
Copyright © 2016 M/Gateway Developments Ltd
QEWD startup config object
var config = {
managementPassword: 'keepThisSecret!',
serverName: 'New EWD Server',
port: 8080,
poolSize: 1,
database: {
type: 'cache',
params: {
path: 'c:InterSystemsCache2015-2mgr’
}
}}; Other Caché database params available:
- username (_SYSTEM)
- password (SYS)
- namespace (USER)
Only need to be specified if different
values from defaults required
Copyright © 2016 M/Gateway Developments Ltd
QEWD is ready
• You can now try developing your own
applications
• Can use any JavaScript framework
– Including your own manually created
JavaScript code
Copyright © 2016 M/Gateway Developments Ltd
Installing QEWD on Linux
• The QEWD repository includes an installer
folder
– Contains a set of pre-written installer scripts
– Designed for use with Ubuntu 16.04
• "virgin" system without:
– Node.js or a database (GT.M, Cache or Redis)
• Easily adapted for use with other Linux versions
• Can be used as a starting point for "non-virgin"
systems
Copyright © 2016 M/Gateway Developments Ltd
Using the Installers
• Pre-requisites / assumptions:
– Freshly-installed Ubuntu 16.04 system:
• Physical server
• Virtual Machine
• Cloud image (EC2, Digital Ocean, etc)
– SSH access
– Port 8080 externally accessible
Copyright © 2016 M/Gateway Developments Ltd
Linux Installers:
• QEWD + NVM + Node.js
• Choice of database:
– GT.M (Free, Open Source)
– GlobalsDB (Free, Proprietary, Deprecated)
– Cache (Proprietary/Commercial):
• Use installer file as a guide only
• You must have a valid Cache license
Copyright © 2016 M/Gateway Developments Ltd
Using the Installers
• See instructions at:
– https://github.com/robtweed/qewd/tree/master/installers
Copyright © 2016 M/Gateway Developments Ltd
Installing QEWD on RPi
• QEWD can also be installed and run on a
Raspberry Pi
– Using Redis (ewd-redis-globals)
• A pre-built installer can be found in the
/installers folder
• See instructions at:
– https://github.com/robtweed/qewd/tree/master/installers
Copyright © 2016 M/Gateway Developments Ltd
Docker versions of QEWD
• Pre-built containers in Docker.io:
– rtweed/qewd:
• QEWD for Intel x64 machines
– rtweed/rpi-qewd
• QEWD for Raspberry Pi
• See the separate slide deck on using the
Docker versions of QEWD for more
information

Más contenido relacionado

La actualidad más candente

Why Docker
Why DockerWhy Docker
Why Docker
dotCloud
 
Intro to Docker November 2013
Intro to Docker November 2013Intro to Docker November 2013
Intro to Docker November 2013
Docker, Inc.
 
Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad
Docker, Inc.
 

La actualidad más candente (20)

Docker 101: An Introduction
Docker 101: An IntroductionDocker 101: An Introduction
Docker 101: An Introduction
 
Why Docker
Why DockerWhy Docker
Why Docker
 
Intro to Docker November 2013
Intro to Docker November 2013Intro to Docker November 2013
Intro to Docker November 2013
 
Docker introduction & benefits
Docker introduction & benefitsDocker introduction & benefits
Docker introduction & benefits
 
Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad
 
OpenStack hands-on (All-in-One)
OpenStack hands-on (All-in-One)OpenStack hands-on (All-in-One)
OpenStack hands-on (All-in-One)
 
Android JNI
Android JNIAndroid JNI
Android JNI
 
FIDO & PSD2: Solving the Strong Customer Authentication Challenge in Europe
FIDO & PSD2: Solving the Strong Customer Authentication Challenge in EuropeFIDO & PSD2: Solving the Strong Customer Authentication Challenge in Europe
FIDO & PSD2: Solving the Strong Customer Authentication Challenge in Europe
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
How to Build Interoperable Decentralized Identity Systems with OpenID for Ver...
How to Build Interoperable Decentralized Identity Systems with OpenID for Ver...How to Build Interoperable Decentralized Identity Systems with OpenID for Ver...
How to Build Interoperable Decentralized Identity Systems with OpenID for Ver...
 
Ceph Block Devices: A Deep Dive
Ceph Block Devices:  A Deep DiveCeph Block Devices:  A Deep Dive
Ceph Block Devices: A Deep Dive
 
Docker 101 - Getting started
Docker 101 - Getting startedDocker 101 - Getting started
Docker 101 - Getting started
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
 
Introduction of CCE and DevCloud
Introduction of CCE and DevCloudIntroduction of CCE and DevCloud
Introduction of CCE and DevCloud
 
FIDO Workshop-Demo Breakdown.pptx
FIDO Workshop-Demo Breakdown.pptxFIDO Workshop-Demo Breakdown.pptx
FIDO Workshop-Demo Breakdown.pptx
 
Ceph Introduction 2017
Ceph Introduction 2017  Ceph Introduction 2017
Ceph Introduction 2017
 
Building Kubernetes images at scale with Tanzu Build Service
Building Kubernetes images at scale with Tanzu Build ServiceBuilding Kubernetes images at scale with Tanzu Build Service
Building Kubernetes images at scale with Tanzu Build Service
 
Docker swarm introduction
Docker swarm introductionDocker swarm introduction
Docker swarm introduction
 
Linux systems - Getting started with setting up and embedded platform
Linux systems - Getting started with setting up and embedded platformLinux systems - Getting started with setting up and embedded platform
Linux systems - Getting started with setting up and embedded platform
 

Destacado

Destacado (20)

EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
 
EWD 3 Training Course Part 2: EWD 3 Overview
EWD 3 Training Course Part 2: EWD 3 OverviewEWD 3 Training Course Part 2: EWD 3 Overview
EWD 3 Training Course Part 2: EWD 3 Overview
 
EWD 3 Training Course Part 5a: First Steps in Building a QEWD Application
EWD 3 Training Course Part 5a: First Steps in Building a QEWD ApplicationEWD 3 Training Course Part 5a: First Steps in Building a QEWD Application
EWD 3 Training Course Part 5a: First Steps in Building a QEWD Application
 
EWD 3 Training Course Part 5b: First Steps in Building a QEWD Application
EWD 3 Training Course Part 5b: First Steps in Building a QEWD ApplicationEWD 3 Training Course Part 5b: First Steps in Building a QEWD Application
EWD 3 Training Course Part 5b: First Steps in Building a QEWD Application
 
EWD 3 Training Course Part 6: What Happens when a QEWD Application is Started
EWD 3 Training Course Part 6: What Happens when a QEWD Application is StartedEWD 3 Training Course Part 6: What Happens when a QEWD Application is Started
EWD 3 Training Course Part 6: What Happens when a QEWD Application is Started
 
EWD 3 Training Course Part 7: Applying the QEWD Messaging Pattern
EWD 3 Training Course Part 7: Applying the QEWD Messaging PatternEWD 3 Training Course Part 7: Applying the QEWD Messaging Pattern
EWD 3 Training Course Part 7: Applying the QEWD Messaging Pattern
 
EWD 3 Training Course Part 3: Summary of EWD 3 Modules
EWD 3 Training Course Part 3: Summary of EWD 3 ModulesEWD 3 Training Course Part 3: Summary of EWD 3 Modules
EWD 3 Training Course Part 3: Summary of EWD 3 Modules
 
EWD 3 Training Course Part 10: QEWD Sessions and User Authentication
EWD 3 Training Course Part 10: QEWD Sessions and User AuthenticationEWD 3 Training Course Part 10: QEWD Sessions and User Authentication
EWD 3 Training Course Part 10: QEWD Sessions and User Authentication
 
EWD 3 Training Course Part 13: Putting Everything so far into Practice using ...
EWD 3 Training Course Part 13: Putting Everything so far into Practice using ...EWD 3 Training Course Part 13: Putting Everything so far into Practice using ...
EWD 3 Training Course Part 13: Putting Everything so far into Practice using ...
 
EWD 3 Training Course Part 37: Building a React.js application with ewd-xpres...
EWD 3 Training Course Part 37: Building a React.js application with ewd-xpres...EWD 3 Training Course Part 37: Building a React.js application with ewd-xpres...
EWD 3 Training Course Part 37: Building a React.js application with ewd-xpres...
 
EWD 3 Training Course Part 19: The cache.node APIs
EWD 3 Training Course Part 19: The cache.node APIsEWD 3 Training Course Part 19: The cache.node APIs
EWD 3 Training Course Part 19: The cache.node APIs
 
EWD 3 Training Course Part 41: Building a React.js application with QEWD, Part 5
EWD 3 Training Course Part 41: Building a React.js application with QEWD, Part 5EWD 3 Training Course Part 41: Building a React.js application with QEWD, Part 5
EWD 3 Training Course Part 41: Building a React.js application with QEWD, Part 5
 
EWD 3 Training Course Part 11: Handling Errors in QEWD
EWD 3 Training Course Part 11: Handling Errors in QEWDEWD 3 Training Course Part 11: Handling Errors in QEWD
EWD 3 Training Course Part 11: Handling Errors in QEWD
 
EWD 3 Training Course Part 20: The DocumentNode Object
EWD 3 Training Course Part 20: The DocumentNode ObjectEWD 3 Training Course Part 20: The DocumentNode Object
EWD 3 Training Course Part 20: The DocumentNode Object
 
EWD 3 Training Course Part 36: Accessing REST and Web Services from a QEWD ap...
EWD 3 Training Course Part 36: Accessing REST and Web Services from a QEWD ap...EWD 3 Training Course Part 36: Accessing REST and Web Services from a QEWD ap...
EWD 3 Training Course Part 36: Accessing REST and Web Services from a QEWD ap...
 
EWD 3トレーニングコース#9 複雑なewd-xpressメッセージと応答
EWD 3トレーニングコース#9 複雑なewd-xpressメッセージと応答EWD 3トレーニングコース#9 複雑なewd-xpressメッセージと応答
EWD 3トレーニングコース#9 複雑なewd-xpressメッセージと応答
 
EWD 3トレーニング・コース #3 EWD 3 モジュールの概要
EWD 3トレーニング・コース #3 EWD 3 モジュールの概要EWD 3トレーニング・コース #3 EWD 3 モジュールの概要
EWD 3トレーニング・コース #3 EWD 3 モジュールの概要
 
EWD 3トレーニング・コース #4 ewd-xpressのインストールと構成
EWD 3トレーニング・コース #4 ewd-xpressのインストールと構成EWD 3トレーニング・コース #4 ewd-xpressのインストールと構成
EWD 3トレーニング・コース #4 ewd-xpressのインストールと構成
 
EWD 3トレーニング・コース #2 EWD 3 の概要
EWD 3トレーニング・コース #2 EWD 3 の概要EWD 3トレーニング・コース #2 EWD 3 の概要
EWD 3トレーニング・コース #2 EWD 3 の概要
 
EWD 3 トレーニング・コース #1 Node.jsとGT.Mの統合方法
EWD 3トレーニング・コース #1 Node.jsとGT.Mの統合方法EWD 3トレーニング・コース #1 Node.jsとGT.Mの統合方法
EWD 3 トレーニング・コース #1 Node.jsとGT.Mの統合方法
 

Similar a EWD 3 Training Course Part 4: Installing & Configuring QEWD

Similar a EWD 3 Training Course Part 4: Installing & Configuring QEWD (20)

qewd-ripple: The Ripple OSI Middle Tier
qewd-ripple: The Ripple OSI Middle Tierqewd-ripple: The Ripple OSI Middle Tier
qewd-ripple: The Ripple OSI Middle Tier
 
EWD 3 Training Course Part 34: QEWD Resilient Mode
EWD 3 Training Course Part 34: QEWD Resilient ModeEWD 3 Training Course Part 34: QEWD Resilient Mode
EWD 3 Training Course Part 34: QEWD Resilient Mode
 
EWD 3 Training Course Part 30: Modularising QEWD Applications
EWD 3 Training Course Part 30: Modularising QEWD ApplicationsEWD 3 Training Course Part 30: Modularising QEWD Applications
EWD 3 Training Course Part 30: Modularising QEWD Applications
 
EWD 3 Training Course Part 31: Using QEWD for Web and REST Services
EWD 3 Training Course Part 31: Using QEWD for Web and REST ServicesEWD 3 Training Course Part 31: Using QEWD for Web and REST Services
EWD 3 Training Course Part 31: Using QEWD for Web and REST Services
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
ewd-qoper8-vistarpc: Exposing VistA's RPCs as REST Services
ewd-qoper8-vistarpc: Exposing VistA's RPCs as REST Servicesewd-qoper8-vistarpc: Exposing VistA's RPCs as REST Services
ewd-qoper8-vistarpc: Exposing VistA's RPCs as REST Services
 
EWD 3 Training Course Part 44: Creating MicroServices with QEWD.js
EWD 3 Training Course Part 44: Creating MicroServices with QEWD.jsEWD 3 Training Course Part 44: Creating MicroServices with QEWD.js
EWD 3 Training Course Part 44: Creating MicroServices with QEWD.js
 
Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016
 
EWD 3 Training Course Part 8: Anatomy of the QEWD Messaging Cycle
EWD 3 Training Course Part 8: Anatomy of the QEWD Messaging CycleEWD 3 Training Course Part 8: Anatomy of the QEWD Messaging Cycle
EWD 3 Training Course Part 8: Anatomy of the QEWD Messaging Cycle
 
betterCode Workshop: Effizientes DevOps-Tooling mit Go
betterCode Workshop:  Effizientes DevOps-Tooling mit GobetterCode Workshop:  Effizientes DevOps-Tooling mit Go
betterCode Workshop: Effizientes DevOps-Tooling mit Go
 
Introduction of webpack 4
Introduction of webpack 4Introduction of webpack 4
Introduction of webpack 4
 
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
 
WebSphere and Docker
WebSphere and DockerWebSphere and Docker
WebSphere and Docker
 
Introduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azureIntroduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azure
 
Linux advanced concepts - Part 2
Linux advanced concepts - Part 2Linux advanced concepts - Part 2
Linux advanced concepts - Part 2
 
Nicolas Vazquez - Open vSwitch with DPDK on CloudStack
Nicolas Vazquez - Open vSwitch with DPDK on CloudStackNicolas Vazquez - Open vSwitch with DPDK on CloudStack
Nicolas Vazquez - Open vSwitch with DPDK on CloudStack
 
App development with quasar (pdf)
App development with quasar (pdf)App development with quasar (pdf)
App development with quasar (pdf)
 
EWD 3 Training Course Part 17: Introduction to Global Storage Databases
EWD 3 Training Course Part 17: Introduction to Global Storage DatabasesEWD 3 Training Course Part 17: Introduction to Global Storage Databases
EWD 3 Training Course Part 17: Introduction to Global Storage Databases
 
OpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and WindowsOpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and Windows
 
Orchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Orchestration Tool Roundup - Arthur Berezin & Trammell ScruggsOrchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Orchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
 

Más de Rob Tweed

Más de Rob Tweed (19)

QEWD Update
QEWD UpdateQEWD Update
QEWD Update
 
Data Persistence as a Language Feature
Data Persistence as a Language FeatureData Persistence as a Language Feature
Data Persistence as a Language Feature
 
LNUG: Having Your Node.js Cake and Eating It Too
LNUG: Having Your Node.js Cake and Eating It TooLNUG: Having Your Node.js Cake and Eating It Too
LNUG: Having Your Node.js Cake and Eating It Too
 
EWD 3 Training Course Part 45: Using QEWD's Advanced MicroService Functionality
EWD 3 Training Course Part 45: Using QEWD's Advanced MicroService FunctionalityEWD 3 Training Course Part 45: Using QEWD's Advanced MicroService Functionality
EWD 3 Training Course Part 45: Using QEWD's Advanced MicroService Functionality
 
EWD 3 Training Course Part 43: Using JSON Web Tokens with QEWD REST Services
EWD 3 Training Course Part 43: Using JSON Web Tokens with QEWD REST ServicesEWD 3 Training Course Part 43: Using JSON Web Tokens with QEWD REST Services
EWD 3 Training Course Part 43: Using JSON Web Tokens with QEWD REST Services
 
QEWD.js, JSON Web Tokens & MicroServices
QEWD.js, JSON Web Tokens & MicroServicesQEWD.js, JSON Web Tokens & MicroServices
QEWD.js, JSON Web Tokens & MicroServices
 
QEWD.js: Have your Node.js Cake and Eat It Too
QEWD.js: Have your Node.js Cake and Eat It TooQEWD.js: Have your Node.js Cake and Eat It Too
QEWD.js: Have your Node.js Cake and Eat It Too
 
EWD 3 Training Course Part 38: Building a React.js application with QEWD, Part 4
EWD 3 Training Course Part 38: Building a React.js application with QEWD, Part 4EWD 3 Training Course Part 38: Building a React.js application with QEWD, Part 4
EWD 3 Training Course Part 38: Building a React.js application with QEWD, Part 4
 
EWD 3 Training Course Part 39: Building a React.js application with QEWD, Part 3
EWD 3 Training Course Part 39: Building a React.js application with QEWD, Part 3EWD 3 Training Course Part 39: Building a React.js application with QEWD, Part 3
EWD 3 Training Course Part 39: Building a React.js application with QEWD, Part 3
 
EWD 3 Training Course Part 38: Building a React.js application with QEWD, Part 2
EWD 3 Training Course Part 38: Building a React.js application with QEWD, Part 2EWD 3 Training Course Part 38: Building a React.js application with QEWD, Part 2
EWD 3 Training Course Part 38: Building a React.js application with QEWD, Part 2
 
EWD 3 Training Course Part 35: QEWD Session Locking
EWD 3 Training Course Part 35: QEWD Session LockingEWD 3 Training Course Part 35: QEWD Session Locking
EWD 3 Training Course Part 35: QEWD Session Locking
 
EWD 3 Training Course Part 33: Configuring QEWD to use CORS
EWD 3 Training Course Part 33: Configuring QEWD to use CORSEWD 3 Training Course Part 33: Configuring QEWD to use CORS
EWD 3 Training Course Part 33: Configuring QEWD to use CORS
 
EWD 3 Training Course Part 32: Configuring QEWD to use SSL/HTTPS
EWD 3 Training Course Part 32: Configuring QEWD to use SSL/HTTPSEWD 3 Training Course Part 32: Configuring QEWD to use SSL/HTTPS
EWD 3 Training Course Part 32: Configuring QEWD to use SSL/HTTPS
 
EWD 3 Training Course Part 29: Running QEWD as a Service
EWD 3 Training Course Part 29: Running QEWD as a ServiceEWD 3 Training Course Part 29: Running QEWD as a Service
EWD 3 Training Course Part 29: Running QEWD as a Service
 
EWD 3 Training Course Part 28: Integrating Legacy Mumps Code with QEWD
EWD 3 Training Course Part 28: Integrating Legacy Mumps Code with QEWDEWD 3 Training Course Part 28: Integrating Legacy Mumps Code with QEWD
EWD 3 Training Course Part 28: Integrating Legacy Mumps Code with QEWD
 
EWD 3 Training Course Part 27: The QEWD Session
EWD 3 Training Course Part 27: The QEWD SessionEWD 3 Training Course Part 27: The QEWD Session
EWD 3 Training Course Part 27: The QEWD Session
 
EWD 3 Training Course Part 26: Event-driven Indexing
EWD 3 Training Course Part 26: Event-driven IndexingEWD 3 Training Course Part 26: Event-driven Indexing
EWD 3 Training Course Part 26: Event-driven Indexing
 
EWD 3 Training Course Part 25: Document Database Capabilities
EWD 3 Training Course Part 25: Document Database CapabilitiesEWD 3 Training Course Part 25: Document Database Capabilities
EWD 3 Training Course Part 25: Document Database Capabilities
 
EWD 3 Training Course Part 24: Traversing a Document's Leaf Nodes
EWD 3 Training Course Part 24: Traversing a Document's Leaf NodesEWD 3 Training Course Part 24: Traversing a Document's Leaf Nodes
EWD 3 Training Course Part 24: Traversing a Document's Leaf Nodes
 

Último

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Último (20)

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 

EWD 3 Training Course Part 4: Installing & Configuring QEWD

  • 1. Copyright © 2016 M/Gateway Developments Ltd EWD 3 Training Course Part 4 Installing & Configuring QEWD Rob Tweed Director, M/Gateway Developments Ltd Twitter: @rtweed
  • 2. Copyright © 2016 M/Gateway Developments Ltd QEWD • Complete EWD 3 run-time back-end environment for applications: – Interactive browser-based applications – Interactive React Native mobile applications – HTTP Web Services – REST services • Built using EWD 3 modules • Extensible
  • 3. Copyright © 2016 M/Gateway Developments Ltd Pre-packaged EWD 3 Platform • Ideal if you want to build and run applications: – Interactive browser-based desktop apps – Mobile apps using React Native – REST and Web Service back-ends • with a Node.js back-end • Particularly if you want to use Caché, Redis or GT.M • All the necessary EWD 3 modules have been integrated for you – Very simple installation & configuration
  • 4. Copyright © 2016 M/Gateway Developments Ltd Getting Started on Windows with Caché • Pre-requisites – Windows 7 or later – Decent modern browser • Chrome recommended – Decent text editor • eg Notepad++ – Caché installed and running
  • 5. Copyright © 2016 M/Gateway Developments Ltd Step 1 • Install Node.js – Go to https://nodejs.org – Download latest version of Node.js • LTS version recommended • Currently 6.9.x – Invoke the downloaded msi installer file – Check using Command Prompt windows • node –v – Should report v6.9.3
  • 6. Copyright © 2016 M/Gateway Developments Ltd Step 2 • Create a directory for all QEWD work: – eg C:qewd
  • 7. Copyright © 2016 M/Gateway Developments Ltd Step 3 • Install QEWD and qewd-monitor: cd qewd npm install qewd qewd-monitor Ignore any warnings On completion you should find a new directory: C:qewdnode_modules
  • 8. Copyright © 2016 M/Gateway Developments Ltd Step 4 • Get and install the latest cache.node for Node.js 6.x: – Move/copy from Downloads directory to: • C:qewdnode_modules – Rename to cache.node https://s3-eu-west-1.amazonaws.com/cache.node/build-124/win64/cache610.node
  • 9. Copyright © 2016 M/Gateway Developments Ltd Step 5 (a) • Set up and configure QEWD – Copy: • C:qewdnode_modulesqewdexampleewd-xpress.js – To: • C:qewdqewd.js
  • 10. Copyright © 2016 M/Gateway Developments Ltd Step 5 (b) • Edit C:qewdqewd.js – eg using Notepad++ – Specify your Caché mgr path within the config object, eg: var config = { managementPassword: 'keepThisSecret!', serverName: 'New QEWD Server', port: 8080, poolSize: 1, database: { type: 'cache', params: { path: 'c:InterSystemsCache2015-2mgr' } } };
  • 11. Copyright © 2016 M/Gateway Developments Ltd Step 5 (b) • Edit C:qewdqewd.js – eg using Notepad++ – Specify your Caché mgr path within the config object, eg: Note the double back-slashes Note the comma! var config = { managementPassword: 'keepThisSecret!', serverName: 'New QEWD Server', port: 8080, poolSize: 1, database: { type: 'cache', params: { path: 'c:InterSystemsCache2015-2mgr' } } };
  • 12. Copyright © 2016 M/Gateway Developments Ltd Step 6 • Set up qewd-monitor – Create new directories: • C:qewdwww • C:qewdwwwqewd-monitor – Copy all the files in: • c:qewdnode_modulesqewd-monitorwww – To: • c:qewdwwwqewd-monitor
  • 13. Copyright © 2016 M/Gateway Developments Ltd Step 7 • Start up QEWD: – In a Command Prompt window: cd qewd node qewd C:ewd3>node qewd webServerRootPath = C:qewd/www/ Worker Bootstrap Module file written to node_modules/ewd-qoper8-worker.js ======================================================== ewd-qoper8 is up and running. Max worker pool size: 1
  • 14. Copyright © 2016 M/Gateway Developments Ltd Step 8 • In your browser, enter the URL: – http://127.0.0.1:8080/qewd-monitor/index.html – When prompted for the management password, enter: • keepThisSecret! • QEWD and qewd-monitor should now be fully working!
  • 15. Copyright © 2016 M/Gateway Developments Ltd QEWD startup file • C:qewdqewd.js – Can be renamed if you wish • Define a config object • Invoke the QEWD start() function – Passing in the config object as an argument
  • 16. Copyright © 2016 M/Gateway Developments Ltd QEWD startup config object var config = { managementPassword: 'keepThisSecret!', serverName: 'New QEWD Server', port: 8080, poolSize: 1, database: { type: 'cache', params: { path: 'c:InterSystemsCache2015-2mgr’ } }};
  • 17. Copyright © 2016 M/Gateway Developments Ltd QEWD startup var config = { managementPassword: 'keepThisSecret!', serverName: 'New EWD Server', port: 8080, poolSize: 1, database: { type: 'cache', params: { path: 'c:InterSystemsCache2015-2mgr’ } }}; var qewd = require('qewd').master; qewd.start(config);
  • 18. Copyright © 2016 M/Gateway Developments Ltd QEWD startup config object var config = { managementPassword: 'keepThisSecret!', serverName: 'New QEWD Server', port: 8080, poolSize: 1, database: { type: 'cache', params: { path: 'c:InterSystemsCache2015-2mgr’ } }}; The management password that You enter when you start up qewd-monitor application
  • 19. Copyright © 2016 M/Gateway Developments Ltd QEWD startup config object var config = { managementPassword: 'keepThisSecret!', serverName: 'My EWD App Server', port: 8080, poolSize: 1, database: { type: 'cache', params: { path: 'c:InterSystemsCache2015-2mgr’ } }}; Used in qewd-monitor to display the name of this instance of QEWD Useful if you have more than one instance running
  • 20. Copyright © 2016 M/Gateway Developments Ltd QEWD startup config object var config = { managementPassword: 'keepThisSecret!', serverName: 'My EWD App Server', port: 8080, poolSize: 1, database: { type: 'cache', params: { path: 'c:InterSystemsCache2015-2mgr’ } }}; Port on which Express listens for incoming requests
  • 21. Copyright © 2016 M/Gateway Developments Ltd QEWD startup config object var config = { managementPassword: 'keepThisSecret!', serverName: 'My EWD App Server', port: 8080, poolSize: 1, database: { type: 'cache', params: { path: 'c:InterSystemsCache2015-2mgr’ } }}; Maximum number of worker processes to be started by QEWD to handle demand
  • 22. Copyright © 2016 M/Gateway Developments Ltd QEWD startup config object var config = { managementPassword: 'keepThisSecret!', serverName: 'New EWD Server', port: 8080, poolSize: 1, database: { type: 'cache', params: { path: 'c:InterSystemsCache2015-2mgr’ } }}; What database do you want to connect to your worker processes? - cache - gtm
  • 23. Copyright © 2016 M/Gateway Developments Ltd QEWD startup config object var config = { managementPassword: 'keepThisSecret!', serverName: 'New EWD Server', port: 8080, poolSize: 1, database: { type: 'cache', params: { path: 'c:InterSystemsCache2015-2mgr’ } }}; If Caché, where is its mgr directory located?
  • 24. Copyright © 2016 M/Gateway Developments Ltd QEWD startup config object var config = { managementPassword: 'keepThisSecret!', serverName: 'New EWD Server', port: 8080, poolSize: 1, database: { type: 'cache', params: { path: 'c:InterSystemsCache2015-2mgr’ } }}; Other Caché database params available: - username (_SYSTEM) - password (SYS) - namespace (USER) Only need to be specified if different values from defaults required
  • 25. Copyright © 2016 M/Gateway Developments Ltd QEWD is ready • You can now try developing your own applications • Can use any JavaScript framework – Including your own manually created JavaScript code
  • 26. Copyright © 2016 M/Gateway Developments Ltd Installing QEWD on Linux • The QEWD repository includes an installer folder – Contains a set of pre-written installer scripts – Designed for use with Ubuntu 16.04 • "virgin" system without: – Node.js or a database (GT.M, Cache or Redis) • Easily adapted for use with other Linux versions • Can be used as a starting point for "non-virgin" systems
  • 27. Copyright © 2016 M/Gateway Developments Ltd Using the Installers • Pre-requisites / assumptions: – Freshly-installed Ubuntu 16.04 system: • Physical server • Virtual Machine • Cloud image (EC2, Digital Ocean, etc) – SSH access – Port 8080 externally accessible
  • 28. Copyright © 2016 M/Gateway Developments Ltd Linux Installers: • QEWD + NVM + Node.js • Choice of database: – GT.M (Free, Open Source) – GlobalsDB (Free, Proprietary, Deprecated) – Cache (Proprietary/Commercial): • Use installer file as a guide only • You must have a valid Cache license
  • 29. Copyright © 2016 M/Gateway Developments Ltd Using the Installers • See instructions at: – https://github.com/robtweed/qewd/tree/master/installers
  • 30. Copyright © 2016 M/Gateway Developments Ltd Installing QEWD on RPi • QEWD can also be installed and run on a Raspberry Pi – Using Redis (ewd-redis-globals) • A pre-built installer can be found in the /installers folder • See instructions at: – https://github.com/robtweed/qewd/tree/master/installers
  • 31. Copyright © 2016 M/Gateway Developments Ltd Docker versions of QEWD • Pre-built containers in Docker.io: – rtweed/qewd: • QEWD for Intel x64 machines – rtweed/rpi-qewd • QEWD for Raspberry Pi • See the separate slide deck on using the Docker versions of QEWD for more information