一、

1、Endpoint

http://www.ttdev.com/SimpleService 这个webservice全名就是所谓的"endpoint"

2、RPC type

RPC 型的Web Service 方法定义

3、Document type

Document 类型Webservice

注释:

http://ttdev.com/ss 就是namespace, 并无特别意义,只需要global 唯一. 
namespace 不用于endpoint, endpoint 是一个存在的location;而namespace就是一个表示unique ID. 
可以任意移动webservice的位置,改变Server,也就是说变更endpoint;但是方法(operation)的namespace不可以改变。

不同点在哪? 最大不同就是RPC不能通过Schema 来校验,而document 类型是可以的。因此document 类型webservice成为主流 。 
"WS-I (web services interoperability organization)" 组织规定只使用document类型 web services。

二、

1、Port type

事实上,一个Web service 并不直接包含一组operation(方法)。方法是被组成一个或多个"Port Types"。
一个Port type 类似java 类,每个operation 类似java class中的静态方法。 
比如,一个web service中,把所有string相关操作组成 stringUtil Port type, 把日期相关的操作组成dateUtil Port Type. 
所有 port type的命名必须是QName.  (QName 就是需要有 namespace和localname的全名称, 见上篇的图示)

2、Binding

一个 port type 允许使用不同的信息格式访问,比如SOAP(Simple Object Access Protocal)或 
普通文本格式(plain text fomat):

concat(s1='abc', s2='123')

除了信息格式,每个port type还允许使用信息通过HTTP Post 请求或者 通过 email方式传送。

因此,每个被支持的信息格式信息传送方式组合,就叫做 binding. 
最常见的binding就是 SOAP+HTTP.

3、Port

假如很多人使用你的web service,你决定把你的web service部署到3台机器上(C1,C2,C3)。 
部署策略为:采用binding1于C1,C2,C3 机器上;采用binding2于C3机器上. 
此时,我们就说,你一共有四个port, 其中3个port使用用binding1, 1个port使用binding2.

看图理解的快

需要注意的是, 每个port的方法实现可以使用不同的软件,语言,比如port1用 java 写,port2用C#写,都无所谓,但都必须实现port type 中的operation,已经binding1定义的 
message format 和传输方式。

因此,为了表达这个部署的结构信息,在Web service 接口定义中port的信息

三、

1、Target Namespace

上面2篇中的例子看到,在web service中,无论是operation 名,还是port type的名字,都用了同一个namespace. 
默认情况下,一个web service使用单一namespace来命名各种对象。这个namespace,称为web service 的Target Namespace 

Namespace 的命名必须是URI (Uniform Resource Identifer), 而URI有分2种类型. 
Web servie 中的target namespace, 使用两种URI都可以。

URL http://blog.csdn.net/dragondwy
URN

urn:<some-object-type>:<someobject-id> 
sample: urn:isbn:1-23-456789-0

2、WSDL

上面图中的内容已经充分的描述出一个web service 设计。那么这中描述Web service的语言,就叫做WSDL(Web Services Description Language)

四、总结

Web service 是平台无关的,语言无关的,可以通过internet访问。 
一个 Web service 具有一个或多个ports.每个port 是指部署在某个网络地址上的一个binding. 
这个网络地址叫做endpoint. 一个binding是指某个port type使用的特有信息格式和特有的传输协议的结合。 
一个port type可以包含一个或多个operations. 每个operation 可以有输入信息(方法调用和输入参数)和输出信息(返回值)。 
每个信息包含一个或多个parts. 每个part都是一个在web service的schema中定义好的element。 
所有内容通过WSDL描述。

如果要调用以讹RPC 类型的web service, 需要创建XML element, 其中包含operation 名字,所有输入信息(part)的element.等内容。 
而调用document 类型的web service,只需要发送一个 输入信息part 的内容即可。 
因为RPC类型 web service中的XML element没定义在任何schema中,因此没有校验机制。 
所以document 类型的web service是主流,为了更好地协作性考虑,应该使用这种类型。

web service,每个ports,bindings, port types, operations 都有一个QName作为唯一标识符。 
一个QName包含 local part和 XML namespace两部分。 
一个XML namespace是一个全局唯一URI
默认情况下,web service中所有这些对象的命名都是用单一的Target namespace.

URI有两种类型:URL 和 URN. 
URN 具有这样的格式     urn:<NID>:<NSS>. 
XML namespace可以任意使用URL和URN格式,他们的区别是,URL 往往表示某个对象的位置,而URN就是一个纯粹的对象标志符号。 
You can use either as an XML namespace. The only 
difference is that a URL is suggesting that it is the location of an object, while a 
URN is purely an id of the object.

源自:http://blog.csdn.net/dragondwy/article/category/494728

