一:何谓分布式?
首先,分布式应用的执行通常将会在几个计算机上完成。这是它和“单机版”应用程序的主要区别。总结的来说,分布式应用的主要目标就是为了提高系经的整体性能和可伸缩性。它可以避免当Client大量增加时,所带来的性能瓶颈和扩展问题。通过并行地增加物理的Server计算机,来服务更多的Client.
二:采用分布式的原因有哪些?
- 将运行在不同环境,操作系统和平台上的程序整合起来。这就是Xml Service的设计初衷,也是ADO.NET采用XML标准的原因。
- 在多个客户端之间提供同步或在线通讯的功能(比如:聊天服务器)
- 支持瘦客户端(如:手持设备或只有IE的客户端),因为它们的运算和执行能力非常有限。这时服务器将完成大部分的计算工作。
三:除了分层外,分布式应用的特点有哪些?
分层的程序,不一定就是分布式的,因为分层有物理和逻辑上之分。除了物理上进行分层,分布式应用还有如下特点:
- 基于组件的代码重用
- 将代码逻辑分为业务对象(BO)和数据访问对象 (DO)
- 多线程
- 断开的连接,无状态的数据
- 事务性的编程
下图为一个分布式应用的示例图:
四:分成式应用程序的优势在哪?
- 可伸缩性,可以说是分布式应用的最大亮点,只要需要,新的计算机可以新容易地加入到现在的系统当中,而不需要做特别的处理。稳定性也是其一大特点之一,如是你使用群集,其中一台计算机的问题不会影响整个系统,因为系统中其他的Server可以照常服务客户端。
- 还有比如,连接池,对象池,实时激活等特点,都是以前的C/S程序所不能比的。
五:.NET中分布式所采用的技术
- .NET Remting,就Dcom有替代者。如果你在编写一个局域网的应用程序,这将是最好的选择,因为使用TCP连接,性能很高,而且配置也很灵活。使用.NET Remoting,你保持远程对象的状态,或开发P2P的程序。注意:.NET Remoting不能做Load-Balancing。下面为.NET Remoting应用程序的一个示例。每个客户端在服务器上都有持有一个单独的对象:
- XML Web Services,也许是.NET最著称的特点吧。它有如下特点:
- 是跨平台,跨语言的。.NET可以调用Java的WS,反过来也一样。
- 专门在Web上用的。网上有各种各样的WS,提供各种不同的功能,如股票行情,天气预计等等,都可以通过WS调用。
- 容易开发,就像开发普通的类和方法一样。
- 使用Soap交互信息。下图为Web Service应用的一个示例:
- DCom/COM+,在.NET中有新的名字:Enterprise Service(企业服务),其实本质是一样的。因为.NET 2.0后有了Remoting和WCF及Web Servcie,COM+现在很少人用。但它提供的一些高级特性,在一些情况下,还是很好的选择,如分布式事务,消息队列,对象池,JIT激活。最主要的一点是,它支持Load-Balancing和安全配置。在域环境或多种开发语言整合时,能派上用场。