为您推荐:
精华内容
最热下载
问答
  • 5星
    902KB xxzhaoming 2021-06-09 09:49:48
  • 5星
    6.15MB qq_36440174 2020-11-22 16:25:02
  • 5星
    69.48MB qq_17556735 2021-03-13 22:42:11
  • 10.55MB m0_52957036 2020-08-24 06:51:00
  • 1.08MB m0_52957036 2020-05-24 22:09:38
  • 381KB m0_52957036 2020-10-28 08:40:11
  • 247KB zhenlou12 2021-10-07 19:46:52
  • 789KB m0_52957036 2020-06-23 09:42:24
  • 205KB m0_52957036 2020-12-04 20:03:04
  • 原标题:分布式认知系统中的协同感知交互模型在分布式认知系统中,认知过程在个体(或个体间)、媒介、环境、文化、社会和时间这五个方面存在分布式的现象,因此,如何创建友好、丰富的协同感知工作环境,为协作者提供...

    原标题:分布式认知系统中的协同感知交互模型

    在分布式认知系统中,认知过程在个体(或个体间)、媒介、环境、文化、社会和时间这五个方面存在分布式的现象,因此,如何创建友好、丰富的协同感知工作环境,为协作者提供高效的交互环境,在交互中减少其认知负担,是分布式认知系统设计的关键。

    分布式认知系统中的交互设计除了传统的人与人(通过网络)、人与计算机之间的交互外,还应该考虑到人与计算机之外的其他媒介、媒介与媒介之间的交互。而多媒体、多通道用户界面、虚拟现实技术以及人工智能技术的应用研究与开发为分布式认知理论在CSCW中的应用提供了技术支持,其交互模型如图所示:

    54d8d640d6e34365891c425dc61361c3.png

    在交互过程中,人与人之间通过交互知识库自适应的调整彼此的交互行为和交互手段,媒介与媒介之间通过信息处理器来获得较优的表征状态,协作者进而获得与改善后的媒介或情境之间进行交互。

    交互知识库由当前交互记录、历史交互经验、推理机制、评价方法四大模块组成,其主要有三方面的作用:首先是获取适当的原始数据(即历史交互经验),对可能发生的交互行为进行推理;其次是通过推理机制的判断与工具集、擦操作集以及协调机制进行配合,自适应地为协作者之间的交互活动提供有效支持;最后是记录当前交互行为(即获取当前交互记录)为改善推理机制和评价方法提供依据。

    工具集是个总交互工具的集合,为协作者提供协同感知交互方面的工具支持,增强用户交互能力;操作集是各种操作命令的集合,为协作者提供当前环境可行的支持协同感知的交互命令,以降低系统操作的复杂性、减轻系统造成的认知负担;协调机制是协调、处理协作者各类交互活动的机制,为协作者提供更为自然,友好的交互环境。

    信息处理器在实现分布式认知系统中由信息表示、信息共享、信息转换以及情境设计四个模块组成,其主要作用有三方面:其一是处理信息在传播过程中表征状态的转换;其二是适当的改变信息表示方式和信息共享方式以符合协作者认知能力;其三是在必要的情况下通过不同的信息转换、信息表示和信息共享来改变当前WEB环境的情境设置。

    在分布式认知系统中,媒体包括了内部表征和外部表征两个方面,因此,对于媒介的内部表征可以将人的大脑视为一个信息处理器。

    分布式认知系统中的协同感知交互模型注重信息的外部表示、共享以及环境设置的重要作用,强调人与计算机之外的其他媒介、媒介与媒介之间的交互在分布式认知系统中的重要地位,通过交互知识库模块、信息处理器模块以及工具集、操作集和协调机制的共同作用自适应地修改和更新当前交互环境,更有效地支持协作者之间的交互活动,使之交流更为自然、顺畅。返回搜狐,查看更多

    责任编辑:

    展开全文
    weixin_33740988 2021-06-25 01:28:03
  • 205KB m0_52957036 2020-11-06 13:13:58
  • 1.13MB m0_52957036 2020-07-04 21:11:34
  • 342KB m0_52957036 2020-11-29 21:36:29
  • 2.3节对系统体系结构的讨论表明分布式系统由多个以复杂方式进行交互的进程组成。例如: 多个服务器进程能相互协作提供服务,前面提到的例子有域名服务(它将数据分区并复制到互联网中的服务器上)和Sun的网络信息...

    2.4.1 交互模型

    2.3节对系统体系结构的讨论表明分布式系统由多个以复杂方式进行交互的进程组成。例如:

    • 多个服务器进程能相互协作提供服务,前面提到的例子有域名服务(它将数据分区并复制到互联网中的服务器上)和Sun的网络信息服务(它在局域网的几个服务器上保存口令文件的复制版本)。
    • 对等进程能相互协作获得一个共同的目标。例如,一个语音会议系统,它以类似的方式分布音频数据流,但它有严格的实时限制。

    大多数程序员非常熟悉算法的概念——采取一系列步骤以执行期望的计算。简单的程序由算法控制,算法中的每一步都有严格的顺序。62由算法决定程序的行为和程序变量的状态。这样的程序作为一个进程执行。由多个上面所说的进程组成的分布式系统是很复杂的。它们的行为和状态能用分布式算法描述——分布式算法定义了组成系统的每个进程所采取的步骤,包括它们之间消息的传递。消息在进程之间传递以便在它们之间传递信息并协调它们的活动。
    每个进程执行的速率和进程之间消息传递的时限通常是不能预测的。要描述分布式算法的所有状态也非常困难,因为它必须处理所涉及的一个或多个进程的故障或消息传递的故障。
    进程交互完成了分布式系统中所有的活动。每个进程有它自己的状态,该状态由进程能访问和更新的数据集组成,包括程序中的变量。属于每个进程的状态完全是私有的——也就是说,它不能被其他进程访问或更新。
    本节讨论分布式系统中影响进程交互的两个重要因素:

    • 通信性能经常是一个限制特性。
    • 不可能维护一个全局时间概念。
      通信通道的性能 在我们的模型中,通信通道在分布式系统中可用许多方法实现,例如,通过计算机网络上的流或简单消息传递来实现。计算机网络上的通信有下列与延迟(latency)、带宽(bandwidth)和抖动(jitter)有关的性能特征:
    • 从一个进程开始发送消息到另一个进程开始接收消息之间的间隔时间称为延迟。延迟包括:

    —第一串比特通过网络传递到目的地所花费的时间。例如,通过卫星链接传递消息的延迟是无线电信号到达卫星并返回的时间。
    —访问网络的延迟,当网络负载很重时,延迟增长很快。例如,对以太网传送而言,发送站点要等待网络空闲。
    —操作系统通信服务在发送进程和接收进程上所花费的时间,这个时间会随操作系统当前的负载的变化而变化。

    • 计算机网络的带宽是指在给定时间内网络能传递的信息总量。当大量通信通道使用同一个网络时,它们就不得不共享可用的带宽。
    • 抖动是传递一系列消息所花费的时间的变化值。抖动与多媒体数据有关。例如,如果音频数据的连续采样在不同的时间间隔内播放,那么声音将严重失真。

    计算机时钟和时序事件 分布式系统中的每台计算机有自己的内部时钟,本地进程用这个时钟获得当前时间值。因此,在不同计算机上运行的两个进程能将时间戳与它们的事件关联起来。但是,即使两个进程在同时读它们的时钟,它们各自的本地时钟也会提供不同的时间值。这是因为计算机时钟和绝对时间之间有偏移,更重要的是,它们的漂移率互不相同。术语时钟漂移率(clock drift rate)指的是计算机时钟偏离绝对参考时钟的比率。即使分布式系统中所有计算机的时钟在初始情况下都设置成相同的时间,它们的时钟最后也会相差巨大,除非进行校正。
    有几种校正计算机时钟的时间的方法。例如,计算机可使用无线电接收器从全球定位系统(GPS)以大约1μs的精度接收时间读数。但GPS接收器不能在建筑物内工作,同时,为每一台计算机增加GPS在费用上也不合理。相反,具有精确时间源(如GPS)的计算机可发送时序消息给网络中的其他计算机。在两个本地时钟时间之间进行协商当然会受消息延迟的影响。有关时钟漂移和时钟同步的更详细的讨论见第14章。
    交互模型的两个变体 在分布式系统中,很难对进程执行、消息传递或时钟漂移所花的时间设置时间限制。两种截然相反的观点提供了一对简单模型:第一个模型对时间有严格的假设,第二个模型对时间没有假设。
    同步分布式系统:Hadzilacos和Toueg[1994]定义了一个同步分布式系统,它满足下列约束:

    • 进程执行每一步的时间有一个上限和下限。
    • 通过通道传递的每个消息在一个已知的时间范围内接收到。
    • 每个进程有一个本地时钟,它与实际时间的偏移率在一个已知的范围内。

    对于分布式系统,建议给出合适的关于进程执行时间、消息延迟和时钟漂移率的上界和下界是可能的。但是达到实际值并对所选值提供保证是比较困难的。除非能保证上界和下界的值,否则任何基于所选值的设计都不可靠。但是,按同步系统构造算法,可以对算法在实际分布式系统的行为提供一些想法。例如,在同步系统中,可以使用超时来检测进程的故障,参见下面的2.4.2节。
    同步分布式系统是能够被构造出来的。所要求的是进程用已知的资源需求完成任务,这些资源需求保证有足够的处理器周期和网络能力;还有要为进程提供漂移率在一定范围内的时钟。64
    异步分布式系统:许多分布式系统,例如互联网,是非常有用的,但它们不具备同步系统的资格。因此我们需要另一个模型。异步分布式系统是对下列因素没有限制的系统:

    • 进程执行速度——例如,进程的一步可能只花费亿万分之一秒,而进程的另一步要花费一个世纪的时间,也就是说,每一步能花费任意长的时间。
    • 消息传递延迟——例如,从进程A到进程B传递一个消息的时间可能快得可以忽略,也可能要花费几年时间。换句话说,消息可在任意长时间后接收到。
    • 时钟漂移率——时钟漂移率可以是任意的。

    异步模型对执行的时间间隔没有任何假设。这正好与互联网一致,在互联网中,服务器或网络负载没有内在的约束,对像用FTP传输文件要花费多长时间也没有限制。有时电子邮件消息要花几天时间才能到达。下面的“Pepperland协定”部分说明在异步分布式系统中达成协定的困难性。
    即使有这些假设,有些设计问题也能得到解决。例如,虽然Web并不总能在一个合理的时间限制内提供特定的响应,但浏览器的设计可以做到让用户在等待时做其他事情。对异步分布式系统有效的任何解决方案对同步系统同样有效。
    实际的分布式系统经常是异步的,因为进程需要共享处理器,而通信通道需要共享网络。例如,如果有太多特性未知的进程共享一个处理器,那么任何一个进程的性能都不能保证。但是,有许多不能在异步系统中解决的设计问题,在使用时间的某些特征后就能解决。在最终期限之前传递多媒体数据流的每个元素就是这样一个问题。对这样的问题,可使用同步模型。
    事件排序 在许多情况下,我们有兴趣知道一个进程中的一个事件(发送或接收一个消息)是发生在另一个进程中的另一个事件之前、之后或同时。尽管缺乏精确的时钟,但系统的执行仍能用事件和它们的顺序来描述。
    例如,考虑下列在邮件列表中一组电子邮件用户X、Y、Z、A之间的邮件交换:
    1)用户X发送主题为Meeting的消息。
    2)用户Y和Z发送一个主题为Re:Meeting的消息进行回复。
    在实际环境中,X的消息最早发送,Y读取它并回复;Z读取X的消息和Y的回复并发出另一个回复,该回复引用了X和Y的消息。但是由于在消息传递中各自独立的延迟,消息的传递可能像图2-13所示的一样,一些用户可能以错误的顺序查看这两个消息。例如,用户A可能看见:
    image

    Pepperland协定 Pepperland军队的两个师“红师”和“蓝师”驻扎在邻近两座山的山顶上。山谷下面是入侵的敌军。只要Pepperland的两个师留在驻地,他们就是安全的,他们通过派出通信兵穿过山谷进行通信。Pepperland的两个师需要协商它们中的哪一方率先发起对敌军的冲锋以及冲锋何时进行。即使是在异步的Pepperland中,由谁率先冲锋是可能达成一致的。例如,每个师报告剩余人员的数量,人数多的一方率先冲锋(如果人数一样多,则由红师率先冲锋)。但何时冲锋呢?非常遗憾,在异步Pepperland,通信兵的速度是变化的。如果红师派出一个通信兵,带着“冲锋”消息,蓝师可能3个小时也收不到这个消息,也可能5分钟就收到这个消息了。在同步Pepperland中,仍然有协调问题,但是两个师知道一些有用的约束:每个消息至少花费min分钟和至多花费max分钟到达。如果率先冲锋的师发送“冲锋”消息,那么它等待min分钟就可以冲锋。另一个师在收到消息后等待1分钟,然后冲锋。在率先冲锋的师之后、不超过(max-min+1)分钟,另一个师保证发起冲锋。
    如果X、Y、Z的计算机上的时钟能同步,那么每个消息在发送时可以携带本地计算机时钟的时间。例如,消息m1、m2和m3能携带时间t1、t2、t3,其中t1image

    因为在一个分布式系统中时钟不能精确同步,所以Lamport[1978]提出了逻辑时间的模型,为在分布式系统中运行于不同计算机上的进程的事件提供顺序。使用逻辑时间不需要求助于时钟就可以推断出消息的顺序。详细内容可参见第14章,我们在这里只介绍如何将逻辑排序的某些方面应用到邮件排序问题。
    逻辑上,我们知道消息在它发送之后才被接收,因此,我们为图2-13所示的成对事件给出一个逻辑排序。例如,仅考虑涉及X和Y的事件:
    X在Y接收到m1之前发送m1;Y在X接收到m2之前发送m2
    我们也知道应答在接收到消息后发出,因此对于Y,我们有下列逻辑排序:
    Y在发送m2之前接收m1
    逻辑时间通过给每个事件赋予一个与它的逻辑顺序相对应的数字而进一步拓展了这个思想。这样,后发生的事件的数字比早发生的事件的数字大。例如,图2-13显示了X和Y上的事件,其数字为1~4。

    展开全文
    weixin_33811539 2017-08-01 10:25:00
  • 206KB m0_52957036 2020-12-15 22:31:49
  • 系统模型也就是分布式系统是如何设计的、整体的架构是什么?在这里从三个方面来介绍,物理模型、体系结构模型、基础模型。下面先看一下这三个模型的介绍以便在下面详细介绍时有更加深刻的认识。 物理模型:考虑...

    一、系统模型引言

    这篇文章描述系统模型。我们知道在上一篇博客当中主要介绍了分布式系统的概念、前景和挑战。这篇文章主要介绍系统模型。什么是系统模型呢?系统模型也就是分布式系统是如何设计的、整体的架构是什么?在这里从三个方面来介绍,物理模型、体系结构模型、基础模型。下面先看一下这三个模型的介绍以便在下面详细介绍时有更加深刻的认识。

    1. 物理模型:考虑分布式系统中计算机是如何互联的,以及这些设备的类型,不考虑特定的技术细节(也就是从硬件方面来看如何组成分布式系统的)
    2. 体系结构模型:他是从系统的计算元素执行的计算和通信任务来描述分布式系统的。这里的计算元素指的是网络上互联的计算机集合。C-S模型和对等模型是最常见的体系结构模型。
    3. 基础模型:采用了抽象的观点描述了分布式系统中单个问题的解决方案,他通过三个模型来讨论
    • 交互模型:处理分布式系统中的性能问题和设置时间约束的困难(在系统元素之间通信的结构与顺序)
    • 故障模型:他定义了可靠地通信和正确的进程(考虑分布式系统正确操作的方式)
    • 安全模型:讨论对进程和通信通道的各种可能的危险(考虑不被干扰或者是不被窃取数据)

    二、物理模型

    1、基线物理模型

    在上一篇博客当中我们介绍了分布式系统的概念,被定义为位于联网计算机上的硬件或者是软件组织通过消息传递进行通信和协调的系统。这引出了分布式系统中的最小的物理模型,也就是可以扩展的计算机节点,这些节点通过网络进行消息传递。

    2、三代分布式系统

    由基线物理模型,引出下面三代分布式系统。

    1. 早期的分布式系统:这样的系统在70年代中期到80年代早期,随着局域网的出现而出现,这时候一般由10到100各节点组成,他们与互联网链接有限只支持少量的服务,比如本地打印机还有电子邮件等等。此时的系统是同构的,开放性不是主要的问题。
    2. 互联网规模的分布式系统:实在90年代早期开始出现,此时底层的物理础设施是如下图所示的。这些节点是可扩展的,通过互联网连接。在这样的系统中,其异构性其异构性是非常突出的, 这使得开放标准和中间件技术的不断增加。在这样的全球化系统中采用了额外的服务来提供端到端的服务质量特性。
    3. 当代的分布式系统:在上面的系统中通常是台式机,因此是相对静态的、分立的(没有嵌入到其他物理实体内)、自治的。第一、但是当前笔记本电脑和智能手机这样的节点可以从一个位置移动到另外一个位置,第二、并且无处不在计算的出现导致了体系结构从分立节点型开始转变,开始转变到计算机被切入到日常物品和周围环境当中(比如智能家居)。第三、云计算的出现导致了之前是一个自治节点完成一个任务,现在是一柱节点完成一个任务。这些原因最终导致了异构性得到很大增加的物理体系结构。

    系统的系统:超大规模的分布式系统,其子系统也是一个系统,他们一起完成一个或者是多个任务。举一个例子考虑一个洪水预测的环境管理系统,传感器收集洪水状态的系统与预测洪水可能性的系统耦合在一起为民众提供早期的洪水报警。

    最后对这三代系统做出一个总结:

    三、体系结构模型

    一个系统的体系结构是这样一种结构,用独立的组件以及这些组件之间的关系来表示的结构。整体的目标是满足现在和将来可能的需求。主要关系的是系统的可靠性、可管理性、适应性和性价比。比如说设计一个建筑物,不仅要决定它的外观,还决定其总体结构和体系结构风格(哥特式、现代是),并设计一个参考框架。

    1、体系结构元素

    为了理解一个分布式系统的基础构建块,现在考虑下面四个问题:

    • 分布式系统中通信的实体是什么
    • 分布式系统如何通信?使用什么通讯范型?
    • 这些实体在整个系统中扮演什么角色?承担什么责任?
    • 他们被放置到哪里?

    下面来一个一个看这些问题:

    第一:通信实体

    通常情况下,通信的实体被认为是进程,这导致普遍的认为分布式系统其实就是,带有恰当进程间通信范型的多个进程。但是在一些情况下不是这样的,比如说在传感器网络当中,操作系统中可能不支持进程抽象,这时候系统通信的实体是节点。还有一些系统中,使用线程而不是进程,所以严格的来讲,通信的末端是线程。我们已经抽象出了进程和线程的概念,然而从编程的观点来看,这还不够,更多问题的抽象已经被提出:

    • 对象:在分布式面向对象的方法中,一个计算由若干相互交互的对象组成,并通过结构访问这些对象。
    • 组件:组件类似于对象,也是通过结构访问,关键的区别在于组件不仅给出接口,而且给出其他组件/接口的假设。他为系统提供了一个更加完成的合约。类似于Android中的组件,当然这里只是类比其实完全不一样,在这里姑且这样理解。我们通过接口使用Android中的组件,并且可以通过这些组件开发其他组件(自定义View的实现)。
    • web服务:web服务与对象和组件紧密相关,也是采用基于行为封装和通过接口访问的方法。W3C联盟把web服务定义成如下的概念:

    第二:通信范型

    在上面已经看到分布式系统中通信的实体很多,有进程、线程、对象、组件等等。在这里开始讨论这些实体如何进行通信。

    我们考虑三种通信范型:

    1. 进程间通信
    2. 远程调用
    3. 间接通信

    (1)进程间通信

    进程间通信指的是用于分布式系统之间通信的相对底层的支持,包括消息传递原语、直接访问由互联网协议提供的API和对多播的支持.以后再详细介绍。

    (2)远程调用

           远程调用时分布式系统中最常见的通信范型,覆盖一系列分布式系统中通信实体之间基于双向交换的技术。请求应答协议是一个有效地模式,他加在一个底层消息传递服务之上,用于支持客户-服务器计算。比如请求一个网页,第一个消息包含在服务器端执行操作的编码,第二个消息包含操作的结果。这种范型相对原始。

          远程过程调用(RPC)的出现是一个突破,在RPC中,远程计算机上的进程能够被调用,好像在本地调用一样。就好像在QQ里面的远程控制一样,我们可以控制别人的电脑,此时我们的电脑(服务器)通过一个服务接口提供一套操作,当这些操作在本地可用时候,我们可以直接调用这些操作(在别人电脑上操作)。因此RPC系统提供访问和位置透明性。

          远程方法调用(RMI)类似于远程过程调用,用这种方法,一个对象可以调用远程对象中的方法。与RPC一样,底层的细节都对用户隐藏。我对此的理解就好比WebService。

          上面这些方法都有一个共同点:通信代表了发送者和接受者之间的双向关系,在大多数情况之下,双方必须同时存在。相比之下,开始出现一些新的技术,这些技术支持间接通信。他们通过第三个实体之间进行通信,实现了发送者与接受者之间的解耦合。

    (3)间接通信

    为什么要使用间接通信呢?先看一下下面这两个问题:

    • 发送者不需要知道他们发给谁
    • 发送者和接受者不需要同时存在

    这时候发送者和接受者如何进行通信呢?就是刚刚提到的使用第三个实体进行通信。下面是一些实现的技术。

    1. 组通信:组通信指的是消息传递给若干接受者,是一对多的通信。一个组在系统中用一个组标识符来表示,接受者通过加入这个组,有选择性的接收到组内的消息。此时发送者只需要通过组标识符发送消息,而不需要知道消息的接受者。
    2. 发布-订阅系统:类似于报纸系统,报社发报纸,用户订报纸。ROS的发布-订阅系统和这个原理是一样的。
    3. 消息队列:消息队列提供了一种点到点的服务,其中生产者进程发送消息到一个指定的队列,消费者从队列中接收消息,因此,队列是生产者和消费者进程之间的中介。
    4. 元组空间:进程能把任意的结构化数据项(元祖)放到一个持久的元祖空间,其他进程可以指定感兴趣的模式,从而可以在元组空间读或者是删除元组。因为元组空间是持久的,因此不需读写操作同时存在。这也被称之为生成通信。
    5. 分布式共享内存(DSM):它提供了一种抽象,用于支持在不共享物理内存的进程之间共享数据,程序员在使用这些数据时候,就好像这些数据在本地一样。

    现在总结一下到目前为止说的体系结构:

    第三:承担的角色与责任

    在这里我们考察两种起源于单个进程角色的体系结构风格:客户-服务器风格和对等风格。

    (1)客户-服务器风格

    这是分布式系统中最常用的体系结构,下面给出一个简单的结构,其中进程扮演服务器和客户的角色。

    如图所示,一台服务器也可以是其他服务器的客户。比如web服务器和大多数其他互联网服务是DNS服务的客户,DNS服务用于将互联网域名翻译成网络地址。

    (2)对等体系结构

    在这种体系结构中,设计意向任务或者是活动的所有进程都扮演这相同的角色,作为对等关系进行交互,没有客户与服务器的关系。使用这种体系结构是因为客户-服务器模型虽然为数据和其他资源提供了一个直接和相对简单的方法,但是他的伸缩性比较差,比如我们把一个服务放在同一个地址,此时意味着集中化的管理这个服务,当我们集中的去使用这个服务时候,就会出现问题。因为我们的电脑提供服务的能力和这个计算机所在的网络连接的带宽是有限的。他的伸缩性会受限。

    针对这个问题,就促使了对等系统的发展,这是因为在对等系统中,一个用户使用一个服务时,自己的计算机所拥有的网络和计算资源也能被投入使用,以支持哪个服务。这会产生一个非常好的效果,当我们的用户数量增加时候,此时可用于运行的服务也会随之增加。

    第四:实体被放置在哪?

    这是最后一个要考虑的问题,也就是对象、组件、进程这样的实体是怎么映射到底层的物理设施之上的。物理分布式基础设施由大量的机器组成,这些机器通过一个任意复杂的网络互联。放置是一个很重要的操作,因为它会影响分布式系统的性能、安全等特性。我们主要关注下面的这些放置策略:

    • 将服务映射到多个服务器
    • 缓存
    • 移动代码
    • 移动代理

    (1)将服务映射到多个服务器

    意思是服务器将服务所基于的对象集分区,然后将这些分区分布到各个服务器上,或者是服务器可以在几个主机上维护复制的对象集。这两种选择可以用下面例子说明

    web是一个常见的将数据分区的例子。一个基于复制数据的服务是Sun网络信息服务。

    (2)缓存

    它类似于我们手机中的缓存,缓存用于存储最近使用的数据对象,当服务器接受一个新对象时候,就将他存入缓存,必要的时候会替换掉那些对象。比如我们的浏览器,当我们访问一个界面时候,浏览器会在本地的文件系统中寻找是否含有我们访问的那个界面,如果有就直接拿出来使用。web代理服务器为一个或者是多个地点的客户机提供共享的存放web资源的缓存。代理服务器的目的是通过减少广域网和web服务器的负载,提供服务的可用性和性能。

    (3)移动代码

    applet是一个广泛使用的移动代码的例子,也就是运行浏览器的用户选择了一个到applet的链接,applet的代码存储在web服务器上将applet的代码下载到浏览器并在浏览器端运行。

    (4)移动代理

    移动代理可以通过安装和维护一个组织内部的计算机软件,或者是通过访问每个销售商的站点并执行一些列数据库操作,来比较多个销售商的产品价格。和移动代码一样,移动代理对所访问的计算机上的资源而言是一个潜在的安全威胁,另外移动代理自身是脆弱的,如果他们访问所需要信息的要求被拒绝时候,那么他们可能完成不了任务。

    2、体系结构模式

    在上述的体系结构元素中都是单个的,而这里的体系结构模式是组合重复出现的结构。在本节中给出几个关键的体系结构模型,包括分层体系结构、层次化体系结构、瘦客户。

    (1)分层

    在分层方法中,一个系统被分成若干层,每一层利用下一层提供的服务。因此,一个给定的层提供了一个软件抽象,更高层次的层不清楚其下面的层的实现细节。他只使用下层提供的服务。

    举一个例子,在互联网上基于网络时间协议可以实现一个网络时间服务,意思是服务器在互联网的主机上,给请求的用户提供当前的时间。下面是其分层的体系结构。

    在这里提到了两个概念:平台和中间件,下面看看其概念

    平台:

    中间件

    中间件表示成计算机上的集成或者是对象,这些进程或者是对象相互交互,实现分布式系统应用的通信和资源共享支持。特别的,他提供多个协作的计算机上的分布,放置和检索、共享数据对象的复制以及多媒体数据的实时传送,提升应用程序通信活动的层次。其实就是把一些底层抽象,来提供两个计算机的通信。

    (2)层次化体系结构

    分层将服务垂直组织成抽象层,而层次化是一项组织给顶层功能的技术。他把这个功能放在合适的服务器上,或者作为第二选择放在物理节点上。我们先看二层和三层体系的结构概念:

    • 表示逻辑:设计用户交互和修改呈献给用户的应用试图。
    • 应用逻辑:涉及与应用相关的详细的应用特定处理。
    • 数据逻辑:涉及应用的持久性存储,通常放在一个数据库管理系统中。

    下图分别给出了两层和三层体系结构给出的解决方案:

    二层和三层的对比
     二层三层
    优点

    1、具有交互的低延迟

    2、仅有调节信息的消息交换

    1、提高软件的可维护性
    缺点1、将应用逻辑分离到不同的进程,带来的后果是一部分应用逻辑不能被另一部分直接调用

    1、增加了管理三个服务器的复杂性

    2、增加了与每个操作相关的网络流量和延迟

    下面举一个例子来说明分层体系结构的好处:

    以维基百科为例,它采用了多层体系结构(大于三层)来处理大量的web请求(每秒高达60000页)。我们知道浏览器发送了一个请求web网页的http请求,用户不能与该页面进行交互,一直到新的HTML内容被浏览器收到并呈现,这个时间间隔是不固定的,因为他受限于网络以及服务器延迟。此时便有了ajax。ajax能够有效地处理这种问题,他能局部的更新整个页面,就像我们浏览器中的时钟一样,我们的时间在一秒一秒的更新(更新时间需要请求服务器),此时我们的浏览器依然可以做其他事情。

    专业一点的术语是:AJAX提供一套通信机制,使运行在一个浏览器中的前端组件能够发送请求,并从运行在服务器上后端的组件接受结果。

    比如我们的地图,当地图被移动时候,浏览器中的Javascript代码重定位可见的图片,需要填充可见区域的额外的图片,可以通过AJAX调用Google服务器去获得。图片一旦收到就会被展示,但浏览器在等待的时候可以继续应答用户的交互。

    (3)瘦客户

    术语瘦客户指的是一个软件层,在执行一个应用程序或者访问远程计算机上的服务时候,由该软件层提供一个基于窗口的本地用户界面。他减少了用户的硬件要求,各种复杂的服务,通过云来解决。它的缺点是,因为各种复杂的服务都是通过云来解决,此时会有网络延时。

    比如,QQ的远程桌面控制。

    (4)其他经常出现的模式

    1. 代理:支持远程过程调用或者是远程方法调用的位置透明性
    2. web服务中的业务代理:在一个可能很复杂的分布式基础设施中支持互操作性的体系结构模式。
    3. 反射

    3、相关的中间件解决方案

    先看中间件的分类

    四:基础模型

    在上述完全不同的系统模型中,都有一个共同点,也就是所有的进程都由若干进程组成,这些进程通过在计算机网络上发送消息而相互通信,但是所有的模型都没有达到下列需求:实现进城以及网络的性能和可靠性特征,确保系统中资源的安全性。

    因此,我们希望在我们的基本模型中提取的分布式系统情况能解决下列问题

    • 交互:计算在进程中发生,进程通过传递消息交互,并引发进程之间的通信和协调。交互模型必须反映通信带来的延迟,这些延迟的持续时间会比较长。并且,交互模型必须反映独立进程相互配合的准确性受限于这些延迟,受限于在分布式系统中很难跨所有计算机维护同一时间概念。
    • 故障:只要分布式系统出现故障,我们的模型将对这些故障进行定义和分类。
    • 安全:分布式系统暴露在外部代理和内部代理的攻击之下。我们的安全模型对这些攻击进行定义和分类。

    1、交互模型

    首先看影响进程交互的两个条件:

    • 通信性能经常是一个限制特性
    • 不可能维护一个全局时间概念

    2、故障模型

    3、安全模型

    展开全文
    SDDDLLL 2019-01-23 08:57:25
  • 网络时代是一个信息技术飞速发展的时代,随着互联网服务的日趋完善,特别是多媒体、移动互联网技术的迅猛发展,智能手机、平板电脑的快速普及,以 及企业、政府、医疗机构、学术团体等对数据的巨大需求,使得全球...

    第1章 绪论
    1.1 背景
    网络时代是一个信息技术飞速发展的时代,随着互联网服务的日趋完善,特别是多媒体、移动互联网技术的迅猛发展,智能手机、平板电脑的快速普及,以
    及企业、政府、医疗机构、学术团体等对数据的巨大需求,使得全球存储数据量
    每年以指数增长[1]。根据国际数据公司IDC(International Data Corporation)的统计,截止2011年全球数字信息总量已经达到1.8ZB(1ZB=GB),预计到2020年,全球数字信息总量将达到35ZB。
    海量数据带给了人们海量的信息,这些信息已经融入到了人们生活的方方面面,然而海量数据在带给人们信息化便利的同时也带给了诸如Google、Facebook、Amazon等大型互联网企业一个巨大的挑战:面对错综复杂、跨地域、跨时间的海
    量数据,如何对它们进行安全的存储和高效的处理?这些挑战大体可以归纳为以下几个方面[2]: 
    ·海量数据的存储要求数据存储公司必须开发出PB甚至ZB级的文件存储系统,因为传统的文件系统根本无法保证多用户大规模数据的实时迁徙;
    ·海量数据催生出了海量的用户请求,因此,数据存储公司必须提供一种能并行处理不同用户提交的各项任务以尽可能大的减少服务时间的文件存储服务;
    与以往的计算相比,云计算有着自己独一无二的显著特点[5]:
    ·集群的超大规模
    构建云计算集群的服务器数目众多而且分布区域广泛,以Google为例,其服
    务器有几十万台,并且分布在全球的几十个国家和地区。
    ·采用虚拟化技术
    云计算服务支持用户在任意位置、使用各种终端获取所需要的服务,用户不
    需要知道所需的资源的具体物理位置,只需通过网络就可以获得相应的服务。
    ·可靠性高
    存储在云中的数据采用多副本容错、跨地区容灾、计算节点同构可互换等措
    施提高了数据的可靠性,有效防止了因为软硬件故障而造成的用户数据损坏。
    ·可扩展性高
    云中的集群可以动态扩展,可以向集群中动态添加或撤除节点而不影响整个
    服务。
    1.2意义和现状
    1.2.1 课题意义
    云存储是云计算系统架构的基础和应用的支撑。由于云存储往往拥有超大的系统规模和海量的用户访问需求,因此应具有较高的系统性能,虽然现有的云服务提供商承诺接近于百分之百的可靠性保证,但包括Google、EMC、Amazon等在内的许多提供云存储业务的公司近两年均出现服务中断的情况,这给用户带来了巨大的损失。所以研究具有高可用性和高可靠性的云存储系统的关键技术很有必要[9]。
    1.2.2 现状
    目前,国际上知名的网络公司都有自己的云存储产品,例如Google的 GFS[10](Google File System)、Amazon的弹性计算云EC2[11](Elastic Compute Cloud)和简单存储 S3[12](Simple Storage Service)、EMC的Atmos[13]、Apache 基金会开发的 Hadoop[14]等等。其中,Hadoop作为一个分布式系统的基础架构,已经成为云存储领域研究的主流架构之一。用户通过 Hadoop 可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的计算能力高速运算和存储数据。Hadoop实现了一个分布式文件系统,简称HDFS[15]。HDFS就像一个传统的分级文件系统,用户可以任意创建、删除、移动或重命名文件等。作为分布式文件系统的一个典型代表,HDFS具有廉价性、高容错性以及高可扩展性的特点,在当今云存储领域占据了举足轻重的地位,是使用最广泛的一种分布式文件系统。前的硬件水平来说整个系统就无法正常工作了。
    1.3 课题内容
    本文基于集中主从式体系架构的分布式文件储存系统,探讨了基于HDFS系统部分对等式多Namenode架构,并为所提出的构架设计了多Namenode选择算法、主-备Namenode 元数据的交互流程。
    第2章基于HDFS的部分对等式多Namenode架构
    2.1 架构概述
    2.1.1 架构出发点
    作为集中式系统架构的典型代表,相对于其它分布式文件系统,HDFS系统的特点如下:
    ·单一的命名空间
    在HDFS系统中,用户的所有操作都经过单一的命名空间,并且以文件的形
    式访问本地文件和远程文件,使得用户对于文件的存储位置具有透明性。
    ·支持大文件的存储与数据批处理
    存储在HDFS系统中的大文件都会被分割成多个固定大小的小文件块,每个
    文件块存储在多个存储节点上。基于Hadoop的Map Reduce编程模型[16],HDFS
    的分块存储及流式访问得到并行处理,因此,这种设计理念更适合海量数据的存
    储,效率也更高。
    ·数据一致性
    HDFS支持用户文件的“一次写多次读”操作,客户端在成功写入文件之后,才能看到文件。Namenode会根据配置文件利用心跳检测和重新复制等机制复制文
    件块来保证数据的一致性及安全性。
    2.1.2 架构目标
    本文中的云存储架构的要实现的目标有:
    (1)改变HDFS架构中的伸缩性差以及单点依赖等缺陷。利用首尾相连并成部分对等关系的多个Namenode改变了集中式架构中的单点依赖,例如克服了HDFS中当Namenode失效时,整个系统将陷入瘫痪状态的情况。
    (2)通过一个多Namenode选择算法,从多个Namenode中为接入用户选择特定的Namenode,并且选择出来的Namenode能为用户提供 HDFS系统中的任何应用,如用户透明性、元数据管理、海量数据的存储与检索等,不会对己存在的应用造成任何负面影响,从而提高了整个云存储架构可扩展性。
    通过实现以上目标,使得HDFS尽可能在一个更大规模的环境中应用,尽可能的使HDFS系统成为一个真正的云存储系统。
    2.2 总体架构
    2.2.1 总体架构图
    架构图如2.1所示
    在这里插入图片描述

                          图2.1 部分对等式多NameNode架构
    

    本架构共分为三层:用户应用层、元数据服务器层和存储服务器层。
    下面将逐一进行介绍。
    (1)用户应用层
    用户应用层是系统客户端的抽象,同时也是用户与服务器系统的纽带与桥梁,主要功能是向Namenode发送RPC(Remote Procedure Call Protocol)请求并与之建立通信连接,通过请求信息表与Namenode交互各种控制信息。
    (2)元数据服务器层
    在元数据服务器层,根据需求的不同,每个Namenode会在主-备之间进行角色转变,每一个Namenode既是它前驱节点的备用Namenode,同时也是它后继节点的主Namenode,前后节点之间是一种主-备关系,是典型的对等关系。在元数据服务器层中,由部分对等的多个Namenode组成,并且这些Namenode首尾相连构成一个环状。每个Namenode存储了特定用户文件的所有元数据信息及操作日志文件并且管理部分存储服务器,同时接收自己管辖区域内的存储服务器发送的定时心跳包和块报告信息。每个Namenode都有一个特定的ID,并且每个Namenode 都存储了一份Namenode ID与IP地址之间的映射表,可以随时进行 Namenode ID与IP地址之间的转换。一般情况下,每个Namenode 在存储用户元数据的同时,也将元数据的副本发送给自己的后继Namenode。当某个Namenode发生故障时,该节点的全部功能均由其后继Namenode承担,直到自己恢复正常。
    (3)存储服务器层
    存储服务器层由多个存储服务器机架组成,每个机架有多台存储服务器,也
    就是本文的Datanode,并且不同机架通过一台交换机相连。采用分区域自治的管理方式,每个Namenode负责管理存储服务器层中特定机架的Datanode,若NNn表示系统中Namenode总数,NDn表示系统中Datanode机架总数,一定有NNn<NDn。存储服务器层中的Datanode会定期的向管辖自己的Namenode发送心跳包和数据块信息,通过接收Datanode的心跳包,Namenode能判断出Datanode的实时状态信息,为用户文件块在存储服务器层中存储位置做出选择。当某个Namenode发生故障时,其管辖的机架内的Datanode会和该Namenode的备用Namenode联系,负责心跳包和数据块信息的接收。
    2.2.2 架构交互机制
    本文所述的架构共有三层,并且每一层只有一种节点类型,即用户应用层中的用户Client,元数据服务器层中的元数据服务器Namenode和存储服务器层中的存储服务器Datanode,它们之间的交互过程可以概括为:Client与Namenode、Client与Datanode、Datanode与Namenode、主-备Namenode之间以及不同Datanode之间这几种。
    2.3 架构细节设计
    2.3.1 元数据的存储结构
    元数据被定义为数据的数据,它是描述数据属性的一个参量。在分布式文件系统中,元数据主要作为块数据的索引来使用。在HDFS系统中,文件的元数据信息主要包括文件命名空间、文件到数据块的映射、数据块到数据存储节点的映射三部分。HDFS系统元数据的存储类型一共分为两种:Fsimage文件和Editlog文件。
    (1)Fsimage文件
    Fsimage是一个二进制文件,其中存储了命名空间中所有文件以及目录的元数据信息,其保存的文件和目录信息的格式如图 2.3 所示:
    在这里插入图片描述

                       图2.3 Fsimage文件格式
    

    从Fsimage的文件格式可以看出,Fsimage保存有如下信息:
    首先,是一个文件头,其中包括:
    ·img Version(int):当前image的版本信息;
    ·namespace ID(int):用来确保别的HDFS系统中的Datanode不会误连上当
    前Namenode;
    ·num Files(long):整个文件系统中包含有文件和目录的个数;
    ·gen Stamp(long):生成该image时的时间戳信息;
    其次,是对每个文件或目录的元数据信息,如果是目录,则包含以下信息:
    ·path(String):该目录的路径,如“/user/build/build-index”;
    ·replications(short):副本数(目录虽然没有副本,但这里记录的目录副本
    数也为3);
    ·mtime(long):该目录的修改时间的时间戳信息;
    ·atime(long):该目录的访问时间的时间戳信息;
    ·blocksize(long):目录的blocksize都为0;
    ·num Blocks(int):实际有多少个文件块,目录的该值都为-1,表示该item为目录;
    ·ns Quota(long):namespace Quota值,若没加Quota 限制则为-1;
    ·ds Quota(long):disk Quota值,若没加限制则也为-1;
    ·username(String):该目录的所属用户名;
    ·group(String):该目录的所属组;
    ·permission(short):该目录的permission信息,有一个short来记录。
    若是一个文件,则还会额外包含如下信息:
    ·block ID(long):属于该文件的block的 block ID;
    ·num Bytes(long):该block的大小;
    ·gen Stamp(long):该block的时间戳。
    当该文件对应的num Blocks数不为1,且大于1时,表示该文件对应多个block信息,此时在该Fsimage之后的就会有多个block ID 、num Bytes和gen Stamp信息。因此,在Namenode启动时,就需要对Fsimage按照如下格式进行顺序的加载,以将Fsimage中记录的HDFS元数据信息加载到内存中,但为了元数据的安全性,Namenode还会将元数据持久化到硬盘中。
    (2)Editlog文件
    在HDFS中Editlog文件是用来记录Namenode的命名空间的修改操作进行日志记录的。文件系统的命名空间被全部缓存在Namenode的内存中,一旦Namenode重启或出现故障,必须有一种方法能够将整个命名空间进行重建,目前Namenode是通过将命名空间信息记录Fsimage中,Namenode重启的时候,就是通过读取Fsimage文件来重构命名空间目录树结构。但是,Fsimage始终是硬盘上的一个文件,不可能时时刻刻都跟Namenode内存中的数据结构保持同步,而是每过一段时间更新一次Fsimage文件,以此来保持Fsimage跟Namenode内存命名空间的尽量同步。而在一个新Fsimage和上一个Fsimage中间的Namenode操作,就会被记录在Editlog中,所以,Namenode会对应一个Fsimage文件和一个Editlog文件,Editlog一般存储在Namenode节点的硬盘中。
    2.3.2 NameNode的启动
    (1)Fsimage加载过程
    HDFS中,文件的命名空间、文件到数据块的映射关系等元数据信息都存储在Fsimage文件中,所以元数据的加载过程即是Fsimage的加载过程,在NameNode启动时完成对Fsimage的加载。Fsimage加载过程完成的操作主要是为了:
    ·从Fsimage中读取该HDFS中保存的每一个目录和文件;
    ·对每个目录和文件的元数据信息进行初始化操作;
    ·根据目录和文件的路径,在内存中构造出整个命名空间;
    ·读取出文件包含的所有block,并记录在BlocksMap中。
    Fsimage的整个加载流程如下图3.7所示:
    如图2.3, Namenode加载Fsimage的过程非常简单,就是从Fsimage文件中依次顺序的读取用户的每个文件和目录的元数据信息来构建整个命名空间,同时,将每个文件所对应的block信息存入BlocksMap块映射表中。Fsimage文件头都有一个统一的标识。Fsimage文件加载完毕意味着在整个HDFS系统,除了每个文件所对应的block块的Datanode列表信息以外所有的目录在内存中已经初始化结束。这些初始化信息需要Namenode从Datanode的blockReport包中获取,所以加载Fsimage文件结束后,Namenode开始进入了RPC等待状态,所谓RPC等待状态是指Namenode开始等待自己管辖机架内的Datanode发送blockReport包。
    在这里插入图片描述

    图2.3Fsimage的加载过程
    (2)blockReport的接收
    每个Datanode在开始启动时都会周期性的扫描其机器上对应保存HDFS块的目录下存储的所有文件块信息,然后通过Namenode的RPC调用请求将这些块信息通过一个矩阵数组的方式发送给管辖自己的主Namenode,主Namenode在接收到一个管辖区域内的Datanode发送过来的blockReport RPC调用请求后,从RPC中解析出该块数组,并将这些收到的数据块插入到BlocksMap块映射表中,由于此时BlocksMap缺少的仅仅是每个块对应的Datanode信息,而主Namenode能从blockReport块报告中获知当前汇报上来的Datanode的位置、IP地址和块信息,所以,B1ockReport块报告过程就是主Namenode在接收到Datanode的块信息汇报后,填充BlocksMap映射表中每个块对应Datanode列表的三元组信息的过程。具体流程细节如下图2.8所示:
    在这里插入图片描述

                       图2.8 BlockMap填充流程
    

    当所有Datanode的块信息汇报完成,并且Namenode对每个Datanode的汇报处理结束,这意味着BlocksMap映射表建立完毕。此时,Namenode的启动过程结束,Namenode主动退出安全模式,开始提供服务。

    第3章 总结
    首先,本文在对云存储的发展现状以及主要技术做了详细的介绍,介绍了分布式文件系统的相关背景以及相关知识。
    其次,基于HDFS系统同时结合对等式结构的优点,本文介绍了一种部分对等式的多Namenode系统架构,从架构的出发点入手,对架构的总体结构图,层次间的节点构成、不同层次间的交互方式以及文件的写入过程和读取操作做了概括描述;随后,本文从架构的细节出发,讲解基于本架构的多Namenode选择算法、主一备Namenode元数据的交互流程。

    参考文献
    [1]张大洋.基于云存储的分布式文件系统研究与优化[D].西安电子科技大学硕士学位论文,2013.
    [2]李琛.开放分布式文件存储服务的设计与实现[D].北京邮电大学硕士学位论文,2016.
    [3]韩晓明.磁盘阵列技术的新进展[N].中国计算机报,2012-01-09.
    [4]邓见光,潘晓衡,袁华强.云存储及其分布式文件系统研究[J/OL].东莞理工学院学报,2012.
    [5]马帅,李建新,胡春明.大数据科学与工程的挑战与思考[EB/OL].中国计算机学会通讯,2011.
    [6]周江,王伟平,孟丹,马灿,古晓艳,蒋杰.面向大数据分析的分布式文件系统关键技术[J].计算机研究与发展,2015:382-394.
    [7]彭海琴.云存储模型及架构解析[J].数字技术与应用.2015(4):76-77
    [8]百度文库.NAS存储——数据备份方案[EB/OL].[2018-06-30].
    https://wenku.baidu.com/view/568b38d4360cba1aa811daf9.html?sxts=1546010007534
    [9]刘洋.云存储技术——分析与实现[M].经济管理出版社,2016.
    [10]Ghemawat S,Gobioff H,Leung S T.The Google file system[C]//ACM SIGOPS Operating Systems Review.ACM,2003,37(5):29-43.
    [11]Amazon.Amazon EC2[EB/OL].https://aws.amazon.com/cn/ec2/?nc2=h_m1
    [12]郭巍.基于Amazon S3接口的云存储系统的设计与实现[D].上海交通大学硕士学位论文,2016.
    [13]DELLEMC.EMC ATMOS云存储解决方案[EB/OL].
    https://china.emc.com/storage/atmos/atmos.htm
    [14]百度百科.Hadoop[EB/OL].[2014-04-30].
    http://baidu.com/vicw/908354.html?Fr aladdin#rcfIndex_7_908354.
    [15]Hayes B.Cloud Computing[J].Commuincations of the ACM,2008,51(7):9-11.
    [16]apache hadoop.MapReduce Tutorial[EB/OL].[2016-08-18].
    http://hadoop.apache.org/docs/r2.7.3/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html
    [17]朱颂.分布式文件系统HDFS的分析[J].福建电脑,2012(4):63-65.

    展开全文
    qq_43802706 2020-10-22 11:19:15
  • idler123 2021-10-25 04:02:18
  • weixin_41605937 2021-05-26 10:30:43
  • 89KB weixin_38552292 2021-01-19 22:07:33
  • 5星
    173B qq_33705529 2018-12-11 17:07:42
  • weixin_43869898 2020-05-18 08:36:33
  • VRunSoftYanlz 2019-07-11 15:33:52
  • weixin_34144450 2017-08-01 17:35:00
  • 89KB weixin_38705874 2020-10-22 06:52:30
  • Rong_Toa 2020-10-11 14:59:44
  • hxl_1993 2017-03-17 20:30:02
  • 433KB weixin_38543950 2021-04-25 03:44:52
  • 88KB weixin_38611508 2020-10-25 15:21:40
  • sinat_16596967 2014-07-19 14:18:40
  • cmrsautomation 2016-10-02 13:08:15
  • avcitcomcn 2014-11-07 16:19:52
  • flashflight 2017-07-30 17:06:50

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,813
精华内容 5,125
关键字:

多媒体分布式交互系统