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

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

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