必威注册电子书籍教程中心网文荟萃客户留言繁體中文
设为首页
加入收藏
联系必威注册
您当前的位置:92动力网 -> 教程中心 -> 编程经验 -> JAVA DotNet -> 教程内容 退出登录 用户管理
栏目导航
· Visual Basic· Delphi
· Visual C++· C++ Builder
· JAVA DotNet· 其他相关
热门教程
· 如何在Visual Basic...
· 使用Visual Basic操...
· 使用VB6.0设计Activ...
· VB动态调用外部函数...
· 建立一个程序员自己...
· 如何编写高质量的VB...
· [图文] 为更新到Visual Bas...
· 再谈在VB中调用VC++...
· 用VB语言编程实现JP...
· 用DTS实现SQL数据库...
相关教程
· 用J2EE开发WebServi...
· 用J2EE开发WebServi...
· 用J2EE开发WebServi...

用J2EE开发WebService(1)
作者:佚名聽聽来源:本站整理聽聽发布时间:2005-12-29 17:47:03聽聽发布人:admin

减小字体 增大字体

用J2EE开发WebService



英文原文:http://www.theserverside.com/resources/article.jsp?l=WebServices-Dev-Guide


I. 概要

基于XML的Web服务是参照B2B通信协作模式制定的新的规范。它提供了概念上和结构上的,适用于各种不同平台和产品的基础。现在,开发者可以利用J2EE技术来开发基于XML的Web服务。他们可以利用现存的J2EE技术来开发完整的,遵从XML标准的,能完全共通的WEB服务。无需重新设计或者构造现有的J2EE系统,开发人员就可以构建复杂的强大的Web服务应用。

II. 介绍 Web服务是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。这种技术允许网络上的所有系统进行交互。随着技术的发展,一个Web服务可以包含额外的指定功能并且可以在多个B2B应用中协作通讯。

Web服务正在不断完善,并且以一种非常智能的动态的方法来进行。这些灵活的Web服务可以理解请求中上下文的关系,并且在每一个特定的情况下产生动态的结果。这些服务会根据用户的身份,地点以及产生请求的原因来改变不同的处理,用以产生一个唯一的,定制的方案。这种协作机制对那些只对最终结果有兴趣的用户来说,是完全透明的。

这种Web服务所遵循的XML标准可以增进事物通信的性能。开发人员将可以利用不同的平台,产品和标准来实现很多种可能。通过这种标准,开发人员可以建立一个系统使他们的Web服务提供最大的协同工作的能力。

这份白皮书描述了如何方便地利用Java和XML技术来实现Web服务构架。它说明了Web服务中的每一个关键部分以及如何使他们结合在一起。你将会对基于XML的Web服务的结构以及如何与J2EE结合,有一个更加深入的了解我们从如何利用J2EE建立Web服务开始。这部分将使你对如何建立一个Web服务有一个了解。

III. 总结 一般来说,在不同的事务之间进行电子通信协作会有很多阻碍。全异的系统,安全限制和不相同的数据格式,导致很多B2B系统在他们自己的领域或者客户群中形成唯一。Web服务将改变这一切,使不同的事务互相通信变为可能,值得注意的是,这会降低建立商业站点的开发和维护成本。

在建立Web服务的时候,有三个主要步骤:

1. 建立客户端联接 为了允许Applets,Applications,商业合作伙伴,浏览器和PDAs 使用Web服务。

2. 实现Web服务 包括工作流,数据传送,商业逻辑以及数据访问。这些功能是隐藏在Web服务后,并且为客户端工作的。

3. 联接后台系统 这个系统可能包括一个或多个数据库,现存的企业信息系统,商业合作伙伴自己的系统或者Web服务,以及在多个系统中共享的数据。

你可以利用J2EE来实现这三个目标。用J2EE开发Web服务基于以下两个技术:

XML 技术.
在Web服务中,XML标准是非常重要的。XML是一种数据格式,它可以以一种连贯的方式来表现数据,并且可以在网络中以点对点的形式传送。这些不同的XML标准连同指定的处理方法是设计来支持特定的行为的。

Java 技术.
Developers开发人员利用 J2EE APIs来创建事务和表现的逻辑,访问XML文档,以及对XML文档进行操作。信任被证实可行的Java技术是非常重要的,因为它允许开发者利用现有的下部构造,在其上构建新的功能。开发者可以继续利用J2EE的标准API以及各种优秀的组件来开发系统。现在,开发者可以利用J2EE中提供的Java API for XML Parsing (JAXP) 来开发Web服务,我们将在稍后介绍。这个新的APIs主要用来处理XML数据格式以及服务,将使开发变得更容易,效率更高。
图 1 表现了基于J2EE的Web服务的核心构架。请注意,很多APIs在这里并没有全部表示出来,象用来解析或者传送消息的。但是,那些基于J2EE的标准,协议以及主要的子系统都表示出来了。

图 1让我们进一步看一下利用J2EE来创建Web服务的细节。

IV. 客户端联接

客户端联接是关于Web服务的使用者如何来使用你的系统。表格 1 显示了三种主要使用系统的客户。

[TR]
客户类型样例如何联接
商业合作伙伴代理商,客户群基于XML的Web 服务技术 (SOAP, UDDI, WSDL, ebXML)
瘦客户端浏览器,PDAs,无线设备HTTP 协议胖客户端应用小程序,应用程序,已经存在的系统IIOP协议

表格 1商业合作伙伴的联接

