MARVIN 2003 AD MARVIN 2003 AD Planning meeting RCUR/T/D 1998-04.

Post on 27-Mar-2015

217 views 1 download

Tags:

Transcript of MARVIN 2003 AD MARVIN 2003 AD Planning meeting RCUR/T/D 1998-04.

MARVIN2003 ADMARVIN2003 AD

Planning meeting RCUR/T/D 1998-04

The Times They are A-Changing

Bbox, remote access

WirelessHome network

InternetMarvin

PTT/ISP

Akhnaton, Philip Glass2:20

Marvin

Locking system

FireWireconnection

Power110+220

InternetADSL

Slider

Way to insert a newunit

Ideas partly Maarten Legene

Your private information manager• Communication:

– mail– faxes– phone calls

• What to do– calendar– tasks– projects

• Archive– documents (with multiple versions)– history– where you have been, where you served

Your private assistant

• Assist to execute complex tasks– maintain the time on your video recorder– remember to put the garbage out– prioritize and group incoming messages– handle the supplementary services on your mobile

• Act as a representative– answer the phone, forward messages– allow access to certain information (via web, phone,mail)

• Maintain focus (nagging mode)– action points– promises made to other people– goals

Key aspects

• Reliability, Robustness and Availability– backup– good software

• Security– encryption of all information– secure access, e.g. SSL– key management– access by third parties

• Open for third party applets– run inside Marvin for access to events– cooperate with central services

Package Overview

ericsson.rcur ericsson.marvin

infobase

applets

web

imap

mail

...

services

transactionlog

btestdialog

switching

javax

mail

servlet

activation

com

odi(PSE)

objectspace(Voyager)

transaction

ericsson.rcur ericsson.marvin

infobase

applets

web

imap

mail

...

services

transactionlog

btestdialog

switching

javax

mail

servlet

activation

com

odi(PSE)

objectspace(Voyager)

transaction

• Clean and simple resource handling model

• Simplifies exception handling

• Consistent with many external systems

• However, some problems remain difficult

transaction

Transaction

Coordinator

SimpleTransaction

Manager

SimpleTransaction

IParticipant

LogEntry

Thread

Client code

current

1 *

1 *

1 *

1

0..1

replaceable

ExclusiveManager

Convenience

Transactions explained

• A resource gets a chance to reconsider ….

Client CoordinatorSimple

TransactionManager

SimpleTransaction

Resource 1:IParticipant

Resource 2:IParticipant

begin()begin()

new()

...()

join()

commit()prepare()

prepare()

commit()

commit()

...()

join()joinTransaction()

join()

...()

join()joinTransaction()

transaction implementation

• Bracketing of tasks– begin transaction– do something

» failure: rollback EVERYTHING» success: commit EVERYTHING

• Two phase commit model for distributed systems

• Allows multiple implementations– Iparticipant, Transaction, Coordinator

• Logging facilities for undo/redo

• Comes with a “SimpleTransactionManager”

transaction, open points

• Interface to Voyagers transactions

• Implementation of undo/redo logs

• Get the department committed to it ;-)

infobase

ericsson.rcur ericsson.marvin

infobase

applets

web

imap

mail

...

services

transactionlog

btestdialog

switching

javax

mail

servlet

activation

com

odi(PSE)

objectspace(Voyager)

infobase

• A database for associations

• Separate storage for “data” and information about the “data”

• Query language

• Standard base vocabulary for associations

• Associations are (will be) time stamped

• Triggers services on changes

• Intended replacement for file system

InfoBase, communications• All communications pass through the InfoBase

– mail– notifications– phone calls– ….

Incoming informationDispatchedto listeners

StoredPersistently

infobase, class overview

InfoBase Association

Object

String

Context

OIDPContextFileStore

Term

IStore

IFilter

StoreEvent

StoreListener

Top

Document Person

XDate

Project

Identity

...

IAssociation

PSEMime

IBObjectInputStream

*11

*

infobase, indexing

Example: name=xyz.jar

class

group

bean

mime

version

from

to

email

id

name

related

….....

Re: About the projector

xyz.jar

vcard.vcf

peter.kriens

Hi!

anders.danne

Abc.jar….….....

Hashtable for index names

...

Hashtable for index “name”

123

4511

234, 12,3

234

543

120

