taking the cloud native

24
Taking The Cloud Native @CoreyClarkPhD @GameTheoryLabs

Upload: corey-clark

Post on 10-May-2015

1.627 views

Category:

Technology


2 download

DESCRIPTION

As a Software as a Service (SaaS) development firm, most of work is done in the cloud, but some of our clients want an offline desktop version of their application. While HTML5 has techniques, which allow for offline use (i.e. App Cache and local Storage), these techniques have limitations and don’t always meet the need for a true offline application. This talk will discuss how to take your existing WebApp and build cross platform native desktop applications for Windows, OSX and Linux via node-webkit. We will also dive deep into node-webkit to show you how this is more than just a conversion tool; it expands application possibilities by packaging a live node.js server in every instance. A live step by step conversion of an existing WebApp will be demonstrated, insuring you understand every step needed to convert your own Web App into a native cross platform desktop application. Dr. Corey Clark (@CoreyClarkPhD) is the founder of Game Theory Labs (@GameTheoryLabs), a Software as a Service (SaaS) development and consulting firm, as well as a Professor of Game and Simulation Programming in Dallas. His current work is focused on building high performance Web Apps using HTML5, Gaming, Cluster Computing, Artificial Intelligence Modeling, Learning and Optimization. Previously he was Principal Investigator (PI) on several advanced research projects for various organizations in the DoD ranging from advanced 3D modeling and simulation of nanoscale deposition techniques to System on Chip SWARM based low power reconfigurable self-healing mesh networks. http://www.meetup.com/HTML5-User-Group/events/102310142/

TRANSCRIPT

Page 1: Taking The Cloud Native

Taking The Cloud Native @CoreyClarkPhD

@GameTheoryLabs

Page 2: Taking The Cloud Native

!   Founder of Game Theory Labs

!   Professor of Game and Simulation Programming

! Nanoscale Semiconductor Growth Kinetics

!   Flexible Embedded Electronics for ABL

!   SWARM and C4ISR Embedded Systems

!   Building HTML5 Web Apps Utilizing:

!   Cloud Cluster Computing

!   Game Technology

!   Artificial Intelligence Modeling, Machine Learning and Optimization

What I Do: What I Did:

Page 3: Taking The Cloud Native

Why Native?

Page 4: Taking The Cloud Native

Native Applications Expands Product Line

!   Gives Desktop solution for heavy handed Apps

!   Not locked to cloud

CaPTIVE: Cancer/Pathology Visualization/Characterization Tool

Page 5: Taking The Cloud Native

Offline Capabilities

!   No Need to Support Different Browsers

!   No limit to App Size

!   Quicker Startup

!   40MB App

!   80% speed increase

Omega Resistance: 3D Co-Op Arcade Shooter with Dual Gamepads

Page 6: Taking The Cloud Native

ApplicationCache

Page 7: Taking The Cloud Native

New Product Types

Page 8: Taking The Cloud Native
Page 9: Taking The Cloud Native
Page 10: Taking The Cloud Native

AppJS…

Page 11: Taking The Cloud Native

Node-WebKit

“node-webkit is an app runtime based on Chromium and node.js. You can write native apps in HTML and Javascript with node-webkit. It also lets you call Node.js modules directly from the DOM and enables a new way of writing native applications with all Web technologies. It's created and developed in the Intel Open Source Technology Center.”

Page 12: Taking The Cloud Native
Page 13: Taking The Cloud Native

Node.JS

Page 14: Taking The Cloud Native

Chat Demo

! Node.JS

! WebSocket

!  Native TCP Socket

Page 15: Taking The Cloud Native

Chat: Web Version

Page 16: Taking The Cloud Native

Chat: Lets Go Native!

Page 17: Taking The Cloud Native

Code Samples

! Base App JS File

! Base NodeJS File

! Node-WebKit File

Page 18: Taking The Cloud Native

Conversion Process

!  Build *.nw File ! package.json !  Run In App Folder: zip -r ../${PWD##*/}.nw *

Page 19: Taking The Cloud Native

OSX

!  Copy previous node-webkit.app into folder

!  Open contents

!  Copy *.nw file into: !  Contents->Resources

Page 20: Taking The Cloud Native

Windows

!  Copy *.nw file into folder with nw.exe

!  Run In Cmd !  copy /b nw.exe+app.nw app.exe

!  Zip entire contents

Page 21: Taking The Cloud Native

Enigma Virtual Box

!  Open Enigma Virtual Box

!  Copy contents of node-webkit folder to a %DEFAULT FOLDER%

!  Process

! WinXP Issues with WebGL and Packaged DLLs

Page 22: Taking The Cloud Native

Gotcha!

XHR: Response 0 Not 200

Package DLLs for WebGL

File Size

Page 23: Taking The Cloud Native

Resources

!  Game Theory Labs Blog Post ! http://blog.gametheorylabs.com/2013/06/taking-our-webgl-

html5-app-native.html

!  Node-WebKit Repo ! https://github.com/rogerwang/node-webkit

!  Node-WebKit Wiki ! https://github.com/rogerwang/node-webkit/wiki

Page 24: Taking The Cloud Native

Questions?

Twitter/Facebook: @CoreyClarkPhD @GameTheoryLabs

Blog: blog.gametheorylabs.com Dev Wiki: wiki.gametheorylabs.com Git: git.gametheorylabs.com