IBM affirms Restful SOA & dynamic languages with Project Zero
We love Java at IBM and I think between IBM, Sun, BEA and Oracle we've got a large industry of folks in love with Java. And there's a rigor around Java in developing applications that served us very well and will continue to serve us very well for at least another 10 years. But in Project Zero and the Zero platform, we've promoted Java to the system programming language. So kind of like today in Java, C is the system programming language. If you really want to write something that's down and dirty, you may chose to do it in C and then use the Java way to wrap C functions. Well, in Zero, the OO Java world gets promoted to the system level, and on top is scripting languages.
The concept of incorporating dynamic language technologies into existing Java stacks is not new, and in this regard Project Zero would appear to be IBM's answer to Oracle's Partnership with Zend for PHP integration into it's AppServer and Database products as well as the integration of PHP into WebLogic that BEA annouced at last year's JavaOne. Sun Microsystems has also be heavily investing in dynamic language web tier development with their own Zend partnership, the acquisition of the JRuby team and the Phobos application server project. Finally, Coucho Technologies has developed one of the most compelling clean room implementations of PHP and incorporated into their Resin Java Application Server.
Aside from dynamic language usage, another prominent theme in the interview and the project itself is the REST architectural style, which is at the core of Project Zero. While his comments attempted to preserve the need for and value of the WS-* stack technologies, Cuomo still made it clear that a transition back to the transparent simplicity of REST style services has tangible business benefit:
[For one customer IBM worked with, the existing WS-*] services may have had 10 parameters for every service call. We simplified their APIs and maybe only had five of them. And of course, [because they were] URL accessible they were much more fluid to interact with. So automatically they saw a 50 percent uptake in using the enterprise services. Because these things were made more assessable in a Web form using REST, many more people were now using their services. The cool part is you're getting people to use the services because you've lowered the barrier to entry to you enterprise services.
Then people start to use the services in ways you never anticipated and you get a whole new set of apps being written against your services. Hopefully those apps will drive new business. So we think that's an awesome combination of Web SOA and enterprise SOA.
It is also clear that Cuomo forwarding a vision where enterprise WS-* services and lightweight REST service frameworks work hand in hand; that it is not an either/or scenario:
At a time when the entire industry finds itself in a position where it must respond in some fashion to the development time efficiencies achieved by PHP and Ruby on Rails, Project Zero is an interesting response because it is not a rails port and not a rails clone. Whereas Ruby on Rails might be seen as a highly optimized implementation of the MVC architectural pattern that heavily leverages the flexible nature of the Ruby language, the Project Zero core concepts page explains that the Project Zero focus is a bit different. By abstracting the framework concepts from language implementation, users of Project Zero have language flexibility. You can switch out Groovy and PHP (and presumably others in the future) and leverage the same framework. You also have the flexibility of popping back down into Java when you want/need to. Architecturally, instead of being a traditional Action based framework Project Zero heavily embraces an event based architecture with stateless event handlers, where transaction state is held in a global context. Finally, Project Zero sees itself as a kernel with an open and extensible modular architecture, much like Eclipse model that has already been so successful for IBM.
I see an environment like Zero in cooperation with an enterprise SOA being a very powerful combination as a way to extend your enterprise platform out into areas that are probably hard for it to reach today... If I wanted to transform a set of my enterprise services expose them as feeds, I could do that very quickly with Zero. I can create a Zero app to sit in front of my enterprise app that transforms a set of enterprise services into a set of nimble Web services.