SlideShare a Scribd company logo
Copyright © 2015 M/Gateway Developments Ltd
EWD.js
The Future Starts Here
Rob Tweed
Twitter: @rtweed
rob.tweed@gmail.com
http://www.mgateway.com
1Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
How EWD.js tends to be viewed
• Just one of many possible technical options
• Tomorrow will bring another shiny technology
• Rob's hobby horse
2Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
What if…
• EWD.js was adopted at the VA?
• What's the view like from up there?
3Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
EWD.js: the bigger picture
• What does it make possible?
• A glimpse of the vision behind EWD.js
4Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
What is EWD.js
• Development framework
• Run-time platform
http://ewdjs.com
5Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
What is EWD.js
• Development framework
– Client-server applications in the browser
– Web Services
– Legacy Mumps application modernisation
• Run-time platform
6Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
What is EWD.js
• Development framework
• Run-time platform
– Node.js-based application server
– Web Server
– Integrated JSON database
• Caché, GT.M, GlobalsDB, MongoDB
7Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
EWD.js key features
• 100% JavaScript
– Browser
– Back-end (business logic): Node.js
• 100% JSON-based data
– Browser
– Back-end
– Database
• Legacy Mumps code can be accessed from Node.js
• High performance
– Node.js
– In-process interface to database
• Highly scalable
– stateless
8Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Current VistA
VistA
Caché
VistA Server
Roll & Scroll
RPC BrokerCPRS
RPCsFileMan
Stateful
9Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
EWD.js-enabled VistA
EWD.js
VistA
Caché
Node.js
VistA Server
cache.node
Roll & Scroll
RPC BrokerCPRS
RPCsFileMan
Interface functions
Web
Service
Clients
HTTPS +
HMAC SHA256
Stateful
JavaScript /Node.js
business logic
Stateless
10Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
VistA
Cache
EWD.js
Application
Server
Cache
nginx
EWD.js
Application
Server
Cache
EWD.js
Application
Server
Cache ECP
Networking
Mapped globals
for shared EWD Sessions
& VistA data
Mapped VistA
routines
Incoming
WebService
Traffic
Scaling Out
11Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Benefits to the VA
• Single language skill
• Controlled migration:
– from rare Mumps development resources
– To readily-available JavaScript developers
12Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Benefits to the VA
• Single language skill
• Controlled migration:
– from rare Mumps development resources
– To readily-available JavaScript developers
– One-off interfacing of core VistA functionality
via JavaScript functions
13Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Federated access across the VA?
14Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.M
persistent JSON cacheing, storage
Node.jsREST
Clients
REST
Requests
EWD.js
system
HTTP-based
Web Service
REST-based
Service
Back-end
Servers
HTTP
REST
HM
AC-SHA256
Signed
HTTP
https://github.com/robtweed/ewd-federator
15Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.M
persistent JSON cacheing, storage
Node.jsREST
Clients
REST
Requests
EWD.js
system
Back-end
Servers
EWD.js
system
EWD.js
system
EWD.js
system
16Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.M
persistent JSON cacheing, storage
Node.jsREST
Clients
REST
Requests
EWD.js
system
Back-end
Servers
EWD.js
system
EWD.js
system
EWD.js
system
17Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.M
persistent JSON cacheing, storage
Node.jsREST
Clients
REST
Requests
EWD.js
system
Back-end
Servers
EWD.js
system
EWD.js
system
EWD.js
system
18Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.M
persistent JSON cacheing, storage
Node.jsREST
Clients
REST
Requests
EWD.js
system
Back-end
Servers
EWD.js
system
EWD.js
system
EWD.js
system
Aggregate
responses
19Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.M
persistent JSON cacheing, storage
Node.jsREST
Clients
REST
Requests
EWD.js
system
Back-end
Servers
EWD.js
system
EWD.js
system
EWD.js
system
Aggregate
responses
20Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.M
persistent JSON cacheing, storage
Node.jsREST
Clients
REST
Requests
EWD.js
system
Back-end
Servers
EWD.js
system
EWD.js
system
EWD.js
system
Intercept
Incoming
request
21Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.M
persistent JSON cacheing, storage
Node.jsREST
Clients
REST
Requests
EWD.js
system
Back-end
Servers
EWD.js
system
EWD.js
system
EWD.js
system
re-directIntercept
Incoming
request
22Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.M
persistent JSON cacheing, storage
Node.jsREST
Clients
REST
Requests
EWD.js
system
Back-end
Servers
EWD.js
system
EWD.js
system
EWD.js
system
Intercept
Incoming
response
23Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.M
persistent JSON cacheing, storage
Node.jsREST
Clients
REST
Requests
EWD.js
system
Back-end
Servers
EWD.js
system
EWD.js
system
EWD.js
system
Intercept
Incoming
response
re-direct
24Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.M
persistent JSON cacheing, storage
Node.jsREST
Clients
REST
Requests
EWD.js
system
Back-end
Servers
EWD.js
system
EWD.js
system
EWD.js
system
Aggregate
responses
25Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
Cache / GlobalsDB / GT.M
persistent JSON cacheing, storage
Node.jsREST
Clients
REST
Requests
EWD.js
system
Back-end
Servers
EWD.js
system
EWD.js
system
EWD.js
system
Aggregate
responses
26Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
• Ability to create complex "dances"
between EWD.js and other Web/REST
servers
– Single Sign On
– BSE rules
• Ability to save information on ewd-
federator
– Caching to avoid repeated "dances"
– Storing authorisation tokens
27Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Potential benefits to the VA
• Open source, lightweight, JavaScript-
based solution to federation
• Very fast, scalable
– Same ECP-based scale-out could be used
• Secure:
– EWD.js web service traffic encrypted using
HMAC-SHA256 (cf Amazon Web Services)
– EWD.js web services inaccessible without
authorisation at each EWD.js server
28Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
So that's REST…
What about browser-based apps?
29Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
ewd-federator
EWD.js
Application
Server
EWD.js
VistA
EWD.js
VistA
Site 1
Site 2
EWD.js
VistA
Site 3
REST
Browser
WebSockets
HTTP
Web
Services
30Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
EWD.js Browser Applications
• Single Page Applications
• Use Web Sockets instead of Ajax / HTTP
– Bi-directional persistent connection
• Server or browser can send at any time
• No more polling
– Many studies suggest faster than HTTP
• Client-server in a browser
• Works with any JavaScript framework
31Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
All good stuff, but
It's the narrow perspective on why EWD.js
32Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
33Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
34Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
JavaScript
Brendan Eich
Netscape 1995
35Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
JavaScript credibility raised
36Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Browsers
JavaScript
Node.js
37Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Browsers
JavaScript
Node.js
There's never been a more exciting time to be in IT
And all the big innovations and developments are focused
In these 3 areas
38Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Node.js:
There's a module for everything!
Tap into a huge and growing pool
of innovations
39Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
So, browser-based VistA Apps
The right way to go?
40Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
• Myth #1: Browser UIs just aren't good enough for clinical/medical apps
• Myth #2: Browsers and web technologies aren't fast enough / too much latency
• Myth #3: Browsers and web technologies aren't secure enough
41Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
•Myth #1: Browser UIs just aren't good enough for clinical/medical apps
It seems they're good enough for everyone else
There's nothing a browser can't do these days
The days of being limited to simple pages were decades ago
42Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
•Myth #1: Browser UIs just aren't good enough for clinical/medical apps
Do you use:
• Google Docs
• Microsoft Office 365
• Do you bank, shop, watch videos, etc on your browser at home?
43Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
•Myth #1: Browser UIs just aren't good enough for clinical/medical apps
44Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
•Myth #1: Browser UIs just aren't good enough for clinical/medical apps
• Sophisticated graphics:
• 2-d
• 3-d eg http://data-arts.appspot.com/globe/
45Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
•Myth #1: Browser UIs just aren't good enough for clinical/medical apps
http://gradvs1.mgateway.com/main/simon3d.html
46Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
•Myth #1: Browser UIs just aren't good enough for clinical/medical apps
Finally, see the work of Astute Semantics
VistA modernisation using EWD.js
http://astutesemantics.com/
47Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
•Myth #1: Browser UIs just aren't good enough for clinical/medical apps
48Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
•Myth #2: Browsers and web technologies aren't fast enough / too much latency
Are the following hopelessly slow for you?
• Amazon
• EBay
• Google
• Do you watch Netflix or YouTube in your browser?
49Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
•Myth #2: Browsers and web technologies aren't fast enough / too much latency
Demonstrations showing federated access to multiple
VistA systems using ewd-federator and EWD.js:
!Sub-second response
Asynchronous pre-emptive data fetching based on usage statistics
50Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
•Myth #2: Browsers and web technologies aren't fast enough / too much latency
51Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
•Myth #3: Browsers and web technologies aren't secure enough
It seems they're good enough for online banking….
52Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
•Myth #3: Browsers and web technologies aren't secure enough
53Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
So what's the view like from up there?
54Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
The future is browser-shaped
• Web-sockets
– Server can send messages to the browser at any
time:
• Alerts, message of the day
– Real-time graphing of clinical results on tablet
browser by the bed-side
– Real-time bed state display
– Cross-browser inter-communication between provider
and patient
– Legacy green screen terminal in browser
• https://robtweed.wordpress.com/2014/03/04/vista-the-hackable-open-source-ehr-hackable-platform/
55Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
The future is browser-shaped
• WebRTC
– Real time communications
– Skype-like behaviour in a browser, without
plug-ins
• Video
• Audio
• File transfer
– Key to browser-based telemedicine
56Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Asm.js
• Subset of JavaScript that can be compiled and
run at near native C++ speed in asm.js-enabled
browsers
• Emscripten compiler
• Being driven by the games industry
– Unreal Engine ported to run in browser, without plug-
ins
– Try this:
• http://www.flohofwoe.net/demos/dsomapviewer_asmjs.html
57Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Asm.js
• Application of gaming thinking to
healthcare problems
• High performance UIs with extremely rapid
user interaction
• Gaming is all about high-speed reaction to
highly optimised visualisations of large
amounts of data
– Sound familiar?
58Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
The future is browser-shaped
• ServiceWorkers:
– New upcoming feature for the web platform
– Designed particularly for offline browser problem
– HTML5 AppCache is declarative and has many
known limitations
– ServiceWorkers:
• Allow a script to persistently cache resources
• Can handle all resource requests
• Even when network unavailable
– See: https://github.com/slightlyoff/ServiceWorker/blob/master/
explainer.md
59Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
The future is browser-shaped
Chromecast
• $35 Device from Google
• Marketed as a video streaming
device for your TV
• It actually has a lot more potential,
particularly in healthcare
60Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Chromecast Schematic
Chrome
Browser
Chrome OS
HDMIOutput
TV
Monitor
Projector
WirelessNetwork
Interface
61Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
The future is browser-shaped
Chromecast
• Turns an HDMI-
interfaced monitor or TV
into a sophisticated,
controllable display
https://robtweed.wordpress.com/2014/04/05/chromecast-understanding-its-potential/
62Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
VistA Chromecast Applications
Chromecast
PC or Mac
Chrome
Chromecast
JavaScript APIs
Sender
Application
WirelessNetwork
Chrome
HTML Page
Chromecast
JavaScript APIs
EWD.js
Application
EWD.js Application
JavaScript
EWD.js / Node.js
Server
EWD.js JavaScript
WebSocket
messaging
VistA
63Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
The future is JavaScript-based
Costs $80
64Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
What does it do?
Detects hand movements
and gestures in 3D area
above and around the device
65Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
How do you use it?
• USB Device
• Move one or more hands
above it
• Software can detect:
– Palms
– Fingers & thumbs
• Including joints
– Position
– Rotation in 3D
• Samples at whatever
frequency you wish
• Sub-millimeter accuracy
• Program in JavaScript
http://osehra.org/sites/default/files/QuantitativeHandTremorTweed.pdf
66Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
The future is JavaScript-shaped
67Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
The future is JavaScript-based
Google Authenticator for 2-factor authentication
EWD.js provides support "out of the box"
More info:
http://bit.ly/1ERPXRf
Video:
http://gradvs1.mgateway.com/main/authenticator.html
68Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Consequences for the VA
• Applications move to browser using
stateless EWD.js architecture
• Resource-hungry stateful applications
diminish
• Resources freed up on VistA servers
69Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Consequences for the VA
• Convergence of mobile & desktop
development:
– Responsive design
– Build once, run on all platforms
– One language skill: JavaScript
• All but the most demanding mobile
applications can be browser-based
• ServiceWorkers seen as solution for offline
70Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Consequences for the VA
• VistA access moves to browser
• Why are PCs needed any more?
• Chromebooks would support all applications
– Including roll & scroll
• Cheap: $200 - 300
• Highly secure
• No risk if stolen
• No need for such costly and complex security
procedures
• https://robtweed.wordpress.com/2013/12/19/chromebooks-the-ideal-healthcare-desktop/
71Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
Consequences for the VA
• ewd-federator:
– Code distribution
– Software update management
– Synchronising configurations
– Federated control over user privileges
– Centralised performance monitoring /
dashboards
72Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
I could go on….
73Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
So imagine if…
EWD.js was adopted at the VA..
74Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
You really should see the view up here!
Client-server browser-based applications
able to exploit all the IT industry's major advances
Browsers, JavaScript & Node.js:
the powerhouses of innovation
75Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
76Wednesday, 25 March 15
Copyright © 2015 M/Gateway Developments Ltd
EWD.js
The Future Starts Here
Rob Tweed
Twitter: @rtweed
rob.tweed@gmail.com
http://www.mgateway.com
77Wednesday, 25 March 15

