Overview
The web application framework is used to develop new features/modules for ClearOS. The framework used in the 5.x release was designed in 2004. That's about 100 years ago in computer years! The time has come to re-engineer a solution that is more robust, easier to use, and flexible.
Purpose
ClearFoundation is focused on building a strong, secure and stable ClearOS core. Though we could go on adding more and more features, we realize that the best plan of action is to open up ClearOS to developers. That's why everything in the core ClearOS is open source. That's why a not-for-profit organization now takes care of the source code. That's why we are taking the time and resources to re-engineer the web framework.
Of course, there are other reasons too:
- Rapid development
- Extensibility
- Improved web application security
- Path to create better usability
History
Step back in time to 2006. Ajax and Web 2.0 (sorry) were quickly gaining traction. A new kid on the block called Ruby on Rails was getting off the ground. We knew even back in 2006 that the web application framework in ClearOS (ClarkConnect) was getting long in the tooth, so a plan was put in place to modernize in two steps:
- Refactoring the Software API for 4.0
- Implementing a new web application framework for 5.0
The software API changes were complete and have since matured. However, the web application framework changes slated for 5.0 were pushed back. The pesky Samba/LDAP integration consumed quite a bit of development resources in 5.0 and there was not enough time to re-engineer the framework.
Status
Right now, we are in the discovery phase. Discussions on requirements, features, languages, security policies and all things “framework” are just starting (January 2010).
Requirements
Required
- Good translation support
- Good performance
- Good documentation
- Ajax integration
- Extensible
Nice to Have
- Plays well with IDEs (e.g. Eclipse, Zend)
Common
The following are common requirements that are universal across all frameworks. They are listed here for completeness:
- Rapid development cycle
- MVC framework
- Basic security features (XSS, forms)
- Themeable
The Contenders
The underlying API was written in PHP but it was designed to be RPC (remote procedure call) friendly. You won't see pass-by-reference in too many places and almost all methods are stateless. In other words, it is straightforward to add a REST or SOAP layer over the API. In fact, both technologies have already been implemented in parts of ClearOS! That's how the adjacent screenshot of a real-time ClearOS monitoring on Google Android mobile phone was implemented.
Please be open to the possibilities! Though it is a very large undertaking to change the underlying language from PHP to Ruby or Perl, discussing the merits is important.