WebService 的一些基本概念的更多相关文章

  1. 转载-- http接口、api接口、RPC接口、RMI、webservice、Restful等概念

     http接口.api接口.RPC接口.RMI.webservice.Restful等概念 收藏 Linux一叶 https://my.oschina.net/heavenly/blog/499661 ...

  2. RESTful Webservice (一) 概念

    Representational State Transfer(表述性状态转移) RSET是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩 ...

  3. JAVA6开发WebService (三)——几个概念

    转载自http://wuhongyu.iteye.com/blog/808922 要了解WebService,光能写代码不行啊,这说说WebService最基本的概念. 首先WebService要知道 ...

  4. 概念吓死人的webservice

    前倾提要:这是我七拼八凑,自己用手打出来的头一篇了!都是别人的想法,我抄袭的,我坦白,我这只是总结一下觉得有用的 本来题目想叫(1)REST API 和WebService(2)REST 样式和 SO ...

  5. WebService的两种方式Soap和Rest比较

    我的读后感:由于第一次接触WebService,对于很多概念不太理解,尤其是看到各个OpenAPI的不同提供方式时,更加疑惑.如google map api采用了AJAX方式,通过javascript ...

  6. 搭建调用 WebService 的 ASP.NET 网站 (VS2010, C#)

    [系统环境]Windows 7 / 2008r2 [软件环境]Visual Studio 2010 [开发语言]C# [感谢]本文是在 <C#开发和调用Web Service> 一文的基础 ...

  7. WebService的两种方式SOAP和REST比较 (转)

    我的读后感:由于第一次接触WebService,对于很多概念不太理解,尤其是看到各个OpenAPI的不同提供方式时,更加疑惑.如google map api采用了AJAX方式,通过javascript ...

  8. WebService相关概念介绍

    最近重新拾起WebService,之前用过Axis2开发过服务,但是非常具体的概念还不是很清楚,在此粗略总结一下. 本文重点研究以下几个问题:     1.WebService以及相关的概念介绍    ...

  9. 1.6分布式通讯协议-WebService

    RPC 包含的要素(webservice) 协议层:tcp/ip 应用层: http协议 SOAP: http+xml 分布式通信框架-webservice分析 什么是webservice webse ...

随机推荐

  1. TP中不区分大小写__APP__和__URL__的注意事项

    控制器命名为 : AuthGroupAction.class.php 问题 : 在控制器跳转中.如果模板跳转时地址的大小写错了..就会报无法加载模块 报错 : 无法加载模块:Authgroup 解决办 ...

  2. FAQ软件卸载

    今天安装了一个PDF 编辑软件pdftk,下载时提示有50多M,感觉不好用,卸载后提示释放空间只有2M,郁闷了.上网查寻,如下命令 sudo dpkg -p package_name卸载软件包及其配置 ...

  3. 第二章、 Linux 如何学习

    第二章. Linux 如何学习 最近更新日期:2009/08/06 1. Linux当前的应用角色 1.1 企业环境的利用 1.2 个人环境的使用 Linux当前的应用角色 在第一章Linux是什么当 ...

  4. mysql从只有一个备份文件(多个数据库的备份)中恢复数据到指定数据库

    mysql -uroot -p 要恢复的数据库的名字 --one-database<备份文件

  5. 学习VS生活

    很多时候,失败的原因归结为一点:我没有时间...代码敲不完,我真的是没有时间么?很多时候是没意识的浪费时间 我每次进教室,总能看到吴刚和赵东亮在敲代码,为啥他们有时间呢?很多时候,时间就像那啥,挤一挤 ...

  6. [转载]:Delphi xe7并行编程快速入门

    现在多数设备.计算机都有多个CPU单元,即使是手机也是多核的.但要在开发中使用多核的优势,却需要一些技巧,花费时间编写额外的代码.好了,现在可以使用Delphi做并行编程了. 在Delphi.C++ ...

  7. Lazarus中TScreen类使用介绍

    描述:虚拟屏幕(桌面)可以包含多个物理显示器.Screen对象是鼠标指针.字体.窗体. 对于Delphi兼容的(不可见)DataModules也被列出了. 同时也追踪当前活动窗体窗体.控件和指针. S ...

  8. 纯css下拉菜单的制作

    通过观察下拉菜单的过程,发现有两种状态,一种是鼠标没有hover时,一种是鼠标hover时. 主菜单hover时,显示子菜单:主菜单没有hover时,不显示子菜单 <!DOCTYPE html& ...

  9. java实验一实验报告

    Java实验报告一:Java开发环境的熟悉                                                                               ...

  10. GIT 在本地保存账户和密码

    原文链接:http://www.jianshu.com/p/908591004f3b 解决方法,在本地的工程文件夹的.git下打开config文件 添加: [credential] helper = ...