More Related Content

What's hot

QEWD Update
QEWD UpdateQEWD Update
QEWD Update
Rob Tweed
 
EWD 3 Training Course Part 16: QEWD Services
EWD 3 Training Course Part 16: QEWD ServicesEWD 3 Training Course Part 16: QEWD Services
EWD 3 Training Course Part 16: QEWD Services
Rob Tweed
 
EWD 3 Training Course Part 4: Installing & Configuring QEWD
EWD 3 Training Course Part 4: Installing & Configuring QEWDEWD 3 Training Course Part 4: Installing & Configuring QEWD
EWD 3 Training Course Part 4: Installing & Configuring QEWD
Rob Tweed
 
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...
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
EWD 3 Training Course Part 15: Using a Framework other than jQuery with QEWD
EWD 3 Training Course Part 15: Using a Framework other than jQuery with QEWDEWD 3 Training Course Part 15: Using a Framework other than jQuery with QEWD
EWD 3 Training Course Part 15: Using a Framework other than jQuery with QEWD
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
EWD 3 Training Course Part 42: The QEWD Docker Appliance
EWD 3 Training Course Part 42: The QEWD Docker ApplianceEWD 3 Training Course Part 42: The QEWD Docker Appliance
EWD 3 Training Course Part 42: The QEWD Docker Appliance
Rob Tweed
 
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
Rob Tweed
 
