如何用Java EE构建面向服务架构?

日期: 2011-07-12 作者:TheServerSide.com翻译:张培颖 来源:TechTarget中国 英文

根据Java专家Tony Ng所说,在复杂企业应用环境中工作的软件开发者,经常用很多时间来维护现有的应用,而时间应该用在创建新的和创新的应用上。将Java和面向服务架构(SOA)集合可以简化维护企业应用的流程,解放开发者的时间,将其用于驱动增长的开发中。   Ng是《用Java EE实现SOA》一书的合著者,这本书介绍了Java和SOA之间的连系,本文则着眼于云计算上下文环境中二者的关系。到2009年为止,Ng担任Sun Microsystems技术总监,他负责推进Java EE 5 SDK的发布。

同时,他也是Java图书《Java蓝图》和《J2EE Connector架构》的合著者,拥有九项……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

根据Java专家Tony Ng所说,在复杂企业应用环境中工作的软件开发者,经常用很多时间来维护现有的应用,而时间应该用在创建新的和创新的应用上。将Java和面向服务架构(SOA)集合可以简化维护企业应用的流程,解放开发者的时间,将其用于驱动增长的开发中。

  Ng是《用Java EE实现SOA》一书的合著者,这本书介绍了Java和SOA之间的连系,本文则着眼于云计算上下文环境中二者的关系。到2009年为止,Ng担任Sun Microsystems技术总监,他负责推进Java EE 5 SDK的发布。同时,他也是Java图书《Java蓝图》和《J2EE Connector架构》的合著者,拥有九项软件专利。

  项目经理开始采纳一种SOA的方法进行应用设计和开发的时候,会遇到哪些新的挑战?

  Tony Ng:使用SOA的话,一个应用典型地由一套服务组成,可能多个开发团队以及中分散的形式进行开发。为了成功,花时间提前将问题域分解为正确的服务集和服务接口很重要。就像服务的发展,维护服务接口反向兼容性很重要,因为服务实现可以独立展开。

  SOA实现对Java开发者意味着什么?

  Tony Ng:Java开发者要想正确且有效地实现SOA,还要学习一些附加的概念。例如,开发者应该避免将一个Web服务接口建模粒度过细,或者过于不正式,因为这样会造成Web服务客户端调用一项SOA服务的时候额外的网络延迟。开发者也应该关心转移的数据量。

  为了实现交互性的目的,一项SOA Web服务典型地以一种中性的编程语言(例如使用WSDL或者REST URL模式)来定义接口。这对于习惯于用具体编程语言开发的开发者来说是个全新的概念。类似地,开发者需要知道通用Web服务数据格式,像XML或者JSON。

  最后,每一个服务的服务水平协议(SLA)的定义和监控很重要,因为所有应用将按照性能和可行性执行。

  在我们从J2EE转移到Java EE 5和6的时候,实现SOA怎么改变?

  Tony Ng:Java EE 5的主要目标之一就是简化Java EE应用的开发,包括SOA Web服务。Java EE 5包含以下的API,这些API共同工作来提供Web服务支持:

  • JAX-RPC 1.1
  • JAX-WS 2.0
  • JAXB 2.0
  • SAAJ 1.3
  • JAXR 1.0
  • StAX 1.0
  • Web Services Metadata 2.0
  • Web Services 1.2

  Java EE 5中最显著的性能是Java注释的用法。为了创建一项服务,开发者只需要编写一个POJO(Plain Old Java Object)类,用适当的Web服务注释解释。Java EE容器将负责将POJO作为Web服务暴露。Java EE 6通过JAX-RS 1.1添加了对RESTful Web服务的支持。JAX-RS根据REST架构风格提供Java注释作为Web服务来映射POJO类。

  展望Java 7,即将发布的版本有哪些性能将会使实现SOA解决方案变得容易一些?

  Tony Ng:在Java 7中,对于Web服务堆栈将会有所升级,包括JAXP 1.4、JAXB 2.2a和JAX-WS 2.2。Java 7也包括I/O和网络上的数个加强,包括可扩展异步I/O操作、socket-channel binding和配置以及多路传送数据报。这些可以被用来为SOA平台实施提供一种更好的可扩展性和性能。

  Java 7中其他相关的性能包括小的Java语言的加强,并发机制和收集更新,i18n加强、JDBC 4.1和增强的Mbeans。

  在SOA开发和实现领域,企业架构师如何利用云技术呢?

  Tony Ng:云的主要好处是有效地部署敏捷性和IT基础设施。SOA架构风格推进了模块化、封装、松耦合、分布式和互操作性。这些性能可以使基于SOA的应用成为部署在云环境中的理想候选人,并实现云端的好处。

  目前在用Java创建服务的时候,针对成功的模式你有哪些可以与我们分享的技巧吗?

  Tony Ng:下面有一些快速的技巧:

  • 考虑重用性、松耦合和互操作性。
  • 考虑延迟。确保服务接口粒度不是过细或者不正式。注意请求/响应负载。
  • 为每一个服务定义SLA。
  • 阅读我们的书《用Java EE实现SOA》

翻译

张培颖
张培颖

云计算网站编辑

相关推荐