分布式应用系统研究(2)

原创 2001年10月09日 13:02:00
 

一、分布式应用系统研究

1、  对目标系统进行全面分析的理由

我们的开发人员在进行系统开发时必须掌握自己的工具,包括相关概念理论和实际编程工具。越来越多操作系统的高级机制能够被我们所使用包括多线程和显式动态调用;同时面向对象的方法、语言、模式和中间件技术也得到越来越广泛的应用,所有的这些都为我们重新审视和修正我们在分布式网络应用开发中使用的传统方法和技术提供了机会。

系统的分析与开发实现是一个渐进的,不断反馈改进的过程,它能够系统的考查一个应用领域来发现系统开发和设计中的一些关键挑战(问题),这样能够得到一个经过时间考验的解决方法。通常一个应用需要考虑用户图形界面GUI,关系数据库、网络管理、操作系统和各种不同类型的面向对象的中间件。对一个待开发应用领域的完整彻底分析能够带来以下好处:

1.         他能够有助于分辨和精确定义在该领域的关键抽象的对象空间,进而使得系统的开发人员能够更加有效的通讯和交流。实际中,对问题空间(problem space)的清晰认识能够大大简化从问题空间到合适模式、模式语言、中间件的解决空间(solution space)的 映射。

2.         它使我们对系统的考虑分为对通用问题的考虑和特定应用程序的特定考虑。把注意力集中在领域内系统共有的设计问题上有助于帮助程序员看见应用和开发可重用类的机会

2、  分布式应用系统分析包括五个方面的问题:协议与服务、通信、服务端体系结构、并发性和可配置性。下面详细介绍:

协议和服务<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

定义:协议是规定通信实体之间控制和数据信息如何交互地一系列规则。这些通信实体可能包括一个或多个客户、服务端或者在一个网络操作环境中对等实体的交互。服务,由服务端对外提供的、定义良好的服务能力。

关系:网络服务的交互基于协议,协议为应用程序屏蔽底层通讯细节。服务协议能被一个或多个服务使用,同时他们又基于更低一层的服务协议。

我们定义的协议和服务定义所基于的协议和服务的不同会给我们的应用开发带来不同的影响。在一个分布式应用中,开发者可以考虑和选择以下协议和服务:这一部分包括一下五个方面的内容:

l         无连接 、面向连接和请求/响应协议

无连接协议:

特点: 提供了面向消息的服务,这里每条消息都能被独立发送。

无连接协议基于“最努力”原则,对消息是否按顺序到达目的地址或者是否全部到达目的地址不提供保证。

实例:用户报(User Datagram Protocol)和IPInternet Protocol)都是无连接协议的典型。

应用原则:这些协议一般应用于那些需要能够容忍一定程度消息丢失的应用,比如voice-over-IP和流视频。

面向连接协议:

特点:提供了一种可靠的、顺序的、无重复发送的服务。为了增强性能并确保可靠,面向连接协议在发送端和接收端间交换和保持状态信息。

实例:传输控制协议(Transmission Control Protocol)也就是TCP就是一种面向连接的协议,它构成了整个 Internet的基础。TCP提供了重传机制以确保较面向无连接的IP协议更可靠的数据传输。

应用原则:这些协议特别适合那些无法容忍数据丢失的应用。

         请求/响应协议

提供了一种可靠的、面向事务处理的服务,这里处理都是以单步加锁保护的形式进行。请求/响应协议通常用于在诸如高速局域网这种低时延环境下短时长消息的交互。

l         短时 长时服务

短时服务的执行时间非常短而且相对比较固定

通常采用请求响应协议Request/Response协议或无连接协议比如UDP

长时服务的执行时间较长而且是变化的。长时服务的例子包括通过FTPHTTP传输一个大文件,通过TELNET访问远程主机资源。为了提供效率和可靠性,这些服务通常是基于面向连接协议来实现的

应该注意的是:每一个客户请求特别是发送特别频繁的请求都建立和撤销套接字连接,会使系统(时间)开销变大而且十分浪费应该采用长时服务类型。

l         内部 与外部服务

内部服务:在服务器收到请求时,在相同的地址空间执行

外部服务在不同进程地址空间中处理执行。举例来说,一个主服务分发器进程监视一系列的通讯端口。当一个连接请求从客户端到达主服务器时,这个分发进程接收该连接然后分发新的进程在外部来处理请求服务。

应该注意的是:内部服务会为应用系统带来潜在的不稳定性。在一个进程中的多个服务函数没有得到应有的保护,因为系统的相关共享资源容易收到不应该的破坏

l         有状态服务 无状态服务

     有状态服务缓存了一些确定的信息,比如任务状态,认证密钥,认证数目和I/O句柄等。这些有助于在服务端减少通讯和计算的开销。

      无状态服务在服务器上不保留每个连接的状态信息。

      应该注意的是:有状态服务和无状态服务在效率和可靠性之间寻找折衷点,一个好的选择依赖于很多因素比如主机和网络故障发生的可能性和带来的影响。一些通用的网络应用服务,比如说FTPTELNET,不需要在连续的服务调用之间保留永久状态信息。这些无状态服务通常配置和重配置非常简单而可靠。相反,一些服务比如CORBANaming Service管理着一些必须保留状态信息的绑定,即使这些绑定服务器已经崩溃。

