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

Post on 30-Jun-2020

0 views 0 download

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

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

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

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

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

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

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

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

Screenshots

8

Oliopäivät 2012 / Kari Systä 13.12.2012

Another

9

Oliopäivät 2012 / Kari Systä 13.12.2012

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

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

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

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

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

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

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

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

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

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

Questions

20

Oliopäivät 2012 / Kari Systä 13.12.2012