WCF服务编程
基本信息
- 原书名: Programming WCF Services
- 原出版社: O'Reilly Media, Inc.
- 作者: Juval Lowy Clemens Vasters [作译者介绍]
- 译者: 张逸 徐宁
- 出版社:机械工业出版社
- ISBN:9787111227786
- 上架时间:2008-1-15
- 出版日期:2008 年1月
- 开本:16开
- 页码:590
- 版次:1-1
- 所属分类:
计算机 > 软件与程序设计 > 网络编程 > 综合
编辑推荐
上架首月即进入china-pub畅销榜TOP10
本书是介绍WCF的开山之作。它全面准确地为我们描述了一幅WCF画卷的清明上河图。
推荐阅读
内容简介回到顶部↑
本书是wcf的权威指南。wcf是microsoft推出的在windows操作系统下开发面向服务应用程序的统一平台,是革命性的技术平台。作为微软授予的“软件英杰”,本书作者juval lwy曾经参与了wcf的战略性设计,并与wcf的开发团队一同合作,因此本书具有很高的实用价值,它对wcf进行了深入的技术剖析,而非死板的文档化描述。本书关注隐藏在特殊设计决策之后的根本原理,这些原理包括soa开发中极度匮乏的文档,以及难以理解的特性等。通过本书,开发者与架构师不仅能够了解如何进行wcf程序设计,还能够掌握相关的设计准则、最佳实践以及wcf存在的缺陷。
本书包括50多个工具和辅助类,以及70多个设计图,它们都设计用来提高我们的生产力,保障wcf服务的质量,同时能弥补wcf自身存在的一些缺陷,并帮助简化和自动化特定任务。
除了介绍面向服务的基础知识外,本书涵盖了以下内容:
•服务契约分解。
•事务与错误处理。
•数据契约版本控制与封送。
•并发管理。
•可伸缩性策略。
•队列服务。
•操作、调用与事件。
•面向服务安全性。
•本书从软件工程的角度出发,深入探索了wcf的每个主题。本书能够使您如虎添翼,从而设计出可维护的、可扩展的、可重用的soa应用程序。
本书包括50多个工具和辅助类,以及70多个设计图,它们都设计用来提高我们的生产力,保障wcf服务的质量,同时能弥补wcf自身存在的一些缺陷,并帮助简化和自动化特定任务。
除了介绍面向服务的基础知识外,本书涵盖了以下内容:
•服务契约分解。
•事务与错误处理。
•数据契约版本控制与封送。
•并发管理。
•可伸缩性策略。
•队列服务。
•操作、调用与事件。
•面向服务安全性。
•本书从软件工程的角度出发,深入探索了wcf的每个主题。本书能够使您如虎添翼,从而设计出可维护的、可扩展的、可重用的soa应用程序。
作译者回到顶部↑
本书提供作译者介绍
张逸,正大软件集团高级技术管理人员、系统架构师。先后在中兴通讯、HP等国内外大型软件企业任职,参与了AAA、BOE—CIMS、NCIC—CRM和EAS等项目的管理、设计与开发。他主要专注的技术领域为.NET,他熟悉C#、ASP.NET、Web Service、.NET Remoting和WCF等技术,参与了大型项目的分布式架构设计以及企业信息化解决方案的实施。他是《软件设计精要与模式》一书的作者,在面向对象领域具有一定造诣,精通设计模式、测试驱动开发、极限编程与UML等技术或思想的运用。此外,他还担任公司的软件项目管理工作与技术团队建.. << 查看详细
目录回到顶部↑
序
前言
第1章 wcf基础
什么是wcf
服务
地址
契约
托管
绑定
终结点
元数据交换
客户端编程
编程方式配置与管理方式配置
wcf体系架构
使用通道
可靠性
第2章 服务契约
操作重载
契约的继承
服务契约的分解与设计
前言
第1章 wcf基础
什么是wcf
服务
地址
契约
托管
绑定
终结点
元数据交换
客户端编程
编程方式配置与管理方式配置
wcf体系架构
使用通道
可靠性
第2章 服务契约
操作重载
契约的继承
服务契约的分解与设计
译者序回到顶部↑
软件开发技术始终处于变迁之中,更新速度有时候甚至超过了定义硬件发展的摩尔定律值。诚然,软件设计思想的发展略微滞后,然而在这过往的几十年来,设计思想却仍然经历了数次重大的变迁。每一次变迁都会给整个软件开发行业带来翻天覆地的变化。在最近十余年,就在面向对象设计与面向组件设计已经成为软件开发的主流开发方法之时,软件设计又开始踏上面向服务设计的崭新之路。.
从面向组件设计到面向服务设计无疑是软件设计的又一次重大飞跃,它摆脱了组件设计固有的约束与桎梏,不再依赖于实现的技术与平台,以“服务”为核心的实现原则,可以极大程度地解除组件之间的依赖关系,而面向服务框架在事务处理、安全控制、消息传输等方面提供的公共基础功能模块,又使得开发者可以从实现基础功能的工作中解放出来,服务的设计者可以只关注于与企业应用密切相关的业务逻辑。可以说,面向服务设计在互操作性、可扩展性、可重用性以及可伸缩性等诸多方面有着得天独厚的优势与巨大潜能。
是的,SOA(Service Oriented Application,面向服务应用程序)的时代已经到来!“弄潮儿向涛头立,手把红旗旗不湿”,软件开发人员从来都不缺乏弄潮儿迎接怒涛的勇气,谁能够坚定地走在更前面,谁就能够具有更广阔的视野。
WCF无疑为.NET开发者提供了决战SOA的制胜利剑。WCF是基于Windows平台下开发和部署服务的SDK,为服务提供了运行时环境,以便于开发者设计服务、部署服务与运行服务。WCF是.NET Framework 3.0的一个重要组成部分,它集成了.NETRemoting、Web服务、WSE以及MSMQ的所有特性,使得开发者能够以统一的方式开发面向服务的应用程序。..
在WCF还未推出正式版本(当时被命名为Indigo)的时候,我就开始关注它的技术元素与技术发展。出于对SOA的认知,我能够预见到WCF的远大前程。无疑,WCF是微软软件产品战略中针对企业级应用的重要产品。以WCF为基础框架搭建面向服务的企业级应用程序,以WF工作流引擎支撑企业应用中业务流程的传递与控制,以Cardspace和WCF固有的安全策略保证企业信息的安全,最后以ASP.NET AJAX、WPF和Silverlight技术丰富客户端界面的绚丽表现,从而改善企业客户对应用程序的体验,这就是微软实现企业级应用的霸业宏图。WCF在其中的地位举足轻重。本书可以称得上是介绍WCF技术的开山之作。它全面准确地为我们描绘了一幅WCF画卷的清明上河图。Juval Lowy作为全世界享有益誉的分布式系统专家,一位循循善诱的技术讲师与作家,不仅具有高屋建瓴的体系架构知识,同时又能够细致入微地观察技术细节,然后用深入浅出的语言打造成通俗易懂的著作。就像清明上河图一般,巨细靡遗,浑然天成。
我很荣幸自己能够翻译Juval Lowy的这本巨著。然而,在兴奋之余,也难免感到诚惶诚恐。对于一本书而言,译者的翻译可以称得上是赋予书籍第二次生命,“信”乃其骨,“达”乃其肉,“雅”则为其貌。我担心自己拙劣的翻译会让这本书的第二次生命成为一次苦难的历程。翻译自古难为,译者就像走钢丝绳的杂耍者,如果不能准确、优雅地表达原作者的含义,就会失去平衡,从高达数丈的钢丝绳上摔下来。然而,这份惶恐与踌躇,终究敌不过本书给我带来的诱惑,何况,我自有作为一名技术人员的几分自信。同时,在我的诚邀之下,徐宁先生的“加盟”无疑又为本书的翻译加重了成功的砝码。作为微软的MVP,徐宁先生曾经参与了Patrick Smacchia著作《Practical.NET 2 and C#2》的翻译,拥有非常丰富的翻译经验。
本书的第7章、第9章以及第10章由徐宁先生翻译,而我则负责翻译除这几章之外的所有章节,同时包括附录、序、前言以及第10章的部分章节,并负责全书的技术审校。由于译者技术水平有限,疏漏在所难免,敬请广大读者指正。我要感谢机械工业出版杜引进这样一本介绍WCF技术的杰作,它必然会在面向服务设计技术领域的众多书籍中占据重要的地位,并为推动国内的WCF技术作出卓越贡献。感谢机械工业出版杜华章分杜的编辑们,正是你们的工作促成了本书中文版的顺利出版。
感谢我的合作者徐宁先生,你的加入无异于雪中送炭。否则,我一个人无法在如此短的时间内翻译完成这本厚达600多页的巨著。最后,我要感谢我的父母,我的爱妻漆茜,感谢你们的宽容、体谅以及默默的支持。...
——张逸
Microsoft Windows Server System-Connected
System Developer,MVP
2007年10月30日于重庆高新园
从面向组件设计到面向服务设计无疑是软件设计的又一次重大飞跃,它摆脱了组件设计固有的约束与桎梏,不再依赖于实现的技术与平台,以“服务”为核心的实现原则,可以极大程度地解除组件之间的依赖关系,而面向服务框架在事务处理、安全控制、消息传输等方面提供的公共基础功能模块,又使得开发者可以从实现基础功能的工作中解放出来,服务的设计者可以只关注于与企业应用密切相关的业务逻辑。可以说,面向服务设计在互操作性、可扩展性、可重用性以及可伸缩性等诸多方面有着得天独厚的优势与巨大潜能。
是的,SOA(Service Oriented Application,面向服务应用程序)的时代已经到来!“弄潮儿向涛头立,手把红旗旗不湿”,软件开发人员从来都不缺乏弄潮儿迎接怒涛的勇气,谁能够坚定地走在更前面,谁就能够具有更广阔的视野。
WCF无疑为.NET开发者提供了决战SOA的制胜利剑。WCF是基于Windows平台下开发和部署服务的SDK,为服务提供了运行时环境,以便于开发者设计服务、部署服务与运行服务。WCF是.NET Framework 3.0的一个重要组成部分,它集成了.NETRemoting、Web服务、WSE以及MSMQ的所有特性,使得开发者能够以统一的方式开发面向服务的应用程序。..
在WCF还未推出正式版本(当时被命名为Indigo)的时候,我就开始关注它的技术元素与技术发展。出于对SOA的认知,我能够预见到WCF的远大前程。无疑,WCF是微软软件产品战略中针对企业级应用的重要产品。以WCF为基础框架搭建面向服务的企业级应用程序,以WF工作流引擎支撑企业应用中业务流程的传递与控制,以Cardspace和WCF固有的安全策略保证企业信息的安全,最后以ASP.NET AJAX、WPF和Silverlight技术丰富客户端界面的绚丽表现,从而改善企业客户对应用程序的体验,这就是微软实现企业级应用的霸业宏图。WCF在其中的地位举足轻重。本书可以称得上是介绍WCF技术的开山之作。它全面准确地为我们描绘了一幅WCF画卷的清明上河图。Juval Lowy作为全世界享有益誉的分布式系统专家,一位循循善诱的技术讲师与作家,不仅具有高屋建瓴的体系架构知识,同时又能够细致入微地观察技术细节,然后用深入浅出的语言打造成通俗易懂的著作。就像清明上河图一般,巨细靡遗,浑然天成。
我很荣幸自己能够翻译Juval Lowy的这本巨著。然而,在兴奋之余,也难免感到诚惶诚恐。对于一本书而言,译者的翻译可以称得上是赋予书籍第二次生命,“信”乃其骨,“达”乃其肉,“雅”则为其貌。我担心自己拙劣的翻译会让这本书的第二次生命成为一次苦难的历程。翻译自古难为,译者就像走钢丝绳的杂耍者,如果不能准确、优雅地表达原作者的含义,就会失去平衡,从高达数丈的钢丝绳上摔下来。然而,这份惶恐与踌躇,终究敌不过本书给我带来的诱惑,何况,我自有作为一名技术人员的几分自信。同时,在我的诚邀之下,徐宁先生的“加盟”无疑又为本书的翻译加重了成功的砝码。作为微软的MVP,徐宁先生曾经参与了Patrick Smacchia著作《Practical.NET 2 and C#2》的翻译,拥有非常丰富的翻译经验。
本书的第7章、第9章以及第10章由徐宁先生翻译,而我则负责翻译除这几章之外的所有章节,同时包括附录、序、前言以及第10章的部分章节,并负责全书的技术审校。由于译者技术水平有限,疏漏在所难免,敬请广大读者指正。我要感谢机械工业出版杜引进这样一本介绍WCF技术的杰作,它必然会在面向服务设计技术领域的众多书籍中占据重要的地位,并为推动国内的WCF技术作出卓越贡献。感谢机械工业出版杜华章分杜的编辑们,正是你们的工作促成了本书中文版的顺利出版。
感谢我的合作者徐宁先生,你的加入无异于雪中送炭。否则,我一个人无法在如此短的时间内翻译完成这本厚达600多页的巨著。最后,我要感谢我的父母,我的爱妻漆茜,感谢你们的宽容、体谅以及默默的支持。...
——张逸
Microsoft Windows Server System-Connected
System Developer,MVP
2007年10月30日于重庆高新园
前言回到顶部↑
2001年8月,我在微软首次了解到使用托管代码重写COM+的技术细节。随后一切如常,直到2002年7月,在对C#2.0作战略性设计评审期间,负责Remoting的程序经理提出了一个宏伟的计划,试图将Remoting重写为开发者真正能够使用的技术。同时,微软也在寻求合作,共同为ASMX中的Web服务制定全新的安全规范,起草一系列附加的Web 服务规格说明书。.
到了2003年7月,我有机会体验了一个全新的事务型体系架构,它能够改善.NET编程中关于事务处理的相关缺陷。当时,并没有一个稳定的编程模型能够统一那些独立的技术。直到2003年末,我有幸获邀参加一个由同行专家组成的小型团队,对代号为Indigo的开发平台进行战略性的设计评审。就我所知,这个开发团队可谓人才济济,汇聚了许多世界上最优秀的天才。在接下来的2~3年时间内,Indigo一共经历了三代编程模型版本的演变。就在2005年早期发布了基于终结点驱动对象模型的版本之后,终于在当年8月逐渐稳定为一个固定的版本,同时更名为Windows Communication Foundation(WCF)。要想得到开发者的众口称赞,可谓难于上青天,然而WCF却给了我们不同的诠释。对于Web服务的开发者而言,WCF就是最终的应对互操作性的解决方案,实现了大多数行业标准。分布式应用程序的开发者则认为它简化了远程调用以及队列调用。系统开发者认为它具备下一代面向产品的特征,诸如事务与宿主,为应用程序提供了现成的基础功能模块。至于应用程序的开发者,WCF则为他们构建应用程序提供了声明式的编程模型。而对于架构师,WCF则是构建面向服务应用程序的最终选择。一言以敝之,WCF涵盖了以上所有的一切,因为设计WCF的目的就是为了能够统一微软的下一代全新的技术。
对我而言,WCF就是下一代开发者平台,它在很大程度上包容了最初的.NET编程理念。任何.NET开发者都可以使用WCF,而不用考虑应用程序的类型、规模或者行业领域。WCF是一门基础技术,它提供了生成服务与应用程序的“终南捷径”,完全符合我所认同的良好的设计准则。WCF从一开始就是工程化的,能够简化应用程序的开发与部署,降低开发成本。WCF服务用于构建面向服务的应用程序,不管这些程序是独立的桌面应用程序,还是Web应用程序和服务,还是高端的企业应用程序。
本书的结构
本书涵盖了所有设计开发基于WCF的面向服务应用程序所需的知识与技能。通过本书,你可以看到如何利用WCF内建的特性,例如服务托管、实例管理、并发管理、事务、离线队列调用以及安全。本书会为你展示如何使用这些特性并探究它们在这种特定的设计思路下的实现原理。你不仅能够了解到WCF编程技术,以及相关的系统知识,同时还包括了相应的设计方案、诀窍、最佳实践以及存在的缺陷。我之所以站在软件工程的立场阐述本书的每个主题与特征,是因为我期望它能够帮助读者不仅要成为一名WCF专家,而且还要成为一名优秀的软件工程师。本书带给您的这种认知能够使你如虎添翼,让你的应用程序在可维护性、可扩展性、可重用性以及高效性方面,更加符合软件工程的理念。
本书回避了许多WCF的实现细节,更多的是注重使用WCF的实用性与可行性:如何应用WCF技术?如何选择可行的设计原则与编程模型?本书大量使用了.NET 2.0技术,从某种角度来说,本书也可以算是一本高级的C#技术书籍。除此之外,本书包含了大量我所编写的套件类、工具类以及辅助类。这些内容可以提高你的开发效率,保障开发的WCF服务的质量。我还开发了一个基于WCF技术的小型框架,用以弥补一些设计缺陷,或者简化确切的任务,使其能够自动化实现。在书中,我像介绍WCF技术那样,详细地介绍了这些工具、理念与技术。同时,我开发的框架则为你演示了如何对WCF进行扩展。
在过去的两年中,我在MSDN杂志上发表了大量关于WCF的文章。目前,我还在为杂志的基础专栏(Foundations Column)撰写WCF技术文章。我要感谢杂志社能够允许我将这些文章收录到本书中。如果你曾经阅读过这些文章,或许能够从本书的相关章节中发现它们的影子。比较而言,本书的章节更加全面,提供了WCF的多种视角、技术与实例,而且这些主题也与书中的其他章节紧密相连。
我在每一章中都系统地讲解了一个专题,深入探讨了这些专题的内容。然而,每一章又都依赖于前一章的内容,因此,我建议你最好按照先后顺序阅读本书。
以下是书中各章节以及附录的摘要。
第1章,WCF基础
该章首先阐释了WCF的技术原理,并描述了WCF的基础概念和构建模块,例如地址、契约、绑定、终结点、托管以及客户端。在该章最后还讨论了WCF体系架构,它将是帮助我们理解后面章节的关键。该章假定读者已经了解面向服务的思想与优势。如果你不具备这方面的知识,可以首先阅读附录A的内容。即使你已经熟悉了WCF的基础概念,我仍然建议你至少能够快速地浏览该章的内容,它不仅能够巩固你已有的知识,更在于该章介绍的一些辅助类与技术术语有助于阅读全书。
第2章,服务契约
该章致力于介绍服务契约的设计与开发。首先,你会了解到一些有用的技术,包括服务契约的重载与继承以及其他高级技术。然后,该章深入探讨了如何设计以及分解契约,以利于服务的重用、可维护性以及可扩展性。最后,展示如何通过公开契约元数据完成运行时的交互编程。
第3章,数据契约
如果没有实际存在的可共享的数据类型本身,如果没有使用相同的开发技术,应该如何处理客户端与服务之间的数据交换?在该章,你可以看到如何处理某些有趣的现实问题,例如数据版本控制,以及传递元素项集合的方式。
第4章,实例管理..
究竟是哪一种服务实例处理哪一种客户端的请求?该章给出了问题之钥。WCF支持多种服务实例管理、激活以及生命周期管理技术,这些技术与系统规模和性能息息相关。该章给出了每一种实例管理模式之间的关系,指导读者何时以及如何有效地使用它们。该章还介绍与之相关的主题,例如限流。
第5章,操作
随着对各种类型操作的处理,客户端能够调用服务,遵循相关的设计原则,例如如何改善和扩展基础功能,以支持回调的安装与销毁,管理回调端口与通道,提供类型安全的双向代理。
第6章,错误
到了2003年7月,我有机会体验了一个全新的事务型体系架构,它能够改善.NET编程中关于事务处理的相关缺陷。当时,并没有一个稳定的编程模型能够统一那些独立的技术。直到2003年末,我有幸获邀参加一个由同行专家组成的小型团队,对代号为Indigo的开发平台进行战略性的设计评审。就我所知,这个开发团队可谓人才济济,汇聚了许多世界上最优秀的天才。在接下来的2~3年时间内,Indigo一共经历了三代编程模型版本的演变。就在2005年早期发布了基于终结点驱动对象模型的版本之后,终于在当年8月逐渐稳定为一个固定的版本,同时更名为Windows Communication Foundation(WCF)。要想得到开发者的众口称赞,可谓难于上青天,然而WCF却给了我们不同的诠释。对于Web服务的开发者而言,WCF就是最终的应对互操作性的解决方案,实现了大多数行业标准。分布式应用程序的开发者则认为它简化了远程调用以及队列调用。系统开发者认为它具备下一代面向产品的特征,诸如事务与宿主,为应用程序提供了现成的基础功能模块。至于应用程序的开发者,WCF则为他们构建应用程序提供了声明式的编程模型。而对于架构师,WCF则是构建面向服务应用程序的最终选择。一言以敝之,WCF涵盖了以上所有的一切,因为设计WCF的目的就是为了能够统一微软的下一代全新的技术。
对我而言,WCF就是下一代开发者平台,它在很大程度上包容了最初的.NET编程理念。任何.NET开发者都可以使用WCF,而不用考虑应用程序的类型、规模或者行业领域。WCF是一门基础技术,它提供了生成服务与应用程序的“终南捷径”,完全符合我所认同的良好的设计准则。WCF从一开始就是工程化的,能够简化应用程序的开发与部署,降低开发成本。WCF服务用于构建面向服务的应用程序,不管这些程序是独立的桌面应用程序,还是Web应用程序和服务,还是高端的企业应用程序。
本书的结构
本书涵盖了所有设计开发基于WCF的面向服务应用程序所需的知识与技能。通过本书,你可以看到如何利用WCF内建的特性,例如服务托管、实例管理、并发管理、事务、离线队列调用以及安全。本书会为你展示如何使用这些特性并探究它们在这种特定的设计思路下的实现原理。你不仅能够了解到WCF编程技术,以及相关的系统知识,同时还包括了相应的设计方案、诀窍、最佳实践以及存在的缺陷。我之所以站在软件工程的立场阐述本书的每个主题与特征,是因为我期望它能够帮助读者不仅要成为一名WCF专家,而且还要成为一名优秀的软件工程师。本书带给您的这种认知能够使你如虎添翼,让你的应用程序在可维护性、可扩展性、可重用性以及高效性方面,更加符合软件工程的理念。
本书回避了许多WCF的实现细节,更多的是注重使用WCF的实用性与可行性:如何应用WCF技术?如何选择可行的设计原则与编程模型?本书大量使用了.NET 2.0技术,从某种角度来说,本书也可以算是一本高级的C#技术书籍。除此之外,本书包含了大量我所编写的套件类、工具类以及辅助类。这些内容可以提高你的开发效率,保障开发的WCF服务的质量。我还开发了一个基于WCF技术的小型框架,用以弥补一些设计缺陷,或者简化确切的任务,使其能够自动化实现。在书中,我像介绍WCF技术那样,详细地介绍了这些工具、理念与技术。同时,我开发的框架则为你演示了如何对WCF进行扩展。
在过去的两年中,我在MSDN杂志上发表了大量关于WCF的文章。目前,我还在为杂志的基础专栏(Foundations Column)撰写WCF技术文章。我要感谢杂志社能够允许我将这些文章收录到本书中。如果你曾经阅读过这些文章,或许能够从本书的相关章节中发现它们的影子。比较而言,本书的章节更加全面,提供了WCF的多种视角、技术与实例,而且这些主题也与书中的其他章节紧密相连。
我在每一章中都系统地讲解了一个专题,深入探讨了这些专题的内容。然而,每一章又都依赖于前一章的内容,因此,我建议你最好按照先后顺序阅读本书。
以下是书中各章节以及附录的摘要。
第1章,WCF基础
该章首先阐释了WCF的技术原理,并描述了WCF的基础概念和构建模块,例如地址、契约、绑定、终结点、托管以及客户端。在该章最后还讨论了WCF体系架构,它将是帮助我们理解后面章节的关键。该章假定读者已经了解面向服务的思想与优势。如果你不具备这方面的知识,可以首先阅读附录A的内容。即使你已经熟悉了WCF的基础概念,我仍然建议你至少能够快速地浏览该章的内容,它不仅能够巩固你已有的知识,更在于该章介绍的一些辅助类与技术术语有助于阅读全书。
第2章,服务契约
该章致力于介绍服务契约的设计与开发。首先,你会了解到一些有用的技术,包括服务契约的重载与继承以及其他高级技术。然后,该章深入探讨了如何设计以及分解契约,以利于服务的重用、可维护性以及可扩展性。最后,展示如何通过公开契约元数据完成运行时的交互编程。
第3章,数据契约
如果没有实际存在的可共享的数据类型本身,如果没有使用相同的开发技术,应该如何处理客户端与服务之间的数据交换?在该章,你可以看到如何处理某些有趣的现实问题,例如数据版本控制,以及传递元素项集合的方式。
第4章,实例管理..
究竟是哪一种服务实例处理哪一种客户端的请求?该章给出了问题之钥。WCF支持多种服务实例管理、激活以及生命周期管理技术,这些技术与系统规模和性能息息相关。该章给出了每一种实例管理模式之间的关系,指导读者何时以及如何有效地使用它们。该章还介绍与之相关的主题,例如限流。
第5章,操作
随着对各种类型操作的处理,客户端能够调用服务,遵循相关的设计原则,例如如何改善和扩展基础功能,以支持回调的安装与销毁,管理回调端口与通道,提供类型安全的双向代理。
第6章,错误
序言回到顶部↑
对于分布式系统,或者说业界不断提及的互联系统的设计与构建,我与本书作者Juval可谓志同道合。我们经历了相似的技术历程,虽然我们效力于不同的公司,负责不同的项目,工作在不同的地方,但我们却有着共同的目标。.
20世纪90年代早期,我们开始了对一种新技术理念的探索,即实现计算机之间的通信与交互。这种被称为分布式系统应用程序的平台技术也逐渐为世人所了解。随着工作站与服务器硬件的逐渐普及,经济因素不再成为制约发展的瓶颈,构建不依赖于单事务网络中心的大型系统就成为了技术热点。对于大范围的数据交换系统而言,同样如此。在过去,我的电话公司如果要求每秒钟传递超过1200位的数据几乎是不可能的,而在如今看来连这都达不到简直不可思议。在同样的线路上,今天的传输速度已经达到了6Mbit/s。这真是一个激动人心的时代啊。
随着分布式计算技术的逐渐成熟,在90年代早期分属两大阵营的大型分布式系统技术渐露峥嵘,即数字设备公司(最终被康柏兼并,并入惠普)主导的DCE技术,以及OMG组织(主要由IBM支持)倡导的CORBA技术。然而在1996~1997期间,所有这些杰出的工程学成果却突然停滞不前。因为此时是互联网的世界,整个世界都疯迷于HTML、HTTP、风险投资以及IPO(Initial Public Offerings,首次公开募股)。整个行业花费了整整10年的时间才逐渐从泡沫经济带来的崩溃中恢复过来。不仅是经济的复苏,技术的发展也重新走回正轨。随之获益的是分布式系统技术由此打破了过去由两大阵营各占半壁江山的局面,多达数十种新的分布式技术如雨后春笋一般展现在人们眼前,使我们拥有了更多的抉择权。
直到2007年,整个行业仍然在为分布式系统的正确编码方式争论不休。Sun公司或者BEA力主Java;而我在微软的同事(包括我)则坚定地主张C#或者Visual Basic才是最佳的实现方式。无论是Sun、BEA、IBM还是微软,都希望机器之间的通信标准能够达成一致。试想昔日的DCE与CORBA之争,正是因为达成了一致的标准规范才为如今的SOAP 1.1奠定了基础,从而开创了分布式技术的盛大场面。..
自从SOAP 1.1作为技术说明(Technical Note)被提交给W3C,到现在已有超过6年的历史。期间,多家行业合作商共同开发与协定了众多基于SOAP的规范,从包括寻址以及众多安全选项的基础规范,到诸如原子事务协作的企业协议。我在微软的团队,仍然非正式地称呼我们的产品为“Indigo”,它代表了整个开发与协商过程中耗费的所有心血。如果没有IBM、微软以及其他合作伙伴对创建通用标准集的大力支持,在竞争如此激烈的企业领域几乎不可能存在开放标准的框架,更不可能具有支持多个开发商以及各种平台的多种实现。
诚然,WCF的实现超出了预计需要花费的时间。标准的协定耗费了大量时间,毕竟我们不能只顾着发布自己的软件(Windows Communication Foundation, WCF),而不考虑它与我们的行业合作伙伴以及竞争者之间的互操作性。设计同样如此,对于那些具有分布式系统开发经验的客户而言,他们花费了大量时间学习以及掌握了我们之前提供的分布式系统技术,包括ASP.NET服务、Web服务增强(WSE)、.NET Remoting、消息传输/MSMQ以及企业服务/COM+,我们在发布软件的同时必须考虑这些客户。
在我刚才引用的技术清单中,包含了五种技术。如果使用非托管代码,则还有更多的技术平台。WCF的其中一个最重要的设计目标就是通过简单的方式将这些技术集合起来,以一种方式进行编程。不管是构建一个队列应用程序、事务型的N层应用程序、P2P客户端、RSS种子服务器,还是构建自己的企业服务总线,都不再需要掌握那些只能解决部分问题的多种技术。我们只需要学习和使用WCF即可。这就是以一种方式编程的魅力所在。
本书展示了大量微软已经构建好的技术细节,它们可以作为您的应用程序与服务的基础。在本书中,作者以享有盛誉的写作技巧,深入浅出而又准确细致地介绍了WCF的体系架构。作为微软互联框架团队成员的我们,也为自己构建的这一产品深感自豪。我们为开发者提供了一个统一的分布式技术体系架构,它具有广泛的互操作性,全面提升了面向服务的特性。同时它还是易于学习的,有利于提高构建面向服务应用程序的生产力。作为当今最杰出的分布式系统专家之一,Juval愿意倾尽心血全力介绍WCF,我们不禁深感荣幸。我们有足够的信心相信,Juval的著作能够帮助您理解人们为什么会对这一产品的问世以及它将创造的新的机遇而激动不已。这些人也包括我们、Juval以及早期的用户社区。享受本书,开始构建您的第一个WCF服务吧。
—— Clemens Vasters
程序经理,微软互联框架团队
(Connected Framework Team)...
20世纪90年代早期,我们开始了对一种新技术理念的探索,即实现计算机之间的通信与交互。这种被称为分布式系统应用程序的平台技术也逐渐为世人所了解。随着工作站与服务器硬件的逐渐普及,经济因素不再成为制约发展的瓶颈,构建不依赖于单事务网络中心的大型系统就成为了技术热点。对于大范围的数据交换系统而言,同样如此。在过去,我的电话公司如果要求每秒钟传递超过1200位的数据几乎是不可能的,而在如今看来连这都达不到简直不可思议。在同样的线路上,今天的传输速度已经达到了6Mbit/s。这真是一个激动人心的时代啊。
随着分布式计算技术的逐渐成熟,在90年代早期分属两大阵营的大型分布式系统技术渐露峥嵘,即数字设备公司(最终被康柏兼并,并入惠普)主导的DCE技术,以及OMG组织(主要由IBM支持)倡导的CORBA技术。然而在1996~1997期间,所有这些杰出的工程学成果却突然停滞不前。因为此时是互联网的世界,整个世界都疯迷于HTML、HTTP、风险投资以及IPO(Initial Public Offerings,首次公开募股)。整个行业花费了整整10年的时间才逐渐从泡沫经济带来的崩溃中恢复过来。不仅是经济的复苏,技术的发展也重新走回正轨。随之获益的是分布式系统技术由此打破了过去由两大阵营各占半壁江山的局面,多达数十种新的分布式技术如雨后春笋一般展现在人们眼前,使我们拥有了更多的抉择权。
直到2007年,整个行业仍然在为分布式系统的正确编码方式争论不休。Sun公司或者BEA力主Java;而我在微软的同事(包括我)则坚定地主张C#或者Visual Basic才是最佳的实现方式。无论是Sun、BEA、IBM还是微软,都希望机器之间的通信标准能够达成一致。试想昔日的DCE与CORBA之争,正是因为达成了一致的标准规范才为如今的SOAP 1.1奠定了基础,从而开创了分布式技术的盛大场面。..
自从SOAP 1.1作为技术说明(Technical Note)被提交给W3C,到现在已有超过6年的历史。期间,多家行业合作商共同开发与协定了众多基于SOAP的规范,从包括寻址以及众多安全选项的基础规范,到诸如原子事务协作的企业协议。我在微软的团队,仍然非正式地称呼我们的产品为“Indigo”,它代表了整个开发与协商过程中耗费的所有心血。如果没有IBM、微软以及其他合作伙伴对创建通用标准集的大力支持,在竞争如此激烈的企业领域几乎不可能存在开放标准的框架,更不可能具有支持多个开发商以及各种平台的多种实现。
诚然,WCF的实现超出了预计需要花费的时间。标准的协定耗费了大量时间,毕竟我们不能只顾着发布自己的软件(Windows Communication Foundation, WCF),而不考虑它与我们的行业合作伙伴以及竞争者之间的互操作性。设计同样如此,对于那些具有分布式系统开发经验的客户而言,他们花费了大量时间学习以及掌握了我们之前提供的分布式系统技术,包括ASP.NET服务、Web服务增强(WSE)、.NET Remoting、消息传输/MSMQ以及企业服务/COM+,我们在发布软件的同时必须考虑这些客户。
在我刚才引用的技术清单中,包含了五种技术。如果使用非托管代码,则还有更多的技术平台。WCF的其中一个最重要的设计目标就是通过简单的方式将这些技术集合起来,以一种方式进行编程。不管是构建一个队列应用程序、事务型的N层应用程序、P2P客户端、RSS种子服务器,还是构建自己的企业服务总线,都不再需要掌握那些只能解决部分问题的多种技术。我们只需要学习和使用WCF即可。这就是以一种方式编程的魅力所在。
本书展示了大量微软已经构建好的技术细节,它们可以作为您的应用程序与服务的基础。在本书中,作者以享有盛誉的写作技巧,深入浅出而又准确细致地介绍了WCF的体系架构。作为微软互联框架团队成员的我们,也为自己构建的这一产品深感自豪。我们为开发者提供了一个统一的分布式技术体系架构,它具有广泛的互操作性,全面提升了面向服务的特性。同时它还是易于学习的,有利于提高构建面向服务应用程序的生产力。作为当今最杰出的分布式系统专家之一,Juval愿意倾尽心血全力介绍WCF,我们不禁深感荣幸。我们有足够的信心相信,Juval的著作能够帮助您理解人们为什么会对这一产品的问世以及它将创造的新的机遇而激动不已。这些人也包括我们、Juval以及早期的用户社区。享受本书,开始构建您的第一个WCF服务吧。
—— Clemens Vasters
程序经理,微软互联框架团队
(Connected Framework Team)...
媒体评论回到顶部↑
“Juval Lowy是当今最杰出的分布式系统专家之一。在本书中,Juval以他享有盛誉的写作技巧,深入浅出而又准确细致地介绍了WCF的体系架构。”.
——Clemens Vasters,程序经理
互联框架团队,Microsoft Corporation...
——Clemens Vasters,程序经理
互联框架团队,Microsoft Corporation...
【插图】


点击看大图






加载中...