qtdd14 - qt bridge to pureweb

Post on 02-Jul-2015

138 Views

Category:

Engineering

5 Downloads

Preview:

Click to see full reader

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. cameron.kiddle@calgaryscientific.com

Kevin Ottens Software Craftsman KDAB kevin.ottens@kdab.com

Volker Krause Senior Software Engineer KDAB volker.krause@kdab.com

??

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.

cameron.kiddle@calgaryscientific.com

Kevin Ottens

Software Craftsman

KDAB

kevin.ottens@kdab.com

Try PureWeb Today!

http://www.calgaryscientific.com/pureweb

Volker Krause Senior Software Engineer

KDAB

volker.krause@kdab.com

top related