Reasons to migrate to modern web development with JavaScript
Reasons to migrate to modern web development with JavaScriptReasons to migrate to modern web development with JavaScript
Reasons to migrate to modern web development with JavaScript
David Amend
 
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
Rob Tweed
 

What's hot (20)

QEWD Update
QEWD UpdateQEWD Update
QEWD Update
 
EWD 3 Training Course Part 16: QEWD Services
EWD 3 Training Course Part 16: QEWD ServicesEWD 3 Training Course Part 16: QEWD Services
EWD 3 Training Course Part 16: QEWD Services
 
EWD 3 Training Course Part 4: Installing & Configuring QEWD
EWD 3 Training Course Part 4: Installing & Configuring QEWDEWD 3 Training Course Part 4: Installing & Configuring QEWD
EWD 3 Training Course Part 4: Installing & Configuring QEWD
 
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 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 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
 
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 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 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 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 15: Using a Framework other than jQuery with QEWD
EWD 3 Training Course Part 15: Using a Framework other than jQuery with QEWDEWD 3 Training Course Part 15: Using a Framework other than jQuery with QEWD
EWD 3 Training Course Part 15: Using a Framework other than jQuery with QEWD
 
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 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
 
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 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 42: The QEWD Docker Appliance
EWD 3 Training Course Part 42: The QEWD Docker ApplianceEWD 3 Training Course Part 42: The QEWD Docker Appliance
EWD 3 Training Course Part 42: The QEWD Docker Appliance
 
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
 
Reasons to migrate to modern web development with JavaScript
Reasons to migrate to modern web development with JavaScriptReasons to migrate to modern web development with JavaScript
Reasons to migrate to modern web development with JavaScript
 
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
 

Similar to EWD.js: The Future Starts Here

How Facebook's Technologies can define the future of VistA and Health IT
How Facebook's Technologies can define the future of VistA and Health ITHow Facebook's Technologies can define the future of VistA and Health IT
How Facebook's Technologies can define the future of VistA and Health IT
Rob Tweed
 
Adding Realtime to your Projects
Adding Realtime to your ProjectsAdding Realtime to your Projects
Adding Realtime to your Projects
Ignacio Martín
 
