代码改变世界

Web Service与WCF

2014-05-07 14:51  taozsay  阅读(199)  评论(0)    收藏  举报
WebService概念
WebService是一种跨编程语言和跨操作系统平台的远程分布式调用技术
 
SOAP(简单对象访问协议)
WebService使用SOAP协议实现跨编程语言和跨操作系统平台
–WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的返回结果是什么)。WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议(simple object access protocol,简单对象访问协议) 。
–SOAP协议 = HTTP协议 + XML数据格式
SOAP协议是基于HTTP协议的,两者的关系就好比高速公路是基于普通公路改造的,在一条公路上加上隔离栏后就成了高速公路。
–商店的服务员只要收到了钱就给客户提供货物,商店服务员不用关心客户是什么性质的人,客户也不用关心商店服务员是什么性质的人。同样, WebService客户端只要能使用HTTP协议把遵循某种格式的XML请求数据发送给WebService服务器, WebService服务器再通过HTTP协议返回遵循某种格式的XML结果数据就可以了,WebService客户端与服务器端不用关心对方使用的是什么编程语言。
–HTTP协议和XML是被广泛使用的通用技术,各种编程语言对HTTP协议和XML这两种技术都提供了很好的支持,WebService客户端与服务器端使用什么编程语言都可以完成SOAP的功能,所以,WebService很容易实现跨编程语言,跨编程语言自然也就跨了操作系统平台。
 
此外Web services 可以注册到UDDI中心.供其客户查找使用。
UDDI:统一描述、发现和集成(Universal Description, Discovery, and Integration)协议向 Web 服务注册中心定义 SOAP 接口。如果您有一段代码希望作为 Web 服务部署,UDDI 规范定义如何将您的服务描述添加至注册中心。如果您在寻找一段提供某种功能的代码,UDDI 规范定义如何查询注册中心以找到您想要的信息。
 
Web Service的特点
  • 跨平台的可互操作性
  • 跨防火墙的通信
  • 应用程序集成
  • B2B的集成
  • 软件和数据重用
  • 普遍、易用性

Web Service安全性

一、没有提供可信任与授权的完整的安全构架

       1、因为预知web service地址 ,黑客可能任意请求该服务来攻击服务器

       2、当用户得到web service地址后请求服务并可得到web service所有方法接口,通过非法参数调用方法

二、与Web Service相关的现有的标准和规范中,不包括对消息的保护的部分,即不能保证不被第三方截取或窜改

 

主要防范措施:

1、防火墙的规则

2、安全套接字

3、信息加密解密

4、身份验证授权

 

WCF

 

  1. A地址  Aadress(位址)
  2. B:  绑定 Binding(方式)
  3. C:  契约 Contract(内容)
  4. E : 终结点
  5. 宿主
  6. 跨域

[传输协议]//[机器名或域名][:可选端口]

 

服务契约  [ServiceContract]

数据契约  [DataContract]

契约用接口来实现

数据契约作用:让实体类可序列化

 

WCFWeb  Service 区别:

  1. Web service 只能为: http://      wcf的传输地址可以为:  http://  net.tcp:// 
  2. wcf可以通过双向绑定来实现通讯     Web service 只能单向绑定 
  3. 宿主问题: wcf服务宿主可以由 IIS/Windows服务/应用程序 提供