Hi,
I'm writing this post because we (]po[) are at the point of adopting a completely new architecture for ]project-open[. It would be great to hear your opinion about that.
The following post already summarizes a lot of this thinking:
https://sourceforge.net/projects/project-open/forums/forum/295937/topic/4529158
The "happy new future world" would basically look like this:
- Apache + PHP
- PostgreSQL and the OpenACS data model
- A relatively small layer of REST data sources
- Loads of easily modifiable Sencha AJAX packages
- Easily installable on all important OSs
- All of this compatible with HTML 5 and mobile devices (Sencha Touch).
- Millions of developers familiar with the architecture
Sencha:
Thanks to Malte for proposing Sencha as a possible AJAX GUI for ]po[.
Basically:
- The Sencha libraries are "similar in spririt" to FormBuilder and ListBuilder. You specify the fields you want to show and a "data source". It's a declarative approach similar to the one taken in OpenACS. But a lot easier to learn...
- Sencha GUI development speed seems to be faster then FormBuilder and ListBuilder, at least after the learning time.
- JavaScript/Sencha development skills are a lot more common then TCL development skills. I believe that a lot more people (]po[ partners and customers...) will start modifying and adding code then before.
- Getting data out of OpenACS/]po[ is easy. We are using our generic ]po[ REST interface (intranet-rest) as a back-end. intranet-rest produces JSON data in a format directly compatible with default Sencha "store" models. Custom data sources can be implemented either via a piece of TCL, or using a custom "report" (=SQL query) that returns data in JSON format.
- There is a smooth migration path with little overhead: We start with rewriting the most important pages in Sencha while maintaining the HTML GUI for the more complex cases. Later we could get rid of the HTML GUI completely.
The implications of the new architecture could be huge:
- Reduce the developer bottleneck of OpenACS.
- Get rid of AOLserver. We would have to rewrite only the relatively small REST interface in PHP or whatever language.
Roadmap:
- We are currently working on a customer project using Sencha + intranet-rest in order to develop a user-friendly ticket tracker. In this project we are extending the generic REST etc.
- We've got a second project in the pipeline to develop an AJAX GUI for the generic ]po[ project management functionality.
- At some moment (no timeframe yet) we'll develop a PHP implementation of intranet-rest, so that the Sencha GUI will be able to work against Apache.
Difficulties:
Not much as far as I can see right now.
- We are currently using the FormBuilder "new.tcl" pages for saving and creating new objects from the REST GUI. We'll try to reduce the use of these pages to a minimum and move the functionality into intranet-rest.
- Sencha performance seems to be poor on IE6 and Firefox 3.x
It would be great to hear about your feedback.
- Did I miss something important?
- Is this migration path also an option for OpenACS?
Cheers!
Frank