一种分布式计算机系统的制作方法

文档序号:7964929阅读:263来源:国知局
专利名称:一种分布式计算机系统的制作方法
一种分布式计算机系统本发明与一种客户/服务器模式的分布式计算机系统有关,这种 计算机系统可用于广播式多媒体应用中々早期的计算机系统都是独立的系统,通常是些大型主机。后来, 为了处理大型的计算工作,比如大量的分时用户,又将它们紧密互连 或者说联接成计算机簇。随着个人计算机的出现,个人机用户控制着 大量能力相对较低的独立的计算机系统,这些个人机很快又通过计 算机网络相互连接起来,为各个人机用户提供共享资源和通信能力, 同时也与原先的大型主机共享这些资源。这种网络的一种构成形式是:包合一台称为服务器的、通常带有 大量存贮空间的中心计算机。网络用户所使用的程序集中存故在服 务器的大容量的存J^介质上。当用户想要运行一个程序时,该用户的 计算机就请求服务器发回该程序的一份拷贝。服务器收到请求时就 将前述程序的一份拷贝从其大容量存贮介质传送到用产的个人机的 主存中,并在该个人机上执行。.数据也同样集中存放在服务器上并由 网络上的所有用户共享。存放在服务器的大容量存贮介质上的数据, 可由所有的网络用户通过发送请求来访问。服务器同时还充当网络 用户间的消息通信电子邮件的中继角色。.在这种系统中的服务器可 以管理程序、数据和消息的存贮及分发,但不能给任何用户的任一实 际计算任务贡献处理能力。也就是说,用户不能期望服务器计算机为 在个人机上执行的程序执行任何处理任务。虽然这种网洛执行有价
值的适耸,但它们不是分希式的i十算机系统。囡为后者可由互连的多 点计算机共同合作执行一个单一的计算任务。作为对前述网络的一种改进,该网络也可以配置成以下的工作方式网络上的一个用户可以请求服务器,或者连在网上的其他个人 机执行一个程序,因为远离请求者的计算机(服务器或其他个人机) 在响应来自请求者的请求时执行程序,因此称之为远程(程序)执行。在这样的系统中,被请求用于远程执行的程序可以由请求者发送至 远程计算机,也可以由远程计算机在响应请求时从服务器获取。程序到达远程机后就被执行。多台计算机可以通过这种方式参与合作,共 同执行某个计算劝能。最近,已有一些程序釆用分布式的方法执行某一单一计算劝能 所需的多个实际计算任务。以该类型的数据库程序为例,数据库存放在服务器的大容量存贮介质上;如果某用户想要执行一次数据库查询,存在于该用户的个人机上的数据庠管理程序的一部分就将产生 一个查询请求,并传送給服务器。而处于服务器上的该数据管理程序 的另 一部分将执行奎询处理,例如对奎询请求语法分析、确定该请求 所指定的数据在其大容量存j^介质上的位置、访问这些数据并将结 果通过网络发回給请求者个人计算机。其后再由处在个人机上的数 据库管理程序部分接着处理来自服务器的数据,例如将数据格式化, 再在屏幕上显示或在打印机上打印。当服务器忙于处理查询请求时, 该个人机可以自由地执行其他处理工作,而当该个人机正在产生奎 询请求或者处理来自于服务器的结果数据时,服务器又可以自由地 处理其他个人机的查询请求。其他类型的程序也遵从这种称为客户-服务器计算的分布式计 箕古式。i+人机和服各器备作执行处理任务,提高了网络计算的总 体欢率。这种客户-服务器计算机系统以及远程(程序)执行网络可以 称为分布式计算系统,因为(系统中).多台计算机(服务器和/或相关 的外围计算机)合作执行计算任务,例如数据库管理。最近,提出了 一种广播式多媒体程序,更具体地说是交互式电视(TV)程序。交互式TV程序允许电视节目收视者与节目进行交互。在交互式的TV系统中,中央广播台站(TV网、本地TV演播室、电缆系统等)拥有一台中央计算机,它类似于服务器计算机,它将产生与交互式电 枧节目相关的信号,并将它与TV(视频和音频)信息一起广播出去。这些信号携带着代表交互式电视节目的数据,还可能包合命令、可执行 程序代码和/或数据,用于控制与收视者的"对话"。各收视者所在之处也有一台计算机,它对应于客户计算机,将接收来自于中央计算机 的命令、可执行代码和/或数据,执行可执行代码,处理所接收到的数 据、接收来自用户的输入并通过TV显示屏将数据展示给用户。来自用户的输入还可以发送回給广播台站的中央计算机,使用户能够与交 互式TV节目进行交互。美国专利4, 965 , 825 SIGNAL PROCESSING APPARATUS AND METH0DS(1990年10月23日授予Harvey等)描述了一祷臾互式TV系统, 其中一个中央广播台站(的广播信号)汇集了命令、可执行代码和数 据(例如电视信号的场消隐),由收视者所在场所的计算机接收。收视 者所在处的计算机取出命令、可执行代码和数据并执行该代码以处 理该数据,与用户交互。收视者计算机加入交互式TV节目并由中央台 站控制,以这一点来看,这样的系统与前迷分布式计算机系统的远程 (程序)执行劝能类似。
在上述所有系统中,中央计算机控制通过网络与其连接的外围 计算机或者响应来自它们的请求。亦即,外围计算机(个人计算机)请 求另 一 台计算机远程执行一个程序,从另 一 台计算机请求一个文件 或消息,或者向另一台计算机发送一个查询请求。另一台计算机仅当 在响应请求时才給予回昝,例如远程执行,所请求的文件、消息或要 读取的数据。另外,外围计算机通常需要具备执行所期望的程序全部或几乎全部的所有必要资源,而服务器仅起数据存f:作用或者至多 分担计算任务的一部分。、在这里,发明人提出了一种分布式计算系统,系统中有一台服务 器计算机不断地产生数据流。该数据流充当接受这个数据流的计算 机的大容量存贮设备。该数据流中包舍一个又一个的代表着客户计 算机可能参与的分布式计算应用的数据,亦即可执行代码及有关数 据。从服务器到客户的数据流传输由包合高速、单向的通信路径的传 输机制来完成。客户机则接收该数据流,从中取出分布式计算的表示 数椐并执行该分布式计算应用。根据本发明的原理,该分布式计算机系统由包合一个个的表示 分布式计算应用的数据的连续的数据流源,和客产计算机构成。客户 机接收前述数据流,从中取出分布式计算应用的表示数据并执行这 个取出的分布式计算应用。在根据本发明的分布式计算系统中,客户计算机系统不必具备 执行整个程序所需的全部资源,具体地说是主存和大容量存*:介质。 相反,因为前述数据流已提供了大容量存贮设备的劝能,客户机根本 不需要大容量存贮介质,而且由于仅是当前正在执行的程序的一部 分需要装入主存,所以主存的要求也是很低的。当目前的(程序)部分
执行完成时,它所占用的生存空间就被释放,然后可以从数据流中取 出下一个待执行的(程序)部分,将其装入主存再开始执行之。另外,根据本发明的分布式计算系统允许客户计算机用户可逸 地参与分布式计算任务。若希望參与,客户计算机就取出表示分布式 卄算应用的数据并执行该分布式计算应用(如前所述)。若不参与, (客户机)则忽略数据流,只执行用户所要做的处理,或者什么处理也 不l这样的分布式计算系统还允许各参与者客户计算机在任何时 刻加入分布式计算工作,并且以其固有的执行其计算任务的速度进行执行。根据本发明的分布式计算系统特别适合于交互式TV应用,因为 它允许收视者在任意时i转换频道收视某个交互式TV频道,在需要 时参与交互(或根本不参与),并且允许所有的收视者以各自不同的 步调行进。这在以下环境中尤其有价值:一是商业交互式电视台将其 可执'行代码及相关数据在交互式节目中播出,二是当收视者希望切 换频道时。插图简介 在所附插图中图l是根据本发明的一种分布式计算系统的模块图; 图2是