第一种访问Web服务的客户类型是商业合作伙伴。他们可能使用很多种类型的编程语言,中间件或者硬件。当他们访问尼的系统的时候,Web服务要求返回一个XML文件。这个文件具有标准的标记来表示商业数据,并且允许不同的系统通过这个来交互。

Java Servlets

当一个商业合作伙伴向Web服务发布一个请求的时候,接收请求的是一个Java servlet. 这个Servlet是一个在管理容器中运行,负责接收请求和响应的Java对象。它可以以很多种协议返回请求结果,象HTTP, FTP或者POP。在这个例子中Servlet通常使用HTTP来响应请求,这样的话,Web服务就可以利用HTTP来通过防火墙了。

当一个请求到达J2EE Web服务的时候,以下操作会发生,见图2

1. Java servlet接收XML 文档。

2. Servlet 处理传入的基于XML的请求

3. Servlet调用一个或者多个Enterprise JavaBeans (EJB) 组件来处理数据。

4. EJB组件进行他们自己的处理,可能会调用其他存在的系统。

5. EJB 组件把结果返回给Servlet。

6. Servlet 把结果汇集到XML文档中。

7. Servlet 把XML传送到客户端。

图 2为了实现商业合作伙伴的联接,必须有一种方法来发布,描述,定位以及调用一个Web服务。我们现在来描述如何达到这个目的。

UDDI 在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件。所以,我们需要一种方法来发布我们的Web服务。

UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。UDDI 项目中的成员可以通过UDDI Business Registry (UBR) 来操作Web服务的调用,UBR是一个全球性的服务。Web服务供应商可以在UBR中描述并且注册他们的服务。用户可以在UBR中查找并定位那些他们需要的服务。

UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI包含标准的"白皮书"类型的商业查询方式,"黄皮书"类型的局部查找,以及"绿皮书"类型的服务类型查找。"绿皮书"允许开发者精确查找符合服务类型的所有服务。(这一段翻的比较奇怪)

UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

JAXR

为了支持UDDI在Java平台上的功能,Java APIs for XML Registries (JAXR)允许开发者来访问注册中心。值得注意的是,JAXR并不是建立Web服务必需的,你可以利用其他常用的XML APIs来直接集成这些协议。JAXR是一个方便的API,它提供了Java API来发布,查找以及编辑那些注册信息。它的重点在于基于XML的B2B应用,复杂的地址本查找以及对XML消息订阅的支持等Web服务。它也可以用来访问其他类型的注册中心,象ebXML注册中心(稍候描述)。

这些对Web服务的注册信息进行的操作,可以使用当前的一些Web服务工具来完成(例如第三方的SOAP和ebXML消息工具)。另外,当JAXP提供了一致并具有针对性的API来完成这些操作,这将使开发变得更加容易。

WSDL

对于商业用户来说,要找到一个自己需要使用的服务,他必须知道如何来调用。WSDL (Web Services Description Language) 规范是一个描述接口,语义以及Web服务为了响应请求需要经常处理的工作的XML文档。这将使简单地服务方便,快速地被描述和记录。

以下是一个WSDL的样例:



聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽targetNamespace="http://example.com/stockquote.wsdl"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽xmlns:tns="http://example.com/stockquote.wsdl"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽xmlns:xsd1="http://example.com/stockquote.xsd"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽xmlns="http://schemas.xmlsoap.org/wsdl/">

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽xmlns="http://www.w3.org/2000/10/XMLSchema">
聽聽聽聽聽聽
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽

聽聽聽聽聽聽聽聽聽聽聽

聽聽聽聽聽聽聽聽

聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽

聽聽聽聽聽聽聽聽聽聽聽聽聽聽

聽聽聽聽聽聽聽聽聽聽聽

聽聽聽聽聽聽聽聽

聽聽聽聽聽

聽聽聽聽聽
聽聽聽聽聽聽聽聽聽
聽聽聽聽聽

聽聽聽聽聽
聽聽聽聽聽聽聽聽聽
聽聽聽聽

聽聽聽聽
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽

聽聽聽聽聽聽

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽type="tns:StockQuotePortType">
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽transport="http://schemas.xmlsoap.org/soap/http"/>
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽soapAction="http://example.com/GetLastTradePrice"/>
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽

聽聽聽聽聽聽聽聽聽

聽聽聽聽聽聽

聽聽聽聽聽
聽聽聽聽聽聽聽聽My first service
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽

聽聽聽聽聽

聽聽


它包含了以下的关键信息:
· 消息的描述和格式定义可以通过XML文档中的和 标记来传送。
· 标记中表示了消息传送机制。 (e.g. request-only, request-response, response-only) 。
· 标记指定了编码的规范 。
· 标记中表示服务所处的位置 (URL)。

WSDL在UDDI中总是作为一个接口描述文档。因为UDDI是一个通用的用来注册WSDL规范的地方,UDDI的规范并不限制任何类型或者格式描述文档。这些文档可能是一个WSDL文档,或者是一个正规的包含导向文档的Web页面,也可能只是一个包含联系信息的电子邮件地址。

现在Java提供了一个 Java API for WSDL (JWSDL)规范。它提供了一套能快速处理WSDL文档的方法,并且不用直接对XML文档进行操作,它会比JAXP更方便,更快速。

图 3 显示了如何使用WSDL 和 UDDI。



图 3
[] [返回上一页] [打 印] [收 藏]
∷相关教程评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图 - 管理登录
Copyright 2019 必威注册. All Rights Reserved .
浙ICP备05047688号