Open Source Applications Foundation

[Design] layers

petite_abeille Mon, 21 Oct 2002 19:04:56 +0200


As Shrek famously said:

"Ogres are like onions."
"Layers! Onions have layers. Ogres have layers. Onions have layers. You 
get it? We both have layers. "
-- Shrek
http://us.imdb.com/Title?0126029

Applications are like onions also: they have layers.

The "Block Diagram" under Architecture seems to be very monolithic 
though.

http://osafoundation.org/architecture.htm

My understanding of what layers would mean in this case is the 
following:

- Core engine. Platform agnostic. Headless. Implementing the core 
"business logic" as well as providing the application core services 
(aka protocols like POP/IMAP/LDAP/SOAP/Whatever).

- Default UI. This is what is somehow implied by the block diagram. The 
point of the default UI is to put a face on the application and 
advertise its functionalities in a visible manner. The UI talks to the 
core engine through your favorite type of RPC mechanism. Which of 
course should be open to third party to leverage.

- Native "spokes". Those are OS specific, lightweight, mechanisms to 
integrate the system as closely as possible in the OS. On mac os x, 
this means things like NSService, NSInputManager, contextual menus, 
dock interaction, and so on.

Just a though.

PA.