Structural system breakdown
Based on the goals described in the Kauri Vision
we have some upfront feeling (or call it a top level architectural view if you
prefer) of what the kauri system will be composed of:
- Modular Runtime Resource Service System
Basically a Java Main app that will run both at deployment and at
development time, the foundational server side running thing.
- Component/WebModules Framework
A system to declare modules, their delivered 'services' and their
interdependency. Catering for intermodule calls and some classloading-shielding.
For inspiration we start off here with some Daisy Runtime on steroids.
- Sitemap and Routing
A clever system to manage the request-uri to actual controller mapping.
Allowing for flat filesystem structures as well as
- Authentication/Authorization
From basic auth to wild thinking about open-id and oauth kinda stuff,
together with a access control declaration mechanism (you remember htaccess,
don't you?)
- Tools
At development time the runtime should provide supportive introspection and
management interfaces to assist in debugging, tracing, profiling and
yadayada
- Localization and Internationalization
l10n and i18n is an obvioous requirement for us. Porbably this aspect is
going to crosscut all other blocks of the system. On the level of the runtime
however there should be a clear and central mechanism to decide on locale, and
then a clear way to make that available to the different components.
- Caching and Proxying
- Link Construction (and Rewriting)
- Browser Based User Interaction System
In these AJAX times, and in view of the ROA approach to devide application
form resource state there should be a strategy to use the browser as a RIA
base.
- Resource Formatting Rendition & Aggregation
If you like this is the aggregating and end-user delivery side of the
modules hosted in the RT system
- Look and Feel Approach
Basically a strategy for decent css layering.
- Template Language
Didn't think we could do without :-)
- Pipelines
XML processing & various format production.
- Cross Application Styling, Menu and Search Aggregation
Where the application to modules split has to converge again.
- Application Logic Support
- DataBases
- Controllers and Business Logic Integration
- Session and State Management
Endorsed 3rd party Projects
As we go along in the development and assembly of the Kauri System we are
likely to grow a list of 3rd party open source projects we endorse and build
upon (rather then do everything from scratch)
For various reasons and functionality we explicitely want to mention these: