目前,计算机领域正朝着面向服务的方向不断发展,伴随这一趋势,Java平台企业版(Java EE)的最新版本将在其中扮演什么角色呢?早在半年以前,Java社团过程(JCP)就已经通过对Java EE 5规范的认可。同时,今年春天,Java EE在JavaOne大会上首次亮相。但是,关于开发平台与SOA的相关性,以及它如何满足开发风格——开发人员对轻量级工具和敏捷开发的偏爱愈演愈烈,这一争论却从来没有停止过。
Java EE 5的一个主要目标就是:使编程模型简单化,尤其对于Web服务而言。虽然,在此之前的版本J2EE 1.4,它能够支持简单对象访问协议(SOAP)和基于Web服务描述语言(WSDL)的Web服务,但是,有许多开发人员认为它过于复杂。Sun微系统公司Web服务部门的技术主管Nick Kassem说,当提供用于扩大Web服务和构建SOA的强大技术时,Java EE 5所作的改进能够更好地使服务满足松散耦合。
“对于我们的许多客户而言,如果不通过使用Java EE 5作为过渡的话,他们就很难实现SOA,”Kassem说。“Java EE 5是一个关键性的构建模块。实际的情况是,SOA对于大多数人来说意味着非常丰富的内容,而且,SOA还有很多方面。后端整合部分需要成熟的技术——正如今天的EE 5 所提供的技术。 ”
Java EE 5包括一个关键规范,这是为了加强Web服务并且使其支持简单化。这些是:基于XML 的Web服务的Java API(JAX-WS) 2.0版、XML绑定的Java架构(JAXB)2.0版、Java平台的Web服务元数据2.0版以及包含用于Java API附件的 SOAP 1.3版。
特别地,JAX-WS 2.0版本支持标记,并且使编程模型简单化。它与JAXB 2.0版本整合在一起,因此,所有的数据绑定都由JAXB 2.0版完成。JAX-WS 2.0版本能够支持附加的协议、传输和编码。同时,它也能够支持SOAP 1.1版本、SOAP 1.2版本、XML/HTTP协议以及REST风格的应用程序。除此之外,根据Sun公司的介绍,高级应用程序还能够使用低层面的、基于消息的JAX-WS 2.0版本的 API,以此来直接处理消息,而不需要对支持——运行时构建的、协议层以及传输层的支持——进行任何复制,。
“SOA的核心原则是:松散耦合——Web服务之间的松散耦合,以及服务之外的松散耦合,”Kassem说,“对于Web服务,最初,我们的[J2EE 1.4]所做的尝试是以远程过程调用(RPC)为中心的。之后,该尝试以惊人的速度发展到了JAX-WS 2.0 版本,这个编程模型的转变是非常重要的。该转变使我们能够建立与Web规模相符的、更加松散耦合的Web服务。[它]是一项重要的、以SOA为中心的新方案。同时,对JAXB 2.0版本的规范,我们也进行了很重要的改善,以使得数据绑定的质量更高。数据绑定的质量确实是相当重要的。因为,如果你所做的绑定不适合的话,那么,在实施SOA的过程中,就可能引起一系列的问题,而且无法得到正确解决。虽然,我们还没有完全达到目标——完全符合SOA的核心原则,但是,这些改进已经是一个很大的进步了。”
Sun公司的应用平台部门执行主管Jeet Kaul补充说道,“从J2EE 1.4 到Java EE 5,代码总量减少的相当多。而且,通过使用标记,一个懂得如何用Java编程的开发人员,就能够进行Web服务编程。编程模型的简单化,使得开发人员能够从最大程度上接受Java EE 5。简化编程模型与其他改进综合起来,使得Java EE 5更适合于服务开发。”
JBoss公司总部位于亚特兰大,根据其产品管理部副总裁Shaun Connolly所说,Java EE 5有三个方面的改进:EJB3.0 版本和Java持久化API、JSF,以及标记。“在我们的社团中,能够激发我们兴趣的是:与Web服务创建相关的Java标记。标记通过采用与Web服务进行交互的方式,能够为更简单的Web服务(如REST化的Web服务)提供更多的支持。与以前的重量级的基于SOAP的调用相比,标记这一方式更加适应于Web 2.0。”
遭到质疑
但是,有另外一些人发出质疑:尽管Java EE 5做出了很多改进,但是,对于应用程序开发而言,这个平台仍然过于复杂。Burton集团高级分析师Richard Monson-Haefel,曾经在今年夏天发表过的一篇报告中表明:对于Java EE作为主控企业平台,这只是“结束的序幕”。 Monson-Haefel说,在他发表该报告之后的六个月内,他的观点丝毫没有发生改变。他说,对于Web服务,Java EE 5所采用的方式,太过复杂并且是以API为中心。
“它仍然是一个相当复杂的平台。他们并没有通过使平台简单化的方式,来达到提高开发人员效率的目的,”Monson-Haefel说。“我们所看到的是,在企业开发中,作为首选平台的Java EE开始渐渐地被代替,很明显,导致这一现象的原因是,反其道而行之的框架频频出现,如Hibernate、Spring、Tapestry以及 Struts,这些框架并没有直接融合在EE的规范之内。这一现象表明:开发人员已经开始寻找更加简单的平台。有这样的解决方案:你可以使用Java EE,同时引入struts。虽然,有很多人声称,这样做是为了帮助EE成为一个很好的平台,但是,实际上,他们正在把EE分离,开发人员实际使用的仅仅是EE的框架,而不是EE平台的编程模型。”
他继续说,“开发人员靠自己的努力不断前进。很明显,我们看到,IT领域正在从巨大的平台转移到更为简单的解决方式,从而使生产效率更高,应用程序发布得更快。”
谈到对SOA的意义,Monson-Haefel回答说:“Java EE 5 是一个规范,用于应用程序服务器的创建。应用程序服务器与SOA并不是一个概念。Java EE 5能够使SOA发展得更好还是更坏,这个问题毫无意义。这无疑于问,一个火花塞会不会使一辆轿车变得更好。”
ZapThink LLC 公司的高级分析师Jason Bloomberg说,“从SOA的整体发展趋势来看,人们正在慢慢脱离Java EE 5。它变得越来越无意义。对于构建规模可变的、事务处理Web站点而言,EE是非常重要的架构。但是,它并不适合SOA。更多的人们理解它的局限性,并且意识到还有很多其他的基于Java的方法。但是,我们看到没有人对JAX-WS或者JAXB感兴趣。相反,我们看到,开源的Java站点和SOA同样受到大家的关注。这取决于人们试图完成的工作,但是,我们看到,对于Java基础结构的各个部分,有很多利用开源的ESB和Hibernate来完成的。而我们却没有发现人们对Java EE的任何兴趣。”
Monson-Haefel说,作为一个平台,Java本身是有意义的,但并不是EE。“我们认为标准版本是非常健康的,而且将继续占据主导地位,”他说。“但是,仅仅通过选择技术,你是无法达到SOA的。如果你实现了一个很好的SOA,那么,对于你而言,它能够使表层看起来并没有什么变化。”
探索争论
BEA 系统公司位于加利福尼亚州的圣路易斯市,其Workshop业务副总裁Bill Roth说,Java EE 5仅仅是“探索”。他说,“Java EE 5的Web服务元素,使服务开发变的更加简单。尤其是,EE 5中所采用的技术已经达到了标准化的程度,这使得更好的互操作性成为可能。Java EE 5的确是一个很好的平台。”但是,他补充道,“对于那些希望构建SOA的人们,EE 5几乎没有发挥任何作用。EE 5是关于服务激活、采用一个应用程序,以及激活一个服务的。SOA是关于在各种各样企业中构建复杂的结构的。EE 5和我们的WebLogic产品线,都是关于服务激活应用程序的。一旦你激活了足够的服务,那么,你就需要利用基础结构来管理/维护,以及监视/部署这些服务,并且把它们贯穿到SOA中去。”
他补充说道,“EJB3.0版本和JPA作为持久化的模型是非常适合的,而且应用范围也很广。对于程序员而言,这个选择是很好的,但是,如果我希望构建一个企业级的应用程序,同时贯彻我的CRM、应付帐款、ERP等等,那就试试EE 5吧。”
JBoss公司的Connolly说,对于SOA领域而言,Java EE是非常有用的,但是,它仅仅是众多解决方法之一。“当我使用SOA方法,为那些需要创建应用程序和服务的人们提供基础结构时,我能够采用三种不同的方法,”他说。“作为组建模型、主机式Web服务终端,以及用于门户和Web接口的平台,Java EE 5还是很有意义的。”在SOA领域,另外两种方式,他说,主要集中于用户交互、Ajax风格的开发,以及通过ESB和业务流程管理进行整合。
在面向服务的世界中,能够给开发人员进行选择的余地,这当然是非常重要的,Sun公司的Kaul说,Java EE 5不仅能够为那些希望快速构建简单Web服务的开发人员提供支持,也能够为那些构建复杂后台系统的开发人员提供支持。“我们希望能够吸引到众多的基础型Java开发人员,并且允许他们有所扩展。认为EE 5是复杂的,这一见解并不准确。我们有500万的Java开发人员,做EE的人员仅仅是其中一部分。作为EE SDK的一部分,我们试图带着Java开发人员走进SOA的世界。EE 5只是个过渡。我们还要不断地进行完善,来帮助他们构建服务并且使服务协作。”
Kassem补充说:“我们的客户都是非常成熟精明的,因此,需要阐明一点,你是无法骑着自行车到月亮上去的,这一点非常重要。我们已经尽了最大努力来使Java EE尽可能的简单,但是,还没有达到它应有的简单程度。
这个系列报告的第二部分,将对Java EE 5系统进行检测,以及检验关于目前用户团体的需求,Java EE 5的使用情况所表明的。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。
-
内存数据网格提供商一头扎进Java
10年的时间里,应用性能解决方案提供商Alachisoft一直在用NCache(针对N-Tier和网格计算.NET应用的内存计算和数据网格产品)为.NET社区服务。