WebService机制和使用《一》

问题?WebService机制和使用

一.WebService是什么?

定义:Web服务(Web Services)是一段位于Internet上的业务逻辑,它是基于TCP/IP的创建出来的服务,基于标准的Internet协议(如HTTP或SMTP)访问的。webservice最基本的一个目的就是在网络上提供资源给各个不同平台的不同应用系统的协同工作能力,WebService并不是什么神秘的东西,它就是一个可以远程调用的类,或者说是组件,又或者说是接口,我们说接口比较正式点儿吧。
把你本地的功能开放出去供别人调用,你的信息给别人共享。网络上这样的例子很多,比如说webService天气预报(点击打开链接),以Microsoft,IBM,Oracle,HP,BEA,SAP等为首的计算机业巨头们无一例外地将自己的软件产品/解决方案全面支持WebServices,致力于推广Web services的全面应用。

Web Service(WEB服务)能够快捷和方便地综合结合各种系统、商务和任何应用平台。利用最新的Web Service 标准能够使任何软件系统和系统之间的应用互通互联,方便,而且更加廉价。这样就会节约成本而加大了平台之间的联系性。当然这样的webService服务有收费的,也有免费的。天下毕竟没有免费的午餐,别人为啥要开着服务器,拿着成本给你提供免费服务呢?是吧

二.WebService有什么作用?

1.
跨越防火墙的通信

客户端和服务器端之间通信都会有防火墙或者代理服务器。传统的实现互相通信的方法是在分布式对象,如DCOM、CORBA之间进行相互的远程过程调用(TCP/IP),这样的访问在internet上访问并没有得到很好的体现,而且有些访问还会受到防火墙的拦截。而Web服务使用基于XML消息处理作为基本的数据通信方式,应用程序可以使用HTTP和XML消息等标准在基于Web的应用程序之间交换信息,从而跨越防火墙。

2. 应用程序集成

企业里经常要把不同语言写成的在不同平台上运行的各种程序集成起来。大型公司常常有很多部门,每个部门都使用最适合自己特定需要的应用程序和平台,所以可以利用webservice将各种平台联系在一起。

3.B2B的集成

跨公司的商务交易集成通常叫做B2B集成。各企业可以采用Web服务与其他企业进行通信。通过Web服务能够将数据及应用程序的集成扩展到公司的防火墙之外。使公司能够与其伙伴、供应商、发行商和客户共享数据和商业过程,从而加强企业之间的合作关系。

4. 软件复用

软件复用是在软件开发中避免重复劳动的解决方案。Web服务实现了业务级别的软件复用,例如在B2B的集成中,各企业之间通过互相调用Web服务,就可以实现信息的共享和复用。

三.WebService运行机制?

1.WebService三要素:

(1)UDDI:(Universal Description Discovery and Integration)

UDDI始于2000年,由IBM,Microsoft和其他33家公司创立。用来管理,分发,查询webService 。用户可以自              己注册发布WebService调用。

程序开发人员通过UDDI机制查找分布在互联网上的Web Service,在获取其WSDL文件后,就可以在自己的程序中以SOAP调用的格式请求相应的服务了。

(2)WSDL:(WebServices Description Language)用来描述如何访问具体的WebService服务(在这里的wsdl文件就是基于xml文档数据交互的),说明如何与Web服务通信的XML语言

注意这一步骤在后面会广泛使用:一些最新的开发工具既能根据你的Web services生成WSDL文档,又能导入WSDL文档,生成调用相应Webservices的代码。

Service:用于聚合一组服务访问点构成一个Web Services的定义。(设置service服务)

Port:为Binding(绑定)制定一个地址,从而定义一个服务访问点。(调用接口的设置)

Binding:为特定PortType(端口类型)定义的操作和消息指派具体的传输协议和数据格式规范。(绑定)

PortType:一个或多个端点支持的操作的抽象集合。每个操作一般会引用一条输入消息和一条输出消息。

