Itsme Lezione Usi Lugano

Post on 29-Aug-2014

1.376 views 0 download

Tags:

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 Loregianmarco.loregian@itsme.it

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

Email

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