580 likes | 755 Views
MARVIN 2003 AD. 1999. Planning meeting RCUR/T/D 1998-04. The Times They are A-Changing. Akhnaton, Philip Glass 2:20. Bbox, remote access. Internet. Marvin. Wireless Home network. PTT/ISP. Marvin. Slider. Way to insert a new unit. FireWire connection. Power 110+220.
E N D
MARVIN 2003 AD 1999 Planning meeting RCUR/T/D 1998-04
Akhnaton, Philip Glass 2:20 Bbox, remote access Internet Marvin Wireless Home network PTT/ISP
Marvin Slider Way to insert a new unit FireWire connection Power 110+220 Locking system Internet ADSL 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
ericsson.rcur ericsson.marvin transaction log switching dialog btest services infobase javax mail activation applets servlet web mail com imap ... odi (PSE) objectspace (Voyager) Package Overview
ericsson.rcur ericsson.marvin transaction log switching dialog btest services infobase javax mail activation applets servlet web mail com imap ... odi (PSE) objectspace (Voyager) transaction
transaction • Clean and simple resource handling model • Simplifies exception handling • Consistent with many external systems • However, some problems remain difficult
Convenience replaceable transaction Client code Coordinator current Simple Transaction Manager 1 * Thread Transaction IParticipant 1 * Exclusive Manager 1 0..1 1 * Simple Transaction LogEntry
Transactions explained • A resource gets a chance to reconsider …. Client Coordinator Simple Transaction Manager Simple Transaction Resource 1: IParticipant Resource 2: IParticipant begin() begin() new() ...() join() join() joinTransaction() ...() join() join() joinTransaction() ...() commit() prepare() prepare() commit() commit()
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 ;-)
ericsson.rcur ericsson.marvin transaction log switching dialog btest services infobase javax mail activation applets servlet web mail com imap ... odi (PSE) objectspace (Voyager) infobase
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 • …. Stored Persistently Dispatched to listeners Incoming information
infobase, class overview Identity FileStore PContext OID String StoreEvent IStore IAssociation InfoBase Context Association * 1 StoreListener 1 XDate IFilter * Term Top Object PSE Project Document Person ... Mime IBObject InputStream
infobase, indexing a PContext Example: name=xyz.jar Vector for PContext De-serialize Hashtable for index “name” ... Hashtable for index names a Context <120> Re: About the projector 123 <121> ... xyz.jar 4511 <122> class vcard.vcf 234, 12,3 Association <123> group peter.kriens 234 name=“name” <124> bean Hi! 543 <125> mime anders.danne 120 <126> version Abc.jar 41 xyz.jar <127> from …. ….. ... …. ….. ... id to class email Association related id ….. ... name=“class” name related ….. ... ericsson.marvin.mail.POP3Collector ericsson.marvin.mail.GetMail ericsson.marvin.imap.IMAP
infobase, open points • Listen to filtered events instead of all • Top object • Better memory usage • Performance profiling • Better locking • Robustness improvement
ericsson.rcur ericsson.marvin transaction log switching dialog btest services infobase javax mail activation applets servlet web mail com imap ... odi (PSE) objectspace (Voyager) services
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 Listener 1 * Shell Service Manager 1 Service Entry IService Service * JarHandler` IBClass Loader 1 IResourceAccess * Jar Resource infobase
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
ericsson.rcur ericsson.marvin transaction log switching dialog btest services infobase javax mail activation applets servlet web mail com imap ... odi (PSE) objectspace (Voyager) web
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 Thread Request Service IService HttpServer 1 * Handler` Httpd Reply services infobase
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
ericsson.rcur ericsson.marvin transaction log switching dialog btest services infobase javax mail activation applets servlet web mail com imap ... odi (PSE) objectspace (Voyager) imap interface
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 messages imap Incoming information e.g. mail, schedule Stored Persistently group=inbox web attachments
imap, overview Thread Service IService IMAP 1 * IMAP Session` services javax mail infobase javax activation
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
ericsson.rcur ericsson.marvin transaction log switching dialog btest services infobase javax mail activation applets servlet web mail com imap ... odi (PSE) objectspace (Voyager) mail
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 Thread Service IService GetMail 1 * POP3 Collector` services javax mail infobase javax activation
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
ericsson.rcur ericsson.marvin transaction log switching dialog btest services infobase javax mail activation applets servlet web mail com imap ... odi (PSE) objectspace (Voyager) Other applets
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)
ericsson.rcur ericsson.marvin transaction log switching dialog btest services infobase javax mail activation applets servlet web mail com imap ... odi (PSE) objectspace (Voyager) Used libraries
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 XSRW 1600x1200 120 dpi screen Dockable Camera and microphone SurfBoard Speakers
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 Speaker behind display. Lens for laser projector Camera lens 480x640 full color touch sensitive screen Microphone behind display Battery life 180 hours