Message:代表所传输数据的抽象定义。消息由一些逻辑片断构成,每个逻辑片断分别与某个类型系统中的定义相关联。

Type:提供用于描述所交换消息的数据类型定义(string、int);

(3)SOAP:(Simple Object Access Protocol)基于HTTP协议,采用XML格式,用来传递信息的格式,WebService的请求与响应

SOAP它包括四个部分:

SOAP封装(envelop):封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它,以及如何处理它们的框架;

SOAP编码规则:用于表示应用程序需要使用的数据类型的实例;

SOAP RPC表示(RPC representation):表示远程过程调用和应答的协定;

SOAP绑定(binding):使用底层协议交换信息。

SAOP的主要目标是:可扩展性和简单性

SOAP定义了一种在HTTP客户端和服务器端传输命令和参数的机制。SOAP不关心什么操作系统、编程语言或在服务器端或客户端使用的对象模型:除了需要使用HTTP传输外与其他无关。SAOP只做客户端发送一个请求给服务器,调用相应的对象,然后服务器返回结果。

注意:SOAP1.0和1.2的区别:SOAP 1.2 带来的变化进一步把 Web 服务编织到 Internet 的大网中变化之一是
GET 方法的引入
。GET 之所以重要是因为它支持各种优化。这一点已经过 Web 自身的验证,它广泛地使用 GET 方法。通过本技巧可以进一步了解这一点。

四.WebService的如何使用

Eg1:

