接触Web Service 不是很清除它到底是什么,能做什么用,经过查看大神们的博客,先大概了解下概念;

1、服务(service)。

传统上,我们把计算机后台程序(Daemon)提供的功能,称为"服务"(service)。比如,让一个杀毒软件在后台运行,它会自动监控系统,那么这种自动监控就是一个"服务"。通俗地说,"服务"就是计算机可以提供的某一种功能。

2、SOA

Service Oriented Ambiguity 中文理解为,面向服务架构,简称SOA。

SOA的提出是在企业计算领域,就是要将紧耦合的系统,划分为面向业务的,粗粒度、松耦合,无状态的服务。服务发布出来供其他服务调用,一组互为依赖的服务就构成了SOA架构下的系统。

既然说是一种架构的话,所以一般认为SOA是包含了运行环境,编程模型,架构风格和相关法论在内的一整套新的分布式软件系统构造方法和环境,涵盖服务的整个生命周期。

Service-architecture.com将 SOA定义为:

本质上是服务的集合。服务之间彼此通信,这种通信可能是简单的数据传送,也可能是两个或多个的服务协调进行的某些活动。服务之间需要通过某些方法进行连接。

所谓服务就是精确定义,封装完善、独立于其他服务所处环境和状态的函数。

虽然不同厂商或个人对SOA有着不同的理解,但是我们仍然可以从上述定义中看到 SOA的几个关键特征:一种粗粒度,松耦合的服务架构,服务之间通过简单的定义接口进行通信,不设计底层编程接口和通讯模型。

只要符合它的定义和规范的软件系统都可以认为是SOA架构。

3、SOA和 Web Service

  早在1996年Gartner就前瞻性地提出了面向服务架构的思想(SOA),Web Service不知为何物,SOA还只是束之高阁的理论概念。直到2000年以后,W3C才成立了相关的委员会,开始讨论Web Service的相关标准,各大厂商一边积极参与标准制定,一边推出了一系列实实在在的产品。新的技术和新的产品出现,SOA找到了可以依托的凭借。随着 Web Service技术的推出和应用,SOA的思想被一个个效益显著的信息系统建设项目不断的示范,才逐渐成为现今的热门话题。

   因为现在几乎所有的SOA应用场合都是和Web Service绑定的,所以不免有时候这两个概念混用。不可否认Web Service是现在最适合实现SOA的技术,SOA的走红在很大程度上归功于Web Service标准的成熟和应用普及。因为现在大家基本上认同Web Service技术在几方面体现了SOA的需要:

 首先,是基于标准访问的独立功能实体满足了松耦合要求:在Web Service中所有的访问都通过SOAP访问进行,用WSDL定义的接口封装,通过UDDI进行目录查找,可以动态改变一个服务的提供方而无需影响客户端的配置,外界客户端是根本不关心访问服务器端的实现。

  其次,适合大数据量低频率访问符合服务大颗粒度功能:基于性能和效率平衡的要求,SOA的服务提供的是大颗粒度的应用功能,而且跨系统边界的访问频率也不会象程序间函数调用那么频繁。通过使用WSDL和基于文本(Literal)的SOAP请求,可以实现能一次性接收处理大量数据。

  最后,基于标准的文本消息传递为异构系统提供通讯机制:Web Service所有的通讯是通过SOAP进行的,而SOAP是基于XML的,XML是结构化的文本消息。从最早的EDI开始,文本消息也许是异构系统间通讯最好的消息格式,适用于SOA强调的服务对异构后天宿主系统的透明性。

  综合上述观点,Web Service不愧为当前SOA的最好选择。然而,就SOA思想本身而言,并不一定要局限于Web Service方式的实现。更应该看到的是SOA本身强调的是实现业务逻辑的敏捷性要求,是从业务应用角度对信息系统实现和应用的抽象。随着人们认识的提高,还会有新技术不断的发明出来,更好的来满足这个要求。

上面涉及的名词太多,我们等一下还会单一的来介绍,用一句话总结它们之间的关系。 “SOA不是Web Service,Web Service是目前最适合实现SOA的技术。”


4、Web Service