图1中的服务器计算机的模块构成图;图3是一张时序图,其中说明了图l所示的分布式计算系统中的 服务器计算机所产生的数据流;图4是图1中所示的客户计算机的模块构成图。图l是根据本发明的一种分布式计算系统的模块构成图。知图l 所示, 一台服务器计算机IO,它可合有一台大型计算机系统,通过传
输机制30与多台客户计箕机20耦合。服务器计算机10可以与三台以 上的图1所示的客户计算机20耦合,而且备客户计算机20可分散在广 阔的地理位置。客户计算机22双向耦合至本地计算机40、辅助数据处 理系统50和中央处理设施60上。该中央处理设施与服务器计算机双 向耦合。该中央处理设施60也可以与图1所示的服务器计算机10之外 的其它设施相连。本地计算机40又双向耦合至大容量存胆设备70。客 产计算机22通过在显示屏或其他输出设备(来画出)上向用产80提供 信息。以及经由键盘或其它输入设备(亦未画出)接收来自用户的信息来实现与用户的交互。客户计算机24和26也可与其它的用户交互(为筒化插图未画出)。另外,客户计算机"和26双向耦合至中央处理设施60。然而这些 链路是可选的。对于任何客户计算机20的要求仅限于与用户交互的 途径以及在传输机制30的连接。到达本地计算机、辅助数据处理系统 和中央处理设施60的各条链路都是可选的,不是每台客户计算机20都必须具备。传输机制30包有一单向的高速数字数据链路,例如从服务器70 至客产计算机ZO的光纤或数字卫星链路。该数据可以经由分组数据系统在传输系统30上传送。在这样的系统中,由包合了表示分組中的数据类型的标识信息、实际数据以及 其他内容的数据分组构成的分组流通过该数据链路传送。这样的分 组数据系统允许多个分别由其分组中的标识信息标识的辨互独立的 数据流在同 一 分组流中分时复用。另外,也可能通过复用传输机制30的构成成分之一的同一物理介质(光纤或卫星射频链路),形成多个分组数据流通道。例如,不同
的数据流可以使用不同频率的载波进行调制,而这些调制后的载波 又可以经由卫星链路上各自的转发器发送。再者,如果其转发器具有 足够的容量,也可能通过分时复用在同一调制后的载波上发送多路 数据流。各客户计箅机"分别拥有一数据接收器,用于选棒在传输机制30上传送的某个分组流、接收所选分组流并从中取出数据。在前述例子中,该数据接收器可能合有可调的解调器,用于接收来自卫星链路 的不同的调制信号。另外,该数据接收器还可以合有用于对由调制载 波所载的不同的数据流进行时分多路解调的电路。运转时,服务器10为客户计算机20产生分组流形式的数据流。服 务器10不断向该数据流插入分組或后继分组,这些分組合有表示分布式计算应用的数据,其申至少包括一个可执行代码模块。该代码模 块合有用于客户计算机20的可执行代码。例如,客户计算机22的数据 接收器不断监枧传输机制30上的数据流的分組。当该数据中存在这 样的分组,其标识信息表明该分组合有客户计算机22所需的代码模 块(或代码模块的一部分)时,客户机22将捡测到这些分组,并从分组中取出代码模块(或代码模块的一部分)并将它装入主存。若代码模 块接收完毕,客户机22就将开始执行该代码。可以将多个代码模块故入连续数据流中,其中每个模块舍有同 一分布式计算应用的不同部分。例如,有可能釆用这样一种方式将分布式计算应用分割成多个部分,即每次只须执行一个部分。该分布式 计算应用的当前需要执行的部分被装入客户计算机22的主存。当前部分执行完毕后,刚从数据流中取出该分布式计算应用的后继部分 的可执行代码的代码模块,装入主存并执行。各部份仅当需要时才从 数椐流中取出。若客户计算机22带有足够的内存,也可以同时装入多 个代码模块并在它们之间切换,而不必从数据流中读取。但这并不是必须的。以这种方式构造分布式计算应用,客户计算机22所需的内存 量可以减少。服务器10也可以在数据流中加入一个或多个合有一个或多于一个数据模块的分组。这些数据模块合有由代码模块中的可执行代码所处理的数据。在执行来自于先前取出的代码模块中的代码之前或之中,客产机22可以请求访问这些数据模块之中的数据。若然,客户 计算机22就将监视该数据流以取得所需的一个或多个数据模块。当合有这些数据模块(或数据模块的部分)的分组出现在数据流中时, 就取出它们,并将其内容装入客户计算机22的主存。所有的数据模块 接收.完毕后;客户机22开始或者继续执行来自于代码模块的代码,对 来自于所接收到的一个或者多个数据模块中的数据进行处理。象代 码模块一样,如果客户计算机22带有足够的存j^器,可以将多于一个的数据模块装入内存。服务器10可以更进一步地fe目前包合在数据流中的代码和数据 模块的目录信息的一个或多个分组反复加入数据流。该目录合有关 于出现在数据流中的所有代码和数据模块的列表,以及关于这些模 块的信息。若数据流中有目录存在,那么客户计算机22在从该数据流 中取出任何代码或数据模块之前要先监视该数据流以找到目录。当数据流中出现合有目录(或部分目录)的分组时,取出它们,并将其数 据装入客户计算机"的主存中。目录全部接收完毕后,客户机22整理目录中的各项,再按如前所述从数据流中取得第一个代码及/或数据 模块并开始执行。.
任何一台客户计箕机20可以在任何时刻加入由分组流所表示的 分布式计算应用,并且可以备自的速度运行,通常这些都决定于用户 SO (的输入)。为此,服务器10反复将目录和所有的、客户计算机20可 能请求执行的分布式计算劝能的部分的代^和数据模块放入传输机 制30上的数据流。客户计算机"中的某台计算机任何时侯加入分布 式计算劝能时,它都首先监视传输机制30上的新选择的分组流等待 目录模块,取出它并如前所述进行处理。在执行期间,客产机20中的某台计算机任意时刻需要新的代码和/或数据模块时,它都监视传输 机^上的数据流,等待所需的新代码和/或数据模块,取出它,若是代码模块则按前述那样执行,若是数据模块则如前述那样处理。分組装置流中也可合有辅助数据分组。该数据对于客户计算机 22执行代码来说不是必须的,但它也可能与其有关。这是因为用户80 可能基于所接收到的辅助数据与在客户机22上执行的程序发生交 互6客户计算机22中的数据流接收器识别传输机制30上的数据流中 的辅助数据分组,并将它们直接传递给辅助数据处理器50。辅助数据 处理器50独立于客产计算机22处理其分组。若辅助数据必须呈现给 用.户80,辅助数据处理器50可能在它自己的显示设备(来画出)显示, 该显示器可以与客户计算机22共享;或者在与客户计箅机22相连的 显示设备(未画出)(该显示设备可与辅助数据处理器50所共享)上显 示以給用产SO提供单一的信息显示。辅助数据处理器50可以与其他 展示部件(未画出)连接,但这与数据类型有关。对于交互式TV系统,辅助数据包括基本电视信号的视频和音频 部分。例知,该辅助数据可包合合有代表了电视图象的MPEG或类似 MPEG的编码数据的视频分组,以及合有数字编码的音频数据的音频 分组。而且,可以有多个不同的音频分组流以提供用于立体声、第二音频节目(Second audio program SAP)或多语言能力的多个音频通 道。对于这种系统中的辅助数据处理器50,那些视频分組可提供給能 产生标准视频信号的MPEG (或类似的)解码器(未画出),而标准视频 信号又可以提供给电视接收器或枧频监视器(未画出)。那些音频分 组则提供给能为电枧接收器或扬声器(未画出)提供标准音频信号的 已知音频解码器(来画出)。在这样的交互式TV系统中,作为对执行可执行代码模块的响应, 客户计算机22可以产生图形显示以向用户80提供信息。这些图形显 示可以按已知的方式与来自于MPEG解码器的标准枧频信号结合,而 且该混合的图象显示在电枧接收器或视频监视器上。客户计算机22 还可以产生声音以向收视者提供其他信息。所产生的声音可^按.已 知的方式与来自于音频解码器的标准音频信号结合,并且通过电视 接收器或扬声器输出。另外,时间编码数据也可以包括在电视辅助分组数据流与表示 交互式TV应用的分組数据流的任何一个或同时在两者中。这样就使 得客户计算机22所产生的任何图形图象或声音可以与来自于辅助数 据的电枧信号同步。在这种情况下,客户计算机22就可以访问该时间 代码数据,并根据该时间代码数据,控制图形图象和/或声音在希望 的时刻产生。在这种交互式TV系统中,客户计算机22和辅助数据处理器50都 可以包括在单一设备中,例如电视接收器或电视set-top解码盒中。电视接收器或解码盒将包合连接至本地计算机或其他设备的连接 器0
用户30向正在客户机22上运行的程序提供输入。服务器10可能 需要这些输入数据以调整该分布式计算劝能。例如在交互式TV系统 中,用户80可能通过手持遥控部件向客户计算机提供输入。用户数据经由中央处理设施50传送到服务器计算机10。在一个实施例中,数据可以通过调制解调器经由电话系统(在此充当中央处 理设施60)从客户计算机20传送到服务器计算机10。服务器10在执行 其分布式计算劝能部分期间将接收并处理来自于客户计算机ZO的数据o服务器计算机10可以根据所接收到的数据,按下述方式在传输 机制30上的数据流中产生新的、或修改现有的代码和/或数据模块。 抑或,服务器计算机10也可以通过中央处理设施60立即向客户计算' 机20返回信息。在所有參与该分布式计算劝能的客户计算机"都要 处理新产生的代码和/或数据模块中的错息,而从服务器计算机10经 由中央处理设施60送达客户计算机20的信息仅与特定的作为信息目 的的地的客产计算机(22,24,26)有关。作为另一实施例,中央处理设施50可以合有自己的计算机系统, 该计算机通过调制解调器经由电话系统分别与客户计算机"和服务 器计算机10相连。在上述两种实施例中,中央处理设施S0都是通过电话系统提供访问其他计算机或别的处理设施(未画出)的途径。这样, 若客户计算机20或服务器计算机在执行分布式计算劝能时需要来自其他计算机系统的信息,它们就可以通过调制解调器经由电话系统 访问那些计算机系统。客户计算机22上的输入/输出(I/0)端口耦合至本地计算机40的相应端口 。本地计算机40与客户计算机22同处一地。本地计算机AO可
以是由客户计算机22的用户使用的个人计算机、或者是大型计算机, 或者是与客户计算机22同处一地的计算机网络。这就使得客户计算 机"可以访问个人计算机或者与客户计算机22同处一地的计算机网 上的大容量存j^器 0上的数据。另外,客户计算机22可以利用本地计 算机40的大容量存j^器70来存贮以后要读取的数据。本地计算机40很可能带有计算机监视器之类的输出设备(未画出)和计算机键盘之类的输入设备(亦来画出)。这两者都可以如前述邻样与客户计算机 22和/或辅助数据处理器50共享。例如,图l所示的分布式计算系统可以是某个大范围的公司计算 系统的一部分,而服务器10则可以处于该公司的中心位置。客户计算 机22可以处于远程地区,本地计算机40则可以与该处的个人计算机网连接。该处的职员也许会在该网络上的服务器上存肃共享数据(例 如财政信息)。而分布式计算劝能则可以包括从远程客户计算机收 集、处理当地财政信息,并向客户计算机返回总体财玫结果信息。在 这样的应用中,运行于客户计算机22上的可执行代码通过I/0端口访 问本地计算机40的数据(或者来自于连接的大容量存,器70或者是 通过网络),并通过中央处理设施60将数插发送至服务器计算机10。 服务器计算机10继续其基于从客户计算机22(和其他客户计算机20)处接受到的信息的处理,并将处理.结果经由中央处理设施eo或传输机制30上的数据流返回給客户计算机20。作为另一个例子,该分布式计算系统可以是广播家庭购物节目 的交互式电视系统,这种节目也作为一种分布式计算应用。在这种情 形下,辅助数据则背载着电视信号的视频和音频部分,它们可以显示 和描述供售物品;也可以现场演员以及由中央演播室产生的叠加图
形。枸成该支互式电枧应用的代码和数据模块可以包合持售产品的 有关数据,以及用于以下述方式与用户交互的可执行代码。当某收视者想要订购某物品时,可以按压TV遥控器上的一个按 钮。该按钮信号会通知客户计算机22显示一系列必要的命令和菜单, 用来引出发送订单的必要信息,例如物品编号,收视者的名字和地 址、付款方法以及信用卡号(若需要)等等。这些指令是在客户计算机 中产生并叠加于电视视频图像上的图形。计算机也可以产生声音并 以大容量或替换电视音频的方式结合进电枧音频。收视者则通过TV 遥控器提供所需的信息以响应那些指令。当那些在屏幕上显示或/和 声音指令所要求的信息已由用产输入后,这些信息将经由客产机的 调制解调器发送至中央计算机。此后中央计算机也可以反向传送订 单确认信息。有关收枧者的永久信息(即姓名、地址、付款方式及信用卡号)也 可以由收视者一次性预先输入,所以在发—出订单^就不必每次请求 这些信息。这些信息存贮在客户计算机的永久存贮器中。这样,当投 放订单时,就从永久存j^器中取出这些信息,再添加物品编号弃发送 给中央计算机。而且,还可能通过插入在数据流中的时间编码或其他 命令,让客户计算机知道那些物品目前有售。这样,收视者就可以通 过简单地在电视遥控的按钮上按一下就完成了订购(搡作)。作为响 应,,客户计算机可以fe先前接收到的有关在售物品的信息与预先存 贮的有关收视者的个人信息结合起来,向中央计算机发送订单并接 '收返回的确认。由于有关家庭购物节目的代码和数据模块反复在数据流中出 现,收枧者可在任何时间调入该节目并与其交亙。类似地,用产不是
必须交互式地参与其中而是可以不理睬节目中的交互部分。客户计算机22也可以从本地计算机40接收控制倌息。例如,使用 本地计算机A0的用户80可以经由I/0端口控制客户计算机22选择传 输机制30上的数据流之一,处理数据流中当前广播的节目,并通过连 接至本地计算机40的输入和输出设备(未画出)与用户80交互。另一种可能性是,用户80可以让客户计算机22不是通辻传输机 制30上的数据流而是经由中央处理设施60访问服务器计算机10,通辻该双向链路捧收代码和数据模块。图2是图1中所示的服务器计算机10的模块图。在图2中,分布式 计算应用代码和数据源101包合了应用程序编译器和软件管理模块 (未画出),并且有一输出端耦合至流构造器(flow build") 102的输 入端。流构造器102的输出端又耦合至传输打包器(transport packet,'zer)104的输入端。传输打包器104的输出端继而耦合至分组 多路复用器106的第一输入端。分^多路复用器106的输出端再耦合 至传输多路复用器110的输入端。^输多路复用器110的输出端耦合 至构成传输机制30 (图l)的物理介质。分组多路复用器106的第二输 入端耦合至辅助数据分组源107。时钟107的备输出端分别耦合至传 输打包器107和辅助数据源107的相应输入端。数据收发器103有两个 双向端口,第一双向端口耦合至中央处理设施60(图1),第二双向端口耦合至应用代码和数据源ioi。应用代码和数据源101、流构造端102、传输打包器104、辅助数据 源107、时钟109和分组多路复用器106结合起来就形成了传输机制的 通道源(channel source) 108,如虛线框所示。合有与通道源108类似 组件的其他通道源(未在图l中画出)由另一个虛线框108a表示。别的
通遒源(108a)具有连接至传输多路复用器110的其他输入端的输出 端,而且也可以具有通过数据收发器耦合至中央处理设施的输入端。 至于运行机制,表示了分布式计算应用程序的数据,以及与在传102。这些数据可以以合有表示了代码和数据模块的文件形式,或以 提供如何构造代码和数据模块的脚本(scripts).的形式或者其他形式提供。代码和数据模块可以不变也可能动态地变化,这要根据经由 中央计算设施60和/或其它途径从客户计算机收到的输入来确定。可 执行代码及有关数据文件可根据应用程序灵所用的编程语言按已知 的方式通过编译器、解释器或汇编器来产生。由关模块发送的数据文件合有以下信息需要加入数据流的目录、代码和数据模块的反复发 送频率;客户计算机存贮备模块并充成整个应用程序执行所需的主存大小。若是代码模块还有该模块的优先敬信息。流构造器10Z处理来自应用源101的数据。作为(对输入数椐的) 响应,流构造器102将构造一个反映应用程序总体图的目录模块。目录模坱中的信息包括:反复在数据流中发送的所有代码和数据模块的标识,这些模块的大小及其它相关信息。然后可通过处理这些应用程序表示数据来产生代码和数据模块。照此产生的目录、代码和数据模块再通过附上模块头、检和/或纠错码进行格式化,同时还将产生发送时间表。完成所有这些处理后,就将按先前产生的时间表将这些表示目录模块、代码和数据模块的数据一次次地呈交給传输打包器 104。当流构造器102把目录模块、代码及数据模块提交给传输打包器 104时,传输打包器1(H将产生表示这些模块的分组流。每个分组具有
预定的固定长度,它是通过将来自^构造器的数据流分割成位组并 给各位组加上合有分組数据标识信息的分组头以及检/纠错码等信 息后形成的,这种分割的目的就是使备分组都有相同的预定长度。 (若来自流构造器的数据不足于填满一个分组,就用无用数据瑱充)。 这些分组将与辅助数据分组一起以已知的方式在分组多路复用器106中经过分时多路复用形成单一的分组流。所产生的分组也可以有可变的长度,这里备分组的分组头中就要有分组长度信息。另外根据 来自于时钟109的数据,时间编码数据分组也要加入数据流分组和/或辅助数据分组中。来自于所有通道源U08,108a)的分组流将通过多路复用形式经 由传输机制30发送的一个单一传送通道。如前所迷,各分组流可以进行分频复用,每个分组流用不同频率的载波进行调制,而全部载波都 逸辻卫星链路按已知的方式发送到客户计算机20。另外,若一个载波通道具有足够的带宽,各分组流也可以通过静态分时复用以已知的方式使用同一载波。例如,有人建议通过分时复用同一卫星链路来载送多达八道的交互式电枧数据流。经由中央处理设施60(图1)来自于客户计算机20的数据,由服务器计算机10通过数据收发器103接收。数据收发器103可以有自己的 处理器(未画出)。若立即有了响应,收发器103的处理器就将杷该响 应经由中央处理设施按次序返回给特定客户计算机(22-26), —組特 定的客户计算机20、或者所有的客户计算机20。如果需要对所有的客 户计算机20給出共同的响应,程序炅可以通过使用应用程序编译器 修改应用代码和数据流101中的代码和数据文件来实现。修改后的文 件再由流构造器重新处理以产生另一个流。应用源101中的代码和数
掘文件还有可能在响应来自收发器103的数据时自动进行动态(实时 地)修改。这样,当接收到来自客户计算机20的数据时,流就会(自动)更新。
图3是图1所示的分布式计算系统中服务器计算机10所产生的数 据流的时序图。在图3中,服务器计算机10同时产生了多个分组流 32-38。图中所示的各分组流分别用一水平带表示,水平带被分割成 占用相同时间具有相同(数据)位数的分組。正如前述,任一分组流中 的分組都可依所载送的数据量而具有不同的大小。从图3可以看.出, 各分组的开始时间并不同步。虽然可以使这些分组同步,伹是没有这 个必要。在图3中,载送表示目录的数据的分组指定为DIR,载送表示 代码模块的数据的分组指定为CM,载送表示数据模块的数据的分组 指定为DM,而载送辅助数据的分组指定为AUX。
在最上方的分组序列32中,最左边的分组CM合有表示代码模块的数据。其后跟着三个合有辅助数据的分组AUX,它们之后又是另一个合有表示代码模块数据的分组块CM。从分組序列32中可以看出,代码模块会重复出现。在两个重复出现的代码模块分组CM之间可以有更多或更少的(其他)分组。其重复频率可由程序员在编制应用(程序)时指定,也可应用执行期间发生变化。
在第二个分别序列34中,最左方的分组合有辅助数据AUX。其后的两个分组合有某代码模块(CM1,CMZ)的重复部分。最后一个分组舍有辅助数据AUX。从分组序列34可以看出,若代码模块太大不够装入一个分组,则可以使用多个分组,每个分组合有代码模块的一部分。 虽然分组序列34只画出了两个舍有代码模块的分组(CM1和CMZ);但实际上可以根据代码模块的大小使用任意多个分组。带有代码模块
的两个分组(CM1,CM^将在分组序列34中重复出现(来画出),正如前 述那样。在分组序列36中,最左方的分组合有表示代码模块(CM)的数据。 后一分組(DM1)是第一个合有表示数据模块的数据的分组。再后面的 一个分组合有辅助数据AUX。最后一个分组(DM2)是合有表示数据模 块数据剩佘部分的第二个分组。从分组序列36中可以.看出,与代码模 块(CM)有关的数据模块(DM1, DM2)也可包合在分组流中。代码模块 (CM)和数据模块(DMl, DM2)将在分组序列36中重复出现。代码模块 (CM)的重复率可以不同于数据模块(DM1,DN^),而且两者都可由应用程序员确定并可以在应用执行的过程中改变。还可以看出,如果数据模块太大,不能装入一个分组,就可以使 用多个分组,每个分组合有数据模块的一部分。虽然分组序列36中只 画出了两个舍有数据模块的分组(DM1,DM2),但实际上可按数据模块 的大小使用任意多个分组。另外还可看出,多个载送数据模块的分组 不必连续出现,这些分组中间可以插入其他分组。对于代码模块或目 录模块也是一样(未画出)。在最下方的分组序列38中,最左边的分组合有表示目录的数据 (DIR)。其后个分组合有表示代码模块的数据(CM);再后面是一个舍有辅助数据的分组(AUX)和一个合有表示数据模块的数据的分组 (DM)。在分组序列3S中可以看出,所有的目录模块(DIR)、代码模块 (CM)和数据模块同在一个分组流中。这三种模块的重复频率可以备 不相同,都可由应用程序员指定并可在应用执行期间发生改变。图4是图1所示的客户计算机22的模块图。在图4中,传输机制30 (图1)耦合至流选怿器202的输入端。流逸怿器202的输出端分别耦合
至辅助数插取出器204及分组数据取出器206的输入端。辅助数裙取 出器204的输出端耦合至辅助数据处理器50 (图l)。分组数据取出器 的双向端口耦合至流I/0适配器208的相应端口。流I/0适配器208的 控制输出端耦合至流选择器202的相应控制输入端。结合流'选择器 202、辅助数据取出器204和分组数据取出器就形成了客户计算机22 的数据流接收器"7,如虛线框所示。如图4中的另一虛线樞所示,流I/0适配器208是客户机2Z处理单 元224的一部分。除此之外处理单元224还包括处理器210、读/写存贮 器(RAM) 212和只读存J^器(ROM) 214,它们都按已知的方式通过系统 总线216耦合在一起。额外的输入输出设施由耦合至本地处理器40(图i)的i/o端口zis提供;用产i/o适配器用于与用户ao通信,调制解调器222耦合至中夹处理设施60 (图l);这些部件也都以已知的方式 耦合至系统总线216。还可以将其他适配器(来画出)挂至系统总线 216来为处理单元224提供其他能力。正如前述,辅助数据取出器204,1/0端口218及调制解调器222在 根据本发明的客户计算机20中不是必须的。在图1和图4中画出它们是为了说明可选的附加劝能。至于搡作机制,处理单元224的处理器Z10读驭永久存贮在 R0M2U中或暂时存^在RAM212中的程序指令,并执行所读取的指令, 从ROMZlZ和/或RAMZ"中读出数据、向RAMZlZ写数据,并且/或者经由 1/0端口向外部(用户I/0适配器220,及/求调制解调器)提供或从外 部接收数据。处理器210也可以在程序的控制下从数据流中取得代码 和/或数据模块。该数据流是通过传输机制30 (图l)向客户.计算机22 提供的。为了接收该数据,处理器210首先命令流I/0适配器Z0B向流
选择器202发送选择控制信号,这一动作通常是在响应来自用户1/0 适配器"0的用户输入时发生的。接蓍处理器210向流I/0适配器208 发生对特定的代码或数据模块的请求。流I/0适配器208则将该请求 递交给分组数据取出器204。传输机制30 (图l)向流选怿器202提供它所载送的全部分组流 (图3的3Z-38),而流选择器则只让所选择的分组流通过。辅助数据取 出器204监枧所选择的分组流,从中取出辅助数据分组并将它们直接 递交给辅助数据处理器50 (图l)。分组数据取出器206也同样监视所 选择的分组流,从中取出流I/0适配器208所请求的目录、代码和/或 数据模块分组并将它们提交給流1/0适配器208。分组中返回给流1/0 适配器208的数据提供给RAM212。当整个模块全部从分组流(可能需 要多个分组,如前所迷)中取出后,流I/0适配器208就通知处理器 210。其后处理器210就可以继续执行其程序。图l所示的分布式计算系统的数据流与釆用先前技术的系统中 的大容量存j^系统类似。在处理器210上执行的应用程序请求目录中所列的模块的方式,在先前技术系统中程序请求预先存贮在大容量 存J^介质上的合有代码或数据模块的文件的方式相同。数据流接收 器207类似于大容量存^设备,而流1/0 208的工作方式与先前技术系统中大容量存j^器适配器定位所需数据、将数据传送至系统内存的预定区域(i/o缓冲区)并通知处理器读取完毕的工作方式类似。然而,流I/0适配器208只能从数据流中读取代码和数据,而不能向数据 流写入数据。如前所述,分布式计算应用可被分割成多个代码模块,每个代码 模块合有该分布式计算应用不同部分的代码。当需要特定的代码模 块时,处理器no就向流i/o适配器请求该代码模块。一个代码模块执行完毕后,处理器210便向流1/0 208请求下一模块。由于代码和数据 模块会在数据流中反复出现,当某模块目前不需要时就可从RAM中删去,不必将其保存。以后需要它时可以再从数据流中读取。当然,如果 RA^^有足够的容量,处考器HO也可以请求I/0适配器同时向 RAM212加载多个代码模坱。若能这样做,处理器210就可以在各模坱 间切换而不必等待流I/0适配器208从数据流中取出它们。如前所迷,别的i/o适配器也可以已知的方式耦合至系统总线216。例如,在交互式TV系统中,可杷图形适配器耦合到系统总线216 上。图形适配器响应来自处理器210的指令,按已知的方式产生表示 图形图像的信号。而且,这些信号可与交互式TV系统中辅助数据处理 器50中的视频解码器所产生的标准视频信号混合。当此二者混合时,结果信号所表示的图像是图形适配器所产生的图像叠加在广播视频 信号所代表的图像之上。这两种图像表示信号也可在处理器210的控制下有选择地混合。交互式TV系统还可以包合耦合在系统总线216上的音频适配器。音频适配器响应来自处理器"o的指令,按已知的方式产生模拟声音(computer generated sound)的信号(如音乐、仿真语言或其他声 音)。而且,这些信号可与交互式TV系统中辅助数据处理器SO中的音 频解码器所产生的标准音频信号结合。当此二者结合时,结果信号代表了音频适配器与广播音频信号二者所产生的声音的混合(声)。这 两种声音表示信号的混合也可在处理器210的控制下有逸择地进行。图形图像以及声音表示信号的产生和输出时序可通过^^数据流中接收到的时i、司代码数据来控制。这样就使得可执行代码模块将处
理器所产生的图像的显示及声音的提供与广播的视频和音频同步。
使交互式TV应用的运行同步的另一种可能的途径是通过向数据流中 插入能中断当前正在处理器210上执行的代码的特殊的分组。.流1/ 0208监视数据流,若发现那些特殊的分组,就按已知的方式向处理器 210发出中断(请求)。处理器210通过执行中断服务例程(ISR)以已知 的方式响应该中断。该ISR可用来使交互式TV应用同步或用于别的目 的。
图1所示的分布式计算系统中的客户计算机2Z不需要有大容量 存歌设备,也不必有大量的RAM212。这种系统降低了客户计算机的代
价,并增强了低价客户计算机的劝能。另外,这种客户计算机能够可 选地參与分布式计算劝能,可以随时加入分布式计算劝能(可退出后 再返回h并且可以按自己的速度參与(计算)。
权利要求
1. 一种分布式计算机系统,包括服务器(10),以产生第一数据流,所述服务器(10)把表示分布式计算应用的应用数据插入第一数据流中,并把包含所述应用数据的目录的目录数据插入第一数据流中。
2. 如权利要求1所述的分布式计算机系统,其特征在于,所述服务器(IO) 重复地把所述应用数据插入第一数据流中。
3. 如上述权利要求中任何一项权利要求所述的分布式计算机系统,其特征 在于,所述应用数据包括至少一个代码4莫块,并且所述目录包括识别第一数据流 中包含的所述至少一个代码模块的目录模块。
4. 如权利要求3所述的分布式计算机系统,其特征在于,所述应用数据包 括至少 一个数据模块,所述至少一个数据模块包含要由所述至少 一个代码模块中 的可执行代码处理的数据,并且所述目录包括识别第一数据流中包含的所述至少 一个数据模块的目f^莫块。
5. 如上述权利要求中任何一项权利要求所述的分布式计算机系统,其特征 在于,所述服务器包括产生笫一数据流的应用数据源(101, 102, 104)和产生笫 二数据流的辅助数据源(107 ),第二数据流包括表示视频图像的辅助数据。
6. 如权利要求5所述的分布式计算机系统,其特征在于,所述服务器(IO) 包括连接到所述应用数据源(101, 102, 104)和所述辅助数据源(107)的复用 器,用于复用第一数据流和第^lt据流,由此产生第三数据流。
7. 如权利要求5-6中任何一项;^又利要求所述的分布式计算机系统,其特征 在于,所述应用数据源(101, 102, 104)产生第一数据流,以包括第一数据分组 和识别信息,笫一数据分组包含表示所述分布式计算应用的应用数据,所述识别 信息表示第一数据分组包含表示所述分布式计算应用的应用数据,并且所述辅助 数据源(107 )产生第二数据流,以包括包含辅助数据的第二数据分组和识别信息, 所述识别信息表示笫二数据分组包含所述辅助数据。
8. 如上述权利要求中任何一项权利要求所述的分布式计算机系统,其特征 在于,所述服务器(10)产生多个数据流,每一个都重复地包括表示相应的分布 式计算应用的应用数据。
9. 如权利要求6所述的分布式计算机系统,其特征在于,所iO良务器(10) 产生多个第三数据流,所述服务器(10)还包括另一个复用器,以便复用所述多个笫三数据流。
10. 如上iii又利要求中任何一项权利要求所述的分布式计算机系统,包括客 户计算机(22)以接收(207 )接收数据流,用于从所述接收数据流中提取(206) 表示所述分布式计算应用的应用数据,并执行(224)所述分布式计算应用。
11. 如权利要求10所述的分布式计算机系统,所述接收数据流包括由所述 服务器(10)产生的第一数据流。
12. 如权利要求5所述的分布式计算机系统,包括接收(207)接收数据流 的客户计算机(22)和辅助数据处理器,其中客户计算机(22)从所述接收数据 流中提取所述辅助数据,并将所述辅助凝:据提供给所述辅助数据处理器。
13. 如权利要求10-12中任何一项权利要求所述的分布式计算机系统,其 特征在于,所^JL户计算机(22)还包括数据接收器以选择地接收多个接收数据 流的其中之一,并提取所述多个接收数据流中被选择的一个数据流中包含的应用 数据。
14. 如权利要求4所述的分布式计算机系统,包括客户计算机(22 )以接收 (207)接收数据流,其中所用户计算机(22)从所述接收数据流中提取所述目模块;根据所述目录模块中所述至少一个代码模块有关的信息来提取所述至少 一个代码才莫块;并执行所述至少一个代码模块。
15. 如权利要求14所述的分布式计算机系统,其特征在于,所ii^户计算 机(22)根据所述目录模块中所述数据模块有关的信息从所述接收数据流中提取 所述至少 一个数据模块;并执行所述至少 一个代码模块以处理所述至少一个数据 模块。
16. 如权利要求10所述的分布式计算机系统,其特征在于,所述分布式计 算应用被分成多个模块,每个模块表示所述分布式计算应用的一部分,所述客户 计算机(22)包括处理单元,以仅存储所述多个模块中执行所述分布式计算应用 的当前部分所需的模块。
17. 如权利要求5所述的分布式计算机系统,其特征在于,所述分布式计算 应用是交互式电^见应用,所述辅助数据是电视3见频和音频。
18. —种分布计算应用的方法,所述方法包括把表示所述计算应用的应用 数据插入第一数据流中,以及把包含所述应用数据的目录的目录数据插入第一数据流。
19. 如权利要求18所述的方法,其特征在于,所述应用数据包括至少一个 代码模块,并且所述目录包括识别第一数据流中包含的所述至少一个代码模块的 目綠块。
20. 如权利要求18所述的方法,其特征在于,所述应用数据包括至少一个 数据模块,所述至少一个数据模块包含要由所述至少一个代码模块中的可执行代 码处理的数据,并且所述目录包括识别第一数据流中包含的所述至少一个数据模 块的目录模块。
21. 如权利要求18-20中任何一项权利要求所述的方法,包括产生第二数 据流,第二数据流包括表示视频图像的辅助数据。
22. 如权利要求21所述的方法,包括复用第一数据流和第二数据流,由此产生第三数据流。
23. 如权利要求21所述的方法,包括产生笫一数据流,以包括第一数据分 组和识别信息,第一数据分组包含表示所述计算应用的数据,所述识别信息表示 第一数据分组包含表示所述计算应用的数据,并且产生第二数据流,以包括包含 辅助数据的第二数据分组和识别信息,所述识别信息表示第二数据分组包含所述 辅助数据。
24. 如权利要求18-23中任何一项权利要求所述的方法,包括产生多个应 用数据流,每一个都重复i綠示相应的分布式计算应用的应用数据。
25. 如权利要求22所述的方法,包括产生多个第三数据流,并复用所述多 个第三数据流。
26. 如权利要求18-25中任何一项权利要求所述的方法,包括在客户计算 机(22)接收(207)接收数据流,从所述数据流中提取(206)表示所述计算应 用的应用数据,并执行(224)所述计算应用。
27. 如权利要求21所述的方法,包括在客户计算机(22)接收(207)接收 数据流,从所述数据流中提取所述辅助数据,并将所述辅助数据提供给辅助数据 处理器。
28. 如权利要求26-27中任何一项权利要求所述的方法,包括在所4户 计算机(22)中选择地接收多个接收数据流的其中之一,并从所述多个接收数据 流中被选择的一个数据流中提取所述应用数据。
29. 如权利要求20所述的方法,包括在客户计算机(22)接收(207)接收 数据流,从所述接收数据流中提取所述目录模块,根据所述目录模块中所述至少 一个代码模块有关的信息从所述接收数据流中提取所述至少一个代码模块,并执 行所述至少 一个代码模块。
30. 如权利要求29所述的方法,包括在所^户计算机(22)接收(207) 接收数据流,根据所述目^^莫块中所述数据模块有关的信息从所述接收数据流中 提取所述至少一个数据模块;并执行所述至少一个代码模块以处理所述至少一个 数据模块。
31. 如权利要求18-30中任何一项权利要求所述的方法,其特征在于,所 述计算应用被分成多个模块,每个模块表示所述计算应用的一部分,所述方法包 括在所i^户计算机(22)仅存储所述多个模块中执行所述计算应用的当前部分 所需的模块。
32. 如权利要求21所述的方法,其特征在于,所述计算应用是交互式电视 应用,所述辅助数据是电视S见频和音频。
全文摘要
这里揭示了一种分布式计算机系统,该系统包括重复载送表示分布式计算应用的数据的连续的数据流源(30),以及一种客户计算机(22),客户计算机接收该数据流,从中取出(207)分布式计算应用的表示数据,并且执行(224)所取出的分布式计算应用。
文档编号H04NGK101212659SQ20061010190
公开日2008年7月2日 申请日期1995年4月27日 优先权日1994年4月28日
发明者A·德尔普希, K·约瑟夫, V·杜劳, 小·A·W·杰苏普 申请人:开放电视公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1