The Apache Software Foundation announced the release of Cocoon, version 2.15 last week. An article about the new version of Cocoon has been written. The article discusses Cocoon, where it fits into SOA, and it also comments on other Apache goings on.
Read the full article here:A New Cocoon from ApacheAny experience with Apache Cocoon that you would like to share? It is hard to gather how Cocoon is doing in the community.
Maybe it's hard to see how Cocoon is doing in THIS community, but Cocoon's doing fine if you pay attention to whether it's actually being used instead of if it's being talked about. :)
You are true. Cocoon is not part of these Community.
When I posting the article I just wanted to show the community, that there is a world outside the limits of scripting technologies as JSP, PHP, ASP and similars.
The Cocoon promise of true separations of concerns is something that the scripting technologies is failling to give us. If Cocoon is going in the right direction or not is something that I left to "the time" to tell us the answer.
Anyway, I think it is good to know there is Cocoon and I think its is a worth to keep an eye on it.
The reason that we wanted an article on Cocoon here in the first place, was that we thought it *was* being used. We want to show these technologies. You are dead on, in that a lot of tech that we talk about makes us have skewed views.
A simple example is how if something "just works" it doesn't get talked about (as there isn't much to talk about!).
We've used Coccon in a financial services application. It's XML/XSLT pipeline capability gave us the client independence we needed and internationalization. It performed better than we anticipated.
I have used cocoon where it was used as a reporting framework for multiple products. Each product could customize the the framework to fit its own reporting needs and it worked fine. Each development group could introduce custom sources of reporting data and their own reporting templates and formats. I was easily able to feed it data from a proprietory data format and generate nice reports out of them.
One good thing about cocoon was that I had to learn and find out only as much was needed for my part. It has a good separation of concerns. This I am not sure is true for many frameworks where you have to learn and know many things even if you don't need them.
At the same time I am not sure how cocoon will fare as a framework for any other web based applications. It is a good framework for moving around XML and processing it.
It worked great as a web reporting or a web publishing framework as its concept of component pipeline matched well in that case. Have not yet seen or used the latest cocoon release. But would like to hear from other users how they have used Cocoon. Can it be used for setting up a online store or a Business to business application?
Did you used xReporter for that? - http://xreporter.cocoondev.org/index.html
The framework is designed around SAX (define) processing, which the group said allows for greater performance and scalability in an environment that promotes a separation of concerns between content logic and style.
I am wondering is anyone did any performance tests between this and other application frameworks.
Cocoon has always offered an interesting and unique XML-centric approach (as oppesed to Java-centric MVC frameworks like Spring, Tapestry) for building webapps. The article is superficial, though. TSS could write a better one :)
About performance, Cocoon uses cache generated pages to improve performance. FYI, Cocoon is used in sites with daily request ranging from 500K - 1M. I think this can tell somethig about Cocoon's performance and scalability. Performance is not always all. The easy of use and mantain also is important in very dynamic sites.
One of the lastest most interesting things in Cocoon that helps this is the Control Flow Engine. - http://cocoon.apache.org/2.1/userdocs/flow/index.html
BTW, in Cocoon you can also use a MVC approach. Here is a very interesting blog from Ovidiu Pedrescu: http://www.webweavertech.com/ovidiu/weblog/archives/000042.html
The article doesn't do justice with regard to Cocoon's Service Oriented Architecture (SOA) relationship. In fact, Cocoon is the reality of SOA without the marketing spin. So, if you really want to know what SOA is all about, learn Cocoon. The article doesn't mention Cocoon as "the" framework for Web interface regardless of middleware choice. I use Cocoon for the foundation of our Portal, the pipeline architecture is like the "Lego" analogy of snapping parts together without custom integration work. I simply can't imagine having a Web interface without Cocoon - actually its so amusing to hear about all these Micky Mouse Web frameworks getting so much attention here at the TheServerSide.
The Centers for Disease Control and Prevention (CDC) was tasked to develop a Web application framework based on the HL7 version 3 object model. This application is called National Electronic Disease Surveillance System (NEDSS). NEDSS is a lot of things, but one of the most important concern is the response for bioterrorism tracking. Well, CDC specified the best possible and available technologies for its tactical execution.
The technology choices were J2EE for the enterprise middlware framework and Cocoon for the Web interface layer.
The only problem with Cocoon is that the Barnes & Noble self taught coffee shop jocks can't pick it up. JSP and Struts books are everywhere, therefore gets more exposure in the corporate development shops.
JSP and Struts is just so silly compared with the elegance of Cocoon. But, then again, look at all the EJB cry babies lurking around here. Perhaps some more EJB dummies books could fix the problem...
I totally agree with you. Cocoon has not a marketing machinery (as many of the open source project around). I found many people find it and stick there because it is really amazing how well and easy is work with Cocoon.
On the other side I wonder if EJB is the solution of all the problems. From my point of view, there is a very interesting option using lightweight containers. Also I am looking for using Apache Axis as an alternative. I am just exploring the alternatives. ;-)
BTW, Cocoon uses the Apache Avalon ECM a lightweight container too.
As a new user of Cocoon, my observations:
- Good XML oriented framework for developing pages
- Stretched the XML too far in eSQL and XSPs. How intuitive is writing something like this:
btw: the following give a compilation error!
It doesn't like the carriage returns! hello Cobol!
- Lots of bad naming conventions (accidental complexity): Example in the pipeline:
You have to define "name" attributes for your generators when you define them but when you reference them by that 'name,' the attribute to use is "type"! Why? Why no typedef and type or something that goes well together?
cocoon will be a lot easier to use if it had UI tools to compose sitemap and other config files. That applies to a lot of open source frameworks with the xmliconfigomania disease :)
Good ranting from a newbie! I wonder if you ranted the same while learning Java or even basic computer sutff. ;-)
If you will really saw at Cocoon, you will note that Cocoon is moving away of the samples you described. XSP is not more the interesting technology around Cocoon. It is a legacy in Cocoon. In fact, in the devel mailist you can see that XSP is going to be deprecated. In the lastest release (2.1.5) it was shipped outside the core (a clear signal) as an optional block (just in case you need it). And reading the devel list XSP will be probably deprecated in the next release. Deprecated does not mean removed. I think it will not be removed for a long time because developers know there is a lot of XSP code already done. I will suggest you to see for other samples as FlowEngine and avoid XSP at all.
Can't take some criticism? No, I didn't have to rant while learning Java or basic computer stuff. And my views on more recent developments in J2EE and the accidental complexity in j2ee is a huge concern of many - so I know my views are not unfounded.
Its interesting that you say don't use XSP and don't mention in concrete terms what alternative to use. You only mention an example.