Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development...

20
Pari linkkiä Palautetta järjestävälle seuralla http://www.tut.fi/fi/ajankohtaista/ tapahtumakalenteri/oliopaiva-p034434- alareunasta ”palaute” Seminaarin materiaali tulee nettiin http://www.cs.tut.fi/tapahtumat/olio2012/ 1 Oliopäivät 2012 / Kari Systä 13.12.2012

Transcript of Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development...

Page 1: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Pari linkkiä

Palautetta järjestävälle seuralla

http://www.tut.fi/fi/ajankohtaista/

tapahtumakalenteri/oliopaiva-p034434”

- alareunasta ”palaute”

Seminaarin materiaali tulee nettiin

• http://www.cs.tut.fi/tapahtumat/olio2012/

1

Oliopäivät 2012 / Kari Systä 13.12.2012

Page 2: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Project Cloudberry

An HTML5 Cloud Phone

Kari Systä

Based on

Antero Taivalsaari, Kari Systä, Cloudberry: HTML5 Cloud Phone Platform

for Mobile Devices. IEEE Software, July/August 2012, pp.30-35.

13.12.2012 Oliopäivät 2012 / Kari Systä

2

Page 3: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Notes

• Cloudberry was a research project run in

2009-2010 in Nokia Research Center.

• I do not know, so I cannot comment, if any of

these ideas have an impact on future Nokia

products.

3

Oliopäivät 2012 / Kari Systä 13.12.2012

Page 4: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Content

Background

• Why

• Starting points

Core technical elements of Cloudberry

Some learnings

Some related work

A few notes about HTML5

4

Oliopäivät 2012 / Kari Systä 13.12.2012

Page 5: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Background

• In our previous projects we had serious problems due

to static and compiled C++ code.

• We had followed the Lively project in Sun and TUT

• Interest in using Web-technologies had raised in Nokia

• ”W3C widgets”

• Antero Taivalsaari

joined our team

5

Oliopäivät 2012 / Kari Systä 13.12.2012

Page 6: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Our Goals

• No application installation, applications.

Applications are deployed and consumed like any

other content in the Web

• Applications must work in off-line, too.

• Use HTML5 as much as possible

• But we also wondered about the role of Qt QML

(QtQuick technology)

• No native code needed in applications

6

Oliopäivät 2012 / Kari Systä 13.12.2012

Page 7: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Two versions

2009

• Emulated N900 UI

and apps as well as

possible

• Proof of core

technical ideas.

2010

• New innovative UI

• Application FW

• More ”cloud” nature

7

Oliopäivät 2012 / Kari Systä 13.12.2012

Page 8: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Screenshots

8

Oliopäivät 2012 / Kari Systä 13.12.2012

Page 9: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Another

9

Oliopäivät 2012 / Kari Systä 13.12.2012

Page 10: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Top-level architecture

10

Oliopäivät 2012 / Kari Systä 13.12.2012

Host OS (Maemo, MeegGo)

Qt Webkit

Process model

Security framework

Data API Cache

Engine, top-level UI loader

Page 11: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Qt Webkit

• Almost standard browser

• More APIs to phone resources (e.g. for

making the phone call )

• Hide URL bar

• Process model

11

Oliopäivät 2012 / Kari Systä 13.12.2012

Host OS (Maemo, MeegGo)

Qt Webkit

Process model

Security framework

Data API Cache

Engine, top-level UI loader

Page 12: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Process model

• Like in any operating

system, applications

should be isolated

from each other.

• Not common in

browsers, yet

• We added process support to Qt Webkit (similar support is now in mainstream Qt Webkit)

• Different uses possible:

• All applications in separate process

• Applications from same origin in same process

• ….

12

Oliopäivät 2012 / Kari Systä 13.12.2012

Host OS (Maemo, MeegGo)

Qt Webkit

Process model

Security framework

Data API Cache

Engine, top-level UI loader

Page 13: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Security framework

• Access to resources of the

device was needed

• Device applications should

work and look like native

applications.

=> separation between trusted and non-trusted apps

• Our framework was based on origin:

rights depended on the origin of the application

• Permissions and security policies

13

Oliopäivät 2012 / Kari Systä 13.12.2012

Host OS (Maemo, MeegGo)

Qt Webkit

Process model

Security framework

Data API Cache

Engine, top-level UI loader

Page 14: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Data API

• Traditionally applications

deal with local and server

data separately.

• We selected a Cloud

approach: application have

a single persistent storage

• When application writes data it eventually goes both

to server and local storage.

• In off-line mode updates wait until re-connected

• Updates in server are propagated to device

• Latest update wins, beyond that resolution is

responsibility of applications.

14

Oliopäivät 2012 / Kari Systä 13.12.2012

Host OS (Maemo, MeegGo)

Qt Webkit

Process model

Security framework

Data API Cache

Engine, top-level UI loader

Page 15: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Cache

• Off-line operation was a

core requirement

• All files belonging the

application are included in

HTML5 Cache Manifest

If application was in the cache

• The current version is still started

• A check for updates was initiated

• If update was available,

- it was downloaded for the next time

- a small indicator was shown to the user

15

Oliopäivät 2012 / Kari Systä 13.12.2012

Host OS (Maemo, MeegGo)

Qt Webkit

Process model

Security framework

Data API Cache

Engine, top-level UI loader

Page 16: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Top-level UI

• Instead of browser chrome

we had a top-level UI that

corresponds to phone UI

• The top-level UI was

dynamically downloadable.

We used Qt QML (+ javascript) because

• It had fancier visual effects

• It could run HTML5 browser as a UI component

• We wanted to keep Qt/QML in the picture

Hopefully HTML5 will have required capabilities soon.

16

Oliopäivät 2012 / Kari Systä 13.12.2012

Host OS (Maemo, MeegGo)

Qt Webkit

Process model

Security framework

Data API Cache

Engine, top-level UI loader

Page 17: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Some learnings

HTML5 is a very powerful application platform, but

• Programming is sometimes very difficult

• Effort estimation of new features was very difficult

• Standardization lacks behind

• On the other hand; we did most of our testing on PC with

Google Chrome – not like embedded development typically

Old thinking of thin and thick clients is not valid anymore

Possible performance problems come from

• Overall architecture

• Varying responsiveness of mobile networks

JavaScript is fast enough

17

Oliopäivät 2012 / Kari Systä 13.12.2012

Page 18: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Main takeaways

The dynamic and seamless downloading is very valuable

• The UI team joined us partly because for the first time fast

prototyping of new ideas on device was possible.

”Cloud” in cloud phone means

• User is not tied to a specific device; just log in to your device

and start using with any device

• All data is automatically

- back-up

- available to any client

Demo or die ; research is marketing

18

Oliopäivät 2012 / Kari Systä 13.12.2012

Page 19: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Related work

ChromeOS by Google

• Not for phones

• Data and apps not as ”cloudified”

Boot-to-Gecko by Mozilla

• Data and apps not as ”cloudified”

19

Oliopäivät 2012 / Kari Systä 13.12.2012

Page 20: Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development typically Old thinking of thin and thick clients is not valid anymore Possible performance

Questions

20

Oliopäivät 2012 / Kari Systä 13.12.2012