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