在解释 Web Service 之前,先抛出一个问题。有没有一种办法可以实现跨应用程序进行通信和跨平台进行通信呢?

跨应用程序,主要是指我家开发的系统和别人家开发的系统之间是否可以通信。

跨平台,主要是指我家用Java开发的系统和别人家用.NET开发的系统是否可以通信。

像这样的需求有很多,例如腾讯QQ上面自带的天气功能。

  腾讯要想获得实时的天气信息怎么办呢?有一种办法,那就是腾讯公司放个卫星上天,并且在公司中成立一个气象部门,天天关注于天气,然后每时每刻更新腾讯QQ上的这个天气预报信息;这显然不是一种明智的做法,只是想获取一下天气信息,居然要如此高的成本。

  更简单的做法是让中国气象台提供实时的天气信息,然后,通过提供接口的方式给腾讯调用。那么这就遇到我上面所说的问题,如何跨应用与跨平台调用接口。

  这个时候有聪明的读者会跳出来说,你傻啊!用HTTP协议啊,主流的编程语言都可以实现基于HTTP协议的应用开发。让中国气象台写个基于HTTP协议的天气接口给腾讯调用就可以了。当然,这是完全可以的。不过,Web Service之所以在HTTP之后被提出自然有它的特点。

  当然,这里拿Web Service 与HTTP进行比较是不合适。因为HTTP是互联网上应用最为广泛的一种网络协议。而Web Service是一种部署在Web上的对象或者是应用程序组件,Web Service数据的传输同样需要借助HTTP协议。

  更详细的定义:

  Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

5、SOAP

Simple Object Access Protocol,中文简单对象访问协议,简称SOAP.

SOAP 是基于XML在分散或分布式的环境中交换信息的简单协议。允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。

SOAP 的设计是为了在一个松散或分布式的环境中使用XML 对等地交换结构化的和类型化的信息提供了一个简单且轻量级的机制。

 当SOAP消息真正需要在网络上实际传输的时候,SOAP消息能够与不同的底层传输协议进行绑定,同时,SOAP消息可以在很多种消息传输模式中使用。包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用协议(RPC)等大量的应用程序。

  当然,最多的情况还是绑定在HTTP协议上面传输。这就导致大多数人认为SOAP就是HTTP + XML,或者认为SOAP是HTTP post请求的一个专用版本,遵循一种特殊的XML消息格式。

虽然,我们看到的大多情况确实如此,但这并不是SOAP本质与全部。

6、WSDL

Web Services Description Language,网络服务描述语言,简称WSDL。它是一门基于 XML 的语言,用于描述 Web Services 以及如何对它们进行访问。

WSDL 文档主要使用以下几个元素来描述某个 web service :

<portType>  web service 执行的操作。

<message>  web service 使用的消息。

<types>     web service 使用的数据类型。

<binding>   web service 使用的通信协议。

<wsdl:definitions  xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing"  xmlns:tns="tns"   xmlns:plink="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"  xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:senc="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:s12env="http://www.w3.org/2003/05/soap-envelope/"  xmlns:s12enc="http://www.w3.org/2003/05/soap-encoding/"  xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:senv="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="tns"  name="Application"><wsdl:types><xs:schema   targetNamespace="tns"   elementFormDefault="qualified"><xs:import   namespace="http://www.w3.org/2001/XMLSchema" /><xs:complexType   name="say_hello"><xs:sequence><xs:element   name="name"   type="xs:string"  minOccurs="0"   nillable="true" /></xs:sequence></xs:complexType><xs:complexType   name="say_helloResponse"><xs:sequence><xs:element   name="say_helloResult"   type="xs:string"  minOccurs="0"   nillable="true" /></xs:sequence></xs:complexType><xs:element   name="say_hello"   type="tns:say_hello" /><xs:element   name="say_helloResponse"  type="tns:say_helloResponse" /></xs:schema></wsdl:types><wsdl:message   name="say_hello"><wsdl:part   name="say_hello"   element="tns:say_hello" /></wsdl:message><wsdl:message   name="say_helloResponse"><wsdl:part   name="say_helloResponse"  element="tns:say_helloResponse" /></wsdl:message><wsdl:portType   name="Application"><wsdl:operation   name="say_hello"   parameterOrder="say_hello"><wsdl:input   name="say_hello"   message="tns:say_hello" /><wsdl:output   name="say_helloResponse"  message="tns:say_helloResponse" /></wsdl:operation></wsdl:portType><wsdl:binding   name="Application"   type="tns:Application"><soap:binding   style="document"  transport="http://schemas.xmlsoap.org/soap/http" /><wsdl:operation   name="say_hello"><soap:operation   soapAction="say_hello"   style="document" /><wsdl:input   name="say_hello"><soap:body   use="literal" /></wsdl:input><wsdl:output   name="say_helloResponse"><soap:body   use="literal" /></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service   name="Application"><wsdl:port   name="Application"   binding="tns:Application"><soap:address   location="http://10.2.70.10:7789/SOAP/?wsdl" /></wsdl:port></wsdl:service>
</wsdl:definitions>