41….….....

<120>

<121>

<122>

<123>

<124>

<125>

<126>

<127>

id

class

related

….....

...

Vector for PContext

aPContext

a Context

ericsson.marvin.mail.POP3Collector

ericsson.marvin.mail.GetMail

ericsson.marvin.imap.IMAP

Association

name=“class”

De-serialize

Association

name=“name”

xyz.jar

infobase, open points

• Listen to filtered events instead of all

• Top object

• Better memory usage

• Performance profiling

• Better locking

• Robustness improvement

services

ericsson.rcur ericsson.marvin

infobase

applets

web

imap

mail

...

services

transactionlog

btestdialog

switching

javax

mail

servlet

activation

com

odi(PSE)

objectspace(Voyager)

services, features

• Services are beans, stored inside the InfoBase

• Each service runs in its own class loader: allows reload of service

• Automatic recognition of jar files

• Life cycle management: install, initialize, start, stop, shutdown, uninstall.

services, features II

• Marvin naming interface (through System properties)

• Shell interface (through Telnet)– lifecyle– inspection– service properties access (a la Beans)– interface to file system

• Services are automatically started at startup

services, overview

ServiceManager

ServiceEntry

JarHandler`

infobase

IService

IBClassLoader

Listener

Shell

JarResource

IResourceAccess

*1

1

*

1

*

Service

services, open points

• Trader service to find other services (a la Corba)

• GUI for maintaining existing services

• Better JAR file manifest support– package version– beans– dependencies

• Speech interface for IService objects (Speech Agent!)

• Scheduler

• Thread pool

web

ericsson.rcur ericsson.marvin

infobase

applets

web

imap

mail

...

services

transactionlog

btestdialog

switching

javax

mail

servlet

activation

com

odi(PSE)

objectspace(Voyager)

web, features

• Http server on the infobase– access by OID– access by selection

• Acts as proxy– proxy to internet, proxy to proxy

• Runtime Configurable

• Extendable by servlets

• Implements GET, POST and PUT (from make!)

web, overview

HttpdHandler`

infobase

HttpServer

Reply

Thread Request

services

IService

Service

*1

web, open points

• Pluggable Filtering (a la Muffin) of retrieved information

– fill in forms– filter first image– report statistics– remember where you surfed

• Associative access to information in InfoBase

• Http DELETE & INDEX commands

• Secure Socket Layer interface (SSL)

• Standard javax.servlet interface

imap interface

ericsson.rcur ericsson.marvin

infobase

applets

web

imap

mail

...

services

transactionlog

btestdialog

switching

javax

mail

servlet

activation

com

odi(PSE)

objectspace(Voyager)

imap interface features

• Partial implementation of IMAP based on javax.mail

• Supports notifications (unfortunately Netscape seems to be deaf … )

• Supported commands:– noop logout select examine– create list status close– fetch copy uid

• InfoBase & IMAP: a marriage made in Kista– notifications & listeners– mime types– attachments through web interface

imap, handling of attachments

Incoming informatione.g. mail, schedule

StoredPersistently

imap

web

messages

attachments

group=inbox

imap, overview

IMAPSession`

infobase

IMAP

Thread

services

IService

Service

javaxmail

*1

javaxactivation

imap, open points

• Full implementation

• GUI based on javax.mail imap interface to replace Netscape (in open phone???)

• More robust (Netscape seems too easy to confuse)

• Performance, it is slower than standard pop now

mail

ericsson.rcur ericsson.marvin

infobase

applets

web

imap

mail

...

services

transactionlog

btestdialog

switching

javax

mail

servlet

activation

com

odi(PSE)

objectspace(Voyager)

mail, features

• Retrieves mails from POP3 accounts

• Fully configurable

• Unpacks messages and stores the attachments as separate, but linked, Contexts.

• Automatically create Person Contexts of all recipients and senders

• Optionally forwards mail to other account

• It works, I use it daily!

mail, overview

POP3Collector`

infobase

GetMail

services

IService

Service

javaxmail

*1

Thread

javaxactivation

mail, open points

• Robustness, javax.mail has some bugs that are hard to circumvent

• Support for IMAP mail boxes (easy because of javax.mail)

• Better logging (and error reporting)

• Should be based on central scheduler instead of thread based delay

Other applets

