ClearFoundation

Web Application Framework

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.

PHP

Perl

Ruby

Others



Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Share Alike 3.0 Unported
Video demonstrations - Copyright © 2010 ClearCenter Corporation