Itsme Lezione Usi Lugano
-
Upload
itsmesrl -
Category
Technology
-
view
1.376 -
download
0
description
Transcript of Itsme Lezione Usi Lugano
© 2008 by Itsme S.r.l.All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without prior written permission of Itsme S.r.l.
itsme: a technical overview
Marco [email protected]
Lugano, October 8, 2009
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
About me
Computer Science PhD- can be translated to “somehow
evoluted geek”
Aware of itsme from the beginning
Now cross-working different teams and tasks- itsme OS software architecture- itsme emulator- website mastering- itsme evangelism
Linux
Sabayon
Linux
Customizatio
n
Window
Managment
OLPC
eldy
KDE
Gnome
Guglielmo
Semantic
Web
Semantic
Desktop
Concept
Interoperabili
ty
Ontologies
RDF
NepomukTracker
Virtual File
System
Distributed
resources
Naming
Front-end
Back-end
Emulat
or
itsme
archite
cture
itsme
Architecture
Metadata Managem
ent
Metadata extraction
Open Source
LicensesConceptSocial
Computing
WebsiteArchitectureWordpress
Ajax
GWT
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Very large background
A lot of topics
A lot of (open) issues
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
The real aim of this lesson is to
discuss our open issues
with youNo participation = extremely boring lesson :-(
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Outline
After introduction, 3 main topics:- itsme emulator- itsme front-end- itsme back-end
for each of them- background research overview- itsme approach- open discussion
[break]
Roughly one hour
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Before starting, a quick recap
itsme: system embodying a new metaphor, ‘stories and venues’
Motivation: information overload, control over data
Target: people creating value with a PC
New system = new possible ways to do things with a PC
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Main elements to describe the system
Venues
Channels
Resources
Limbo
Transit
...these concepts must be implement after a definition given by design
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
How to proceed?
Concept demonstrators - Scenarios- Emulator- (available at itsme.it)
Technical demonstrators- Prototypes: UI + meta/data management
The itsme emulator
Software providing the functions of a system using a different system
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
What is an emulator?
Do you know any other?
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Speaking of words...
A simulator is something that lets you experience something as faithfully as possible- e.g., flight simulators re-create piloting a plane
Virtual machines provide a system platform to run software on them - an OS or just applications, like the Java VM
These are not our case
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Emulator aims
Announced early
Aim: present itsme concept in advance to a wide audience- No downloads- No technical restrictions
Starting from a limited set of features- Only (at least) two venues- No Limbo / Transit- No ‘full’ applications
But what contents?
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Idea
Present well-known things according to the new metaphor (stories and venues)
We added social computingfeatures to our website…- personal profiles- fanship- private messaging- open publishing- social bookmarking
...and then re-presented them- after some months to establish a community
itsme.it
Quick demo of the website
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Website technology
Open source Content Management System
Easy to use and maintain
Large community supporting the development, and fixing bugs quickly
Many plugins to extend functionalities (easy to write)
Easily to implement, customizable themes
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Website customization
A specific information architecture (categories and tags)
A set of plugins for the various social computing features- some of them were not available when we started,
we had to code them
A tailored theme
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Buddypress
...now you could use something like this, and minimize the effort we underwent
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
What we got from the website?
In the end, everything relies on a single MySQL database- posts, users, metadata, messages, …
Those data can be showed in a completely different way, by a different software- potentially running anywhere
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
emulator.itsme.it
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Let’s see a demo!
Videos and tutorial available at http://itsme.it/emulator
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Technology behind the emulator
We considered popular options like Adobe Flash and Microsoft Silverlight, but discarded them: guess why…
...and what do you think we used instead?
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
AJAX in a nutshell
Until some time ago Web pages needed to be reloaded to see any update
AJAX technology allows dynamic, asynchronous updates- e.g., facebook notifications and “show new posts”
Data can flow back and forth between client and server
The key elements are Javascript and XML
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
GWT
Google released a Web Toolkit that allows to develop user interfaces in Java and then compile them to optimized JavaScript- Allows for better reuse and debug of code
Connection is made to a Web Server through simple RPC
Quick demo:
http://www.gwt-ext.com/demo/
http://www.extjs.com/deploy/dev/
examples/desktop/desktop.html
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Emulator and Website architecture
Apache Web Server Apache Tomcat
Wordpress
Custom Wordpress
Plugins
Wordpress Plugins
MySql database
itsme emulator
itsme website theme
GWT
Spring
JDBC driver
Web browser
Javascript/HTML
http
://em
ula
tor.its
me.it
http
://ww
w.its
me.it
Platfo
rmData
Product
Client
GXT
JPA javamail QuartzRSS
spider
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Emulator open issues
Envisioning relations
Incremental setup to - involve user from minute 1- explain features directly
what to ask in a dialogue?
Other possible fields or ways of application?- Let’s make a “translation” exercise: how would you
frame Facebook in the emulator concept?
The itsme OS
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
What’s an OS?
“An Operating System (OS) is an interface between hardware and user which is responsible for the management and coordination of activities and the sharing of the resources of the computer that acts as a host for computing applications run on the machine.” - (source: http://en.wikipedia.org/wiki/Operating_system)
You might be familiar with the so-called “onion skin”- We’re not redoing everything again!
User
Applications
User Interface
File SystemMemory
Processes
HWLugano, 10/08/09 Marco Loregian: itsme from a technical perspective
What’s inside an OS?
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Sabayon Linux
Italian distribution (we hired its creators)
Community driven
Style-oriented
Excellent rating
Forst to add cool features such as 3D effects (Compiz)
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Presentation
Front-end Logic and Control
Proxy
Data Access
Back-end Logic
Data Storage and Persistence
Auth
enti
cati
on a
nd S
ecu
rity
Sys
tem
and N
etw
ork
ing
Fro
nt
En
dB
ack
En
dLin
ux O
SSabayon
Linux
QT graphical toolkit
Custom metadata
Heterogeneous sources
New metaphor
Ubiquitous access
Mig
rati
on S
upport
Applications , settings, data
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
The itsme architecture
As in Jan. ’09: some things have changed...
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Open issues
System modularity, ubiquitous computing, cloud computing
Licenses, open source
Front-end: itsme
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
What’s a front-end?
Basically, the user interface to the parts of the system responsible for “hot” computation
Internally, we speak of the itsme front-end as the frame for the new metaphor, proving support to interaction (operations) and access to applications
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Front-ends
There exist many different metaphor adopted by graphical (visual) front-ends- Yep, there are also non-visual: e.g., audio with
speech or gesture recognition, tactile interfaces (Braille)
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
What does it take?
We considered and started from ‘desktop’ user interfaces, due to basic similarities
Same elements used in a different way- Still within the WIMP paradigm (“window, icon,
menu, pointing device”), at the moment
...so we can reuse existing stuff!- Window management (well, almost)- Basic system configuration tools- ...
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Development
We have to redraw what’s on screen
- e.g., (file management) windows → venues, new panels and widgets
and link elements according to different policies- e.g., drag and drop, elements behaviors (on click, ...)
Current prototype developed using:- Sabayon Linux (4.*, now 5.*)- Python- QT
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
QT
Cross-platform toolkit to develop GUIs
Used by KDE, Google Earth, Skype
Owned by Nokia and distributed according to LGPL
Uses C++ (but language bindings available)
Alternatives we considered?
GTK+, and others
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
KDE http://www.kde.org/
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
GNOME http://www.gnome.org/
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Enlightenment
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
But actually they are all the same old desktop…
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
OLPC
One Laptop Per Child: cheap, low consumption computers for education
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
OLPC → Sugar
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Eldy
Linux distribution for elderly, but also for people looking for a very simple user interface
Italian initiative
Free
Supported by volunteers
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Eldy
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
...and now let’s talk about itsme :-)
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
itsme: prototype v. 0.3
Let’s see a demo!
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Video of a previous version
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Front-end architecture
The front-end follows a model/view/state architecture - The model classes store the data for the other
classes - The view classes provide UI and most of the logic
(since they have to show the data and also manage user interaction)
- The state classes implement a state machine controlling the behavior of UI elements
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
The main distinction inside the FE is between extensions and extendables. The extendables package contains all the classes which can be inherited to create specific classes. The extensions package contains all the specific subclasses.
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Open issues
Accessibility- Do you see any possible problem?
What to make a default, what cusomizable, what …?- Can you find examples?
Safety/security with respect to applications
Blend with the Web
Back-end: Guglielmo
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Why a back-end?
We need to store and manipulate metadata for the things we see and work with in the UI
Also data need to be stored and accessed in a different way
...this problem is well known
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Semantic Web
Huge amount of information on the Web
HTML: syntax to describe structure
Meaning is not expressed
Computers can’t help users finding and organizing stuff they don’t “understand”
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Example
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
The Web is made of documents...
apart from file extensions, they are all the same and links have no meaning
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
...but we talk about different things
things are related one to another: how can computers be aware of it?
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Top-down solutions
Information analysis, web scraping, natural language processing…
...unfeasible: human intervention, hard to maintain, legal issues
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Bottom-up solution
Embed semantical annotations into the data
Beside describing the generical structure of a document (HTML), add some metadata describing what each part of the structure is about
Example: not just links,
but links with a label
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Let’s generalize
HTML “has evolved” to XML
Instead of only expressing hypertexts, XML can be used to encode any form of structured data
XML can be used to define more specific languages (grammars, e.g., with DTDs)
XML can be used to define a way to describe what is on the Web
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
RDF
Resource Description Framework
W3C standard for describing resources in the Web
RDF identifies things using URIs(Uniform Resource Identifiers)
RDF uses simple statements (Triples) to describe things:- Thing-Property-Value- Subject-Predicate-Object
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
What’s RDF like?
OK… but what does it mean?
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
RDF = graphs
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
RDF = graphs
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
RDF = graphs
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Ontologies
How can computers know what labels represent?
Interoperability is reached when different parts share definitions (vocabularies)- syntactic vs semantic interoperability
If definitions are structured, and relations are well defined as properties, also further inference is possible
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Let’s make an example
Alice is a blogger who publishes articles at http://example.com/alice
She wants to declare the license of her work
The rel attribute specifies the relationship between the current document and the linked document.
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
She wants to specify title and creator of an article
But there are no such attributes in XHTML
She can use Dublin Core vocabulary
Namespace → interoperability
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
She wants to give Bob proper credit when she posts his photos
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
She wants to display her name, email and phone
She can use Friend-of-a-Friend vocabulary
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
She wants to list her friends
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Then what?
This was an example showing how to express some metadata about what’s been published
How can information be retrieved in a smart way then?
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
SQL
Structured Query Language
Standard way to interact with databases
E.g., SELECT * FROM ‘table’ WHERE ‘name’ LIKE ‘Marco’;
...but we have no tables, only graphs, so this does not suit
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
SPARQL
SPARQL Protocol And RDF Query Language
Used to manipulate RDF data
E.g., can be used to search for “friends of Alice who created items whose title contains ‘Bob’”
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Semantic desktop
The Semantic Web vision can be applied also to personal computing
Approach to deal with the contents of documents – exploiting metadata semantics
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
EU project for a Social Semantic Desktop
Exploit files metadata for a different interaction with things
Remind for later: The NEPOMUK/OSCAF standards are taken up by these projects and Nokia's Maemo Platform
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
KDE/Nepomuk architecture
Inte
rface
Logic
Process specific file
types
File System
Manager
Read/Write on
Distributed File
System
Event
Notifier
Log operations on
items
Refine Metadata
Index/Search
RDF Metadata
Item Manager
Time
Manager
Metadata Manager
Direct
Access
Manager
Soprano
Virtuoso
Inference
Get (serialized)
items and search
metadata
Metadata
Extractor
JStreams
Local / Network / DBus
Search
Engine
Aggregate metadata in
complete items
Generate notifications
for the front-end
Application
Storage
Search (to get) lists of
items
Application
Virtual FS
Plugin Engine
plugin
...
plugin
Communication proxy
and File System
access for plugins
File System
Abstraction
Metadata access,
extraction, storage
Extract Metadata from
files
Send/receive email
Update
monitorDispatch updated items
to plugin engine and
event notifier
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
itsme back-end architecture
As in April 30th, now a little different...
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Meta Tracker
RDF central storage for data and metadata- shared between applications
Miners to search and insert meta/data- also on the Web
Extractors working with any type of file
Nepomuk/KDE ontologies
SPARQL
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Maemo
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
More on Nokia N900 (with Maemo)
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Virtual file system
Keep data and metadata aligned
Implement access to apps not tightly integrated with the front-end
Manage distributed repositories- removable drives- remote drives- Web services (e.g., Google docs)
Lugano, 10/08/09 Marco Loregian: itsme from a technical perspective
Open issues
Metadata: itsme ontology
Time management
AVFS: File names, paths, visibility…
88