引言:随着互联网的高速发展,互联网通信协议的完善和计算机高级语言的发展,各种工程层出不穷。你可能不知道web services,本文将为你介绍web services,你将又增加一个知识点。
本文分三部分:web services的定义,web services的协议,web services的应用介绍。
一.什么是web services
这是文章的题目,但我保证,这只是吸引你来看文章的一个诱饵。什么是web services?只要是在互联网的,可以为人们提供一项功能的组件就是web services。当然这句话是我定义的,因为至今没有一个对web services有统一的定义。你也可以认为,一个超级链接就是一个web services,一个HTML网页就是一个web services。。。。。!很简单?你错了,web services虽然没有定义,但是它的应用功能绝不仅限于这么单一的调用。其中一个最大的应用就是跨语言,跨系统,分布式的组件应用。有人会问,什么是组件,您姑且认为这是一个有特定功能的程序。
总结:web services 是互联网上的一个组件,为人们提供一项或者多项功能。
二.web services的协议
在第一部分中,我已经引出了web services可以有复杂的应用。那么这是如何实现的呢,能举一个例子么?虽然第二部分的题目是web services的协议,但我还是很乐意为你效劳,因为实际的例子更容易让你体会到什么是web services!下面就为你提供一个例子!
我们知道,天气预报的实现需要多颗卫星,多台超级计算机,那么像www.hao123.com,新浪,搜狐,QQ首页面上等都提供了天气预报的功能,难道他们都有自己的卫星,多台超级计算机计算?答案是否定的,他们没有。
他们仅仅是利用了国家一个气象局(我不肯定是气象局)创建的一个用JAVA语言写的天气预报 web services。
比如QQ聊天软件,怎么能在页面显示出气象数据呢?比如:5月1日,浙江杭州,天气晴到多云。QQ软件程序员就是调用了气象局发布的天气预报的web services,使用到了web services所提供的接口。这个接口好比是一个类或者一个函数(您完全可以理解为这个接口就是一个类,这个类就是提供天气预报的)。然后QQ聊天软件调用类中的函数,比如显示地区的函数,显示天气的函数,显示日期的函数,然后将数据显示在QQ聊天软件的页面中,这就能被我们看见天气预报的数据了。www.hao123.com,新浪,搜狐也是一样的道理。
你太聪明了,你一定想到QQ用的是C++语言,那www.hao123.com这个网页用的是PHP语言,而新浪是用jsp语言,怎么一个web services能被不同的语言调用啊?
这就需要引入XML语言和HTTP协议了。
您一定知道HTTP协议,因为没有它您将看不到这文章,您可能知道XML语言,但或许不了解XML语言,那么我给你介绍下吧。XML语言是一种通用的,自己定义的语言的。比如:你可以将一个程序代码用XML来定义。
比如: 我有一个JAVA语言的小程序
public class MyPlus{
public int plus(int x){
return x+5;
}
}
我可以将上述JAVA代码用XML语言表示:
XML类:类的类型--------public
类名------MyPlus
XML函数:函数类型-----public
返回值类型------int
函数名-----------plus
函数的传人参数类型:int
函数的传入参数名:x
函数的业务逻辑:无
函数的返回值:x+5
您按照上面的XML语言,一定能写出PHP,C#,C++的任何一种语言的程序,这个程序的功能和JAVA语言写的程序的功能一摸一样。
我为你的理解力感到骄傲。当然,XML有自己的定义标准,我上面写的XML是错误的,对不起,我为我的不严谨为你道歉,因为我不会写XML,只是处在理解XML的水平。但我向你保证,XML语言在web services就是这样的功能。
你现在可以理解:比如天气预报的程序是用JAVA语言写的,然后将程序的JAVA语言翻译成XML语言,QQ软件的程序员看到XML语言,将其翻译为C++语言,创建C++程序,那么就可以使用C++程序的功能,这个功能和那个JAVA程序的功能一摸一样。XML语言好比计算机语言中的世界语言,大家都看的懂。
我为你的思考感到骄傲。你一定会想,如果电脑都不连接上网,即使将JAVA语言写的天气预报程序,通过XML语言翻译为QQ软件的C++程序,那一定不能用的嘛。非常正确,所以这就需要HTTP协议的帮助了。
XML+HTTP结合就是web services的协议,名字叫SOAP协议。我不敢肯定还没有其他类似的协议,但是我们现在用的就是这个协议。现在我们回到气象局,去重新体会下web services的产生的过程:
1.气象局有卫星和超级计算机,算出浙江杭州,5月1号,天气晴到多云,用JAVA语言写了如下程序:
public class QiXiang{
public void getTianQI(){
return 浙江杭州,5月1号,天气晴到多云;
}
}
气象局的程序员将这个程序代码翻译为XML语言,然后通过HPPT打包,部署到web services服务器上。(气象局的程序员发布了web services)
QQ软件的程序员通过HTTP+XML,发现XML语言,将XML语言翻译为C++语言(很遗憾,我对C++不熟悉,翻译不了为C++代码,如果你会,请为我留言翻译下代码,谢谢!),这样就可以用了。当然了,现实中的数据传输会更加复杂,这涉及到很多问题。
您可以将XML+HTTP的包成为WSDL,比如 http://10.21.237.120:8887/server2.wsdl 这个就是XML+HTTP域名,下面的代码就是这个wsdl的代码
<definitions targetNamespace="HelloWorldService.HelloWorldService" name="HelloWorldService">
?
<types>
?
<schema targetNamespace="HelloWorldService.HelloWorldService">
<xs:element name="say_hello" type="tns:say_hello"/>
?
<xs:complexType name="say_hello">
?
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="times" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:element name="stringArray" type="tns:stringArray"/>
?
<xs:complexType name="say_helloResponse">
?
<xs:sequence>
<xs:element name="say_helloResult" type="tns:stringArray"/>
</xs:sequence>
</xs:complexType>
?
<xs:complexType name="stringArray">
?
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" type="tns:string" name="string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="say_helloResponse" type="tns:say_helloResponse"/>
</schema>
</types>
?
<message name="say_hello">
<part name="say_hello" element="tns:say_hello"/>
</message>
?
<message name="say_helloResponse">
<part name="say_helloResponse" element="tns:say_helloResponse"/>
</message>
?
<portType name="HelloWorldService">
?
<operation name="say_hello" parameterOrder="say_hello">
<documentation/>
<input name="say_hello" message="tns:say_hello"/>
<output name="say_helloResponse" message="tns:say_helloResponse"/>
</operation>
</portType>
?
<plnk:partnerLinkType name="HelloWorldService">
?
<plnk:role name="HelloWorldService">
<plnk:portType name="tns:HelloWorldService"/>
</plnk:role>
</plnk:partnerLinkType>
?
<binding name="HelloWorldService" type="tns:HelloWorldService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
?
<operation name="say_hello">
<soap:operation soapAction="say_hello" style="document"/>
?
<input name="say_hello">
<soap:body use="literal"/>
</input>
?
<output name="say_helloResponse">
<soap:body use="literal"/>
</output>
</operation>
</binding>
?
<service name="HelloWorldService">
?
<port name="HelloWorldService" binding="tns:HelloWorldService">
<soap:address location="http://10.21.237.120:8887/server2"/>
</port>
</service>
</definitions>
您一定翻译不了是什么意思,但是我们很幸福,现在的IDE都集成了各个语言对WSDL的翻译。比如JAVA的axis包,python的soaplib模块等。
看到了吗,这就是WSDL,HTTP+XML打包而形成的。
您真是太厉害了,居然问出:QQ程序员怎么去发现WSDL的啊???这个就web services 软件体系架构中的UDDI平台。气象局的程序员将wsdl发布到UDDI平台上(刚才不是写web services发布呢?只是称呼不同而已,不必纠结于此),这个UDDI平台上会显示天气预报web 服务的WSDL域名,以及接口等信息.QQ软件程序员去这个UDDI平台上找,找啊,找啊,找到天气预报的web 服务的域名(WSDL的域名比如 http://10.21.237.120:8887/server2.wsdl),这样就可以知道XML语言了。
你懂了么?这就是web serices创建到发布到调用到使用的过程。
你一定对UDDI很陌生,这个是公共服务平台,大家都可以去的,免费的,不要钱的,你也完全可以自己的建这样一个平台,这取决于你的所想。你也可以建一个收费的UDDI公平平台。
总结:SOA架构中的web services的协议以及UDDI,WSDL的介绍。
三:web services的应用介绍
这还有我说嘛?同一个程序,可以被多人次,多地点,多系统的使用,犹如你在自己的计算机上使用自己创建的类一样。这是多么爽的事情。当然,要使用web services的,一定要记得先连接网络哦。
总结:web services的应用介绍。
Endual提供,(*^__^*)
分享到:
相关推荐
#### 什么是Web Services? Web Services是一种基于标准的协议和技术栈,用于在Web上提供、定位、调用应用程序接口(APIs)。这些服务通常使用XML作为数据交换格式,支持多种传输协议,如HTTP和SMTP等。主要特性包括...
Web Services平台架构是构建分布式应用程序的一种重要方法,它允许不同系统和平台之间的应用程序通过网络进行交互。在Java平台上开发Web Services,我们可以利用一系列的技术和标准,以实现跨平台的互操作性。 首先...
一、什么是Webservices? Webservices是一种基于互联网的、能够互相交换数据的服务。它们使用开放标准(如XML、SOAP、WSDL和UDDI)进行通信,使得不同的应用系统,无论其运行的平台或编程语言如何,都能相互通信。 ...
什么是WebServices? 它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。Web Service...
【Java Web Services 教程】 Java Web Services 是一种利用 Java 技术开发网络服务的方式,它使得不同系统之间能够通过互联网进行数据交换和功能调用。这个教程将深入讲解 Java Web Services 的核心概念和技术,...
WebServices是一种基于互联网的、用于应用程序之间交互的技术。在本项目"WebServices 天气预报"中,开发者提供了一个简单的天气预报应用,旨在帮助初学者理解WebServices的工作原理及其在C# WinForm环境中的实现。这...
在java开发services中,会用到: 1.webservices-api.jar 2.webservices-extra.jar 3.webservices-rt.jar 4.webservices-tools.jar 5.webservices-extra-api.jar 此压缩文件里就是这五个jar文件。
WEB SERVICES原理与研发实践
Exchange Web Services 2.2
为什么需要Web Services?在互联网日益普及的今天,不同平台和系统的协同工作变得至关重要。Web Services通过浏览器标准使得多平台交互成为可能,提升了Web应用程序的功能。它们不仅提供了可重复使用的应用程序组件...
Web Services技术架构是一种基于互联网的、开放的、标准的接口技术,它允许不同的应用程序之间进行交互和数据交换。这一概念由微软的MCT(Microsoft Certified Trainer)和MVP(Microsoft Most Valuable ...
例如,你可以使用`webservices-api`和`webservices-extra-api`来定义服务接口和数据模型,`webservices-rt`来处理服务的运行时逻辑,而`webservices-tools`则帮助你在开发过程中进行验证和调试。 总的来说,"web...
【Web Services概述】 Web Services是一种计算分布式问题的技术,它允许不同系统间的应用程序通过网络进行通信,从而实现数据的共享和程序的互操作性。Web Services的核心目标是促进系统的整合、标准化,并提供一种...
### Web Services 学习基础 #### 一、Web Services 概述 Web Services 是一种用于在不同平台上交换数据和服务的标准方式。它允许不同系统之间进行通信,并且可以在各种不同的编程语言和技术栈中运行。Web Services...
本书的内容涵盖了Web Services的各种关键技术、Web Services... 本资料是该书的重要章节的节选,包括了前言和目录,第二章Web Services带来了什么,第六章调用Web Services,和第十二章Web Services案例研究的内容。
而“Web Services资料”这个文件可能包含了关于Web服务的广泛知识,包括基本概念、设计模式、最佳实践以及相关的技术文档和教程。 总的来说,Web服务是一种强大的工具,它促进了系统的互操作性和可重用性。通过掌握...
Web Services是一种基于网络的、平台无关的交互方式,它允许不同系统之间交换数据和服务。在.NET框架下,创建和使用Web Services相对简单,这得益于微软提供的强大支持。本篇文章将深入探讨.NET环境下Web Services的...
Web Services 是一种技术,它允许不同的应用程序通过互联网相互通信,从而实现数据交换和服务共享。在继续深入理解Web Services之前,需要对HTML和XML有一定的基础知识。HTML是超文本标记语言,用于创建网页结构,而...
### MyEclipse+XFire开发Web Services #### 实验背景与目标 随着互联网技术的发展,Web Services作为一种重要的软件架构模式,在分布式系统中的应用越来越广泛。它允许不同平台、语言的应用程序通过标准协议(如...
在IT领域,尤其是在企业级应用的安全管理中,Oracle Web Services Manager (OWSM)扮演着至关重要的角色。根据给定文件的标题与描述“Oracle Web Services Manager: Securing your Web Services”,我们可以深入探讨...