最近刚刚接触到Onvif协议,其规范中设备管理和控制部分所定义的接口均以Web Services的形式提供。那这个Web Services到底是个什么玩意啊?
经过一番周折,搜集到了不少形象易懂的解释和大家分享下:
1 楼:
3楼:

上面的这个天气预报功能是如何实现的呢?
有一种办法,那就是腾讯公司放个卫星上天,并且在公司中成立一个气象部门,天天关注于天
气,然后每时每刻更新腾讯 上的这个天气预报信息,
确实,这种办法确实行得通,不过,要真这样做的话,估计马化腾也该被踢出去了(哪有这么
蠢啊?),
那么上面这个是如何实现的呢?别急,且听我慢慢道来~~~
然后,我们再来看看跨平台这个东东又是什么呢?
这里主要是拿 . Net 平台和 Java 平台来说明例子,假若,有两个公司,每个公司呢都有自己的一个项目,一个公司呢使用 . Net 开发,一个呢,
使用 Java 开发,
恩,本来呢,这两个是相互独立的,进水不犯河水,但是有一天,突然,这两个公司给合并了,
合并后的老总发现,如果把两个项目结合起来将会大大的赚一笔,为此,如何做?
因为要把两个项目结合在一起,那么这两个项目之间总应该通通信吧 !!!
可这两个项目又是基于不同的平台,怎么通信呢?麻烦了吧 !!!
而后再看一种情况,就是比如一个公司使用的服务器是 Windows Server 2008,
那么它如何和 IT 供应商的 UNIX 或者是 Linux 服务器进行连接呢?也很复杂吧 !!!
WebServices 特点介绍
WebServices 提供一个建立分布式应用的平台,使得运行在不同操作系统和不同设备上的软件,
或者是用不同的程序语言和不同厂商的软件开发工具开发的软件,所有可能的已开发和部署的
软件,能够利用这一平台实现分布式计算的目的。WebServices 的思想是:使得应用程序也具有
Web 分布式编程模型的松散耦合性。
WebServices 的特点:
(1),WebServices 是自包含的。即在客户端不需要附加任何软件,只要客户机支持 HTTP
和 XML 就 OK 了。
(2),WebServices 是自我描述的。在客户端和服务端都不需要知道除了请求和响应消息的
格式和内容外的任何事。
(3),WebServices 是跨平台和跨语言的。客户端和服务端均可以在不同的平台和语言环境
中实现,同时,不必为了支持 WebServices 而更改现有的代码。
(4),WebServices 是基于开放和标准的。XML 和 HTTP 是 WebServices 的主要技术基础,
而 XML 和 HTTP 早就成了业内标准了。
(5),WebServices 是动态的。
(6),WebServices 是可以组合的。也就是通过一个 WebService 访问另外一个 WebService
来达到组合的目的。通过组合 WebServices 便可以将简单的 WebServices 聚合成为实现更多复
杂功能的复杂的服务。
(7),WebServices 是松散耦合的。它完全解耦了客户端和服务端。
(8),WebServices 提供编程访问的能力。换句话说,就是可以通过编写程序来访问 Web 服
务。
(9),WebServices 是基于经过考验的成熟技术上构建的。比如 XML 和 HTTP。
(10),WebServices 提供打包现有应用程序的能力。
(11),WebServices 通过网络进行发布,查找和使用。
上面这些特点呢,现在不清楚的话,也不用紧,等下还会有详细的说明的 !!!

在 Web 服务的体系结构中,涉及到三个角色,
一个是 Web 服务提供者,一个是 Web 服务中介者,还有一个就是 Web 服务请求者,同时还涉及到三类动作,即发布,查找,绑定,
Web 服务提供者:
可以发布 Web 服务,并且对使用自身服务的请求进行响应,
Web 服务的拥有者,它会等待其他的服务或者是应用程序访问自己。
Web 服务请求者:
也就是 Web 服务功能的使用者,它通过服务注册中心也就是 Web 服务中介者查找到所需要的
服务,
再利用 SOAP 消息向 Web 服务提供者发送请求以获得服务。
Web 服务中介者:
也称为服务代理,用来注册已经发布的 Web 服务提供者,并对其进行分类,同时提供搜索服务,
简单来说的话,Web 服务中介者的作用就是把一个 Web 服务请求者和合适的 Web 服务提供者
联系在一起,
充当一个管理者的角色,一般是通过 UDDI 来实现。
发布:
通过发布操作,可以使 Web 服务提供者向 Web 服务中介者注册自己的功能以及访问的接口。
发现(查找):
使得 Web 服务请求者可以通过 Web 服务中介者来查找到特点的种类的 Web 服务。
绑定:
这里就是实现让服务请求者能够使用服务提供者提供的服务了。
在这说明以下,其中3楼的观点是源自爱军的博客。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201625.html原文链接:https://javaforall.net
