EUROPYTHON 2005

> CPSMailAccess, a webmail for CPS3
Tarek Ziadé <tziade@nuxeo.com>

2005/07/27


Abstract


CPSMailAccess goals Architecture Spotlight on features Demo What's next ? Q&A

Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL

2


CPSMailAccess goals


Usable in today's CPS Easily portable to upcoming CPS As easy to use as a rich mail client Deep integration to the portal Reliable for big intranets

Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL

3


CPSMailAccess choices


Usable today and portable:


Five: see Martinj talk Ajax See architecture



Act a bit as a rich mail client




Integration and reliability


Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL

4


Architecture: ZODB Use 1/4


ZODB use


Based on the 80/20 rule


portal_webmail box_tarek box_bob box_bill ...

80%: full Zope side actions


browsing, reading, writing Mail Server calls



20%: synchronizing




portal_webmail


Mailbox collection Shared parameters Easy administration

Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL

5


Architecture: ZODB Use 2/4


ZODB use


Mailbox:


portal_webmail box_tarek INBOX Message 1 Message 2 box_bob box_bill
Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL 6

Folder & Message structure Catalog singleton Contains Ids & Headers Very Light Links to mail server Can cache «visible parts»

CAT



MailMessage object



Architecture: Connectors 3/4


Stateful connection


ConnectionList / Connectionwatcher 2 connectors per user


1 Synchronization connector 1 « UI actions » connector connection
watcher

CPSMailAccess

Connection pool 4s tarek_sync tarek_browse bob_sync

IMAP Server

connection provider

10s 2s

IMAP Server 2
7

idle time
Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL


Architecture: Indexation 4/4


Indexation


One catalog per mailbox Several levels:


Header indexation Header+Body indexation



Indexes all mail relations See Zemantic use spotlight

Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL

8


Spotlight on features 1/6


Zemantic


Semantic catalog based on Rdflib


btrees-based ZODB backend Full text Indexation





CPSMailAccess: use case for Zemantic at Paris Sprint Indexation usage


Searching Threading Virtual folders

Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL

9


Spotlight on features 2/6


Indexing a mail for Searching
Msg 3 <From> tz@nuxeo.com

<Subject>

<To>

sf@nuxeo.com sf@nuxeo.com fg@nuxeo.com

"Look at this"

Subject

Predicate

Object
Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL 10


Spotlight on features 3/6


Indexing a mail for Threading

Msg 3

<In-Reply-To>

Msg 4

<References>

sf@nuxeo.com Msg 1 Msg 4

Subject

Predicate

Object
Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL 11


Spotlight on features 4/6


Indexing a mail for Virtual foldering

Msg 3 <Folder>

Archive Folder 1 INBOX

Subject

Predicate

Object
Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL 12


Spotlight on features 5/6


Reverend (not finished yet)


Light-weight Bayesian classifier Used for spam detection ZODB backend Releasing mail-oriented pre-trained networks

Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL

13


Spotlight on features 6/6


Mail editor


Ajax based (soon based on Azax ? Xforms ?)


Azax project started during EP2005 sprint



Mail filtering Portal Mail-Document cycle
Document creation

Mail
Mail creation

CPS Document

Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL

14


Demo


Synchronizing Filtering Searching Sending mails ...

Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL

15


What's next ?


Scalability


Zasync for background synchronization


Doable with double-connection Big work done on protecting from conflicts Prevents mail sending bottlenecks Indirect Feedback



Z3 System based Maildir for mail sending




Short way to Z3, thanks to Five


The « Z3 style » in already there Minimum refactoring needed Soft migration Desktop link
Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL 16



Extension:



Q&A


Thank you ! Questions Links:


http://cps-project.org/sections/projects/cpsmailaccess



http://z3lab.org tziade@nuxeo.org Mailing lists (see cps-project.org and z3lab.org)

Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL

17


Copyright 2005 Nuxeo SAS ­ Licensed under the GNU FDL

18