网站大量收购独家精品文档,联系QQ:2885784924

Microsoft.NET的企业解决方案模式.第章分布式系统模式.docVIP

Microsoft.NET的企业解决方案模式.第章分布式系统模式.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Microsoft.NET的企业解决方案模式.第章分布式系统模式.doc

第5章 分布式系统模式 发布日期: 2004-4-12 | 更新日期: 2004-4-20 版本: 1.1.0 在当今的互联世界中,越来越多的企业应用程序跨多个服务器分布和运行、连接到远程数据源和 Web Service,并可通过 Internet 访问。分布式计算功能强大,但也并非没有面临挑战。网络在本质上并不可靠,同本地的进程间通信相比,与远程服务器的通信速度较慢。另外,同时在多台计算机上运行一个程序可能会导致许多并发和同步问题。 本页内容 基于实例的协作和基于服务的协议 近链接与远链接 分布式计算所面临的挑战 使用分层应用程序 模式概述 分布式系统模式 基于实例的协作和基于服务的协议 按照 Business Component Factory(业务组件工厂)[Herzum00] 的说,分布式计算可以基于两个截然不同的体系结构样式: ? 基于实例的协作 ? 基于服务的协作 基于实例的协作跨网络边界扩展了面向对象的计算模型。组件可以实例化远程对象实例、四处传递对这些远程对象的引用、调用远程对象的方法以及取消对它们的分配。此方法的优点在于,可以将应用程序内使用的同一个面向对象的编程模型应用于分布式组件。大多数运行时平台都包含对基于实例的协作的支持,以便开发人员在访问远程对象时不必提供特殊内容,或者相对于访问本地对象,只需提供极少的特殊内容。这就大大简化了分布式解决方案的开发,通常会简化到如下程度:以前位于相同位置的对象可以在部署时进行分布,而无需对应用程序进行任何代码更改。基于实例的协作还使远程对象的使用者能够更加精细地控制远程对象的生存期,从而让用户更有效地使用远程资源。 但是,基于实例的协作在带来易用性的同时,还因复杂的交互模型以及用户和提供商之间的紧密联系而导致成本增加。基于实例的交互要求远程对象的特定实例可以通过网络找到,这将复杂的生存期和实例管理引入了通信协议中。因此,大多数支持基于实例的协作的平台都不提供与其他平台的互操作性。 基于服务的协作通过只向潜在使用者公开“类似于管理器”或“类似于协调器”的接口来解决其中的一些挑战。用户可以调用该接口上的方法,但是他们不能控制任何远程对象的生存期。这大大简化了交互,并允许使用支持跨平台互操作的标准协议。 但是,基于服务的协作不能为本地对象和远程对象提供使用面向对象的编程模型时所具备的连续性。这意味着您必须明确跟踪对象之间的会话状态,而在使用基于实例的协作时就不必担心这些。同样,尽管基于标准的协议改善了互操作性,但是它们要求应用程序将应用程序内部数据类型转换成每个通信终端都能够理解的通用格式,而这可能涉及其他转换逻辑。 返回页首 近链接与远链接 考虑分布式系统的另一种方式就是将每个系统视为通过链接连在一起的处理节点的集合。这些节点代表实际的服务器计算机,而链接代表将这些计算机连在一起的网络。系统内的链接分成两类:近链接或远链接。 近链接驻留在同一个信任区域中、同一个企业内,它们以可靠方式连接而且不涉及互操作性。远链接包括所有其他链接(包括跨越 Internet 的任何链接)。 如果您的分布式系统仅跨越近链接,则最好使用基于实例的协作。使用基于实例的协作,可以跨计算机边界扩展面向对象的开发能力,同时利用平台的基础结构来优化速度、导航类型系统并为您操作封送处理细节。此处的技术选项将包括 Microsoft? .NET Framework 中的 .NET Remoting 和 Enterprise Services。 另一方面,如果您的分布式系统跨越远链接,则基于服务的协作通常是较好的选择。如果与提供“类似于协调器”的接口的服务进行交互,则允许该服务负责实现,而不必让服务用户了解实现细节。服务接口通常返回消息,这比远程过程调用提供的耦合性要少。最好的消息是那些既包含头信息又包括正文的消息,这允许接收者针对收到的消息自发执行操作。此处的技术选项包括诸如 Web Services 这样的功能。 本章的其余部分将描述通常与基于实例的协作和近链接相关联的模式。第 6 章“服务模式”将进一步介绍通常与基于服务的协作和远链接相关联的模式。 返回页首 分布式计算所面临的挑战 分布式体系结构的核心是能够调用对象上的方法或者与驻留在不同进程中甚至有可能在不同计算机上的服务进行通信。看起来这似乎不难,但是您必须解决非常多的问题: ? 如何实例化远程对象? ? 如果您希望调用现有对象上的方法,那么如何获取对该对象的引用? ? 网络协议仅传输字节流,而不传输对象。如何才能通过字节流调用方法? ? 安全性如何?是否每个人都能够调用远程对象上的方法? ? 大多数网络在本质上都不可靠。如果无法访问远程对象,会出现什么情况?如果远程对象收到方法调用,但是因网络问题而无法发送响应

文档评论(0)

000 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档