Palautetta järjestävälle seuralla ... · Google Chrome – not like embedded development...
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/1.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/2.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/4.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/14.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060419/5f166275a76cdc3a132f32e5/html5/thumbnails/20.jpg)
Questions
20
Oliopäivät 2012 / Kari Systä 13.12.2012