做一个简单的WebService例子:调用第三方的webservice服务(http://www.webxml.com.cn/zh_cn/index.aspx)

IE浏览器可以将这个WSDL服务描述文档下下来(http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl)可以通过它生成本地客户端调用代码,从而调用它的服务。

几个命令:

-s解析xml说明书wsdl;自动生成客户端调用代码。. 当前路径

-p 修改生成的路径,默认路径是命名空间倒序

-d 只生成class

wsimport,这个是jdk为我们提供的:

我们先执行以下网上的wsdl命令:

这样它会报错,因为有几个它识别不了,把wsdl文档下载下来,把里面识别不了的删除,然后再执行以下命令。

它就会在本地生成java客户端的代码(因为是JDK提供的,肯定生成的是java代码)

新建一个java项目,把这个cn文件夹(里面有class文件可以全部删除。那是编译出现的)考到src下。

写一个Test1测试类调用服务:

package cn.com.webxml;

import java.util.List;

import org.junit.Test;

public class Test1 {
	/**
	 * 1.提供服务
	 * 2.提供方法的集合:端口
	 * 3.某个具体的方法,给方法设置参数,并且得到返回值
	 */
	@Test
	public void Translate(){
		EnglishChinese englishChinese = new EnglishChinese();//调用服务
		EnglishChineseSoap soap = englishChinese.getEnglishChineseSoap();//调用接口
		List<String> list1 = soap.translatorString("米饭").getString();//调用接口中的方法,并传<span style="white-space:pre">									</span>//<span style="white-space:pre">	</span>递参数过去
		for(String s:list1){
			System.out.println(s);
		}
	}
}

结果:

成功调用,相反传递英文过去,返回中文喔,因为这个服务是双向翻译。可以试一试官网的其他service服务,方法一样得。

五.WebService总结

还没到总结的时候,还有下一节总结。点击打开链接

时间: 2024-11-09 22:00:36

WebService机制和使用《一》的相关文章

【webservice】基于axis2设计带soaphead安全机制的webservice服务端

还是用axis2写的.是先有客户端,再有这个服务端,严格根据客户端的请求报文来写的哦.是否解决了" 先有鸡还是先有蛋"的问题..报文的话,请参照我的上一篇博文<[webservice]调试方法篇(二)>,那么,我的编程步骤是这样的. 1.新建java工程,导入axis2的包.dom4j工具包. 2.根据客户端的请求报文上面soap的命名空间,为工程设计包名,因此,本工程的供外部调用类(Server类)的所在包是cn.com.ultrapower.webservice.ser

C# WebService 的缓存机制

C# WebService 的缓存机制 [转]WebService的缓存机制 2008年02月19日 星期二 11:22 WebService的缓存分为两种,一种是简单的输出缓存,一种是强大的数据缓存 一.输出缓存输出缓存的使用非常简单,比较适用于WebService的参数比较少,结果比较单一的情况,例如股票信息,可以设置5-10秒的缓存,天气预报,则可以设置30分钟甚至数小时的缓存 使用方法是:在WebMethod属性上指定CacheDuration属性即可,例如 这样,600秒内这个WebS

webservice安全机制实现方法

今天,抽空研究了一下webservice的安全机制,主要一种方法使用SoapHader来实现.使用SoapHeader可以来控制非法用户对webservice的调用.下面是具体的实现方法. 1:首先我们自定义一个类MySoapHeader,需要继承System.Web.Services.Protocols.SoapHeader 这个类 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using

WebService的缓存机制

分类: .NET ASP 2010-11-13 10:00 849人阅读 评论(0) 收藏 举报 webservicestring数据库nullapplicationweb服务 WebService的缓存分为两种,一种是简单的输出缓存,一种是强大的数据缓存 一.输出缓存输出缓存的使用非常简单,比较适用于WebService的参数比较少,结果比较单一的情况,例如股票信息,可以设置5-10秒的缓存,天气预报,则可以设置30分钟甚至数小时的缓存 使用方法是:在WebMethod属性上指定CacheDu

webservice 缓存机制

本文转载:http://blog.csdn.net/zhdd1234/article/details/4555472 WebService的缓存分为两种,一种是简单的输出缓存,一种是强大的数据缓存 一.输出缓存输出缓存的使用非常简单,比较适用于WebService的参数比较少,结果比较单一的情况,例如股票信息,可以设置5-10秒的缓存,天气预报,则可以设置30分钟甚至数小时的缓存 使用方法是:在WebMethod属性上指定CacheDuration属性即可,例如 这样,600秒内这个WebSer

Atitit webservice的发现机制 discover机制

1.1. Ws disconvert 的组播地址和端口就是37021 1.2. Ws disconvert的发现机制建立在udp组播基础上2 1.1. Ws disconvert 的组播地址和端口就是3702 关于cxf报:Cannot create URL for this address soap.udp://239.255.255.250:3702的原因 the ONVIF discovery process is based onhttp://specs.xmlsoap.org/ws/2

webservice实验一

实验目的:安装jdk1.6_21以后的版本,利用JAX-WS API自己发布webservice并调用,以及用wsimport生成webservice客户端代码调用一个免费的web服务(如webxml.com.cn上的获取手机归属地的服务). 一.webservice原理了解 webservice是一种通用的跨语言跨平台的数据交互方式,之所以能够做到这一点,是因为它的底层实现机制是依赖于HTTP协议以及XML格式这些开发的标准.webservice使用SOAP(simple object acc

SOAP webserivce 和 RESTful webservice 对比及区别

简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于 XML 的协议,可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME),基于"通用"传输协议是 SOAP的一个优点.它还支持从消息系统到远程过程调用(Remote Procedure Call,RPC)等大量的应用程序.SOAP提供了一系列的标准,如WSRM(WS-Reliable Messaging)形

socket介绍(webService适用场景)

1.使用场景         - 不同的移动客户端访问      - 需要访问第三方的项目 2.访问第三方应用的方式      ISO的七层模型  : 物理层.数据链路层.网络层.传输层.表示层.会话层.应用层     - Socket访问  : Socket属于传输层,它是对Tcp/ip协议的实现,包含TCP/UDP,它是所有通信协议的基础,Http协议需要Socket支持,以Socket作为基础 Socket通信特点:      1. 开启端口,该通信是 长连接的通信 ,很容易被防火墙拦截,