BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Public Beta of Play! is Now Available on Heroku

Public Beta of Play! is Now Available on Heroku

This item in japanese

Bookmarks

Heroku announced yesterday that Play!, a Java Web Framework was now available as a public beta. Play! has taken a "clean room" approach to Web development and decided to not be bound to various self-imposed restrictions such as :

compatibility with servlet containers, support for JSP, compatibility with the standard Java web app layout, and conformance to Java and OO principles even when they don't make sense.

As such, Play! follows the "Built-and-Deploy" model of Ruby on Rails, instead of the more traditional "Package-and-Distribute" model.

No boilerplate classes or XML config files are needed. The framework takes a fresh approach to packaging conventions, and uses static code where it makes sense. For example, since controller entry points are stateless, and HTTP-oriented instead of object-oriented, they are implemented as static methods.

Just like "Heroku for Java" which was just released last week, Play! is based on a containerless PaaS model. A Play! app can run locally or seamlessly be deployed in production. This results in a simplified deployment workflow and eliminating any problems caused by environment differences.

From an architecture pespective, Play! uses Netty, a non-blocking I/O protocol library built by the JBoss team which supports the asynchronous processing of requests using a continuation based programming model. Play! is also implementing a share-nothing model which makes it easy to scale out applications horizontally by adding more nodes since stateful sessions are not possible.

From a Language strategy perspective, Heroku explains:

Java is another milestone on the polyglot platform path, but there's more to come. Future language packs will span the gamut from venerable (like Java) to cutting-edge (like Clojure and Node.js) to squarely in-between (like Ruby). Our desire is to be as inclusive as possible. Choice of language is up to the developer.

Are both the Web App and Java spaces ripe for disruptive innovation by cloud application platforms as Heroku suggests? What's your take on it?

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Re: My take on PaaS

    by Jean-Jacques Dubray,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    William,

    I don't necessarily disagree with your point of view, but:
    a) don't you think PaaS reflects an optimization of many people building the same thing on top of IaaS. You lose control, but you gain in LOE and Robustness. Configuring a set of servers, elastically, at the IaaS level is no simple task
    b) When you say "I believe so strongly in the separation & control of this differentiation that I expect all services to allow delegation of some aspects of their execution & delivery." I wholeheartedly agree with you, but maybe we disagree on how that could be achieved. I personally don't believe this is a good idea to achieve it dynamically. I would rather prefer an "assembly" mechanism like the one of SCA which allow a single service (component) to participate in different assemblies and hence allow this level of delegation, but statically defined for every "consumer" of the service component

  • Play looks nice, but they have not done much research.

    by Frank Carver,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    The play blog entry states "no existing frameworks have taken a clean-room approach" which is a somewhat naive claim to make.

    Mojasef (originally released back in 2005, and still being developed) takes a similar, but potentially even simpler, approach, and there are several others if you look around the web a bit.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT