java

位置:IT落伍者 >> java >> 浏览文章

Java Web 服务学习报告—Web简介


发布日期:2024年05月10日
 
Java Web 服务学习报告—Web简介

在网络飞速发展的今天每个组织都面临着同样一个挑战在平衡核心能力和已有应用程序时创建同构的环境IT需要一个简单的与平台无关的应用程序间通信方式在这种需求下产生了Web服务它是一类可以从Internet上获取的服务的总称它使用标准的XML消息接发系统并且不受任何操作系统和编程语言的约束在过去的三年中出现了三种作为全球标准的主要技术SOAPWSDL和UDDI它们构成了今天Web服务技术的核心然而所有Web服务协议和新技术都是以XML作为其数据表示层的XML消除了协议特有的网络操作系统以及平台绑定限制因此XML是所有Web服务的基础

XML (Extensible Markup Language)

XML

HTML的诞生使得Web发布变得非常简单但是HTML存在很大的局限性由于标准的标记已经由WC预先确定所以在描述复杂文档时HTML就显得力不从心并且HTML是面向描述的而非面向对象的因此HTML不会给出内容的含义为了解决这些问题WC开始寻找答案这就是XML

XML是可扩展的我们可以创建自定义元素以满足创作的需要XML同时也是可结构化的我们可以检查XML文档的语法从而避免大量错误的XML文档在Internet上流传这便是DTD

DTD

DTD(文档类型定义)可以看作是标记语言的语法文件它是一套定义XML标记如何使用的规则DTD定义了元素元素的属性和取值以及哪个元素可以被包含在另一个元素中的说明DTD还可以定义实体XML解析器可以使用DTD文件来解析XML文档DTD使得我们能够发布文档以供其他人共享一个拥有DTD参考文件的XML文档称为一个有效的XML文档

然而由于XML DTD并不能完全满足XML自动化处理的要求例如不能很好实现应用程序不同模块间的相互协调缺乏对文档结构属性数据类型等约束的足够描述等等所以WC于月正式推荐XML Schema为XML 的标准模式显然WC希望以XML Schema来作为XML模式描述语言的主流并逐渐代替XML DTD

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文档以同样的方式存储在一起方便管理

DOM

另外为了更好的访问XML文档我们需要用到文档对象模型DOM(Document Object Model)DOM事实上就是采用树状对象集合的方式访问给定文档内容的抽象规范DOM对象库可以让我们在内存中构建XML语法树从而提供了更有效的方法来增加文档定位文档结构填加修改和删除文档元素

有了以上这些规范XML已经为我们在网络上传输数据提供了一个规范的结构XMLRPC技术就为通过网络的方法或函数调用提供了基于XML和HTTP的机制XMLRPC允许程序通过网络调用函数或过程它只用了很少的XML词汇描述请求和响应的属性用HTTP协议将信息从客户端传递给服务器客户端在XML请求中指定过程名和参数服务器在XML响应中返回一个错误或响应当然对于普遍运用对象的编程领域XMLRPC对于许多应用程序来说似乎太受限制了但当我们需要集成不同类型的系统时XMLRPC固有的简洁性优势便能体现出来在我们建立公共服务时可以用XMLRPC来定义接口并且选择一种语言来实现它这样一旦服务在Web上发布任何具有XMLRPC能力的客户端就能连上它而且在建立分布式系统时也可以用XMLRPC作为粘贴码来连接内部网络中的不同部分因此虽然XMLRPC很简单但简单的工具有创造力的应用可以构建复杂而功能强大的体系结构当各种各样的系统需要通信时XMLRPC可能是最合适的最低标准

SOAP(Simple Object Access Protocol)

SOAP

SOAP是一种基于XML的用于计算机之间交换信息的协议SOAP能应用于各种消息接发系统并能通过各种传输协议进行传递但最初的侧重点是通过HTTP传输的远程过程调用因此SOAP能使客户应用程序很容易地连接远程服务并调用远程方法

SOAP规范主要定义了四个元素SOAP信封规范传输和协议绑定编码规则和一个RPC协定

SOAP信封规范SOAP信封规范对计算机间传递的数据如何封装定义了具体的规则这包括应用特定的数据如要调用的方法名方法参数和返回值还包括谁将处理封装内容失败时如何编码错误消息等信息

数据编码规则为了交换数据计算机必须在编码特定数据类型的规则上达成一致SOAP也有自己的一套编码数据类型的约定大部分约定都基于WC 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消息中可以包含任意想要的数据

SOAPRPC

SOAPRPC使用SOAP底层结构定义了一个用来表示RPC以及RPC响应的模型它并不要求一定要紧紧绑定一个同步的请求/响应模型或者一个HTTP协议实际上SOAPRPC的使用和协议的绑定是无关的因此重要的是SOAP定义了一个统一的模型来表示RPC及其一个或多个返回值SOAP还提供了对方法签名头数据和代表目的地的URI进行编码的方法所以SOAPRPC比XMLRPC更加复杂功能也更加强大

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

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消息接发 ——XMLRPCSOAPXML

传输 —— HTTPSMTPFTPBEEP

这些技术使得Web服务实现了 基于XML松散耦合粗粒度同步或异步能力支持远程过程调用和支持文档交换等特性从而让Web服务得到了更广泛的应用

上一篇:java api混排算法

下一篇:Java串行端口通讯技术