第一章 J2EE 1.4 Web Services 概述
1.1 J2EE 平台
J2EE(Java 2 Platform, Enterprise Edition, Java 2 平台企业版)规范描述了如何将各种Enterprise Java API集成到一个完整的平台上。J2EE 1.4 规范特别说明了应用服务器如何配置和部署Enterprise JavaBean(EJB)组件、Java Servlet 2.4组件与JavaServer Pages(JSP)2.0组件,以及如何在运行时管理它们。J2EE 规范还说明了这些服务器端组件如何相互以及与应用服务器与象JDBC(Java Database Connectivity, Java 数据库连接)和JMS(Java Message Service, Java 消息服务)这样的资源API相互作用。图1-1说明了J2EE规范支持的各种组件与API。
1.2 Web服务技术
在J2EE 1.4 环境中,属于“Web服务”有专门的含义,该术语基于由Sun Microsystems、Microsoft、IBM、BEA、Software AG以及其他各主要企业供应商采用的标准。Web服务的定义如下所示:Web服务是一个符合Web Service互操作性组织的Basic Profile 1.0的软件应用程序
此定义多少有点绕口,但该定义大概是到目前为止最为确切的定义。在WS-I定义Basic Profile 1.0之前,“Web服务”这一术语涉及的面很广,因此不能完成Web服务技术的主要目标——互操作性。换言之,Web服务技术的主要目的是允许不同平台上的应用程序交换商务数据。Web服务技术主要用于A2A(Application-to-Application,应用程序到应用程序)的集成或用于B2B(Business-to-Business,商务到商务)之间的通信。A2A表示位于通信和交换数据的某一机构中的全异应用程序,A2A也称为EAI(Enterprise Application Integration,企业应用程序集成)。B2B表示交换数据的多个机构(特别是商务伙伴)。当今的Web服务技术大都用于A2A/EAI设置,但在B2B中也可以看到Web服务技术的应用。
对于计算机编程人员而言,互操作性是两个不同软件应用程序相互通信的能力。例如,从运行于Linux平台上的Java应用程序访问用C++编写且在Windows平台上运行的应用程序的能力就属于互操作性问题。为了使Linux平台上的Java应用程序访问Windows平台上的C++应用程序,需要采用独立于两个操作系统和硬件的网络技术。TCP/IP、DNS和HTTP以及Web服务标准(XML、SOAP、WSDL和UDDI)已经采用了此技术。
XML(eXtensible Markup Language,可扩展标记语言)、SOAP(Simple Object Access Protocol,简单对象访问协议)、WSDL(Web Service Description Language,Web服务描述语言)和UDDI(Universal Description , Discovery , and Integration,通用描述、发现和集成)分别用于为Web服务应用程序提供类型系统(XML)、通信协议(SOAP)、接口定义语言(WSDL)以及用于发布Web服务的注册表(UDDI)。XML文档包含了要在双方交换的信息。SOAP为通过网络交换XML文档提供打包和路由标准。WSDL允许机构描述与它们的Web服务交互时不许使用的XML文档和SOAP消息的类型。UDDI允许各机构在公共目录中以统一的方式注册它们的Web服务,所以客户能够确定他们的Web服务的位置,并学习如何访问它们。图1-2说明了如何在双方的Web服务交互中将他们组合在一起。