InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

IBM affirms Restful SOA & dynamic languages with Project Zero

Posted by Mark Figley on Aug 21, 2007

Sections
Development,
Enterprise Architecture,
Operations & Infrastructure
Topics
Application Servers ,
Java ,
SOA Appliance ,
Ruby ,
SOA Platforms ,
SOA ,
Architecture
As REST principals and Web Oriented Architecture concepts are in the process from migrating from the geek edge to the enterprise mainstream, in a recent interview,  IBM WebSphere CTO Jerry Cuomo has been saying that they have become a core focus for IBM in Project Zero, which "introduces a simple environment for creating, assembling and running applications based on popular Web technologies."  Project Zero is being developed under an open development (but not open source) model. A couple of points of interest with Project Zero is it continues the trend away from pure java and towards dynamic languages for web application development,  and also the emphasis on REST service development in the enterprise.

Project Zero embraces Groovy and PHP instead of using the Java language directly. In Cuomo's words:

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:

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.

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.
  • This article is part of a featured topic series on SOA

No comments

Watch Thread Reply

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.