Cosmo Architecture
Cosmo is a Java 2 web application executing within a JEE servlet container or application server. All data is stored in a relational database. Cosmo sends notifications of interesting application events via email.
Clients
Cosmo provides sharing and calendaring functionality via WebDAV, CalDAV, and Atom.
Administrative tools access Cosmo via the
CosmoManagementProtocol (CMP), using GET, PUT/POST and DELETE to exchange XML representations of user resources.
Web browsers download Cosmo's JavaScript user interface via standard HTTP. The web UI uses JSON-RPC to call procedures on the server with arguments serialized using the JSON notation.
Database
Cosmo uses JDBC to store its data. It expects the servlet container to provide a JDBC data source as a JNDI resource.
Email
Cosmo sends event notifications to an outgoing email server via SMTP. It expects the servlet container to provide a
JavaMail? session as a JNDI resource.
Object Model
Cosmo's domain object model looks like: