这篇文章很早了,是我在自己的新浪站点,以前记录的,不想舍弃,就搬过来了。不要闲我啰嗦!
当前应用程序的开发慢慢从C/S结构向B/S结构转移,人们开始偏爱基于浏览器的瘦客户应用程序。这是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是因为应用程序安装、配置以及维护的问题,另一半是因为客户和服务器之间通信的问题。对于B/S结构,浏览器几乎是每一个客户端的标准配置。关于客户端与服务器的通信问题,一个完美的解决方法是使用HTTP协议来通信。这是因为任何运行Web浏览器的机器都在使用HTTP协议。同时,当前许多防火墙也配置为只允许HTTP连接。许多商用程序还面临另一个问题,那就是与其他程序的互操作性。这些程序用不同的语言开发并运行在不同的平台上。
同时,现在在各大主流技术论坛或企业信息系统论坛上,我们经常会发现这样一个名词:Web Services。同时还会发现,与这个名词同时出现的多是各大主流技术供应商,各大技术供应商无一不在关注这一领域的发展。从Microsoft的.NET架构,到SUN的SUN ONE,以及IBM的IBM Web Services,都体现了这些重量级的技术提供者对Web Services的推崇与重视。
这些都为Web Services提供了机遇,电子商务的发展更促进了这种发展。Web服务使公司可以降低进行电子商务的成本,更快地部署解决方案以及开拓新机遇。Web服务使应用程序的集成比以前更快、更容易而且更便宜。集成在协议栈中较高层发生,它基于更注重服务语义而不那么注重网络协议语义的消息,从而实现了业务功能的松散集成。这些特性对于在企业之间和企业内部通过web连接业务功能是非常理想的。它们提供一种一致化编程模型,从而在企业内外都可以利用通用的基础设施并以一种通用的方法进行应用程序集成。
什么是Web Services?从技术角度来讲,Web Services是一种新的技术架构、新的软件应用环境。它的系统架构和实现技术完全继承已有的技术,可以认为Web Services是Internet的一种延伸,是现有的Internet面向更好的互操作能力的一个延伸。
Web Services的概念
Web Services,从字面上理解就是通过Web提供的服务。我们可以理解Web Services是自包含的、模块化的应用程序,它可以在网络(通常为Web)中被描述、发布、查找以及调用;也可以理解Web Senices是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Sevices能与其他兼容的组件进行互操作;也可以这样理解,所谓Web服务,它是指由企业发布的完成其特别商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项应用服务
对于Web Services,很多人会与Web Service混为一谈,认为二者指的是同一个事物。其实不然,前者指的是用于建构Web Service的技术框架,后者指的是使用Web Services技术而创建的应用实例。Web Services是描述了一些操作的接口,通过标准化的XML消息传输机制,可以通过网络访问这些操作。Web Services使用标准的规范的基于XML的WSDL语言描述的,这称为Web Services的服务描述。这一描述囊括了与服务交互所需要的全部细节,包括消息格式(详细描述操作的输入输出消息格式)、传输协议和位置。该接口隐藏了服务实现的细节,允许通过独立与服务实现、独立于软硬件平台、独立于编写服务所用的编程语言的方式使用该服务。这使得基于Web Services的应用程序具有松散耦合、面向组件和跨技术实现的特点。Web Services都履行一定的特定业务或任务,可以实现同其他Web Services一起用于实现复杂的商业交易。
Web Services特征
从外部使用者角度而言,Web Services是一种部署在Web上的对象和组件,具备以下特征:
·完好的封装性:
Web服务既然是一种部署在wbb上的对象,自然具备对象的良好封装性,对于使用者而言,他能且仅能看到该对象提供的功能列表。
·松散耦合
这一特征也是源于对象/组件技术,当一个Web服务的实现发生变更的时候,调用者是不会感到这一点的,对于调用者来说,只要Web服务的调用界面不变,Web服务的实现任何变更对他们来说都是透明的,甚至是当Web服务的实现平台从J2EE迁移到了.NET或者是相反的迁移流程,用户都可以对此一无所知。对于松散锅台而言,尤其是在Internet环境下的Web服务而言,需要有一种适合Internet环境的消息交换协议,而XML/SOAP正是目前最为适合的消息交换协议。
·使用协议的规范性
这一特征从对象而来,但相比一般对象,其界面规范更加规范化和易于机器理解。首先,作为Web服务,对象界面所提供的功能应当使用标准的描述语言来描述(比如WSDL);其次,由标准描述语言描述的服务界面应当是能够被发现的,因此这一描述文档需要被存储在私有的或公共的注册库里面。同时,使用标准描述语言描述的使用协约将不仅仅是服务界面,它将被延伸到Web服务的聚合、跨Web服务的事务、工作流等,而这些又都需要服务质量(QoS)的保障。其次,我们知道安全机制对于松散耦合的对象环境的重要性,因此我们需要对诸如授权认证、数据完整性(比如签名机制)、消息源认证以及事务的不可否认性等运用规范的方法来描述、传输和交换。最后,在所有层次的处理都应当是可管理的,因此需要对管理协约运用同样的机制。
·高度可集成能力
由于Web服务采取简单的、易理解的标准,Web协议作为组件界面描述和协同描述规范,完全屏蔽了不同软件平台的差异,无论是CORBA、DCOM还是EJB,都可以通过这一种标准的协议进行互操作,实现了在当前环境下最高的可集成性。