使用J2EE构建服务2011-10-07 onjava Debu Panda如今,web services 是一门流行的实现面向服务应用的技术。J2EE已经成为一个流行的用来部署web services 应用的平台。并且,J2EE1.4制定了在Java平台上建立和部署web services应用的标准。在这篇文章中,我将说明如何在实现了J2EE1.4规范的应用服务器之间,比如Oracle Application Server 10g,使用J2EE1.4建立可互操作的,轻便灵活的服务。Web Services 架构在深入研究J2EE平台上web services的开发和部署的细节之前,让我们先简要的查看一下web service 的架构。Web services 有很多种定义,但是简而言之,web services 是能够通过网络被发布,发现和调用的 独立的,自我描述的组件。如图1所示,一个web service可能会执行一个简单的功能,比如核算银行存款 记录,也可能会是一个横跨多个商业过程的复杂的任务。

图1. 一个web service 是如何工作的有两种与web services 交互的方法:RPC类型和文档类型。最初,RPC类型的web services在工业界很 流行,但是最近几年它已经被文档类型的web services所超越,后者被认为是在web services中交换信息 的首选方法。RPC类型的web services提出将数据交换模拟成远程过程调用(RPC)。这在商业应用中是很常见的。对 于远程调用和其返回值,让相互交换的消息都遵照一个明确定义的准则。与之相反,文档类型的web services模拟XML文档的交换,交换模式由发送和接收应用程序共同定义。文档类型的服务更能适应需要 交换商业或其他类型文档的应用程序,而且不同于RPC类型的web services,发送方不需要期望或等待一 个即时的响应。大多数开发者一定会同意:web services是一种有效的实现SOA的技术,因为它提供了不同平台之间的 互操作性,以及依赖于XML,SOAP和HTTP等的轻量级的技术。平台独立性和技术实现性是web services普及的主要原因。客户端不必了解相关技术的实现,而只需 简单地通过网络调用服务就可以了。例如,即使你使用Java/J2EE 技术创建了一个服务并且部署在一个 J2EE服务器上,比如Oracle Application Server Container for J2EE(OC4J),客户端也可以使用微软的 .NET架构创建。既然我们已经对web services有了基本的了解,就让我们关注一下构成web service的基本元素吧。