Web Service 和WCF的比较

Web Service 的工做原理

      Web Service也叫XML Web Service WebService是一种能够接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通信技术。是:经过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并经过UDDI进行注册。WebService可用基于XML的SOAP来表示数据和调用请求,而且经过HTTP协议来传输这些XML格式的数据。web

      webservice最大优势就是实现异构平台间的互通,这也是使用WebService的主要缘由之一。任何两个应用程序,只要他们能读写XML,就能相互通讯。安全

      一、webservice部署比较方便服务器

      二、webservice的编写,跟普通的class差很少网络

       三、固然还有一个好处:平台无关。C#,Java写的ws能够相互调用并发

       四、作分布式系统框架

       XML:(Extensible Markup Language)扩展型可标记语言。面向短时间的临时数据处理、面向万维网络,是Soap的基础。分布式

       Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通讯协议。当用户经过UDDI找到你的WSDL描述文档后,他经过能够SOAP调用你创建的Web服务中的一个或多个操做。SOAP是XML文档形式的调用方法的规范,它能够支持不一样的底层接口,像HTTP(S)或者SMTP。性能

       WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数状况下由软件自动生成和使用。优化

       UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户可以调用Web服务以前,必须肯定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各类不一样类型的数据,而且发送到注册中心或者由注册中心来返回须要的数据。加密

 

WCF的特性

      一、统一性

  WCF是对于ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技术的整合。因为WCF彻底是由托管代码编写,所以开发WCF的应用程序与开发其它的.Net应用程序没有太大的区别,咱们仍然能够像建立面向对象的应用程序那样,利用WCF来建立面向服务的应用程序。

  二、互操做性

  因为WCF最基本的通讯机制是SOAP,这就保证了系统之间的互操做性,即便是运行不一样的上下文中。这种通讯能够是基于.Net到.Net间的通讯。

  能够跨进程、跨机器甚至于跨平台的通讯,只要支持标准的Web Service,例如J2EE应用服务器(如WebSphere,WebLogic)。应用程序能够运行在Windows操做系统下,也能够运行在其余的操做系统,如Sun Solaris,HP Unix,Linux等等。

  三、安全与可信赖

  WS-Security,WS-Trust和WS-SecureConversation均被添加到SOAP消息中,以用于用户认证,数据完整性验证,数据隐私等多种安全因素。

  在SOAP的header中增长了WS-ReliableMessaging容许可信赖的端对端通讯。而创建在WS-Coordination和WS-AtomicTransaction之上的基于SOAP格式交换的信息,则支持两阶段的事务提交(two-phase commit transactions)。

  上述的多种WS-Policy在WCF中都给与了支持。对于Messaging而言,SOAP是Web Service的基本协议,它包含了消息头(header)和消息体(body)。在消息头中,定义了WS-Addressing用于定位SOAP消息的地址信息,同时还包含了MTOM(消息传输优化机制,Message Transmission Optimization Mechanism)。

  四、兼容性

  WCF充分的考虑到了与旧有系统的兼容性。安装WCF并不会影响原有的技术如ASMX和.Net Remoting。即便对于WCF和ASMX而言,虽然二者都使用了SOAP,但基于WCF开发的应用程序,仍然能够直接与ASMX进行交互。 

WebService和WCF的到底有什么区别

WebService严格来讲是行业标准,也就是WebService规范,也称做WS-*规范,既不是框架,也不是技术。它有一套完成的规范体系标准,并且在持续不断的更新完善中。它使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键)。微软的Web服务实现称为ASP.NETWebService.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互。WSDL来实现服务接口相关的描述。此外Webservices能够注册到UDDI中心.供其客户查找使用。后来微软作了ASP.NETWebService的安全,性能,数据加密、解密,托管宿主等多方面的扩展,称为WSE系列,这个是过分产品,最高到WSE3.0.后来就是WCF时代。

ASP.NET Web Service微软提供了Web服务的开发框架,属于ASP.NETFramework的一部分,可是支持早起的WS规范。好比SOAP1.1。

WCFWCF是一个分布式应用的开发框架,属于特定的技术,或者平台。既不是标准也不是规范。

WCF其实必定程度上就是ASP.NET Web Service,由于它支持WebService的行业标准和核心协议,所以ASP.NETWebService和WSE能作的事情,它几乎都能胜任,跨平台和语言更不是问题(数据也支持XML格式化,并且提供了本身的格式化器)。

可是WCF做为微软主推一个通信组件或者平台,它的目标不只仅是在支持和集成WebService,由于它还兼容和具有了微软早期不少技术的特性。

根据微软官方的解释,WCF(以前的版本名为“Indigo”)是使用托管代码创建和运行面向服务(ServiceOriented)应用程序的统一框架。它使得开发者可以创建一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协做。WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下全部的和分布式系统有关的技术,如EnterpriseSevices(COM+).NetRemoting、WebService(ASMX)、WSE3.0和MSMQ消息队列。以通讯(Communiation)范围而论,它能够跨进程、跨机器、跨子网、企业网乃至于Internet;以宿主程序而论,能够以ASP.NET,EXE,WPF,WindowsForms,NTService,COM+做为宿主(Host)。WCF能够支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML,Kerberos,X509,用户/密码,自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将全部与此相关的技术要素都包含在内,掌握了WCF,就至关于掌握了叩开SOA大门的钥匙。

WCF与Web 服务是什么关系,WCF 可以建立兼容 Web 服务的服务,也就是说能够建立可以与Web 服务互联互通的服务,他们两个并不能用简单包含或者等同关系来表述。WCF 是一套框架,用来建立各类服务。其中包括建立 Web服务(采用 basicHttpBinding绑定的服务就是一个Web 服务)。

WCF能够不依赖于IIS。
WCF能够配置成BasicHttpBinding来兼容(或者说变身成)WS。
WCF能够基于TCP或者MessegeQueue来传输数据。
WCF的可配置性比WS强,好比安全性。
WCF能够是有状态的,并支持事务。
WCF 支持多种通讯协议 Http/Https 、TCP/UDP、MSMQ、命名管道、对等网、消息可达性、事务流等。
  
WCF 能够与ASP.NET 集成、共享一个上下文(HttpContext)。
WCF 支持多种消息传输格式 :text,binary,mtom,Json 等。
WCF 安全性要强:支持对称安全、非对称安全、消息安全、传输安全、SSL 流安全、Windows 流安全等。
  
WCF 支持多种会话模式:单向、双向、请求/响应。
WCF 支持REST 。
WCF 支持多种格式化方式。DataContractSerializer、XmlSerializer、 DataContractJsonSerializer 等。
  
WCF 支持 WAS hosting、Windows 服务 hosting、Self-Hosting、IIS hosting 等。

WCF 支持多种并发模式:单例、单调、会话

相关文章
相关标签/搜索