qtdd14 - qt bridge to pureweb
TRANSCRIPT
From the Desktop to the Mobile Cloud: Extending your
Qt Widget Desktop Application as a Back-end Service
Cameron Kiddle Senior Product Manager Calgary Scientific Inc. [email protected]
Kevin Ottens Software Craftsman KDAB [email protected]
Volker Krause Senior Software Engineer KDAB [email protected]
??
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
Challenge
Remote Desktop ?
New Application ?
Other?
Develop a new web/mobile application
• Pros: Full flexibility to adapt interface to target
platforms
• Cons: Unable to leverage time/money spent on
existing application, client hardware limitations,
data transmission/security issues
Common Approaches
Remote Desktop / VDI
• Pros: No source code modification, data secure
on server, not limited by client hardware
• Cons: No flexibility to adapt interface to target
platforms
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
Extension as a
Back-end Service
Leverage SDKs to stream select
server side graphics and expose
functionality to customizable clients
on web/mobile devices
An Alternative Approach
Client
PureWeb Client API
PureWeb Server
Application
PureWeb Service API
Internet
PureWeb Architecture
C++
The PureWeb Advantage
High performance
Process/visualize data where it is
Data stays secure on remote server
Minimize bandwidth/latency
Expands deployment options
Enables Software-as-a-Service
Leverage existing application
Web and mobile enablement
Real-time and interactive
Flexible interface
Collaboration / Conferencing
Simultaneous interaction
Mobile Cloud
Social
Big Data
PureWeb in Use Today
Medical
Big Science
Energy
Data Analytics
CAD
PureWeb Enablement Process
Sample Code for Views
Qt Scribble Service
HTML5/JavaScript Client ScribbleClient.html
ScribbleClient.js
scribblearea.cpp
scribblearea.h
Sample Code for Application State Qt Scribble Service
HTML5/JavaScript Client ScribbleClient.js
scribblearea.cpp
Sample Code for Commands Qt Scribble Service
HTML5/JavaScript Client ScribbleClient.js
scribblearea.cpp
PureWeb/Qt Bridge
• An investigation by KDAB to simplify the integration of PureWeb with Qt applications
• 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
Senior Product Manager
Calgary Scientific Inc.
Kevin Ottens
Software Craftsman
KDAB
Try PureWeb Today!
http://www.calgaryscientific.com/pureweb
Volker Krause Senior Software Engineer
KDAB