111111
精灵王
精灵王
  • 注册日期2010-12-08
  • 发帖数640
  • QQ
  • 火币1103枚
  • 粉丝120
  • 关注75
  • 社区明星
阅读:5010回复:0

Java Web 服务学习报告?Web简介-JSP教程,Java技巧及代码

楼主#
更多 发布于:2010-12-15 13:15
在网络飞速发展的今天,每个组织都面临着同样一个挑战:在平衡核心能力和已有应用程式时创建同构的环境。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协定。  
n        soap信封规范,soap信封规范对计算机间传递的数据怎么封装定义了具体的规则。这包括应用特定的数据,如要调用的方法名,方法参数和返回值;还包括谁将处理封装内容,失败时怎么编码错误消息等信息。  
n        数据编码规则,为了交换数据,计算机必须在编码特定数据类型的规则上达成一致,soap也有自己的一套编码数据类型的约定。大部分约定都基于w3c xml schema规范。  
n        rpc协定,soap能用于单向和双向等各种消息接发系统。soap为双向消息接发定义了一个简单的协定来进行远程过程调用和响应,这使得客户端应用能指定远程方法名,获取任意多个参数并接受来自服务器的响应。  
n        传输和协议绑定,提供了更底层协议传输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描述了四种关键的数据:  
n        描述所有公用函数的接口信息。  
n        所有消息请求和消息响应的数据类型消息。  
n        所使用的传输协议的绑定信息。  
n        用来定位指定服务的地址信息。  




总之,wsdl在服务请求者和服务提供者之间提供了一个协议,主要用于描述soap服务。wsdl本身使用的是xml语法,能分为六个主要的元素:  
n        definitions :必须是所有wsdl文件的根元素。他定义了web服务的名称,声明文件其他部分使用的多个名称空间,并包含所有服务元素。  
n        types :描述在客户端和服务器之间使用的所有数据类型。  
n        message :描述一个单向信息,定义消息的名称,能包含零个或多个的引用消息参数或消息返回值的消息part元素。  
n        porttype : 结合多个message元素,形成一个完美的单向或往返操作。  
n        binding : 描述了在internet上实现服务的具体细节。  
n        service : 用于定义调用指定服务的地址。一般包含调用soap服务的url。  




4.   uddi(universal description ,discovery and integration)  
uddi是个描述,发现和连接web服务的技术规范。有了uddi,公司不仅能发布web服务,还能查找web服务。uddi的核心由两部分组成。第一,uddi是个建立业务和web服务的分布式目录的技术规范。数据存储在特定的xml格式中,uddi规范包括搜索已有数据和发布新数据的api细节。第二,uddi业务注册中心是uddi规范的一个完全操作实现。  
n        uddi的技术体系结构由三部分组成:  
n        uddi数据模型 :一个描述业务和web服务的xml schema。  
n        uddi api :一个用于搜索和发布uddi数据的,基于soap的api。  
n        uddi 服务群 :一个提供uddi规范实现的根据预定基础使所和数据同步的操作入口站点。
综上所述,以上的后三种技术及传输协定组成了一个完整的web服务的四个层面,自上而下分别为:  
n        发现  ------------------------------ uddi  
n        描述  ------------------------------ wsdl  
n        xml消息接发 -----------------------  xml-rpc,soap,xml  
n        传输 ------------------------------- http,smtp,ftp,beep  
    这些技术使得web服务实现了 基于xml,松散耦合,粗粒度,同步或异步能力,支持远程过程调用和支持文件交换等特性,从而让web服务得到了更广泛的应用。  

喜欢0 评分0
游客

返回顶部