r6 - 27 Mar 2007 - 14:30:18 - PhilippeBossutYou are here: OSAF >  Projects Web  >  DevelopmentHome > EngineeringIssues > ZeroPointFourArchitectureDiagram

0.4 Architecture Diagram

Python

Although it is not in the diagram, Python is a key piece of Chandler's technology stack. Chandler is distributed with a full Python installation; more for user convenience than because we've substantially altered Python. We're currently having a spirited debate about whether or not including Python in the distribution this way makes sense on all platforms; we're exploring various alternatives.

As of the 0.4 release, we're using Python 2.3.2; generally you should be able to rely on standard Python 2.3 documentation.

wxWidgets

Creating a first class application on Macintosh, Linux, and Windows is one of OSAF's top priorities. We're using wxWidgets (with the wxPython bindings) as our cross platform GUI framework. We chose wxWidgets because we wanted a native experience on each platform under one abstraction, with the option of writing platform specific code when necessary.

That said, the OS X port is new and still needs a lot of work. As we are actively working with the wxWidgets and wxPython team on improving wxWidgets on all three platforms, we tend to upgrade to new versions of wxWidgets frequently.

As of the 0.4 release, we are using wxWidgets version 2.5.2.

Repository

Chandler's repository and its relationship to data will be one of its most distinctive and compelling features. Inspired by RDF and associative databases, we put a lot of thought into using a flexible data model (and a lot of work into an implementation of that data model). Chandler's repository stores and retrieves persistent objects called Items. One of the interesting features of the data model is that schema information is stored similarly to all other data; Kinds and Attributes are types of Items. For a glimpse at the data model and the repository in more detail, check out the Repository Busy Developers Guide. The repository itself is implemented on top of Sleepycat's dbxml and Berkeley DB. We've also integrated Lucene, to use as a full text search engine. More information on the repository project can be found at Repository Framework.

Parcels

Parcels are Chandler's units of modularity and extensibility. Outside of the core subsystems, most of Chandler is written in parcels. Third parties will be able to extend Chandler by writing their own parcels. The foundation of our data driven application, parcels contain a set of Items that get loaded into the repository. A parcel is not a place that the user visits in the UI, although the parcel might define Items that are used to construct the UI (Blocks, Views). A parcel might include Kinds and Attributes that define a schema, UI elements, and/or user data items. A parcel might also include python code, images, and other resources, referred to by the Items in the parcel. More information about parcels can be found at Parcel Framework.

Services

The services layer encapsulates several services used by the Chandler application and available to 3rd party parcels.

Content Model

The Content Model is Chandler's domain model, the model for the user's content in Chandler: Email Messages, Calendar Events, Notes, Tasks, Contacts, etc. The content model also contains a notion of an Item Collection, a user's collection of items. Item Collections are new in 0.4. Most of the content model is PIM related, but one could imagine that third parties might define new types of Items: RSS items, MP3s, documents, etc. We auto generate documentation for schema items from all parcels -- a good way to explore the current state of the content model.

Application

3rd Party Parcels

See DevelopmentHome for links to Chandler's subprojects.

-- KatieCappsParlante - 20 Jul 2004

toggleopenShow attachmentstogglecloseHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
pngpng architecture20040726.png manage 94.6 K 31 Mar 2006 - 00:58 KatieCappsParlante  
pngpng archdiagram.png manage 44.2 K 31 Mar 2006 - 00:58 KatieCappsParlante  
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r6 < r5 < r4 < r3 < r2 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.