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...
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