服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java web 服务学习报告―web简介


  在网络飞速发展的今天,每个组织都面临着同样一个挑战:在平衡核心能力和已有应用程序时创建同构的环境。it需要一个简单的,与平台无关的应用程序间通信方式。在这种需求下产生了web服务,它是一类可以从internet上获取的服务的总称,它使用标准的xml消息接发系统,并且不受任何操作系统和编程语言的约束。在过去的三年中,出现了三种作为全球标准的主要技术:soap,wsdl和uddi.它们构成了今天web服务技术的核心。然而所有web服务协议和新技术都是以xml作为其数据表示层的,xml消除了协议特有的网络,操作系统以及平台绑定限制,因此xml是所有web服务的基础。
  
  1. xml (extensible markup language)
  
  1.1 xml
  
  html的诞生使得web发布变得非常简单,但是html存在很大的局限性,由于标准的标记已经由w3c预先确定,所以在描述复杂文档时html就显得力不从心。并且html是面向描述的,而非面向对象的,因此html不会给出内容的含义。为了解决这些问题,w3c开始寻找答案,这就是xml.
  
  xml是可扩展的,我们可以创建自定义元素以满足创作的需要。xml同时也是可结构化的。我们可以检查xml文档的语法,从而避免大量错误的xml文档在internet上流传。这便是dtd.
  
  1.2 dtd
  
  dtd(文档类型定义)可以看作是标记语言的语法文件,它是一套定义xml标记如何使用的规则,dtd定义了元素,元素的属性和取值,以及哪个元素可以被包含在另一个元素中的说明。dtd还可以定义实体。xml解析器可以使用dtd文件来解析xml文档。dtd使得我们能够发布文档以供其他人共享。一个拥有dtd参考文件的xml文档称为一个有效的xml文档。
  
  然而由于xml dtd并不能完全满足xml自动化处理的要求,例如不能很好实现应用程序不同模块间的相互协调,缺乏对文档结构、属性、数据类型等约束的足够描述等等,所以w3c于2001年5月正式推荐xml schema为xml 的标准模式。显然,w3c希望以xml schema来作为xml模式描述语言的主流,并逐渐代替xml dtd.
  
  1.3 xml schema
  
  xml schema与xml dtd有很大的区别。xml schema事实上是xml的一种应用,也就是说xml schema的格式与xml的格式是完全相同的,而作为sgml dtd的一个子集,xml dtd具有着与xml格式完全不同的格式。这种区别给xml schema的使用带来了很多好处。如:xml语法分析器可以直接的应用到xml schema,而不需要修改。另外作为xml的一个应用,xml schema理所当然的继承了xml的自描述性和可扩展性,这使得xml schema 更具有可读性和灵活性。同时由于格式完全与xml一样,xml schema除了可以像xml一样处理外,也可以同它所描述的xml文档以同样的方式存储在一起,方便管理。
  
  1.4 dom
  
  另外,为了更好的访问xml文档,我们需要用到文档对象模型dom(document object model),dom事实上就是采用树状对象集合的方式访问给定文档内容的抽象规范。dom对象库可以让我们在内存中构建xml语法树,从而提供了更有效的方法来增加文档、定位文档结构、填加,修改和删除文档元素。
  
  有了以上这些规范,xml已经为我们在网络上传输数据提供了一个规范的结构。xml-rpc技术就为通过网络的方法或函数调用提供了基于xml和http的机制。xml-rpc允许程序通过网络调用函数或过程。它只用了很少的xml词汇描述请求和响应的属性,用http协议将信息从客户端传递给服务器。客户端在xml请求中指定过程名和参数,服务器在xml响应中返回一个错误或响应。当然对于普遍运用对象的编程领域,xml-rpc对于许多应用程序来说似乎太受限制了。但当我们需要集成不同类型的系统时,xml-rpc固有的简洁性优势便能体现出来。在我们建立公共服务时,可以用xml-rpc来定义接口,并且选择一种语言来实现它,这样一旦服务在web上发布,任何具有xml-rpc能力的客户端就能连上它。而且在建立分布式系统时,也可以用xml-rpc作为粘贴码来连接内部网络中的不同部分。因此,虽然xml-rpc很简单,但简单的工具有创造力的应用可以构建复杂而功能强大的体系结构。当各种各样的系统需要通信时,xml-rpc可能是最合适的最低标准。
  
  2. soap(simple object access protocol)
  
  2.1 soap
  
  soap是一种基于xml的,用于计算机之间交换信息的协议。soap能应用于各种消息接发系统,并能通过各种传输协议进行传递,但最初的侧重点是通过http传输的远程过程调用。因此,soap能使客户应用程序很容易地连接远程服务并调用远程方法。
  
  soap规范主要定义了四个元素:soap信封规范,传输和协议绑定,编码规则和一个rpc协定。
  
  soap信封规范,soap信封规范对计算机间传递的数据如何封装定义了具体的规则。这包括应用特定的数据,如要调用的方法名,方法参数和返回值;还包括谁将处理封装内容,失败时如何编码错误消息等信息。
  
  数据编码规则,为了交换数据,计算机必须在编码特定数据类型的规则上达成一致,soap也有自己的一套编码数据类型的约定。大部分约定都基于w3c xml schema规范。
  
  rpc协定,soap能用于单向和双向等各种消息接发系统。soap为双向消息接发定义了一个简单的协定来进行远程过程调用和响应,这使得客户端应用可以指定远程方法名,获取任意多个参数并接受来自服务器的响应。
  
  传输和协议绑定,提供了更底层协议传输soap封套的一套通用机制。
  
  源自客户端的请求或来自服务器的响应是一个单向消息,称为soap消息。每个消息都有一个强制性的envelope元素,一个可选的header元素和一个强制性的body元素。soap请求必须包括要调用的方法名和所有必须的参数。其次还需要定义若干个命名空间,用于区分xml元素和属性,或用于引用外部模式。soap响应与soap请求相类似。
  
  xml和soap能够很好的描述数据,但许多应用程序的数据并不适合用xml来描述,比如图像的二进制数据。这时候就需要swa(soap with attachments)来解决问题。swa将soap协议和mime格式组合在一起,从而使soap消息中可以包含任意想要的数据。
  
  2.2 soap-rpc
  
  soap-rpc使用soap底层结构定义了一个用来表示rpc以及rpc响应的模型。它并不要求一定要紧紧绑定一个同步的请求/响应模型或者一个http协议。实际上soap-rpc的使用和协议的绑定是无关的。因此重要的是soap定义了一个统一的模型,来表示rpc及其一个或多个返回值。soap还提供了对方法签名,头数据和代表目的地的uri进行编码的方法。所以soap-rpc比xml-rpc更加复杂,功能也更加强大。
  
  3. wsdl(web services description language)
  
  wsdl是一种将web服务描述为一系列访问端点的xml文法,这些端点具有以面向过程或者面向文档的方式交换信息的能力。wsdl描述了四种关键的数据:
  
  描述所有公用函数的接口信息。
  
  所有消息请求和消息响应的数据类型消息。
  
  所使用的传输协议的绑定信息。
  
  用来定位指定服务的地址信息。
  
  总之,wsdl在服务请求者和服务提供者之间提供了一个协议,主要用于描述soap服务。wsdl本身使用的是xml语法,可以分为六个主要的元素:
  
  definitions :必须是所有wsdl文档的根元素。它定义了web服务的名称,声明文档其他部分使用的多个名称空间,并包含所有服务元素。
  
  types :描述在客户端和服务器之间使用的所有数据类型。
  
  message :描述一个单向信息,定义消息的名称,可以包含零个或多个的引用消息参数或消息返回值的消息part元素。
  
  porttype : 结合多个message元素,形成一个完美的单向或往返操作。
  
  binding : 描述了在internet上实现服务的具体细节。
  
  service : 用于定义调用指定服务的地址。一般包含调用soap服务的url.
  
  4.  uddi(universal description ,discovery and integration)
  
  uddi是一个描述,发现和连接web服务的技术规范。有了uddi,公司不但可以发布web服务,还能查找web服务。uddi的核心由两部分组成。第一,uddi是一个建立业务和web服务的分布式目录的技术规范。数据存储在特定的xml格式中,uddi规范包括搜索已有数据和发布新数据的api细节。第二,uddi业务注册中心是uddi规范的一个完全操作实现。
  
  uddi的技术体系结构由三部分组成:
  
  uddi数据模型 :一个描述业务和web服务的xml schema.
  
  uddi api :一个用于搜索和发布uddi数据的,基于soap的api.
  
  uddi 服务群 :一个提供uddi规范实现的根据预定基础使所与数据同步的操作入口站点。
  
  综上所述,以上的后三种技术以及传输协定组成了一个完整的web服务的四个层面,自上而下分别为:
  
  发现 ―― uddi
  
  描述 ―― wsdl
  
  xml消息接发 ―― xml-rpc,soap,xml
  
  传输 ―― http,smtp,ftp,beep
  
  这些技术使得web服务实现了 基于xml,松散耦合,粗粒度,同步或异步能力,支持远程过程调用和支持文档交换等特性,从而让web服务得到了更广泛的应用。

扫描关注微信公众号