8 月 29 日,Heroku宣布 Play!(一个 Java Web 框架)已经提供公共 Beta 版本了。针对 Web 开发,Play! 采用了“净室”方法,不会强加约束,例如:
兼容 Servlet 容器、支持 JSP、兼容标准 Java Web App 布局、顺应 Java 和 OO 原则(哪怕没什么意义)。
Play! 遵循 Ruby on Rails 的“Built-and-Deploy”模型,而不是更传统的“Package-and-Distribute”模型。
不需要公式化的类或 XML 配置文件。框架采用了全新的打包惯例,在适当的地方使用了静态代码。举例来说,控制器入口点是无状态的,它面向 HTTP 而非面向对象,因此可以用静态方法来实现。
正如 8 月下旬发表的《 Heroku for Java 》中所说的,Play! 基于无容器的 PaaS 模型。Play! 应用可以运行于本地,也可以无缝地部署到生产环境。这样一来就可以简化部署工作流,消除由环境差异导致的问题。
从架构角度来看,Play! 使用了 Netty ,这是一个由 JBoss 团队构建的非阻塞 I/O 协议库,它使用基于 Continuation 的编程模型,可以支持请求的异步处理。Play! 还实现了 Share-Nothing 模型,可以很方便地通过添加节点对应于程序进行水平扩展,有状态会话是无法做到这点的。
从语言策略角度来看, Heroku 解释到:
Java 是多语言平台道路上的又一个里程碑,今后还会加入更多语言,其中不仅有 Java 这样历史悠久的,也会有 Clojure 和 Node.js 这样前沿的,还会有像 Ruby 这样介于两者之间的。我们渴望包含尽可能多的语言,语言的选择是由开发者决定的。
Web App 和 Java 领域是否已经像 Heroku 所说的那样,可以带来颠覆性创新了呢?说说您的观点吧。
评论