服务
服务(Services)是公开的一组功能的集合。从软件设计的角度考虑,软件设计思想经历了从函数发展到对象,从对象发展到组件,再从组件发展到服务的几次变迁。在这样一个漫长的发展旅程中,最后发展到服务的一步可以说是最具革新意义的一次飞跃。面向服务(Service-Orientation,SO)是一组原则的抽象,是创建面向服务应用程序的最佳实践。如果你不熟悉面向服务的原则,可以参见附录A,它介绍了使用面向服务的概况与目的。本书假定你对这些原则已经了然于胸。一个面向服务应用程序(SOA)将众多服务聚集到单个逻辑的应用程序中,这就类似于面向组件的应用程序聚合组件,或者面向对象的应用程序聚合对象,如图1-1所示。
|
| 图1-1:面向服务应用程序 |
服务的客户端只是使用服务功能的一方。理论上讲,客户端可以是任意的Windows窗体类、ASP.NET页面或其他服务。
客户端与服务通过消息的发送与接收进行交互。消息可以直接在客户端与服务之间进行传递,也可以通过中间方进行传递。WCF中的所有消息均为SOAP消息。注意WCF的消息与传输协议无关,这与Web服务不同。因此,WCF服务可以在不同的协议之间传输,而不仅限于HTTP。WCF客户端可以与非WCF服务完成互操作,而WCF服务也可以与非WCF客户端交互。不过,如果需要同时开发客户端与服务,则创建的应用程序两端都要求支持WCF,这样才能利用WCF的特定优势。
因为服务的创建对于外界而言是不透明的,所以WCF服务通常通过公开元数据(Metadata)的方式描述可用的功能以及服务可能采用的通信方式。元数据的发布可以预先定义,它与具体的技术无关(Technology-Neutral),例如采用基于HTTP-GET方式的WSDL,或者符合元数据交换的行业标准。一个非WCF客户端可以将元数据作为本地类型导入到本地环境中。相似的,WCF客户端也可以导入非WCF服务的元数据,然后以本地CLR类与接口的方式进行调用。
服务的执行边界
WCF不允许客户端直接与服务交互,即使它调用的是本地机器内存中的服务。相反,客户端总是使用代理(Proxy)将调用转发给服务。代理公开的操作与服务相同,同时还增加了一些管理代理的方法。
WCF允许客户端跨越执行边界与服务通信。在同一台机器中(参见图1-2),客户端可以调用同一个应用程序域中的服务,也可以在同一进程中跨应用程序域调用,甚至跨进程调用。
|
| 图1-2:使用WCF实现相同机器通信 |
![]() |
| 图1-3:使用WCF实现不同机器通信 |
| 回书目 上一节 下一节 |
|
· C语言之基础自测获奖名.. · Linux服务器架设自测获.. · 边界网关安全防护自测.. · Cisco CCNA最新真题自.. · 我在美联储监管银行 书.. · 我在美联储监管银行 目.. |
· 我在美联储监管银行 前.. · 入侵的艺术 目录 · 入侵的艺术 前言 · 网管员全真面试题自测.. · 子弹的本质—— 形势没.. · 学习大量的词汇—— 对.. |
|
|||
| · 国际文档格式标准开战 · 操作系统密码恢复专题 · Windows Server 2008 · 华为、贝恩资本22亿美.. · 2008年IT产业29个预言 · SQL Server 2005全解 · Windows系统加固专题 · Windows Home Server .. |
· 2007盘点专题:有多少.. · 病毒查杀专题 · 802.11n:下一代的无线.. · 反垃圾邮件技术应用 · 运营商封堵非法ADSL共享 · VoIP的安全性探讨 · 甲骨文85亿美元收购BEA · 龙芯要做中国的“奔腾” |
||
|
|||
| · VPN技术 · SQL Server 2005全解 · SOA 面向服务架构 · 子网掩码教程 · SQL Server 2005全解 · 三层交换技术专题 · Windows远程桌面应用 · 深入了解PGP加密技术 |
· MySQL数据库备份 · 病毒查杀专题 · VPN技术 · Solaris 10 配置管理 · Linux 基础 · SSL VPN详细知识 · Linux防火墙 · 路由器设置与口令恢复 |
||
|
|||
| · VPN技术 · SQL Server 2005全解 · SQL Server 2005全解 · SOA 面向服务架构 · 子网掩码教程 · 三层交换技术专题 · Windows远程桌面应用 · MySQL数据库备份 |
· 身份认证技术 · 病毒查杀专题 · 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · 常用交换机典型配置 · Linux 集群技术专题 · VPN技术 |
||