ericsson.rcur ericsson.marvin

infobase

applets

web

imap

mail

...

services

transactionlog

btestdialog

switching

javax

mail

servlet

activation

com

odi(PSE)

objectspace(Voyager)

Other applets

• Telephony interface (Voice modem? ISDN? PANG?)

– Answering machine– voice/fax mail

• SMTP interface

• Keyword indexer

• HTML pre-fetcher (learns from your surf habits!)

• DNS proxy with cache

• Synchronizer to other Marvin

• Hans Thorsen’s EEE interface (home appliances)

Other possible applets

• Backup, data compressor/decompressor

• Associator (find associations between context objects)

• Activity manager (reads you mails!)

• Mobile (Open?) phone interface

• vCard sniffer (I do have the parser already)

• Calendar manager (based on vCalendar)

Used libraries

ericsson.rcur ericsson.marvin

infobase

applets

web

imap

mail

...

services

transactionlog

btestdialog

switching

javax

mail

servlet

activation

com

odi(PSE)

objectspace(Voyager)

javax.mail

• Supports MIME messages and an IMAP like folder structure

• Comes with standard interfaces:– to IMAP server– to SMTP server

• Abstract, but very close to IMAP semantics

• Many convenient utilities for handling of MIME

javax.activation

• Standard library to connect MIME typed objects to handlers

• DataSource interface is VERY useful

• Belongs to beans

javax.servlet

• Standard interface for request/reply interactions like HTTP

• Will adapt the web server to use servlets

com.odi (PSE + PSE Pro)

• Free object oriented database

• Reliable and fast

• Smart access algorithm for persistent data

• Single user

• Transactions

• Pro version supports recovery and access tools but costs a couple of hundred dollars

• Same interface as ObjectStore

com.objectspace (Voyager)

• Distributed objects framework

• Makes distributed objects largely transparent

• Considerably simplified from an already simple system

• Version 1 or version 2?

• License issues are unclear?

Surfboard

Speakers

Dockable Cameraand microphone

1600x1200120 dpi screen

XSRW

SurfBoa

rd

Surfboard

• Not much done on Surfboard yet

• Possible solution is to buy a flat screen and connect it over a video link over IR from Sony

• Would require hardware handling

• Who picks it up??

BBox

GSM over CDMA+ XSRW

480x640 full colortouch sensitive screen

Lens for laser projector

Battery life 180 hours

Speaker behind display.

Camera lens

Microphone behind display

Earth to BBox

• We need something a bit more realistic than the BBox

• The SIM application toolkit (GSM 11.11) offers good possibilities on modern mobiles (GSM Phase 2+)

• In contact with Schlumberger and G&D for development support

• Obtaining an authorized card looks not easy

• Seems like the right stuff for our department

SIM application toolkit (GSM 11.11)

MobileMobile SIM cardSIM card

SMS downloadCell Broadcast download

Menu selectionCommand result

Call controlDisplay text

Get keyGet InputPlay tone

Select itemSend SMS

Send Supplementary ServiceSend USSDSetup call

Setup menuProvide local information

SIM application toolkit interface

• Marvin can ask the mobile to:– setup a call from the mobile to a number– forward the phone to another number– add document summaries to the menu– display a message– changes to the phonebook– request input from the user– set any supplementary services

SIM application toolkit interface II

• The mobile must report– Location change (Cell Identification + LAC + NMC)– Cell broadcast info– Selection of a document summary– Incoming numbers + duration (might be hard)– Incoming SMS– Send input– Battery

Other projects

• eBox– Linux based– Many overlapping concepts– Carlstedt, CSLab, Hans Thorsen, Malte Lillestralen– First goal is to use it for metering water, later through ISPs in the

home– Seems very Java oriented– Good spirit, high ambition– Have access to a factory (Linkoping)

• Win 95 home server (made in Karlstad)– WinFax like product– Win 95 does not seem to be right OS to me– Have no update of their status lately

Next phase

• Introducing class for the following concepts:

– Marvin personality– The channels to the end user and their capabilities– Task management

• Easy Speech support for the services (Speech agent)

• Mobile interface

• Cooperation with others

• Robustness, Reliability

Next next phase

• Connections in the house

• Switching of video

• Security

• Surfboard

• ???

Software

MARVIN™

?MARVIN™

?