使用WS-*协议

news/2025/1/19 15:09:40/

其他Microsoft分布式技术可以使用而WCF不能使用的WS-*规范并不多。WCF理解WS-*规范的架构,这些规范可以定义处理安全性、可靠性和事务的方式。为了获得这个功能,以前的许多开发人员转而使用WSE。图32-1显示了WCF依赖的体系结构。

(点击查看大图)图  32-1

如果开发人员愿意,WCF就可以使用这些规范。消息传输层定义的消息依赖SOAP(发送为明文或以二进制格式发送)。其他高级的WS-*规范主要使用SOAP标题,因此可以自包含消息,不依赖传输协议来提供安全性、可靠性或其他超出简单传输消息之外的功能。消息传输优化机制(Message Transmission Optimization Mechanism,MTOM)是替代直接Internet消息封装(Direct Internet Message Encapsulation,DIME)的一种新功能,它是将二进制对象和SOAP消息一起传输的方式。二进制对象的一个例子是要通过WCF服务提供的JPEG图像。

"元数据"部分允许定义接口。在建立要包含在应用程序中的服务时,应确定服务需要的参数,以使用户过程工作。另外,在给服务传送了参数后,还需要知道服务会返回什么数据,以便在自己的应用程序中正确使用传送回来的信息。没有这些信息,就很难使用服务。消息的表示有标准的方式,例如用SOAP等技术表示,获得要使用的服务的描述也有业界标准方式。

WCF架构使用Web服务描述语言(Web Services Description Language,WSDL)描述服务。WSDL使用XML描述服务,定义该服务能理解的消息格式。WCF在元数据层中提供的其他功能还有WS-Policy。这个规范可以让用户理解使用服务需要什么条件。

WCF的"安全性"部分可以使用WS-Security。在WS-Security推出之前,Web服务缺乏安全模型,许多公司都不敢大量使用Web服务,也不能使用面向服务的体系结构。Microsoft、IBM和VeriSign开发出了WS-Security后,解决了保护消息的主要问题:证书的交换、消息的完整性和消息的机密性。

WS-Security允许两个实体在消息内部(在消息的SOAP标题中)交换他们的安全证书。WS-Security的主要优点是,它不需要使用特定类型的证书集,而允许使用任意类型的证书。另外,由于可以通过多个路由器发送消息,消息在到达最终的目的地之前,还可以从一处多次发送到另一处,因此必须确保消息在传输过程中不被篡改。消息从一个SOAP路由器传送到另一个SOAP路由器时,这些SOAP节点可以在消息中增删内容。如果SOAP节点落入有恶意的团体手中,就会危及消息的完整性。此时WS-Security就可以大显身手了。还可以用WS-Security加密全部或部分SOAP消息。消息在虚拟世界中传输时,可能会被不应查看其内容的团体截获。因此,最好加密消息的内容。当消息到达指定的接收器时,应用程序可以使用密钥解密消息,以便读取其内容。

WS-SecureConversation可以建立一个连接,让实体交换多个消息,并维护他们已建立的安全措施。WS-Trust与WS-Security一起使用,可以发布安全标记,实体可以通过它交换这些标记。这个规范还可以在两个实体之间建立信任关系。

WS-ReliableMessaging可以在消息之间进行端对端的可靠通信,确保消息的传输。

"事务处理"部分允许使用WS-Coordination和WS-AtomicTransaction。WS- Coordination用于描述多个服务之间的关系。公司开始在其企业中开发大量服务时,会发现许多已开发出来的服务彼此有关系,此时就可以使用WS-Coordination。这个规范由其他规范扩展,进一步定义了特定的协作类型。

WS-AtomicTransaction使用WS-Coordination和WS-Security,定义服务的事务处理过程。原子事务处理是创建一个事务处理的过程,该过程要么全部完成,要么什么也不做。这些事务的生存期比较短,所以在使用它们时,要锁定数据资源,占用物理资源,例如连接、线程和内存。

这个讨论的重点是,全面了解可以使用的WS-*规范。使用WCF的优势是,不必知道有这些规范,通过编程或声明性编程方式就可以使用这些规范提供的功能。


http://www.ppmy.cn/news/422065.html

相关文章

WSAIoctl

int WSAAPI WSAIoctl(SOCKET s,//一个套接口的句柄。 DWORD dwIoControlCode,//将进行的操作的控制代码 LPVOID lpvInBuffer, //输入缓冲区的地址 DWORD cbInBuffer,//输出缓冲区的地址 LPVOID lpvOutBuffer, //输入缓冲区的大小 DWORD cbOutBuffer, //输出缓冲区的大小 …

WSE(Web Services Enhancements)

WSE(Web Services Enhancements)是微软为了使开发者通过.NET创建出更强大,更好用的Web Services而推出功能增强插件。现在最新的版本是WSE2.0(SP2).本文描述了如何使用WSE2.0中的安全功能增强部分来实现安全的Web Services。WSE的安全功能增强实现的是WS-Security标…

Swaks

Swaks是由John Jetmore编写和维护的一种功能强大,灵活,可脚本化,面向事务的SMTP测试工具。可向任意目标发送任意内容的邮件。 关于名字 “swaks”这个名字是”SWiss Army Knife Smtp”的首字母缩略词. 发布网站http://www.jetmore.org/joh…

WS

主营业务:内容分发与加速、服务器托管与租用、面向运营商的网络优化解决方案 主要技术:智能负载均衡技术、自动路由技术、任务跟踪管理技术、流量管理技术、分布式海量文件存储技术、大批量文件快速分发技术 GSLB-Global Server Load Balance, 全局负载均…

webssh

vue djangolinux实现webssh 技术栈 xterm.js:做到vue的表现型 websocket: 做vue和django之间的通信 paramiko: 建立SSH连接通道 ssh: 与linux进行连接 threading:多条数据返回前端,io密集型,用…

wss配置

配置wss的前提是已经配通了ws,可以正常连接并发送数据,并且已经配置好ssl证书,网站可以通过https访问 那么问题来了,为啥子wss不行咧?咋配置wss咧?为啥要配置wss呢? 好咧,下面进行…

WSS

1. 下载安装wampserver 2. 下载wss程序包 3. 将wss程序包下的wss目录拷贝至wampserver安装目录/www/ 4. 修改httpd.conf : a. 修改Listen 端口号 b. 找到<Directory>项&#xff0c;注释#Deny from all, 增加Allow from all c. 启用mod_proxy_http.so //多个web服…

WSADATA

WSADATA 这个结构被用来存储 被WSAStartup函数调用后返回的 Windows Sockets数据。它包含Winsock.dll执行的数据。 结构原型&#xff1a;   struct WSAData { WORD wVersion; WORD wHighVersion; char szDescription[WSADESCRIPTION_LEN1]; char szSystemStatus[WSA…