WSDL 端口

<portType> 元素是最重要的 WSDL 元素。

它可描述一个 web service、可被执行的操作,以及相关的消息。可以把 <portType> 元素比作传统编程语言中的一个函数库(或一个模块、或一个类)。

WSDL 消息

<message> 元素定义一个操作的数据元素。

每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。

WSDL types

<types> 元素定义 web service 使用的数据类型。

为了最大程度的平台中立性,WSDL 使用 XML Schema 语法来定义数据类型。

WSDL Bindings

<binding> 元素为每个端口定义消息格式和协议细节。

对于接口来说,接口文档非常重要,它描述如何访问接口。那么WSDL就可以看作Web Service接口的一种标准格式的“文档”。我们通过阅读WSDL就知道如何调用Web Service接口了。

7、UDDI

Universal Description, Discovery and Integration",可译为“通用描述、发现与集成服务”,简称UDDI。

WSDL用来描述了访问特定的 Web Service的一些相关的信息,那么在互联网上,或者是在企业的不同部门之间,如何来发现我们所需要的 Web Service呢?而 Web Service提供商又如何将自己开发的 Web Serivce公布到因特网上呢?这就需要使用到 UDDI 了。

UDDI 是一个独立于平台的框架,用于通过使用 Internet 来描述服务,发现企业,并对企业服务进行集成。

UDDI 指的是通用描述、发现与集成服务

UDDI 是一种用于存储有关 web services 的信息的目录。

UDDI 是一种由 WSDL 描述的 web services 界面的目录。

UDDI 经由 SOAP 进行通信

UDDI可以帮助 Web 服务提供商在互联网上发布 Web services的信息。UDDI 是一种目录服务,企业可以通过 UDDI 来注册和搜索 Web services。

Web Services体系结构 

在Web Serivce的体系结构中涉及到三个角色,一个是 Web Service提供者,一个是 Web Service中介,还有一个就是 Web Service请求者;同时还涉及到三类动作,即发布,查找,绑定,

  Web Service提供者:

可以发布 Web Service,并且对使用自身服务的请求进行响应,Web Service的拥有者,它会等待其他的服务或者是应用程序访问自己。

  Web Service请求者:

也就是 Web Service功能的使用者,它通过服务注册中心也就是 Web Service中介者查找到所需要的服务,再利用 SOAP 消息向 Web Service提供者发送请求以获得服务。

  Web Service中介:

也称为服务代理,用来注册已经发布的 Web Service提供者,并对其进行分类,同时提供搜索服务,简单来说的话,Web Service中介者的作用就是把一个 Web Service请求者和合适的 Web Service提供者联系在一起,充当一个管理者的角色,一般是通过 UDDI来实现。

发布:

通过发布操作,可以使 Web Serivce提供者向 Web Service中介注册自己的功能以及访问的接口。

发现(查找):

使得 Web Service请求者可以通过 Web Service中介者来查找到特定种类的 Web Service 接口。

绑定:

这里就是实现让Web Serivce请求者能够使用Web Serivce提供者提供的Web Serivce接口。

转载于:https://blog.51cto.com/10957737/2115708

