Web Service不是框架,更甚至不是一种技术,而是一种跨平台、跨语言的规范。是为了解决不同语言所编写的应用之间如何相互调的需求场景,集中解决:远程调用、跨平台调用和跨语言调用。
Web Service在实际中的用途;1、Linux上的java应用,去调用Windows平台上的C应用。2、不同公司的业务整合,业务整合就要带来不同公司的系统整合,不同公司的系统可能存在平台不同、语言不同的问题。
W3C组织对WebService的定义如下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计。WebService服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来执行远程系统的请求服务。以 HTTP 协议为基础,通过XML进行客户端和服务器端通信的框架/组件。
有两个关键点:
1. 服务端提供的功能 , 通过 xml 描述。
2. 第一步中的描述的功能 , 嵌入到HTTP协议中,使得能通过HTTP协议进行通信(所谓的 SOAP )。
采用这两个技术的目的主要是:
1. 跨平台 , 支持 HTTP 协议的主机和服务器 , 都能够建立通信联系 , 并且大部分的主机和服务器 (99.999% 以上 ) 将支持 HTTP 协议。一般而言,不同目标主机之间的通信,需要通过防火墙,打开某个端口 , HTTP 协议的优势在于,防火墙一般不会封掉 80 端口 , 这样就可以方便,安全的通信。
2. 跨语言 , 任何语言都支持 XML 文本解析 , 这个的目的是为了实现不同语言之间的通信 , 通信的内容,是被xml 限制的,因此这样进行通信,能跨越语言障碍,即, Java 开发的服务端,客户端可以用 C 访问 , 可以用java,VB 等访问 , 反之亦然。
当然, 架构比我们上面说到的图要更为复杂,上面只是说明了一来一回的通信 , 实际情况还需要考虑以下问题 ,参照图例说明:
1. 服务器端 (Provider) 提供统一的标准化服务。 就像开办一个公司 ( 即 Server