Microservices, Data Services and Containers for Cloud Native Architectures (D...
Microservices, Data Services and Containers for Cloud Native Architectures (D...Microservices, Data Services and Containers for Cloud Native Architectures (D...
Microservices, Data Services and Containers for Cloud Native Architectures (D...
ragss
 
Concevoir et déployer vos applications a base de microservices sur Cloud Foundry
Concevoir et déployer vos applications a base de microservices sur Cloud FoundryConcevoir et déployer vos applications a base de microservices sur Cloud Foundry
Concevoir et déployer vos applications a base de microservices sur Cloud Foundry
VMware Tanzu
 
Kafka at Scale: Multi-Tier Architectures
Kafka at Scale: Multi-Tier ArchitecturesKafka at Scale: Multi-Tier Architectures
Kafka at Scale: Multi-Tier Architectures
Todd Palino
 
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
GeneXus
 
FOSDEM 2015 - NoSQL and SQL the best of both worlds
FOSDEM 2015 - NoSQL and SQL the best of both worldsFOSDEM 2015 - NoSQL and SQL the best of both worlds
FOSDEM 2015 - NoSQL and SQL the best of both worlds
Andrew Morgan
 
DAY1- DAY2Netweaver gateway
DAY1- DAY2Netweaver gatewayDAY1- DAY2Netweaver gateway
DAY1- DAY2Netweaver gateway
Gaurav Ahluwalia
 
SOASTA mPulse update webinar
SOASTA mPulse update webinarSOASTA mPulse update webinar
SOASTA mPulse update webinar
CloudBees
 
How to avoid cascading failures in microservices
How to avoid cascading failures in microservicesHow to avoid cascading failures in microservices
How to avoid cascading failures in microservices
DevOps Indonesia
 
Introduzione a web e servizi con .net e azure
Introduzione a web e servizi con .net e azureIntroduzione a web e servizi con .net e azure
Introduzione a web e servizi con .net e azure
dotnetabruzzo
 
Improving Mobile UX with Apache DeviceMap - Werner Keil - Codemotion Rome 2015
Improving Mobile UX with Apache DeviceMap - Werner Keil - Codemotion Rome 2015Improving Mobile UX with Apache DeviceMap - Werner Keil - Codemotion Rome 2015
Improving Mobile UX with Apache DeviceMap - Werner Keil - Codemotion Rome 2015
Codemotion
 
Introduction to ThousandEyes
Introduction to ThousandEyesIntroduction to ThousandEyes
Introduction to ThousandEyes
ThousandEyes
 
Introduction to ThousandEyes
Introduction to ThousandEyesIntroduction to ThousandEyes
Introduction to ThousandEyes
ThousandEyes
 
Introduction To Microsoft Windows Containers
Introduction To Microsoft Windows ContainersIntroduction To Microsoft Windows Containers
Introduction To Microsoft Windows Containers
David Strebel
 
3983 cics java real life projects
3983   cics java real life projects3983   cics java real life projects
3983 cics java real life projects
nick_garrod
 
EMEA.23.02.23_Top_Outages_of_2022_Webinar_Slides.pptx
EMEA.23.02.23_Top_Outages_of_2022_Webinar_Slides.pptxEMEA.23.02.23_Top_Outages_of_2022_Webinar_Slides.pptx
EMEA.23.02.23_Top_Outages_of_2022_Webinar_Slides.pptx
ThousandEyes
 
Tech Talk: Getting to Know Node.js
Tech Talk: Getting to Know Node.jsTech Talk: Getting to Know Node.js
Tech Talk: Getting to Know Node.js
CA Technologies
 
Go Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid InnovationGo Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid Innovation
Fred George
 
Startups without Servers
Startups without ServersStartups without Servers
Startups without Servers
Amazon Web Services
 

Similar to EWD.js: The Future Starts Here (20)

How Facebook's Technologies can define the future of VistA and Health IT
How Facebook's Technologies can define the future of VistA and Health ITHow Facebook's Technologies can define the future of VistA and Health IT
How Facebook's Technologies can define the future of VistA and Health IT
 
Adding Realtime to your Projects
Adding Realtime to your ProjectsAdding Realtime to your Projects
Adding Realtime to your Projects
 
Microservices, Data Services and Containers for Cloud Native Architectures (D...
Microservices, Data Services and Containers for Cloud Native Architectures (D...Microservices, Data Services and Containers for Cloud Native Architectures (D...
Microservices, Data Services and Containers for Cloud Native Architectures (D...
 
Concevoir et déployer vos applications a base de microservices sur Cloud Foundry
Concevoir et déployer vos applications a base de microservices sur Cloud FoundryConcevoir et déployer vos applications a base de microservices sur Cloud Foundry
Concevoir et déployer vos applications a base de microservices sur Cloud Foundry
 
Kafka at Scale: Multi-Tier Architectures
Kafka at Scale: Multi-Tier ArchitecturesKafka at Scale: Multi-Tier Architectures
Kafka at Scale: Multi-Tier Architectures
 
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
 
FOSDEM 2015 - NoSQL and SQL the best of both worlds
FOSDEM 2015 - NoSQL and SQL the best of both worldsFOSDEM 2015 - NoSQL and SQL the best of both worlds
FOSDEM 2015 - NoSQL and SQL the best of both worlds
 
DAY1- DAY2Netweaver gateway
DAY1- DAY2Netweaver gatewayDAY1- DAY2Netweaver gateway
DAY1- DAY2Netweaver gateway
 
SOASTA mPulse update webinar
SOASTA mPulse update webinarSOASTA mPulse update webinar
SOASTA mPulse update webinar
 
How to avoid cascading failures in microservices
How to avoid cascading failures in microservicesHow to avoid cascading failures in microservices
How to avoid cascading failures in microservices
 
Introduzione a web e servizi con .net e azure
Introduzione a web e servizi con .net e azureIntroduzione a web e servizi con .net e azure
Introduzione a web e servizi con .net e azure
 
Improving Mobile UX with Apache DeviceMap - Werner Keil - Codemotion Rome 2015
Improving Mobile UX with Apache DeviceMap - Werner Keil - Codemotion Rome 2015Improving Mobile UX with Apache DeviceMap - Werner Keil - Codemotion Rome 2015
Improving Mobile UX with Apache DeviceMap - Werner Keil - Codemotion Rome 2015
 
Introduction to ThousandEyes
Introduction to ThousandEyesIntroduction to ThousandEyes
Introduction to ThousandEyes
 
Introduction to ThousandEyes
Introduction to ThousandEyesIntroduction to ThousandEyes
Introduction to ThousandEyes
 
Introduction To Microsoft Windows Containers
Introduction To Microsoft Windows ContainersIntroduction To Microsoft Windows Containers
Introduction To Microsoft Windows Containers
 
3983 cics java real life projects
3983   cics java real life projects3983   cics java real life projects
3983 cics java real life projects
 
EMEA.23.02.23_Top_Outages_of_2022_Webinar_Slides.pptx
EMEA.23.02.23_Top_Outages_of_2022_Webinar_Slides.pptxEMEA.23.02.23_Top_Outages_of_2022_Webinar_Slides.pptx
EMEA.23.02.23_Top_Outages_of_2022_Webinar_Slides.pptx
 
Tech Talk: Getting to Know Node.js
Tech Talk: Getting to Know Node.jsTech Talk: Getting to Know Node.js
Tech Talk: Getting to Know Node.js
 
Go Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid InnovationGo Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid Innovation
 
Startups without Servers
Startups without ServersStartups without Servers
Startups without Servers
 

More from Rob Tweed

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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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...
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 
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
Rob Tweed
 

More from Rob Tweed (12)

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 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 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 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 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 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 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
 

Recently uploaded

美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
widenerjobeyrl638
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio, Inc.
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
sandeepmenon62
 
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
dhavalvaghelanectarb
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
The Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdfThe Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdf
mohitd6
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
Alina Yurenko
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
Pedro J. Molina
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
kalichargn70th171
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
Anand Bagmar
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical OperationsEnsuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
OnePlan Solutions
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Vince Scalabrino
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdfTheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
Ortus Solutions, Corp
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
Paul Brebner
 

Recently uploaded (20)

美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
 
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
The Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdfThe Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdf
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
bgiolcb
bgiolcbbgiolcb
bgiolcb
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical OperationsEnsuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdfTheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
 

EWD.js: The Future Starts Here

  • 1. Copyright © 2015 M/Gateway Developments Ltd EWD.js The Future Starts Here Rob Tweed Twitter: @rtweed rob.tweed@gmail.com http://www.mgateway.com 1Wednesday, 25 March 15
  • 2. Copyright © 2015 M/Gateway Developments Ltd How EWD.js tends to be viewed • Just one of many possible technical options • Tomorrow will bring another shiny technology • Rob's hobby horse 2Wednesday, 25 March 15
  • 3. Copyright © 2015 M/Gateway Developments Ltd What if… • EWD.js was adopted at the VA? • What's the view like from up there? 3Wednesday, 25 March 15
  • 4. Copyright © 2015 M/Gateway Developments Ltd EWD.js: the bigger picture • What does it make possible? • A glimpse of the vision behind EWD.js 4Wednesday, 25 March 15
  • 5. Copyright © 2015 M/Gateway Developments Ltd What is EWD.js • Development framework • Run-time platform http://ewdjs.com 5Wednesday, 25 March 15
  • 6. Copyright © 2015 M/Gateway Developments Ltd What is EWD.js • Development framework – Client-server applications in the browser – Web Services – Legacy Mumps application modernisation • Run-time platform 6Wednesday, 25 March 15
  • 7. Copyright © 2015 M/Gateway Developments Ltd What is EWD.js • Development framework • Run-time platform – Node.js-based application server – Web Server – Integrated JSON database • Caché, GT.M, GlobalsDB, MongoDB 7Wednesday, 25 March 15
  • 8. Copyright © 2015 M/Gateway Developments Ltd EWD.js key features • 100% JavaScript – Browser – Back-end (business logic): Node.js • 100% JSON-based data – Browser – Back-end – Database • Legacy Mumps code can be accessed from Node.js • High performance – Node.js – In-process interface to database • Highly scalable – stateless 8Wednesday, 25 March 15
  • 9. Copyright © 2015 M/Gateway Developments Ltd Current VistA VistA Caché VistA Server Roll & Scroll RPC BrokerCPRS RPCsFileMan Stateful 9Wednesday, 25 March 15
  • 10. Copyright © 2015 M/Gateway Developments Ltd EWD.js-enabled VistA EWD.js VistA Caché Node.js VistA Server cache.node Roll & Scroll RPC BrokerCPRS RPCsFileMan Interface functions Web Service Clients HTTPS + HMAC SHA256 Stateful JavaScript /Node.js business logic Stateless 10Wednesday, 25 March 15
  • 11. Copyright © 2015 M/Gateway Developments Ltd VistA Cache EWD.js Application Server Cache nginx EWD.js Application Server Cache EWD.js Application Server Cache ECP Networking Mapped globals for shared EWD Sessions & VistA data Mapped VistA routines Incoming WebService Traffic Scaling Out 11Wednesday, 25 March 15
  • 12. Copyright © 2015 M/Gateway Developments Ltd Benefits to the VA • Single language skill • Controlled migration: – from rare Mumps development resources – To readily-available JavaScript developers 12Wednesday, 25 March 15
  • 13. Copyright © 2015 M/Gateway Developments Ltd Benefits to the VA • Single language skill • Controlled migration: – from rare Mumps development resources – To readily-available JavaScript developers – One-off interfacing of core VistA functionality via JavaScript functions 13Wednesday, 25 March 15
  • 14. Copyright © 2015 M/Gateway Developments Ltd Federated access across the VA? 14Wednesday, 25 March 15
  • 15. Copyright © 2015 M/Gateway Developments Ltd ewd-federator Cache / GlobalsDB / GT.M persistent JSON cacheing, storage Node.jsREST Clients REST Requests EWD.js system HTTP-based Web Service REST-based Service Back-end Servers HTTP REST HM AC-SHA256 Signed HTTP https://github.com/robtweed/ewd-federator 15Wednesday, 25 March 15
  • 16. Copyright © 2015 M/Gateway Developments Ltd ewd-federator Cache / GlobalsDB / GT.M persistent JSON cacheing, storage Node.jsREST Clients REST Requests EWD.js system Back-end Servers EWD.js system EWD.js system EWD.js system 16Wednesday, 25 March 15
  • 17. Copyright © 2015 M/Gateway Developments Ltd ewd-federator Cache / GlobalsDB / GT.M persistent JSON cacheing, storage Node.jsREST Clients REST Requests EWD.js system Back-end Servers EWD.js system EWD.js system EWD.js system 17Wednesday, 25 March 15
  • 18. Copyright © 2015 M/Gateway Developments Ltd ewd-federator Cache / GlobalsDB / GT.M persistent JSON cacheing, storage Node.jsREST Clients REST Requests EWD.js system Back-end Servers EWD.js system EWD.js system EWD.js system 18Wednesday, 25 March 15
  • 19. Copyright © 2015 M/Gateway Developments Ltd ewd-federator Cache / GlobalsDB / GT.M persistent JSON cacheing, storage Node.jsREST Clients REST Requests EWD.js system Back-end Servers EWD.js system EWD.js system EWD.js system Aggregate responses 19Wednesday, 25 March 15
  • 20. Copyright © 2015 M/Gateway Developments Ltd ewd-federator Cache / GlobalsDB / GT.M persistent JSON cacheing, storage Node.jsREST Clients REST Requests EWD.js system Back-end Servers EWD.js system EWD.js system EWD.js system Aggregate responses 20Wednesday, 25 March 15
  • 21. Copyright © 2015 M/Gateway Developments Ltd ewd-federator Cache / GlobalsDB / GT.M persistent JSON cacheing, storage Node.jsREST Clients REST Requests EWD.js system Back-end Servers EWD.js system EWD.js system EWD.js system Intercept Incoming request 21Wednesday, 25 March 15
  • 22. Copyright © 2015 M/Gateway Developments Ltd ewd-federator Cache / GlobalsDB / GT.M persistent JSON cacheing, storage Node.jsREST Clients REST Requests EWD.js system Back-end Servers EWD.js system EWD.js system EWD.js system re-directIntercept Incoming request 22Wednesday, 25 March 15
  • 23. Copyright © 2015 M/Gateway Developments Ltd ewd-federator Cache / GlobalsDB / GT.M persistent JSON cacheing, storage Node.jsREST Clients REST Requests EWD.js system Back-end Servers EWD.js system EWD.js system EWD.js system Intercept Incoming response 23Wednesday, 25 March 15
  • 24. Copyright © 2015 M/Gateway Developments Ltd ewd-federator Cache / GlobalsDB / GT.M persistent JSON cacheing, storage Node.jsREST Clients REST Requests EWD.js system Back-end Servers EWD.js system EWD.js system EWD.js system Intercept Incoming response re-direct 24Wednesday, 25 March 15
  • 25. Copyright © 2015 M/Gateway Developments Ltd ewd-federator Cache / GlobalsDB / GT.M persistent JSON cacheing, storage Node.jsREST Clients REST Requests EWD.js system Back-end Servers EWD.js system EWD.js system EWD.js system Aggregate responses 25Wednesday, 25 March 15
  • 26. Copyright © 2015 M/Gateway Developments Ltd ewd-federator Cache / GlobalsDB / GT.M persistent JSON cacheing, storage Node.jsREST Clients REST Requests EWD.js system Back-end Servers EWD.js system EWD.js system EWD.js system Aggregate responses 26Wednesday, 25 March 15
  • 27. Copyright © 2015 M/Gateway Developments Ltd ewd-federator • Ability to create complex "dances" between EWD.js and other Web/REST servers – Single Sign On – BSE rules • Ability to save information on ewd- federator – Caching to avoid repeated "dances" – Storing authorisation tokens 27Wednesday, 25 March 15
  • 28. Copyright © 2015 M/Gateway Developments Ltd Potential benefits to the VA • Open source, lightweight, JavaScript- based solution to federation • Very fast, scalable – Same ECP-based scale-out could be used • Secure: – EWD.js web service traffic encrypted using HMAC-SHA256 (cf Amazon Web Services) – EWD.js web services inaccessible without authorisation at each EWD.js server 28Wednesday, 25 March 15
  • 29. Copyright © 2015 M/Gateway Developments Ltd So that's REST… What about browser-based apps? 29Wednesday, 25 March 15
  • 30. Copyright © 2015 M/Gateway Developments Ltd ewd-federator EWD.js Application Server EWD.js VistA EWD.js VistA Site 1 Site 2 EWD.js VistA Site 3 REST Browser WebSockets HTTP Web Services 30Wednesday, 25 March 15
  • 31. Copyright © 2015 M/Gateway Developments Ltd EWD.js Browser Applications • Single Page Applications • Use Web Sockets instead of Ajax / HTTP – Bi-directional persistent connection • Server or browser can send at any time • No more polling – Many studies suggest faster than HTTP • Client-server in a browser • Works with any JavaScript framework 31Wednesday, 25 March 15
  • 32. Copyright © 2015 M/Gateway Developments Ltd All good stuff, but It's the narrow perspective on why EWD.js 32Wednesday, 25 March 15
  • 33. Copyright © 2015 M/Gateway Developments Ltd 33Wednesday, 25 March 15
  • 34. Copyright © 2015 M/Gateway Developments Ltd 34Wednesday, 25 March 15
  • 35. Copyright © 2015 M/Gateway Developments Ltd JavaScript Brendan Eich Netscape 1995 35Wednesday, 25 March 15
  • 36. Copyright © 2015 M/Gateway Developments Ltd JavaScript credibility raised 36Wednesday, 25 March 15
  • 37. Copyright © 2015 M/Gateway Developments Ltd Browsers JavaScript Node.js 37Wednesday, 25 March 15
  • 38. Copyright © 2015 M/Gateway Developments Ltd Browsers JavaScript Node.js There's never been a more exciting time to be in IT And all the big innovations and developments are focused In these 3 areas 38Wednesday, 25 March 15
  • 39. Copyright © 2015 M/Gateway Developments Ltd Node.js: There's a module for everything! Tap into a huge and growing pool of innovations 39Wednesday, 25 March 15
  • 40. Copyright © 2015 M/Gateway Developments Ltd So, browser-based VistA Apps The right way to go? 40Wednesday, 25 March 15
  • 41. Copyright © 2015 M/Gateway Developments Ltd • Myth #1: Browser UIs just aren't good enough for clinical/medical apps • Myth #2: Browsers and web technologies aren't fast enough / too much latency • Myth #3: Browsers and web technologies aren't secure enough 41Wednesday, 25 March 15
  • 42. Copyright © 2015 M/Gateway Developments Ltd •Myth #1: Browser UIs just aren't good enough for clinical/medical apps It seems they're good enough for everyone else There's nothing a browser can't do these days The days of being limited to simple pages were decades ago 42Wednesday, 25 March 15
  • 43. Copyright © 2015 M/Gateway Developments Ltd •Myth #1: Browser UIs just aren't good enough for clinical/medical apps Do you use: • Google Docs • Microsoft Office 365 • Do you bank, shop, watch videos, etc on your browser at home? 43Wednesday, 25 March 15
  • 44. Copyright © 2015 M/Gateway Developments Ltd •Myth #1: Browser UIs just aren't good enough for clinical/medical apps 44Wednesday, 25 March 15
  • 45. Copyright © 2015 M/Gateway Developments Ltd •Myth #1: Browser UIs just aren't good enough for clinical/medical apps • Sophisticated graphics: • 2-d • 3-d eg http://data-arts.appspot.com/globe/ 45Wednesday, 25 March 15
  • 46. Copyright © 2015 M/Gateway Developments Ltd •Myth #1: Browser UIs just aren't good enough for clinical/medical apps http://gradvs1.mgateway.com/main/simon3d.html 46Wednesday, 25 March 15
  • 47. Copyright © 2015 M/Gateway Developments Ltd •Myth #1: Browser UIs just aren't good enough for clinical/medical apps Finally, see the work of Astute Semantics VistA modernisation using EWD.js http://astutesemantics.com/ 47Wednesday, 25 March 15
  • 48. Copyright © 2015 M/Gateway Developments Ltd •Myth #1: Browser UIs just aren't good enough for clinical/medical apps 48Wednesday, 25 March 15
  • 49. Copyright © 2015 M/Gateway Developments Ltd •Myth #2: Browsers and web technologies aren't fast enough / too much latency Are the following hopelessly slow for you? • Amazon • EBay • Google • Do you watch Netflix or YouTube in your browser? 49Wednesday, 25 March 15
  • 50. Copyright © 2015 M/Gateway Developments Ltd •Myth #2: Browsers and web technologies aren't fast enough / too much latency Demonstrations showing federated access to multiple VistA systems using ewd-federator and EWD.js: !Sub-second response Asynchronous pre-emptive data fetching based on usage statistics 50Wednesday, 25 March 15
  • 51. Copyright © 2015 M/Gateway Developments Ltd •Myth #2: Browsers and web technologies aren't fast enough / too much latency 51Wednesday, 25 March 15
  • 52. Copyright © 2015 M/Gateway Developments Ltd •Myth #3: Browsers and web technologies aren't secure enough It seems they're good enough for online banking…. 52Wednesday, 25 March 15
  • 53. Copyright © 2015 M/Gateway Developments Ltd •Myth #3: Browsers and web technologies aren't secure enough 53Wednesday, 25 March 15
  • 54. Copyright © 2015 M/Gateway Developments Ltd So what's the view like from up there? 54Wednesday, 25 March 15
  • 55. Copyright © 2015 M/Gateway Developments Ltd The future is browser-shaped • Web-sockets – Server can send messages to the browser at any time: • Alerts, message of the day – Real-time graphing of clinical results on tablet browser by the bed-side – Real-time bed state display – Cross-browser inter-communication between provider and patient – Legacy green screen terminal in browser • https://robtweed.wordpress.com/2014/03/04/vista-the-hackable-open-source-ehr-hackable-platform/ 55Wednesday, 25 March 15
  • 56. Copyright © 2015 M/Gateway Developments Ltd The future is browser-shaped • WebRTC – Real time communications – Skype-like behaviour in a browser, without plug-ins • Video • Audio • File transfer – Key to browser-based telemedicine 56Wednesday, 25 March 15
  • 57. Copyright © 2015 M/Gateway Developments Ltd Asm.js • Subset of JavaScript that can be compiled and run at near native C++ speed in asm.js-enabled browsers • Emscripten compiler • Being driven by the games industry – Unreal Engine ported to run in browser, without plug- ins – Try this: • http://www.flohofwoe.net/demos/dsomapviewer_asmjs.html 57Wednesday, 25 March 15
  • 58. Copyright © 2015 M/Gateway Developments Ltd Asm.js • Application of gaming thinking to healthcare problems • High performance UIs with extremely rapid user interaction • Gaming is all about high-speed reaction to highly optimised visualisations of large amounts of data – Sound familiar? 58Wednesday, 25 March 15
  • 59. Copyright © 2015 M/Gateway Developments Ltd The future is browser-shaped • ServiceWorkers: – New upcoming feature for the web platform – Designed particularly for offline browser problem – HTML5 AppCache is declarative and has many known limitations – ServiceWorkers: • Allow a script to persistently cache resources • Can handle all resource requests • Even when network unavailable – See: https://github.com/slightlyoff/ServiceWorker/blob/master/ explainer.md 59Wednesday, 25 March 15
  • 60. Copyright © 2015 M/Gateway Developments Ltd The future is browser-shaped Chromecast • $35 Device from Google • Marketed as a video streaming device for your TV • It actually has a lot more potential, particularly in healthcare 60Wednesday, 25 March 15
  • 61. Copyright © 2015 M/Gateway Developments Ltd Chromecast Schematic Chrome Browser Chrome OS HDMIOutput TV Monitor Projector WirelessNetwork Interface 61Wednesday, 25 March 15
  • 62. Copyright © 2015 M/Gateway Developments Ltd The future is browser-shaped Chromecast • Turns an HDMI- interfaced monitor or TV into a sophisticated, controllable display https://robtweed.wordpress.com/2014/04/05/chromecast-understanding-its-potential/ 62Wednesday, 25 March 15
  • 63. Copyright © 2015 M/Gateway Developments Ltd VistA Chromecast Applications Chromecast PC or Mac Chrome Chromecast JavaScript APIs Sender Application WirelessNetwork Chrome HTML Page Chromecast JavaScript APIs EWD.js Application EWD.js Application JavaScript EWD.js / Node.js Server EWD.js JavaScript WebSocket messaging VistA 63Wednesday, 25 March 15
  • 64. Copyright © 2015 M/Gateway Developments Ltd The future is JavaScript-based Costs $80 64Wednesday, 25 March 15
  • 65. Copyright © 2015 M/Gateway Developments Ltd What does it do? Detects hand movements and gestures in 3D area above and around the device 65Wednesday, 25 March 15
  • 66. Copyright © 2015 M/Gateway Developments Ltd How do you use it? • USB Device • Move one or more hands above it • Software can detect: – Palms – Fingers & thumbs • Including joints – Position – Rotation in 3D • Samples at whatever frequency you wish • Sub-millimeter accuracy • Program in JavaScript http://osehra.org/sites/default/files/QuantitativeHandTremorTweed.pdf 66Wednesday, 25 March 15
  • 67. Copyright © 2015 M/Gateway Developments Ltd The future is JavaScript-shaped 67Wednesday, 25 March 15
  • 68. Copyright © 2015 M/Gateway Developments Ltd The future is JavaScript-based Google Authenticator for 2-factor authentication EWD.js provides support "out of the box" More info: http://bit.ly/1ERPXRf Video: http://gradvs1.mgateway.com/main/authenticator.html 68Wednesday, 25 March 15
  • 69. Copyright © 2015 M/Gateway Developments Ltd Consequences for the VA • Applications move to browser using stateless EWD.js architecture • Resource-hungry stateful applications diminish • Resources freed up on VistA servers 69Wednesday, 25 March 15
  • 70. Copyright © 2015 M/Gateway Developments Ltd Consequences for the VA • Convergence of mobile & desktop development: – Responsive design – Build once, run on all platforms – One language skill: JavaScript • All but the most demanding mobile applications can be browser-based • ServiceWorkers seen as solution for offline 70Wednesday, 25 March 15
  • 71. Copyright © 2015 M/Gateway Developments Ltd Consequences for the VA • VistA access moves to browser • Why are PCs needed any more? • Chromebooks would support all applications – Including roll & scroll • Cheap: $200 - 300 • Highly secure • No risk if stolen • No need for such costly and complex security procedures • https://robtweed.wordpress.com/2013/12/19/chromebooks-the-ideal-healthcare-desktop/ 71Wednesday, 25 March 15
  • 72. Copyright © 2015 M/Gateway Developments Ltd Consequences for the VA • ewd-federator: – Code distribution – Software update management – Synchronising configurations – Federated control over user privileges – Centralised performance monitoring / dashboards 72Wednesday, 25 March 15
  • 73. Copyright © 2015 M/Gateway Developments Ltd I could go on…. 73Wednesday, 25 March 15
  • 74. Copyright © 2015 M/Gateway Developments Ltd So imagine if… EWD.js was adopted at the VA.. 74Wednesday, 25 March 15
  • 75. Copyright © 2015 M/Gateway Developments Ltd You really should see the view up here! Client-server browser-based applications able to exploit all the IT industry's major advances Browsers, JavaScript & Node.js: the powerhouses of innovation 75Wednesday, 25 March 15
  • 76. Copyright © 2015 M/Gateway Developments Ltd 76Wednesday, 25 March 15
  • 77. Copyright © 2015 M/Gateway Developments Ltd EWD.js The Future Starts Here Rob Tweed Twitter: @rtweed rob.tweed@gmail.com http://www.mgateway.com 77Wednesday, 25 March 15