Cameron Kiddle, Ph.D.

From the Desktop to the Mobile Cloud:
Extending your Qt Widget Desktop
Application as a Back-end Service
Cameron Kiddle, Ph.D.
Senior Product Manager
Calgary Scientific Inc.
[email protected]
Kevin Ottens, Ph.D.
Software Craftsman
KDAB
[email protected]
Challenge
??
YOU HAVE
• A Qt Widget desktop application with:
• Big or sensitive data
• High performance processing or rendering
• Specific hardware requirements
YOU WANT
• Anytime, anywhere access from
any device
• Real-time interactive performance
• Data security
• Flexible interface
• Collaboration
Common Approaches
Remote Desktop ?
New Application ?
Other?
Remote Desktop / VDI
Develop a new web/mobile application
• Pros: No source code modification, data secure
on server, not limited by client hardware
• Pros: Full flexibility to adapt interface to target
platforms
• Cons: No flexibility to adapt interface to target
platforms
• Cons: Unable to leverage time/money spent
on existing application, client hardware
limitations, data transmission/security issues
An Alternative Approach
Extension as a
Back-end Service
Extend your application as a back-end service
• Pros: Leverage existing code, data secure on server, not
limited by client hardware, flexibility to adapt interface to
target platforms
• Cons: Source code modification / development required
Leverage SDKs to stream select
server side graphics and expose
functionality to customizable
clients on web/mobile devices
PureWeb Architecture
Client
PureWeb Client API
Internet
PureWeb Server
PureWeb Service API
C++
Application
The PureWeb Advantage
Collaboration / Conferencing
Simultaneous interaction
Social
Expands deployment options
Enables Software-as-a-Service
Cloud
Mobile
Big Data
High performance
Process/visualize data where it is
Data stays secure on remote server
Minimize bandwidth/latency
Leverage existing application
Web and mobile enablement
Real-time and interactive
Flexible interface
PureWeb in Use Today
Medical
Data Analytics
Energy
CAD
Big Science
PureWeb Enablement Process
Sample Code for Views
Qt Scribble Service
scribblearea.h
scribblearea.cpp
HTML5/JavaScript Client
ScribbleClient.html
ScribbleClient.js
Sample Code for Application State
Qt Scribble Service
scribblearea.cpp
HTML5/JavaScript Client
ScribbleClient.js
Sample Code for Commands
Qt Scribble Service
scribblearea.cpp
HTML5/JavaScript Client
ScribbleClient.js
PureWeb/Qt Bridge
• An investigation by KDAB to simplify the integration of PureWeb with Qt applications
• To date the following has been considered for the PureWeb/Qt Bridge
• Exposing a QWidget as a PureWeb view
• Exposing QObject methods as PureWeb commands
• Exposing QObject properties as PureWeb application state
• A prototype PureWeb/Qt Bridge has been created
PureWeb/Qt Bridge Prototype
class RenderViewProxy ( const QString &viewname, QWidget *widget )
• creates a proxy to export widget as a PureWeb view
• captures rendering of widget and copies this into the PureWeb imaging pipeline
• sets size of view to client size
• handles mapping of mouse/keyboard input
void ObjectRegistrar::registerObject ( const QString &path, QObject *object )
• object properties become part of PureWeb application state
 object.property_a -> path.property_a
• object slots and invokable methods become PureWeb commands
 object.slot_b -> path.slot_b
Live Coding Example
with PureWeb/Qt Bridge
Questions?
Cameron Kiddle, Ph.D.
Kevin Ottens, Ph.D.
Senior Product Manager
Software Craftsman
Calgary Scientific Inc.
KDAB
[email protected]
[email protected]
Try PureWeb Today!
http://www.calgaryscientific.com/pureweb