首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

java 课堂札记——WebService

2012-12-18 
java 课堂笔记——WebService一:什么是WebService??? WebService(Web服务)是使应用程序可以以与平台和编程语

java 课堂笔记——WebService

一:什么是WebService
??? WebService(Web服务)是使应用程序可以以与平台和编程语言无关的方式进行相互通信的一项技术。Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组以这种方式交互的 Web 服务在面向服务的体系结构(Service-Oriented Architecture,SOA)中定义了特殊的 Web 服务应用程序。
? 1:Web 服务体系结构
???? Web 服务体系结构描述了一个框架,在这个框架中服务可在分布式计算环境中被动态地描述、发布、发现和调用。这个体系结构定义了四个基本构件(它们的名称在接下去的两段中用粗体字来标明)和三个决定这些构件之间如何交互的标准操作。
???? 服务这个概念处于 Web 服务模型的核心,它被定义为执行某种任务(如订购图书或翻译信件)的一组操作。在 Web 服务的上下文中,可以使用标准的 XML 技术(如 SOAP、WSDL 和 UDDI)来描述、发现和调用服务。
???? 服务由服务提供者来实现和发布。服务由服务请求者来发现和调用。有关服务的信息可被保存在服务注册中心。?


???? 从企业角度看,服务提供者是服务的所有者。从技术角度看,它是提供对服务的访问的平台。同样,服务请求者既是一个需要完成一项具体任务的企业,也是发现和调用服务所需的工具。
???? 可以从如下角度对上图所示的三种基本操作进行描述:
???????? a.发布(Publish):由服务提供者来执行以使大家知道服务的存在和功能。
???????? b.发现(Find):由服务请求者来执行以定位能满足某种需要的服务。
???????? c.绑定(Bind):由服务请求者来执行以调用由服务提供者提供的服务。
?
二:能干什么
? 1:成为各孤立的站点之间的信息能够相互通信、共享的一种接口
? 2:由于webservice基于标准的协议和xml,使得大量异构程序和平台之间就能够互相操作,大家都面向webservice,而不用去关心具体的实现是由什么开发语言提供的。
?
三:有什么
? 1:基本 Web 服务规范
? Web 服务规范通常归为两类:基本 Web 服务规范和扩展 Web 服务规范。基本规范有:
? (1)SOAP(Simple Object Access Protocol):
?????? 简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的轻量级协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输
?????? 协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一种语言相互通信。
?????? SOAP包括四个部分:
????????? a.SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;
????????? b.SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例;
????????? c.SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;
????????? d.SOAP绑定(binding),使用底层协议交换信息。
?????? *应用中比较关注的是envelop,由一个或多个Header和一个Body组成。
? (2)WSDL(Web Services description Language):
?????? Web服务描述语言是详细说明描述基于 SOAP 的 Web 服务的标准方式的规范,由Ariba、Intel、IBM、MS等共同提出,包括消息应采用的形式以及应将其发送到何处。其中还详细说明了此类消息的响应。当与相应的工具结合使用时,WSDL 允许以编程方式创建对 Web 服务的调用,甚至不用知道所查找的 Web 服务是什么;应用程序可以从 WSDL 文件中提取这些详细信息,并提供要使用的编程接口。
?????? 可描述Web服务的三个基本属性:
????????? ?服务做些什么——服务所提供的操作(方法)
????????? ?如何访问服务——和服务交互的数据格式以及必要协议
????????? ?服务位于何处——协议相关的地址,如URL
?????? WSDL文档以端口集合的形式来描述Web服务,WSDL 服务描述包含对一组操作和消息的一个抽象定义,绑定到这些操作和消息的一个具体协议,和这个绑定的一个网络端点规范。
?????? WSDL描述语言一般包含三部分
????????? (1)服务做些什么部分:包括了type、message和portType元素
?????? Type:定义了Web Service使用的数据结构(使用XML Schema定义)
?????? Message:一个Message是SOAP的基本通信元素。每个Message可以有一个或多个Part,每个Part代表一个参数。
?????? PortType:消息汇总为不同的操作并归入到一个被称为portType的实体中。一个portType代表一个接口(Web Service支持的操作集合),每个Web Service可以有多个接口,它们都使用portType表示。每个操作又包含了input和output部分。
????????? (2)如何访问服务部分:包含binding元素
?????? binding元素将portType绑定到特定的通信协议上(如HTTP上的SOAP协议)
????????? (3)服务位于何处部分:由service元素组成
?????? 它将portType,binding以及Web Service实际的位置(URI)放在一起描述

?

?????? 5:运行cmd,到classes的目录,然后打包,输入:jar cvf hello.aar . ,注意后面的”.”不能少,表示输出到当前位置,然后打出一个hello.aar的包来。
?????? 6:然后可以直接把这个文件拷贝到tomcat的webapps\axis2\WEB-INF\services文件夹下面,就会自动发布了。当然也可以进到axis2的控制台,然后使用upload service的方式也行。如果发布没有错误,那么服务就做好了。
?????? 7:开始写客户端

? <ns:return>42.0</ns:return> 
</ns:getPriceResponse>
???????? (2)然后运行下述语句进行修改
http://localhost:8080/axis2/services/StockQuoteService/update?symbol=javasscn&price=100
???????? (3)再次运行(1),你会发现结果变成了:

?

?????? 2:service.xml如下:

?

热点排行