《.NET分布式应用程序开》读书笔记 第一章:理解分布式架构

一:何谓分布式?

首先,分布式应用的执行通常将会在几个计算机上完成。这是它和“单机版”应用程序的主要区别。总结的来说,分布式应用的主要目标就是为了提高系经的整体性能和可伸缩性。它可以避免当Client大量增加时,所带来的性能瓶颈和扩展问题。通过并行地增加物理的Server计算机,来服务更多的Client.

二:采用分布式的原因有哪些?

  • 将运行在不同环境,操作系统和平台上的程序整合起来。这就是Xml Service的设计初衷,也是ADO.NET采用XML标准的原因。
  • 在多个客户端之间提供同步或在线通讯的功能(比如:聊天服务器)
  • 支持瘦客户端(如:手持设备或只有IE的客户端),因为它们的运算和执行能力非常有限。这时服务器将完成大部分的计算工作。

三:除了分层外,分布式应用的特点有哪些?

分层的程序,不一定就是分布式的,因为分层有物理和逻辑上之分。除了物理上进行分层,分布式应用还有如下特点:

  • 基于组件的代码重用
  • 将代码逻辑分为业务对象(BO)和数据访问对象 (DO)
  • 多线程
  • 断开的连接,无状态的数据
  • 事务性的编程

下图为一个分布式应用的示例图:

未命名

四:分成式应用程序的优势在哪?

  1. 可伸缩性,可以说是分布式应用的最大亮点,只要需要,新的计算机可以新容易地加入到现在的系统当中,而不需要做特别的处理。稳定性也是其一大特点之一,如是你使用群集,其中一台计算机的问题不会影响整个系统,因为系统中其他的Server可以照常服务客户端。
  2. 还有比如,连接池,对象池,实时激活等特点,都是以前的C/S程序所不能比的。

五:.NET中分布式所采用的技术

  • .NET Remting,就Dcom有替代者。如果你在编写一个局域网的应用程序,这将是最好的选择,因为使用TCP连接,性能很高,而且配置也很灵活。使用.NET Remoting,你保持远程对象的状态,或开发P2P的程序。注意:.NET Remoting不能做Load-Balancing。下面为.NET Remoting应用程序的一个示例。每个客户端在服务器上都有持有一个单独的对象:

未命名2

  • XML Web Services,也许是.NET最著称的特点吧。它有如下特点:
    • 是跨平台,跨语言的。.NET可以调用Java的WS,反过来也一样。
    • 专门在Web上用的。网上有各种各样的WS,提供各种不同的功能,如股票行情,天气预计等等,都可以通过WS调用。
    • 容易开发,就像开发普通的类和方法一样。
    • 使用Soap交互信息。下图为Web Service应用的一个示例:

未命名3

  • DCom/COM+,在.NET中有新的名字:Enterprise Service(企业服务),其实本质是一样的。因为.NET 2.0后有了Remoting和WCF及Web Servcie,COM+现在很少人用。但它提供的一些高级特性,在一些情况下,还是很好的选择,如分布式事务,消息队列,对象池,JIT激活。最主要的一点是,它支持Load-Balancing和安全配置。在域环境或多种开发语言整合时,能派上用场。
原文地址:https://www.cnblogs.com/rockniu/p/1546792.html