Web Service 概念相关推荐

  1. WCF,Net remoting,Web service概念(转)

    WCF,Net remoting,Web service概念 今天看到WCF,说是整合了Net remoting,Web service...下面列一下概念. 一 WCF 概括地说,WCF具有如下的优 ...

  2. Web Service概念

    Web Service概念:     根据W3C的定义,Web服务(Web service)应当是一个软件系统,用以支持网络间不同机器的互动操作.网络服务通常是许多应用程序接口(API)所组成的,它们 ...

  3. Web Service概念梳理

    计算机技术难理解的很多,Web Service 对我来说就是一个很难理解的概念:为了弄清它到底是什么,我花费了两周的时间,总算有了一些收获,参考了不少网上的资料,但有些概念说法不一.我以w3c和 一些 ...

  4. 【转】WCF、Net remoting、Web service概念及区别

    Windows通信基础(Windows Communication Foundation,WCF)是基于Windows平台下开发和部署服务的软件开发包(Software Development Kit ...

  5. 关于Restful Web Service的一些理解

    对于restful web service,刚开始确实是个不太好理解的概念. 看了些文章,总是在描述和解释restful的原则: 1)显式地使用HTTP方法. 2)无状态. 3)公开目录结构式的 UR ...

  6. 深入学习.NET Web Services概念

    介绍 在学完Web Service的课程后,我深深地被它的内容所吸引了,这使得我想在这方面做个总结,本篇文章是介绍.NET下的Web Service的概念的,在写作期间笔者也参考了很多优秀的文章,相信 ...

  7. 什么是Web Service:/什么是Web服务

    什么是Web Service:/什么是Web服务 你可能早就听说过Web Service了,你也可能已经对Web Service有了一些概念,现在不管是在什么场合,谈到以后发展的新趋势,大家都会提到W ...

  8. Web Service 基本概念和技术应用

    (一) Web Service 技术的名词解释 往往某一知识点的基本概念总是枯燥而乏味的,但若能花费些时间好好的理解,也能获益匪浅. Web Service 也称作 XML Web Service,是 ...

  9. (一)Web Service——基本概念

    1.1 什么是web服务 这里列举一些常见的web服务: 手机淘宝.京东-. 天气预报 手机号归属地 股票查询 发手机短消息 手机充值功能 中英文翻译 银行转账业务 公司的"进销存系统&qu ...

最新文章

  1. MySQL练习题:常用函数
  2. Dropout也能自动化?
  3. 用c语言编写程序学工系统,[工学]chap02_用C语言编写程序.ppt
  4. boost::spirit模块实现逗号分隔的数字列表的解析器的测试程序
  5. 把windows键盘作为xfce环境中的打开Applications
  6. 论文浅尝 | 基于知识图谱中图卷积神经网络的推荐系统
  7. 吃了一辈子大米,你还在相信水稻种水里是因为喜欢水?
  8. Matlab线性/非线性规划优化算法(5)
  9. 免费的数据恢复软件 恢复丢失的数据
  10. [摘文]BizTalk概述
  11. 十年期货股票行情数据轻松处理——TDengine在同心源基金的应用
  12. Hiho----无间道之并查集
  13. 幼儿园案例经验迁移_幼儿生活经验“迁移”讲述的运用指导
  14. 听了让人心静的纯音乐
  15. 计算机操作系统与生态系统
  16. 4AT已经衰老 6AT正值壮年
  17. 解决ubuntu下外接2k显示器却无法调2k分辨率问题
  18. 推荐系统----GCN和NGCF, LightGCN实验结果对比
  19. 海德汉角度编码器RCN727F与替代型号RCN8390F参数对比
  20. MEMS加速度计的概念

热门文章

  1. 在SDN走向商用部署的路上,锐捷网络一直在不断实践
  2. work1的code和问题
  3. AutoFac在项目中的应用
  4. 远程访问mysql设置
  5. 1001Freedownloads – 免费下载海量素材
  6. Vlan中的 PVID vid tag untag 常识理论
  7. OleDbHelper类
  8. ping通网关不能上网_手机、电脑为什么连不上网(断网)?
  9. Metasploit search命令使用技巧
  10. 计算机应用基础形考报告2020,放大学计算机应用基础形考本学习报告