先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构,
既然说是一种架构的话,所以一般认为 SOA 是包含了运行环境,编程模型,
架构风格和相关方法论等在内的一整套新的分布式软件系统构造方法和环境,
涵盖服务的整个生命周期。而在 SOA 的架构风格中,服务是最核心的抽象手段。
SOA 中的服务是构建在一些列基于开放标准的基础之上的,
Web 服务定义了如何在异构系统之间实现通信的标准化方法,
从而就使得 Web 服务可以跨越运行平台和实现语言,
同时也使得 Web 服务成为了实现 SOA 中服务的主要技术。
引子
有没有一种办法可以实现跨应用程序进行通信和跨平台进行通信呢?
换句话说,就是有什么办法可以实现我的应用程序 A 可以和应用程序 B 进行通信呢?
或者说是,我用 Java 写的应用程序和用 . Net 开发的应用程序之间进行通信呢?
很多时候,上面提到的这些,我们是必须要使用的,比如,一个跨应用程序吧,
拿腾讯 QQ 来说吧,我估计每一个人都用过腾讯 QQ 上面的天气预报工具吧 ! ! !
上面的这个天气预报功能是如何实现的呢?
有一种办法,那就是腾讯公司放个卫星上天,并且在公司中成立一个气象部门,天天关注于天气,
然后每时每刻更新腾讯 QQ 上的这个天气预报信息,
确实,这种办法确实行得通,不过,要真这样做的话,估计马化腾也该被踢出去了(哪有这么蠢啊?),
那么上面这个是如何实现的呢?别急,且听我慢慢道来~~~
然后,我们再来看看跨平台这个东东又是什么呢?
这里主要是拿 . 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 通过网络进行发布,查找和使用。
上面这些特点呢,现在不清楚的话,也不用紧,等下还会有详细的说明的 !!!
WebServices到底是什么?
如果简单的说的话,WebServices就是一组函数库,不过这和我们平时概念中的函数库却又有所不同,我们平时所使用的函数库要么是自己写的(在自己的应用程序当中写一组函数库),
要么是调用底层的 API(操作系统 API 如Win32 API),上面的这两种情况有一个共同点,
那就是函数库是位于客户端本地的,比如,您调用 Win32 API的话,就是调用本地操作系统上的函数库,而这里提到 Web 服务也是一组函数库这个概念和上面提到的函数库这个概念的区别就在此处,因为 Web服务看做一组函数库的话,那么这组函数库不是位于本地的,而是位于远程机器上(当然也可以是本地机器中)。
何为 Web 服务?
也就是网络服务,那就是把网络上不知道那个地方的一些函数看做是一组服务,然后我再通过网络就可以使用这些服务。
关于什么是 Web 服务,上面的说法那是山寨版的,稍微正经一点的说法是:
Web 服务是一种部署在 Web 上的对象或者是应用程序组件。
Why WebServices?
为什么需要使用 WebServices呢?这必须根据 WebServices 的特点以及其优势进行分析了。
首先,上面呢,也说了,Web服务的话,就是一组网络上的应用程序组件,
这样的话,您便可以通过在您的应用程序中使用 Web 服务来将您的应用程序提升到服务层面上来。
既然可以看做是一组服务了的话,那么当然就是可以提供给别个(别的应用程序)使用咯。
比如,我可以通过 Web

最低0.47元/天 解锁文章
1149

被折叠的 条评论
为什么被折叠?



