分类:
2008-10-15 16:52:46
Java作为一种成熟的语言,同时作为一种优秀的平台,已被广为接受。很多的程序员对Java技术很精通。如果说在进行软件开发的时候,把Java这个平台抛掉或对之置若罔闻,对现在的开发者来说,这是一件忍痛割爱的事情。不管是为了更好的提高程序的性能或是稳定性,还是看中了Java非常丰富的类库,非Java应用程序在JVM上运行已经吊足了程序员的胃口。那么,Java可以为应用程序提供统一的运行平台吗?JVM能承担这一艰巨的任务否?
一、 引言
最近笔者读到一篇”Use Java to Improve Drupal´s Scalability”的文章。作者(Geert Bevin)在使用Drupal(一套采用GPL授权的开放源码软件,它可以让个人或社区使用者很容易地发表、管理并组织一个网站里大量且多样的内容,已经有许多个人和组织采用Drupal来建立各种不同的网站)时遇到了程序稳定性方面的瓶颈。
由于Drupal使用数据库作为缓存,而PHP在跨越Request时是不会保存对象的状态信息的,所以他决定使用Terracotta——一个JVM级的开源群集框架,能提供:HTTP Session复制,分布式缓存,POJO群集,跨越群集的JVM来实现分布式应用程序协调。使用这一替代方案后,尽管他也遇到了一些别的小问题,但稳定性的问题最终得以解决。同时,将PHP在Java下运行,还可以得到更加安全的运行环境。
上面的例子,我们可以看出,应用程序虽然采用了非Java的技术来构建,但最终在Java的环境下运行,并通过JVM来提高应用程序的稳定性和性能。而且,非Java编写的程序可以在JVM上更加快速的运行,这是非常有意思且有意义的事情。而在不久之前,也许三年或四年前,程序员经常报怨,一种语言编写的程序往往只能在特定的环境下运行。当然,这也包括Java本身。
当然,如今而言,这听上去有点不够人性化。因为不管是PHP应用程序,Ruby on Rails应用程序,或是.NET应用程序,似乎都可以在Java环境下运行了。更有甚者宣称,这三种应用程序在Java环境下的运行效率比他们在各自特定的环境下运行的效率还要高。
不管是为了更好的提高程序的性能或是稳定性,还是看中了Java非常丰富的类库,非Java应用程序在JVM上运行已经吊足了程序员的胃口。那么,Java可以为应用程序提供统一的运行平台吗?JVM能承担这一艰巨的任务否?