l         分层的/模块化服务 集中式服务

分层/模块化服务将服务分解为一系列的与层次有关的服务,在各层之间交换控制和数据消息。

集中式服务将个服务紧密包容,他可以将各个服务模块分离好像分层一样,但是绝大多数的数据通过共享和全局变量集中拥有。这种系统很难以理解、维护和扩展。集中式服务比较适合那些短生命周期的原型系统。

选择两种服务分布体系来构造自己的网络应用必须在效率、扩展性和模块化程度上予以折衷考虑。为你的服务选择分层/模块化设计,有如下优势:

1.         分层增强了系统组件的可重用性。因为更高层的应用组件能够共享使用这些较低层的服务

2.         分层的服务使应用能够透明的增强或增加系统的服务功能。

3.         分层/模块化的体系结构方便通过有选择的去掉非必须服务来获得宏观层次的性能提高

4.         模块化设计有效的提高网络应用程序的开发实现、测试和维护的效率

同时,这种服务方式在应用到网络应用中时也有一些缺陷:

1.         分层实现的模块化为系统带来的额外开销较大。比如,在各层交互接口缓冲区大小的不匹配将会降低系统的效率,而且可能导致额外的分解组装或者通讯延迟。

2.         各层间通讯必须设计合理实现优良,否则容易引起难以识别的错误。

由各层屏蔽的相关信息使得在实时系统和容错系统中定位和管理整个分布式环境下资源变得非常困难

分布式应用系统研究

分布式应用系统开发 协议与服务、通信、服务端体系结构、并发性和可配置性...
  • aolaog
  • aolaog
  • 2011年03月16日 12:11
  • 723

分布式应用系统研究(4)

   并发l             迭代 与 并发 迭代服务器 在为随后的客户请求提供服务前,首先处理已经接受的全部请求。在处理一个请求时,迭代服务器或者将其他的请求发放入队列或者抛弃。迭代服务器特...
  • feiyangf
  • feiyangf
  • 2001年10月15日 16:16
  • 1158

分布式应用系统研究(1)

 一、分布式应用系统开发背景近十年来,通信技术和计算机技术都得到了长足发展,主要表现在:光纤通信技术的传输速率达到了难以置信的高度;无线通信技术则从模拟发展到数字,从窄带发展到宽带;计算机技术的则在计...
  • feiyangf
  • feiyangf
  • 2001年10月09日 13:01
  • 1703

分布式应用系统研究(3)

 通信在同一地址空间的单机应用的交互参数传递是通过函数调用或全局变量访问来得到的。而在网络环境下不同地址空间的各个组件间通讯是通过下列一些通信机制来完成的:l         消息传送 与 共享内存消...
  • feiyangf
  • feiyangf
  • 2001年10月09日 13:04
  • 921

分布式应用系统研究(5)

 配置考虑一个网络应用应该能够在各个阶段配置它的组成服务,包括编译、静态连接、安装、启动时甚至是运行时。配置一个网络应用的步骤包括命名和定位服务、将服务连接到一个或多个应用的地址空间。这些步骤能以静态...
  • feiyangf
  • feiyangf
  • 2001年10月09日 13:07
  • 881

Qt事件系统研究

Qt中的事件 基本概念: 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的统称。Qt中使用一个对象来表示一个事件,这个对象继承自QEvent类。事件和信...
  • doubibobo
  • doubibobo
  • 2017年06月09日 19:13
  • 119

我的读书笔记--关于java分布式应用

最近因为有Java分布式应用的需求,因此,我搞到了林昊的《分布式Java应用基础与实践》(以下简称F)这本书。我决定花2个月时间,把这本书仔细研读一下,好好学习,多多实践。另外,我会把自己的读书心得、...
  • lxlhu
  • lxlhu
  • 2015年03月24日 20:16
  • 775

精简系统的几个网站

精简系统的几个网站reboot Pro theoven.orgwin81se.cwcodes.net
  • hadstj
  • hadstj
  • 2016年07月24日 12:37
  • 282

ICTCLAS分词系统研究(三)--原子切分

 ICTCLAS分词的第一步就是原子分词。但在进行原子切分之前,首先要进行断句处理。所谓断句,就是根据分隔符、回车换行符等语句的分隔标志,把源字符串分隔成多个稍微简单一点的短句,再进行分词处理,最后再...
  • sinboy
  • sinboy
  • 2006年03月15日 11:27
  • 10060

对WebService的系统研究, 七种方式实现!

注册CSDN已有很长的一段时间,也包括其它很多论坛、社区,一直都是默默地看着别的文章,自己却不曾写过。一方面是觉得要写出优秀的原创博客需要及其精湛的技术内功,自己还有欠缺;另一方面是自己一直在系统地钻...
  • zhuizhu1992
  • zhuizhu1992
  • 2018年02月03日 13:50
  • 48
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:分布式应用系统研究(2)
举报原因:
原因补充:

(最多只允许输入30个字)