并行分布处理系统及其方法

文档序号:7572206阅读:289来源:国知局
专利名称:并行分布处理系统及其方法
技术领域
本发明涉及对全网范围的多媒体并行处理的并行分布处理系统及其方法。
近年来,人们正蓬勃开发信息超市(ISMInformation Super-Market),即利用多媒体信息并使之流通的提供利用信息的服务应用。在ISM中,为了提高功能模块(类)间的对话性及模块间结构的灵活性,要求具备有效进行全网范围多媒体并行处理的应用执行环境。
在已往并行分布处理系统中,使用字符串表示的模块名和功能名进行模块间的功能调用。这里,所谓功能调用就是在某个模块进行的处理中调用别的模块中具有的功能。
作为并行分布处理系统的代表有CORBA(Common Object Request BrokerArchitecture公共对象请求中介结构)-ORB(Object Request Broker对象请求中介)。这里,CORBA是连接于网络的多个计算机中运转的软件相互通信用的机构,构成灵活高效构筑分布系统的基础。而ORB是管理对象(Object)间通信的软件,其作用是将从客户(对象)收到的消息经由网络移交给合适的服务器对象。
在这种CORBA-ORB中,将该系统支援的整个环境规定为对象管理空间。
在CORBA-ORB中,某个模块调用别的模块功能时,由符号定义的功能名和变元从调用源模块传送到调用宿模块。调用宿模块中备有与功能名和完成该功能的程序执行地址相对应的对应表,调用宿模块检索该对应表获取执行地址,实现调用的功能。
在并行分布处理系统方面,特开平3-226856号公报中,记载着一种用户不必识别模块配置在哪个网络节点中就能记述程序的程序分散配置执行方法。
在该程序分散配置执行方法中,设有指定配置各模块的网络节点名和专用目录,系统边参照该目录边自动改写(修正)存在于源程序中的外部调用的记述。
上述并行分散执行系统多用国际计算机互连网(Internet)建立,在这种Internet中,对网络上的节点赋以IP地址和域名系统(DNSDomain NameSystem)名称。IP地址用32比特的整数表示,作为连接于网络的各数据处理装置的识别号。DNS名能使用户按想要的某个符号名区别网络上的节点,是按管理范围划分网络并赋与各范围的名称、作为按照此阶段所分部分名称相连构成的DNS名赋与层次名的机构的DNS(域名系统),在Internet中根据TCP/IP实现域名层次化。
这些IP地址及DNS名,在网络上,即在世界各地,不会重复,通过网络信息中心(NIC)进行一元化管理。
但是,上述已有技术的CORBA-ORB,在功能调用前,以字符串表示的功能名为关键字(Key)查表,定出执行地址,故使指定该执行部的费用大,出现因功能调用而使处理效率下降的问题。
在CORBA-ORB中,与功能调用一起出现的变元格式(format),必须在编译时以别的方式定义。此时,可定义的变元的数据结构限定为简单的结构体及数组,故存在不能使用如列表等复杂数据结构。
在CORBA-ORB中,调用宿模块必须预先存在(登记)。调用功能及变元格式大部分需在编译时加以定义,一旦想要动态地上级装入使用任意的调用宿模块(追加登记),就会产生作业繁杂的问题。
在CORBA-ORB中,若功能调用时的同步方式不同,则必须使用不同的编程接口(API),故存在使程序记述变得复杂的问题。
在所述已有CORBA-ORB中,由于将该系统支援的整个环境规定有对象管理空间,故用户不能根据用途自由规定仅以所需对象为管理范围的管理空间。
因此,在按用途仅使用部分对象情况下,用户仍需进行在系统广大区域中保持包括无用对象在内的名称的单一性等管理,故存在该管理带来负担重的问题。
对于CORBA-ORB,由于在系统广大区域中需保持名称的单一性,故在系统支援的多个应用之间不能使用相同名称,存在对各应用可使用名称的自由度低的问题。
为了在上述系统的广大区域中管理对象,成为被管理方的对象数量庞大,从而发生访问对象时检索时间增长的问题。
再有,在CORBA-ORB中,还存在追加或删除计算模块等带来的动态(增量)空间管理困难的问题。
在上述特开昭3-226856号公报中记载的程序分散配置执行方法中,边查找目录,边修正存在于源程序中的外部调用的记述,若按照模块配置的变化更改目录内容,就必须重新编译源程序,故存在更改所伴随的处理繁杂不能快速响应的问题。
已有技术中对象名求解机构,广泛普及使用DNC,其参照信息的变换是一种从DNS名至IP地址的简单变换。也即,只能适用一级变换,而不能使用需多级变换那样的复杂的名称求解。也不适用于以多个信息为基础那样的复杂的参照信息。
因此,作为上述那种较高级的并行分布处理环境中所用的参照机构,DNS不适用。也即,在这样的并行分布处理环境中,有必要使用各种名称或ID等高效参照网上的各种计算资源,各种对象等,但DNS并不能适用于这样的参照求解。
本发明鉴于上述已有技术存在的问题,其目的在于提供一种高速且有效进行功能调用的并行分布处理系统及其方法。
本发明的又一目的在于提供一种能减轻用户对模块识别名的管理负担的并行分布处理系统及其方法。
本发明再一目的在于提供一种无需经过繁杂的作业就能动态上级装入(即追加登记)使用任意调用宿模块的并行分布处理系统及其方法。
本发明目的还在于提供一种能有效适应计算模块配置动态变化的并行分布处理系统及其方法。
本发明目的还在于提供一种不依靠执行计算模块等的参照关系时的网络配置而能记述应用程序的并行分布处理系统及其方法。
本发明目的还在于提供一种在管理全网范围计算对象的情况下,能自由规定计算对象的管理空间的并行分布处理系统及其方法。
本发明的目的还在于提供一种能够适用于多级名称求解或多元素的参照等,更有效地进行目标间通信,从而可提供较高级的并行分布处理环境的并行分布处理系统及其方法。
本发明的并行分布处理系统,是一种以网络为中介,将执行具有单个或多个计算对象的进程的多运算处理节点相互连接的并行分布处理系统,其特征在于,第二进程调用并执行具有第一进程的计算对象或其功能时,所述第二进程将该计算对象或其功能的名或标识符作为关键字,根据参照信息,在所述网络上获得直接规定该计算对象或其功能的定位信息,将该定位信息发送给所述第一进程,进行对具有所述第一进程的计算对象或其功能的调用处理。
本发明的并行分布处理系统,最好是,所述参照信息用下列手段构成设于计算对象或其功能的调用宿进程中,对所调用的计算对象或其功能表示该计算对象或其功能的标识符与该计算对象或其功能的执行地址的对应关系的内部参照手段;设于计算对象或其功能的调用源进程中,对进行调用的计算对象或其功能表示该计算对象或其功能的名称或标识符与该计算对象或其功能的标识号的对应关系的外部参照手段;其中,所述调用源进程,将进行调用的计算对象或其功能的名称或标识符作为关键字,从所述外部参照手段获得对应的标识号,将含有该识标识号的消息发送给计算对象或其功能的调用宿进程,所述调用宿进程,将包含在所述调用源进程所发送的消息中的所述标识号作为关键字,从所述内部参照手段获取该被调用的计算对象或其功能的执行地址,按照该执行地址执行该被调用的计算对象或其功能。
本发明的并行分布处理系统,最好是,规定由单个或多个任意所述计算对象或其功能的集合所构成,而且仅在该集合内要求所述计算对象或其功能的名称或标识符具有单一性的计算空间。
所述参照信息,将所述计算空间内的所述计算对象或其功能的名称或标识符作为关键字提供所述计算对象或其功能的定位信息。
本发明的并行分布处理系统,最好是,所述运算处理节点具有根据表示实现所述进程的程序模块的定位信息与配置该程序模块的目的运算处理节点的信息的对应关系的配置信息,将所述程序模块配置给规定的运算处理节点,并在该配置的目的运算处理节点生成进程的进程配置手段;根据记述在所述配置信息和所述程序模块中的计算对象或其功能相互间的参照关系,在各进程中生成实现该进程的程序模块相互参照的计算对象或其功能的所述参照信息的参照信息生成手段。
本发明的并行分布处理系统,最好是,
规定由单个或多个任意所述计算对象或其功能集合所构成,而且仅在该集合内要求所述计算对象或其功能的名称或标识符具有单一性的计算空间,所述系统进一步包含将在所述计算空间中规定计算对象或其功能的逻辑参照信息,变换为同样的逻辑参照信息及作为所述定位信息的系统参照信息的任一种或它们的组合参照信息的多个参照变换手段;根据该逻辑参照信息,将所输入的逻辑参照信息及在所述参照变换手段中被变换生成的逻辑参照信息反馈输入到所述多个参照变换手段的任一个,并将所述被输入的逻辑参照信息变换为所述系统参照信息的变换控制手段;其中,由所述参照变换手段通过所述变换控制手段,将通信对端进程的逻辑参照信息变换为系统参照信息,进行进程间的相互通信。
在本发明并行分布处理系统中,系统建立时,解析模块相互间的功能调用关系。根据这种解析结果,对来自别的模块的调用功能分配例如数值形式的功能标识号,作成内部参照手段及外部参照手段。使用所述内部手段及所述外部参照手段进行模块相互间的功能调用。在调用宿的模块中,使用内部参照手段将以数值形式表达的功能标识号作为关键字,对执行地址进行检索。
按照上述本发明的并行分布处理系统及其方法,能高速且有效地进行功能调用。
按照本发明的并行分布处理系统及其方法,能减轻用户对模块标识名的管理负担。
按照本发明的并行分布处理系统及其方法,在功能调用中能使用各种形式(数据结构)的变元。
按照本发明的并行分布处理系统,无需繁杂的作业,就能动态装入(追加登记)并使用任意调用宿模块。
按照本发明的并行分布处理系统及其方法,引入计算空间的概念,故能自由形成仅管理符合用户用途所需的计算对象的管理空间。其结果,减轻了计算对象名或标识符等的用户管理负担。由于减少了被管理的计算对象的数量,故能缩短规定计算对象的时间。能有效地防止错误访问参照空间外的计算对象。
按照本发明的并行分布处理系统及其方法,能容易进行计算对象的动态空间管理。
按照本发明的并行分布处理系统及其方法,由于在程序模块外记述与执行该程序模块的网络节点有关的配置信息,故无需修改程序模块的记述,只要动态改变配置信息,就能动态改变执行模块的网络节点。也即,形成计算对象空间后,能动态改变该空间结构。
按照本发明的并行分布处理系统及其方法,应用程序编制人员可不依赖执行时的网络配置而记述程序模块执行时的参照关系。
也即,由于在程序模块外记述程序模块执行时的配置信息,故用户只要知道程序模块上的计算对象的参照关系,就可记述程序模块。
按照本发明的并行分布处理系统及其方法,在由多个计算机装置等构成的计算机网络上,通过循环和多级处理,展开应用层的参照信息,获得系统参照信息,故对复杂的参照信息也适用。而且,通过按群化状态变换参照信息,或将求解委托给另一参照求解器,或给出与求解有关的附加信息,故能控制求解操作等,对任何形态的参照信息都能获得准确的系统信息。结果是,不管计算机网络的布局是什么状态,本发明都能求解这种参照信息,有助于提供较高级的分布处理系统和分布处理环境。
下面结合附图详细说明本发明实施例。


图1为本发明第一实施形态涉及的并行分布处理系统的原理图;图2为在图1所述并行分布处理系统中作成内部参照表的手段的说明图;图3为在图1所示并行分布处理系统中作成外部参照表的手段的说明图;图4为图1所示并行分布处理系统中功能调用时调用源网络节点中的处理说明图;图5为图1所示并行分布系统中功能调用时调用宿网络节点中的处理说明图;图6A为发送全同步消息时图1所示并行分布处理系统的时序图;图6B为发送全同步消息时图1所示并行分布处理系统的时序图;图7A为发送非同步消息时图1所示并行分布处理系统的时序图;图7B为发送非同步消息时图1所示并行分布处理系统的时序图;图8为本发明并行分布处理系统的原理图;图9为本发明第二实施形态涉及的并行分布处理系统的原理图;图10为本发明第二实施形态涉及的并行分布处理系统的结构图11为图10所示并行分布处理系统中参照信息的说明图;图12为本地函数参照表说明图;图13为远端函数参照表说明图;图14为进程参照表说明图;图15为域参照表说明图;图16为域名散列表说明图;图17为函数/进程名散列表说明图;图18为远端函数ID散列表说明图;图19为构成生成参照信息对象的空间结构说明图;图20为试验参照生成部中处理的说明图;图21为进程P1上的域参照表的初始化处理说明图;图22为进程P1上的域参照表的初始化处理说明图;图23为进程P1上的本地函数参照表的初始化处理说明图;图24A为进程P1上的本地函数参照表的初始化处理说明图;图24B为进程P1上的本地函数参照表的初始化处理说明图;图25为进程P2上的本地函数参照表的初始化处理说明图;图26A为进程P2上的本地函数参照表的初始化处理说明图;图26B为进程P2上的本地函数参照表的初始化处理说明图;图27为进程P1上的进程参照表的初始化处理说明图;图28为进程P1上的进程参照表的初始化处理说明图;图29为进程P1上的远端函数参照表的初始化处理说明图;图30为进程P1上的远端函数参照表的初始化处理说明图;图31为进程P2上的远端函数参照表的初始化处理说明图;图32为进程P2上的远端函数参照表的初始化处理说明图;图33为本发明第三实施形态涉及的并行分布处理系统的结构图;图34为在图33所示并行分布处理系统中进行处理的程序模块记述内容的示意图;图35为图33所示进程配置部的说明图;图36为图33所示并行分布处理系统中形成的计算空间及域的说明图;图37为图33所示并行分布处理系统中所配置进程的说明图38为主管理进程C及从管理进程A、B中处理的流程图;图39为进程配置表的结构图;图40为网络节点C的进程配置表的具体例;图41为网络节点A的进程配置表的具体例;图42为网络节点B的进程配置表的具体例;图43为端口号分配表的结构图;图44为端口号分配表的具体例;图45为常用进程处理的流程图;图46为用于说明输入处理的流程图;图47为输入处理的说明图;图48为输入处理的说明图;图49A为输入处理的说明图;图49B为输入处理的说明图;图50为输出处理的说明图;图51为输出处理的说明图;图52A为输出处理的说明图;图52B为输出处理的说明图;图53为输出处理的说明图;图54为输出处理的说明图;图55为本发明第四实施形态中参照变换装置的结构框图;图56为表示图55所示控制部中处理流程的流程图;图57A为图55所示参照变换装置的动作例示意图;图57B为图55所示参照变换装置的动作例示意图;图57C为图55所示参照变换装置的动作例示意图;图58为本发明第五实施形态分布处理系统中参照求解器的结构框图;图59为图58所示参照求解器的操作例示意图;图60为图58所示参照求解器的具体实施例图。
下面,说明本发明实施形态涉及的并行分布处理系统。
本实施形态涉及的并行分布处理系统,可支援如ISM等的执行环境,提高功能模块间的对话性及模块间结构的灵活性,并能进行网络范围内多媒体的并行处理。
第1实施例图1为本实施形态涉及的并行分布处理系统1的原理图。
如图1所示,并行分布处理系统1,其网络节点3、4通过网络2通信进行一定的处理。作为网络节点3、4可用诸如主计算机等。在网络节点3中,运转管理进程30及计算对象300、301、302等的程序。这里,执行应用程序的计算对象由规定该计算对象操作的函数、变元、类、方法等的定义构成,以类为基础生成的实例的操作记述在函数或方法的定义中。
管理进程30,下面要描述,具有本地参照表306及远端参照表310。
本地参照表306表示功能标识码与存储该功能的地址的对应关系。网络节点4对网络节点3进行功能调用时,本地参照表306用于根据从网络节点4输入的消息中所包含的功能标识码,取得被调用功能的计算对象300-302的地址。
远端参照表310表示存储作为功能标识符的功能标识码的地址与功能标识码的对应关系。当网络节点3对网络节点4进行功能调用时,远端参照表310用于根据计算对象300-302中所调用的地址,取得该功能的功能标识码。
在网络节点4中,运转管理进程40及计算对象400、401、402等的程序。
网络节点4的计算对象400~402。本地参照表406及远端参照表410,其含义及功能,与网络节点3的计算对象300~302、本地参照表306及远端参照表310相同。
在图1所示并行分布处理系统1中,计算对象的配置,也即,哪个计算对象配置在哪个网络节点或处理器中,系统建立时原则上只解析(指定)一次。因此,系统执行中,各计算对象调用其它计算对象的功能时,已知道调用宿中计算对象的定位。又,计算对象的配置也往往在系统执行时指定。
网络2中接有网络节点3、4,也可以接入其它网络节点。
下面,当进行面向对象的计算中的方法调用处理,也即,在网络节点3中进行计算对象302的处理时,以调用网络节点4的计算对象402具备的功能,具体而言,以调用方法的情况为例,说明并行分布处理系统1中的处理。
在面向对象计算的方法调用处理中,计算对象内的方法是指诸如函数等功能。
(本地参照表及远端参照表制作)
在并行分布处理系统1中,例如在图3所示网络节点3中新追加(登记)计算对象302,而且计算对象302调用图2所示网络节点4中计算对象402的功能情况下,如下面所示,作成或更新图3所示管理进程30中的远端参照表310及图2所示管理进程40中的本地参照表406。
首先说明作成本地参照表。
例如,系统建立时,就这些计算对象所规定的类、方法、事例及函数,网络节点3、4作成图2、图3所示本地参照表406、306。
这里,本地参照表306在结构上包括本地类表303、本地函数表304、本地实例表305及本地方法表330。
本地参照表406在结构上包括本地类表403、本地函数表404、本地事例表405及本地方法表430。
这里,本地方法表334、434表示方法的“方法ID”与作为方法执行地址的“方法地址”的对应关系。
在系统建立及新追加计算对象302之前,先解析包括网络节点3、4的网络节点相互间的方法调用关系,在作成远端参照表310及本地参照表406的阶段,分别给方法及计算对象402的类自动分配“方法ID(功能标识码)”及“类ID”。
下面,说明作成远端参照表。
例如,在图1所示计算对象302调用计算对象402中备有的方法的情况下,如图3所示,网络节点3,使用计算对象402的类名及方法名,从计算对象302的调度程序311,向网络节点4,输出询问312。
网络节点4一旦接受该询问312,就参照本地参照表406,将分配给计算对象402的类及解答方法的“类ID”及“方法ID”包含到图3所示应答消息315中,通过图1所示网络2输出给网络节点3。应答消息315在网络节点3中,经过消息队列(等待队列)314、313输出给调度程序311。
接着,调度程序311进行登记处理,使用应答消息314中含有的“类ID”及“方法ID”,作成远端类表307及远端方法表331。
这里,远端参照表310在结构上包括远端类表307、远端函数表308、远端事例表309及远端方法表331。
本地参照表及远端参照表的制作在网络节点3和网络节点4经网络2连接时,作为初始化过程进行,或在执行处理时,新的计算对象动态装入(追加登记)网络节点3、4后,只自动进行一次。
(功能调用处理)以下参照图2~图6说明用如前文所述编制的远端参照表310和本地参照表406,由网络节点3对网络节点4进行功能调用的情形。这里说明的是调用源计算对象进行功能调用之后,停止其处理,直到由调用宿计算对象输入该功能执行结果为止,即所谓全同步消息发送的情形。
在例如图4所示的网络节点3的计算对象302进行处理的时候,一旦调用网络节点4所具有的计算对象402的方法(图6A所示的“A1”,计算对象302的调度程序311便将消息中所含变元的数据结构变换为逻辑形式的数据表达(图6A所示的“B1”)。该变换采用变换程序,分析计算对象302中本地表达数据的数据结构,并变换为逻辑形式的数据表达。这时,逻辑形式的数据表达采用的是通过组合单纯数据可表达清单结构等复杂数据结构的记述文件。因此,可以将多种数据结构用作变元,从而能扩大形成功能调用对象的方法和函数的种类范围。
接下来调度程序311将方法和计算对象402的类的地址输出给远端方法表331和远端实例表309。由此,进行功能识别码的核对,检索与这些地址对应的“方法ID”和“类ID”(图6A所示的“B2”)。该检索出的“方法ID”和“类ID”由调度程序311登记在发送队列313中(图6A所示的“B3”)。
接下来,将登记在发送队列313中的“方法ID”和“类ID”登记到管理进程30的发送队列314中(图6A所示的“C1”)。在管理进程30中,采用“方法ID”和“类ID”作成消息320的首标,包含该首标的消息通过网络发送至图5所示网络节4的管理进程40的接收队列414(图6A所示的“C2”)。网络节点3停止正执行中的程序的处理,直到从网络节点4输入方法处理结果为止。
象这样,通过采用消息队列314、414,将消息存储于队列以后,用相应方法(功能)进行处理。因此,通过这些队列,对某个特定计算对象的功能调用请求即便有竞争,也不至丢失调用请求,可顺序或按照优先级处理。
网络节点4的管理进程40一旦从网络节点3接收消息(图6B所示的“D1”),便将该消息登记在图5所示的接收队列414中(图6B所示的“D2”)。接下来,从管理进程40输出信号至调度程序41(图6B所示的“D3”、“E1”)。
调度程序411接着以“类ID”作为关键字,参照图5所示的本地实例表405,调用规定实例(图6B所示的“E2”)。调度程序411执行下一处理,直到规定实例处于能够调用的状态为止(图6B所示的“E3”)。
这时,消息队列414中设有的通信管理模块以消息320所含的“类ID”作为关键字,参照本地实例表405,获得计算对象402中实例的地址。由此确定计算对象402的实例。这里,实例是指表示实际进行类处理时状态的实体。
还有,计算对象402中实例的生成,如图5所示,在本地类表403中参照与计算对象402相对应存储的“实例生成函数地址”,执行位于该“实例生成函数地址”的实例生成函数421,并将由此生成的实例登记于本地实例表405中。
接下来,调度程序411将消息的数据结构变换为与原先计算对象302所用的数据结构相同的数据结构(图6B所示的“E4”)。
接下来,根据接收到的消息320所包含的“方法ID”和“类ID”,利用本地方法表430,获得所调用功能相关方法的“方法地址”。此时,“方法ID”和“类ID”均由数值示出,因而这种对照可高速进行。
网络节点4中,采用调度程序411中获得的方法的“方法地址”、通信管理模块确定的实例和调度程序411变换获得的本地表达数据420,进行计算对象402的处理(图6B所示的“F”)。
该处理结果作为返回值,通过进行图6B所示的“E5”、“D4”、“D5”和图6A所示的“C3”、“C4”、“C5”、“B4”、“B5”和“A2”的处理,送给图3所示调用源网络节点3的计算对象302处理。由此结束功能调用处理。这里,“E5”意味着返回值数据表达的变换,“D4”意味着向发送队列登记返回值,“D5”意味着消息的发送,“C3”意味着消息的接收,“C4”意味着向接收队列登记返回值,“C5”意味着向计算对象302发送信号,“B4”意味着接收信号,“B5”意味着返回值数据表达的变换,“A2”则意味着继续执行下一处理。
网络节点3一旦从网络节点4输入方法处理结果,便重新起动停止的程序处理。
综上所述,利用并行分布处理系统1,方法等的功能调用是采用示出计算对象相互间的功能调用关系和在所调用功能方面以数值表示的功能识别码等关系的本地参照表和远端参照表来进行的,因而可以高速规定所调用功能的执行部的地址。
而且,利用并行分布处理系统1,系统对于进行功能调用的计算对象和方法的地址,自动赋予唯一的功能识别码。因此,用户(程序员)不需要为了避开计算对象和方法的地址竞争而花费很多精力,可减轻用户负担。
而且,利用并行分布处理系统1,根据计算对象的增加动态地制成本地参照表和远端参照表,因而能够装入至动态指定所需计算对象的网络节点。
此外,利用并行分布处理系统1,编译时不需要定义功能调用变元和处理结果(返回值)的形式(格式),因而可以提高功能调用的灵活性。
不过,为了高效使用处理器等系统资源,存在以用户(程序员)不能理解的程度将程序自动分割成较小的并行分布执行单位的编程系统。与之不同,并行分布处理系统1以较大的功能单位将计算对象分割为并行分布模块,并能指明该并行分布模块的配置,因而能够建立大型的应用系统。
接下来就网络节点3对网络节点4进行功能调用的情形说明其他例子。这里说明的是调用源计算对象进行功能调用以后,未从调用宿计算对象输入该功能执行结果,即所谓非同步消息发送的情形。
图7A、图7B为非同步消息发送时的时序图。
具体来说,图4所示网络节点3的计算对象302进行处理时,一旦利用非同步消息发送来调用网络节点4所具有计算对象402的方法(图7A所示的“G1”),就在网络节点3的计算对象302、调度程序311和管理进程30中执行图7A所示的“H1”、“H2”、“H3”、“I1”和“G2”处理。图7A所示的“H1”、“H2”、“H3”、“I1”和“I2”的处理与前文所述图6A示出的“B1”、“B2”、“B3”、“C1和“C2”处理相对应。
但图7A、图7B所示例中,不等待进行调用的网络节点4计算对象402功能的处理结果,而是处理“I2”后执行下一处理“C2”。
另一方面,网络节点4在管理进程40、程度程序411和计算对象402中执行图7B所示的“J1”、“J2”、“J3”、“K1”、“K2”、“K3”、“K4”和“L”的处理。这里,图7B所示“J1”、“J2”、“J3”、“K1”、“K2”、“K3”、“K4”和“L”的处理与图6B所示“D1”、“D2”、“D3”、“E1”、“E2”、“E3”、“E4”和“F”的处理基本相同,但“F”处理结果不发送至网络节点3。
接下来说明上述本实施例并行分布处理系统的概念。
如图8所示,网络节点98在调用源对象101a的方法101c中对网络节点99调用宿对象108的方法105a进行远程调用(参照)。这时,进行远端实例参照和远端方法参照。具体来说,通过规定实例和方法两者,可规定调用对象实体。
另外,图8示出对实例的规定。
具体来说,将调用宿对象101a的实例101b作为关键字(标识符),参照远端实例参照表102,获得远端实例ID“#0123”。而且,利用远端实例参照表102的程序参照所记述的指针,参照进行参照表107,可获得调用宿方法所属的进程ID“#0055”和该进程运行的网络节点99的网络地址“192.168.1.1.”。此外,利用变元101d记述的指针,指示变元101c1,可获得将该变元101c1的数据结构变换为逻辑形式的变元101c2。
而且,包含远端实例ID“#0123”、进程ID“#0055”和变元101c2的消息根据网络地址“192.168.1.1”,通过网络送至网络节点99。
网络节点99一旦接收该消息,就由进程ID“#0055”规定本地实例参照表103,将远端实例ID“#0123”作为关键字,查得调用宿对象108的本地实例ID。通过该本地实例ID,可规定调用宿对象108。
用与上述相同方法,将调用宿对象101a的方法101c作为关键字,参照远端方法参照表和本地方法参照表,可查得本地方法ID。利用这种本地方法ID,可规定调用宿对象108的方法105a。由该方法105a记述的指针指示方法主体106。
另一方面,网络节点99通过网络输入的变元101c2从逻辑形式逆变换其数据结构,成为变元101c1。该变元101c1可根据方法105a对应的变元105b,用指针指示。
接着,方法105a送给方法主体106,方法主体106运行。
本发明不限于上述实施例。例如,上述实施例示出的是本发明适用面向对象编程中方法调用的情形,但本发明也可以适用例如远程函数调用。远程函数调用就是调用远程应用等模块中存在的函数(功能)。
本发明还可以适用将某个计算对象的内部变量作为分布模块(计算对象)群当中的公共变量(大域变量)来使用的场合,在该场合,对于作为隐含公共变量的变量的计算对象的功能,编制公共变量值读取、变更等功能。这时,对公共变量的存取都通过对隐含该变量的计算对象的功能调用进行,所以自然可实现对该公共变量存取的排他控制。具体来说,公共变量隐含在实例中,要对该公共变量进行读出和改写操作,需要调用该实例功能。由此,实例作为公共变量本身起作用。
这时,将公共变量作为计算对象,对该公共变量的处理作为方法(函数)。
上述实施例在作为调用源模块的网络节点3处示出功能识别码作为功能标识符存储的地址,但功能标识符只要采用文字等表示的功能名或仅在调用源模块有效的编号,便可以进行进一步高速的功能调用处理。
此外,存储网络节点3、4相互间输入输出的消息的队列除按输入顺序之外,也可以根据规定优先级确定消息输出顺序。该优先级可以预先作为系统确定,也可以作为属性信息包含于消息中。
在消息发送端,消息中包含发送时刻,接收端也可以根据该时刻确定该消息所特定功能的执行时刻。而且,接收消息的队列可以存在于每一实例,也可以由多个实例共享。
而且,本发明也可使网络节点3在向网络节点4输出消息之后,继续处理到需要来自网络节点4的处理结果为止,仅在所要求时刻尚未收到处理结果的情况下,停止执行中的程序的处理。
此时,也可使网络节点3在经过设定时间,仍未从网络节点4获得对已发送的消息的处理结果的情况下,自动起动出错处理程序。
本发明中,还可使网络节点3在将消息输出至网络节点4之后,不要求网络节点4发来处理结果。
第2实施例图9是本实施例并行分布处理系统1的概念图。
如图9所示,并行分布处理系统1,其网络节点3、4、5通过网络2相互通信,进行一定的处理。网络节点3、4、5可以采用例如个人计算机和工作站。而网络2则可采用例如以太网和CATV等。
网络3、4、5存在例如执行程序的函数、实例、类、方法和大域公共量等计算对象。这里,大域公共变量可实现作为大型公共变量类的实例。
例如,网络节点3存在计算对象6~9。
(空间管理方式)网络节点3、4、5存在由同一网络节点内的多个计算对象构成的局部空间。例如,在网络节点3内,由计算对象6、7构成局部空间10,由计算对象8、9构成局部空间11。而且,网络节点3内也存在局部空间11。这里,局部空间是由网络节点所具有的计算模块(即管理进程)执行的进程。
而且,由不同网络节点存在的局部空间和/或计算对象构成计算空间。本实施例中由局部空间10、12、14构成计算空间15,由局部空间11、13构成计算空间16。另外,计算空间也可以构成为包含同一网络节点存在的局部空间和/或计算对象。这里,计算空间是相应空间内存在的计算对象和局部空间配置相关信息所明确的区域。
并行分布处理系统1中,计算对象和局部空间配置由预先给定的信息、局部空间相互间的询问等确定。该计算对象和局部空间的配置由空间管理部17、18管理。
并行分布处理系统1如图9所示,与计算空间15对应在网络节点4具有空间管理部17,与计算空间16对应在网络节点4具有空间管理部18。
另外,空间管理部可以设在每一局部空间内,也可以设在每一计算对象内。
在并行分布处理系统1中,各局部空间具有管理进程,由该管理进程管理参照信息。这里,将参照信息所表达的空间称为“参照空间”。API(应用程序界面)在该参照空间上识别管理进程和计算对象。与该参照空间相反,将所参照实体的存在空间称为“实空间”。
这里,“参照”意味着对这些处理模式和计算对象的逻辑指示。
本实施例中,引入参照空间进一步形成任意参照集合的域的概念。这种域用于将计算空间分割为多个进行管理的情况下。域在图9中未图示,在参照图19后详细说明。
各进程(局部空间)和计算对象允许属于多个域。域也允许采用嵌套结构。这时,称所含的域为子域,包含该子域的域为大域。通过域的引入,可以在全网形成自由空间(服务空间、应用空间、个人空间、公共体等)。
本实施例中,进一步将名称赋予各个参照,提供基于名称的进程、计算对象和域识别空间。该识别空间称为“名称空间”。从API上即便在该名称空间上也可以识别管理进程、计算对象和域。而且,名称仅在各名。称空间中保证单一性。
因而,属于不同域的计算对象相互间允许名称冲突,可提高各域中可使用名称的自由度。
以下说明本实施例并行分布处理系统所用的参照信息。
图10是本实施例并行分布处理系统31的构成图。
如图10所示,并行分布处理系统31通过网络32连接着网络节点33~35。网络节点33具有管理进程块38执行的进程(局部空间)36。
管理进程38具有参照保持部39和参照生成部40。这里,参照保持部39识别进程、计算对象和方法,以规定地址,存储控制管理用的参照信息。
以下所示例中,对参照分布在网络上配置的函数的情况进行说明,参照信息如图11所示,由4个参照表与3个检索用散列表构成。参照表具有图12所示的本地函数参照表50、图13所示的远端函数参照表51、图14所示的进程参照表52和图15所示的域参照表53。另外,图12、图13除函数以外还记载与类、实例、域相关的参照表。
而且,检索用散列表是名称与标识符之间的散列表,有图16所示的域名散列表54、图17所示的函数/进程名散列表55和图18所示的远端函数ID散列表56。
另外,网络节点34具有管理进程41执行的进程(局部空间)37,概念上与网络节点33相同。
(本地函数参照表)图12是本地函数参照表50的说明图。
本地函数参照表50是局部空间(进程)内存在的函数的本地参照用表。
如图12所示,本地函数参照表50有打印名61、本地函数ID62、域参照清单63、远端函数ID64和域内名65五个字段。
打印名61是程序源码上的函数名,例如,若属于C++安装的类,则输入该类名。
本地函数ID62属于系统上所用的网络节点内的函数标识符,采用该函数标识符对实体进行访问。
域参照清单63是指向其函数所属域参照表的指针清单。域参照清单63如图12所示,由清单结构数据表示。这是为了相应函数属于各个域时能够表达。
远端函数ID64是该函数的外部标识符,从网络节点外部采用该外部标识符,指定函数进行调用。
域内名65是名称空间上域内的名称,采用该名称进行函数的指定调用。
(远端函数参照表)图13是远端函数参照表51的说明图。
远端函数参照表51是局部空间(进程)内存在的函数的远程参照用表。
如图13所示,远端函数参照表51具有打印名71、进程参照72、远端函数ID73、域参照清单74和域内名75五个字段。
打印名71、远端函数ID73、域参照清单74和域内名75的含义与前文所述本地函数参照表50的情形相同。
进程参照72是与存在该远端函数的进程的位置有关的信息,例如表示指向进程参照表52的指针。
(进程参照表)图14是进程参照表52的说明图。
进程参照表52是存储表明局部空间(进程)位置的信息的表。
如图14所示,进程参照表52具有网络节点参照81、网络端口ID82、域参照清单83和域内名84四个字段。
这里,域参照清单83和域内名84的含义与前文所述相同。
网络节点参照81表示与所述进程所在的网络节点有关的参照信息,具有网络节点名85、参照清单88、通信媒体86和网络地址87三个字段。
网络节点名85表示名称空间上网络节点的名称。
通信媒体86表示通信装置,例如表示以太网和ATM等。
网络地址87表示与通信装置相对应节点的网络地址,例如表示IP地址和DNS(域名系统)名等。
网络端口ID82表示并行分布处理系统31上所用的各网络节点内的管理进程端口编号,由网络地址和该管理进程端口编号规定进程,进行访问。
这是因为有时网络节点包括多种通信媒体(访问功能)。例如网络节点中,有的能够用以太网与ATM两者进行访问。通常,在这种情况下,分别将网络地址分配给各个访问功能。
因而,进程参照表52通过如图14所示,用清单结构的参照表88表达网络名与网络地址的对应关系,来表达一个网络节点名85与同通信媒体86种类相对应的多个网络地址87的对应关系。
图14所示例中,域内名84为“N1”的进程,网络端口ID82为“#1 0000”,网络节点名85为“节点A”。“节点A”其通信媒体86具有以太网和ATM,各自网络地址87为”111.111.111.111”和“111.111.111.112”。
(域参照表)图15是域参照表53的说明图。
域参照表53是管理域参照信息用的表。如前文所述,域采用层次结构,某一种中可包含别的域。
如图15所示,域参照表53具有域要素参照清单91、大域参照清单92和域名93。
域要素参照清单91表示指向所述域构成要素(即函数参照和子域参照)的指针。
大域参照清单92表示指向所述域中的大域(上位域)的指针清单。这里,之所以将清单结构用于大域参照是因为一个域具有多个大域。
域名93表示名称空间上的域名。
(域名散列表)图16是域名散列表54的说明图。
域名散列表54根据在独自名称空间中所赋予的域名构筑,可以依据名称对域参照表进行检索。
如图16所示,域名散列表54具有域名100和参照清单101两个字段。
图16所示例中,以域名“D1”作为关键字,使用域名散列表54的话,便可获得域参照表53的域名“D1”的地址。
(函数/进程名散列表)图17是函数/进程名散列表55的说明图。
函数/进程名散列表55根据在独自的名称空间中所赋予的域内名构筑,可依据函数参照表和进程参照表的名称进行检索。
如图17所示,函数/进程名散列表55具有域内名110和参照清单111两个字段。
域内名110表示名称空间上域内的本地函数名、远端函数名和进程名中任意一种。
参照清单111是指向本发函数参照表50、远端函数参照表51和进程参照表52中任意一种的指针清单。
例如,图17中以域内名110(即函数名)“A”为关键字,使用作为函数/进程名散列表55的本地函数名散列表的话,由参照表111可获得本地函数参照表50中域内名“A”的地址。就函数/进程名散列表55而言,除本地函数名散列表以外,还有远端函数名散列表和进程名散列表。
(远端函数ID散列表)图18是远端函数ID散列表56的说明图。
远端函数ID散列表56根据远端函数ID构筑,可依据远端函数ID对本地函数参照表进行检索。
如图18所示,远端函数ID散列表56具有远端函数ID120和本地函数参照121两个字段。
本地函数参照121表示指向与远端函数ID相对应的本地函数参照表中的本地函数参照的指针。
例如,图18中,将远端函数ID120(即“#000001”)作为关键字,使用远端函数ID散列表56的话,可以获得本地函数参照表50a中远端函数ID64a为“#000001”位置的地址。
接下来对图10所示的参照生成部40具有说明生成上述参照信息的方法。
首先对生成参照信息的空间构成进行叙述。
图19是生成参照信息的对象空间构成的说明图。
如图19所示,在各个网络节点独自的名称空间上赋予“N1”、“N2”这种名称。而且,各网络节点包括以太网、ATM各个界面,分别拥有独立的DNS名。
而且,赋予各进程“P1”、“P2”这种域内名。
还赋予进程“P1”上打印名为“func 1”、“func 2”和“func 3”的各个函数“F1”、“F2”和“F3”这种域内名,赋予进程“P2”上打印名为“func4”和“func 5”的各个函数“F4”和“F5”这种域内名。
此外,进程“P1”、“P2”和函数“F1”、“F2”、“F3”、“F4”、“F5”属于域“D1”,而函数“F1”、“F2”、“F3”也属于域“D2”。
这里,域“DI”、“D2”属于计算空间“C1”。
图19所示例中,具有执行进程“P1”的管理进程和执行进程“P2”的管理进程。
接下来,与空间构成有关的信息,通过在这些管理进程的程序起动时用变元指定相应信息,或将相应信息填入这些管理进程的程序代码中,或制成记载有相应信息的文件,从该文件读出等方法,送给这些管理进程的参照生成部。
各个管理进程的参照生成部根据该空间构成信息,如图20所示,通过使域参照表53初始化(S1)、本地函数参照表50初始化(S2)、进程参照表52初始化(S3)、远端函数参照表51初始化(S4),生成参照信息。以下详细说明图20所示的各步骤。
(域参照表初始化(S1))进程“P1”管理进程的参照生成部根据预先给定的与空间构成有关的信息,生成域参照表53。
这里,参照生成部根据下面所示的(1)、(2)空间构成信息,生成域参照表53。
(1)具有域“D1”,没有其大域(2)具有域“D2”,其大域为“D1”进程P1的参照生成部首先如图21所示,生成记述域“D1”有关信息的域参照表53,并且生成记述域“D1”有关信息的域名散列表54。
接下来,进程“P1”的参照生成部向域参照表53增加与域“D2”有关的参照信息。这时,参照生成部40从图21所示的域名散表54中得到域“D2”的上位域(即域“D1”)的参照信息,根据该域“D1”的参照信息,如图22所示,向域参照表53中域“D1”的域要素参照清单91增加指向域“D2”的指针。
(本地函数参照表初始化(S2))进程“P1”的管理进程参照生成部,根据下面所示的(3)~(5)空间构成信息,就进程“P1”制成图23所示的本地函数参照表50。
(3)打印名为“func 1”、本地函数ID为“#000001”、域内名为“F1”、所属域名为“D1”、“D2”的函数(4)打印名为“func 2”、本地函数ID为“#000002”、域内名为“F2”、所属域名为“D1”、“D2”的函数(5)打印名为“func 3”、本地函数ID为“#000003”、域内名为“F3”、所属域名为“D1”的函数这里,图23所示的本地函数参照表50中的本地功能在各进程内唯一赋予。
而且,根据各函数所属的域名,查找已经制成的图21所示的域名散列表54,得到相应的域参照信息,并如图23所示,在所属域的域要素参照清单91增加指向该函数参照信息的指针。
与此同时,进程“P1”的参照生成部如图24A、图24B所示,增加各函数信息,并生成本地函数名散列表55和远端函数ID散列表56。
而且,进程“P2”的参照生成部根据下面所示的(6)、(7)空间构成信息,就进程“P2”制成图25所示的本地函数参照表50,并且生成图26A、图26B所示的本地函数名散列表55和远端函数ID散列表56。
(6)打印名为“func 4”、本地函数ID为“#000001”、域内名为“F4、所属域名为“D1”、“D2”的函数(7)打印名为“func 1”、本地函数ID为“#000002”、域内名为“F5”、所属域名为“D1”的函数(进程参照表初始化(S3))进程“P1”的管理进程参照生成部,根据下面所示的(8)~(11)空间构成信息,就进程“P1”、“P2”制成图27所示的进程参照表52和域参照表53,以及图28所示的进程名散列表55。
(8)网络节点信息为“N1”、端口编号为“#10000”、所属域名为“D1”、域内名为“P1”的进程(9)网络节点信息为“N2”、端口编号为“#10001”、所属域名为“D2”、域内名为“P2”的进程(10)“N1”为“设备名”是“a1.dvl.co.jp”的“通信媒体”(以太网),“设备名”是“a2.dvl.co.jp”的“通信媒体”(ATM)(11)“N2”为“设备名”是“b1.dvl.co.jp”的“通信媒体”(以太网),“设备名”是“b2.dvl.co.jp”的“通信媒体”(ATM)(远端函数参照表初始化(S4))进程“P1”的管理进程参照生成部,根据下面所示(14)~(16)的空间构成信息,就进程“P2”制成图31所示的远端函数参照表51和域参照表53,以及图32所示的远端函数名散列表55。
(14)打印名为“func 1”,进程名为“P1”,所属域名为“D1”、“D2”,域内名为“F1”(15)打印名为“func 2”,进程名为“P1”,所属域名为“D1”、“D2”,域内名为“F2”(16)打印名为“func 3”、进程名为“P1”,所属域名为“D1”,域内名为“F3”不过,远端函数ID的取得,是采用若给出“函数名(域名与域内名的组合)”便得到远端函数ID这种协议进行的。
例如,进程“P1”的管理进程询问进程“P2”的管理进程在域名“D1”中域内名为“F4”的函数。进程“P2”的管理进程采用域名散列表54和函数名散列表55,得到所要求函数的参照信息。接着,进程“P2”的管理进程将该函数的远端函数ID(即“#000100”)回送至进程“P1”的管理进程。
以下以图9为例说明并行分布处理系统中采用参照信息的函数调用操作。
这里示范说明从图19所示模块“P1”当中调用域名“D2”的函数“F4”的情形。
首先,进程“P1”的管理进程将域内函数名“F4”作为域内名110,查找图30所示的远程函数名散列表55,根据函数RF1,得到图29所示的远端函数参照表51的域参照清单74。而且,逐一查询该域参照清单74,检索域名为“D2”的域。这时,从远端函数参照表51的进程参照72可知,域内函数名“F4”在进程“P2”中。
接下来,进程“P1”的管理进程,根据图27所示的进程参照表52,指定访问外部进程用的通信手段。这种场合,通过指定以太网,规定进程函数“F4”所在的进程“P2”的DNS主名。接着,进程“P1”的管理进程采用该规定的DNS主名与网络端口ID82,对进程“P2”的管理进程进行访问,并根据前文所述的函数参照RF1,按从图29所示的远端函数参照表51得到的远端功能ID73(即“#000100”),进行ID指定调用。
接受该调用的进程“P2”的管理进程,将指定的远端功能ID即“#000100”作为关键字,查找图26A、图26B所示进程“P2”上的远端函数ID散列表56,得到函数参照LF1。接下来,该管理进程利用函数参照LF1,由图25所示的本地函数参照表50,得到与函数“F4”有关的本地功能ID62等所要求的参照信息。这时,与函数“F4”有关的本地功能ID为“#000001”。管理进程根据该本地功能ID,调用执行函数“F4”,将该执行结果送回至进程“P1”的管理进程。
综上所述,利用并行分布处理系统31,通过引入计算空间这一概念,用户可根据用途自由形成仅管理所需函数的管理空间。因此,可减轻用户对函数名和标识符等的管理负担。而且,所管理的对象数量减少,因而可以缩短特定对象的时间。此外,可以有效防止误访问参照空间以外对象这种情况。
利用并行分布处理系统31,除了计算空间以外,还通过引入域,在域相互间也允许函数等名称的冲突,能提高各个域中可用函数名称的自由度。
利用并行分布处理系统31,在增加新函数或删除函数等场合,通过修正与相应函数关联的本地函数参照表50、远端函数参照表51、进程参照表52、域参照表53、域名散列表54、函数/进程名散列表55和远端函数ID散列表56的位置,可以灵活并且方便地应付。
上述并行分布处理系统31中,图19所示的网络节点N1、N2的执行环境(OS)的种类,由于与空间管理没有关系,可以提供独立于执行环境的系统。
又,上述并行分布处理系统31中,通过采用域的概念,可以对各个进程所具有的函数管理其参照,与网络中网络节点连接方式无关。
本发明不限于上述实施例,例如构成域的计算对象其方式不限于如上所述。
上述实施例中是将函数例示为计算对象的,但除此之外,对执行规定程序的计算模块、实例、类、方法、大域变量和文件等管理其参照信息的场合,本发明也同样适用。
再者,参照保持部和参照生成部可以设在每一进程中,也可以设在每一计算对象中。
此外,上述实施例如图16、图17、图21、图22、图24A、图24B、图26A、图26B、图30、图32所示,是将表示对象名称的域内名用作为参照信息的,但也可以将表示计算对象位置的标识符用作参照信息。
第3实施例(空间管理方式)首先,本实施例并行分布执行支援系统中采用的空间管理方式与前述图9所示第二实施例并行分布执行支援系统的空间管理方式相同,“参照空间”、 “参照”和“域”概念也相同。
另外,域不是示于图9,而是示于图36。
图33是本实施例并行分布执行支援系统31的构成图。
如图33所示,并行分布执行支援系统31通过网络32连接网络节点33~35。
网络节点33具有由管理进程38执行的进程(局部空间)36。
管理进程38具有参照保持部39、参照生成部40和进程配置部42。
参照保持部39识别进程、计算对象和域,并规定地址,存储控制管理用的参照信息。
参照生成部40根据由输出模块和输入模块得到的程序模块上的参照信息,以及给定的配置信息,生成后面述及的参照信息。这里,程序模块指执行每一个进程的程序群,也可以由多个文件构成。例如,程序模块“X”可以由“px.exe”和“px.dll”两个文件构成。
各程序模块为了向参照生成部40给出程序模块上的参照关系,内置了表示对内部参照表的登记内容的输出模块和表示对至外部参照表的登记内容的输入模块。图34所示的例中,对程序模块“X”的主函数200读出了程序“Y”的函数func 4()。而且,主函数200的函数func 1()可从程序模块“Y”的主函数201读出。这时,程序模块“X”的输出模块202记述有“export(func 1);”,输入模块203记述有“import(Yfunc 4);”。如图34所示,程序员在记述外部函数调用时,记述为“call(Yfunc 4,args)”。这意味着,用args表示的变元来调用程序模块“Y”的函数func 4。这样,程序上与参照有关的程序记述便与程序执行时的配置无关。
另外,输出模块和输入模块可利用翻译程序由应用源码自动生成,或由应用程序员负责生成。
进程配置部42根据给定的配置信息,在指定的网络节点上执行程序模块,生成进程。
进程配置部42如图35所示,具有进程配置表210和端口编号分配表211。
(配置信息)配置信息由确定将某一程序模块配置于某一网络节点的信息和与赋予进程和计算对象的名称有关的信息等构成。
该配置信息,例如通过文件读入或用户输入操作等输入至主管理进程,该配置信息当中为了制作进程配置表和端口编号分配表所需的信息由主管理进程输出至从属管理进程。
这里,为了方便说明,将首先读入配置信息的管理进程称为主管理进程。反之,将从主管理进程接收进程生成命令的管理进程称为从属管理进程。
以下以计算空间和进程配置分别如图36和37所示构成的情况为例,说明配置信息的具体例。
如图36所示,网络节点“A”配置有进程“PX1”、“PZ1”,网络节点“B”配置有进程“PY1”,网络节点“C”配置有进程“PZ2”。
这里,由进程“PX1”、“PZ1”、“PY1”、“PZ2”构成计算空间“C1”。
而且,由进程“PX1”、“PZ1”构成域“D1”,由进程“PY1”、“PY2”构成域“D2”。
这里,进程“PX1”通过执行图34所示的程序模块“X”生成,进程“PY1”通过执行程序模块“Y”生成,进程“PZ1”、“PZ2”通过执行程序模块“Z”生成。
如图37所示,网络节点“A”与以太网220和ATM221连接,其网络地址(DNS名、IP地址)分别为“s1.dvl,co.jp”和“s1a.dvl.co.jp”。
网络节点“B”与以太网220和ATM221连接,其网络地址分别为“s2.dvl.co.jp”和“s2a.dvl.co.jp”。
网络节点“C”与以太网220连接,网络地址为“s3.dvl.cojp”。
如图37所示,网络节点“A”、“B”、“C”分别存在管理进程A、B、C。
在上述图36、图37所示的情况下,配置信息具有下面所述信息。
·将程序模块“X”配置在网络节点“A”上,赋名为进程“PX1”。
·将程序模块“Y”配置在网络节点“B”上,赋名为进程“PY1”。
·将程序模块“Z”配置在网络节点“A”上,赋名为进程“PZ1”。
·将程序模块“Z”配置在网络节点“C”上,赋名为进程“PZ2”。
·程序模块“X”定位(实体)“ftp//ftp.dvl.co.jp/bin/px.exe”·程序模块“Y”定位“ftp//ftp.dvl.co.jp/bin/py.exe”“ftp//ftp.dvl.co.jp/lib/py.exe”·程序模块“Z”定位“ftp//ftp.dvl.co.jp/bin/pz.exe”·网络节点“A”的网络地址对于以太网(媒体),为“s1.dvl.co.jp”
对于ATM(媒体),为“s1a.dvl.co.jp”·网络节点“B”的网络地址对于以太网(媒体),为“s2.dvl.co.jp”对于ATM(媒体),为“s2a.dvl.co.jp”·网络节点“C”的网络地址对于以太网(媒体),为“s3.dvl.co.jp”(管理进程)管理进程在并行分布执行支援系统中使进程分布配置时预先被起动。
管理进程为进程中的一种,分配给网络节点固定端口(例如端口编号“010000”),根据配置信息对通用进程进行配置。
通用进程与管理进程在功能上相同,但对于管理进程而言,在分配固定端口方面有所不同。
图37中,将配置信息提供给管理进程C,由管理进程C向管理进程A、B输出进程生成命令。
因而,管理进程C成为主管理进程,管理进程A、B为从属管理进程。
主管理进程C和从属管理进程A、B的处理例如图38所示。
(进程配置表)进程配置表210包含于进程配置部42,存储配置信息或配置信息中所需的信息。
这里,具有多种配置信息时,为了识别配置信息,赋予各配置信息配置ID。
图39是进程配置表210的说明图。
如图39所示,进程配置表210由配置ID231、主节点的网络地址232、节点信息233、程序信息234和程序配置信息235构成。
节点信息233是节点名236、网络地址237和媒体238的表。
程序信息234是程序名239和程序位置信息240的表。
程序配置信息235是进程名241、程序名242和节点名243的表。
图37所示的并行分布执行支援系统中,网络节点A、B、C的各进程配置部42根据前文所述的配置信息,分别包括图41、图42、图40所示的进程配置表210。网络节点C的进程配置表210根据配置信息生成管理进程C。网络节点A、B的进程配置表210,根据配置信息当中所需的信息,生成管理进程A、B。
(端口编号分配表)图43是端口编号分配表211的说明图。
如图43所示,端口编号分配表211由配置ID250、进程名251和端口编号252构成。
本实施例如图44所示,从属管理进程A、B和主管理进程C分别生成端口编号分配表253、254、211。端口编号分配表253、254、211分包含在网络节点A、B、C的进程配置部42。
(参照信息)该参照信息通过后面述及的输入处理和输出处理生成。
下面所示例中,是就参照网络上分布配置的函数的情况进行说明的,而且参照信息如第二实施例中图11所示,由4种参照表与3种检索用散列表构成。参照表中具有图12所示的本地函数参照表50、图13所示的远端函数参照表51、图14所示的进程参照表52和图1 5所示的域参照表53。而且,检索用散列表是名称与标识符之间的散列表,具有图16所示的域名散列表54、图17所示的函数/进程名散列表55和图18所示的远程函数ID散列表56。
各表的内容与前文在第二实施例中所述的相同的。
另外,网络节点34具有由管理进程41执行的进程(局部空间)37,在概念上与网络节点33相同。
(管理进程中的处理)以下参照图38说明主管理进程C和从属管理进程A、B中的处理。
图38是主管理进程C和从属管理进程A、B中处理的流程图。
首先,例如主管理进程C中输入多个配置信息的话,就由主管理进程C赋予各配置信息配置ID,以识别配置信息(步骤S1)。
接下来,主管理进程C根据配置信息生成图40所示的进程配置表210(步骤S2)。
主管理进程C向从属管理进程A、B输出配置信息当中各网络节点内生成进程所需的信息(步骤S3)。从属管理进程A、B将主管理进程C输入的信息存储于各自的进程配置表(步骤S9)。
主管理进程C向从属管理进程A、B和网络节点中的通用进程输出下面所示的进程生成全令(步骤S4)。
具体来说,主管理进程C向从属管理进程A输出一进程生成命令,指令生成配置ID=#000001、进程名为“D1/PX1”、“D1/PZ1”的进程。
而且,主管理进程C向从属管理进程B输出一进程生成命令,指令生成配置ID=#000001、进程名为“D2/PY1”的进程。
此外,主管理进程C还给其本身发出一指令,以生成配置ID=#000001、进程名为“D2/PZ2”的进程。这时,主管理进程C起到主从两种作用。
从属管理进程A、B有进程生成命令输入的话(步骤S4),分别由进程配置表得到实现相应进程的程序,并由程序名得到程序位置信息,开始装入该程序(步骤S10)。装入协议采用“ftp、http”等。
接下来,从属管理进程A、B在进程生成时分配独一无二的端口编号给每一网络节点(步骤S11)后,将该分配的端口编号和配置ID作为变元,提供给程序模块,生成进程(步骤S12)。该分配的端口编号登记于各进程配置部所具有的端口编号分配表211(步骤S13)。从其本身接收进程生成命令的主管理进程C也进行相同处理。
从属管理进程A、B和网络节点C内的通用进程在进程生成以后,对主管理进程C输出结束消息。
主管理进程C由这些结束消息判断进程生成全部结束的话(步骤S5),向从属管理进程A、B和网络节点C内的通用进程输出一输入开始命令(步骤S6)。
这时,主管理进程C向从属管理进程A输出对配置ID=#000001的进程“D1/PX1”和“D2/PZ1”的输入开始命令。
而且,主管理进程C向从属管理进程B输出对配置ID=#000001的进程“D2/PY1”的输入开始命令。
另一方面,主管理进程C向网络节点C的通用进程输出对配置ID=#000001的进程“D2/PZ2”的输入开始命令。
从属管理进程A、B由端口编号分配表得到进行应答的端口编号,从而向通用进程输出一输入处理命令(步骤S14)。通用进程接收到输入处理命令的话(图45所示的步骤S23),开始输入处理(步骤S24),输入处理结束的话,向主管理进程C输出结束消息。
主管理进程C判断全部输入处理是否结束(步骤S7),判断结束的时候,向从属管理进程A、B和网络节点C的通用进程输出进程执行开始命令(步骤S8)。
这时,主管理进程C向从属管理进程A输出对配置ID=#000001的进程“D1/PX1”和“D1/PZ1”的进程(主函数)执行开始命令。
而且,主管理进程C向从属管理进程B输出对配置号ID=#000001的进程“D2/PY1”的进程执行开始命令。
另一方面,主管理进程C向网络节点C的通用进程输出对配置ID=#000001的进程“D2/PZ2”的进程执行开始命令。
从属管理进程A、B向进行应答的通用进程输出进程执行开始命令(步骤S15)。具体来说,从属管理进程A、B根据端口编号分配表得到进行应答的端口编号,输出主函数的调用命令。
图45为通用进程的处理流程图。
如图45所示,通用进程从相同节点的管理进程将端口编号、配置ID和主节点上的网络地址作为变元输入后起动(步骤S21)。接下来,通过用进程执行输出处理(步骤S22)。
然后,从主管理进程C和从属管理进程A、B判断有无输入处理命令(步骤S23),在判断有的场合,执行输入处理(步骤S24),等待进程执行开始命令(步骤S25)。一旦输入进程执行开始命令,通用进程便执行主函数(步骤S26)。
(输出处理)下文以图37所示的进程“PX”相关的输出处理为例进行说明。
首先,通用进程调用图37所示进程“PX1”上的输出模块,即图34所示的“export(func 1)”,如图51所示,在本地函数参照表50的打印名61中登记“func1”。
本地函数参照表50将图44端口编号分配表253所示的配置ID“#000001”登记作为“func 1”本地函数ID62,将“#00100”登记作为远端函数ID63。该远程函数ID“#00100”还登记于图52B所示的远端函数ID散列表56。
而且,函数“func 1”未在名称空间上加名称,因而,本地函数参照表50的域内名64为“nil”。该函数“func 1”也不属于任何域,域参照清单65为“nil”。
图37所示进程PY1的本地函数参照表50如图53所示。
而且,图37所示进程PZ1和PZ2的本地函数参照表50如图54所示。
另外,输出处理中还登记有图52A所示的函数/进程名散列表65。
这里,如上所述,是对图37所示进程PX1的输入处理和输出处理作示范的,但图37所示“PZ1”、“PY1”和“PZ2”的输入处理和输出处理也可按相同程序进行。
(输入处理)图46是说明输入处理的流程图。网络节点A、B、C的通用进程是,一旦开始输入处理,首先,与主管理进程进行通信,调用程序模块中所包含的输入模块,根据进程配置表210,从程序模块名,得到该进程的进程名及配置处的节点名(步骤S31)。这时,当该进程有多个时,全部作为输入处理对象。
例如,在示于图37的“PX1”进程的场合,调用程序模块“X”的输入模块中所含的“import(Yfunc 4)”。且,在该“import(Yfunc 4)”中所含程序模块名“Y”作为关键字,由示于图40的进程配置表210的程序配置信息235,查得该进程名“D2/PY1”和节点名“B”。
然后,该通用进程判断已得到的进程名是否在进程参照表52中已登记(步骤S32),在没有登记时,进一步判断节点名是否登记在进程参照表52中,(步骤S35)。在节点名没有登记时,通用进程与主管理进程通信,取得与该节点相关的信息,在进程参照表52中登记该节点信息(步骤S38)。
例如,如图47所示,进程名“D2/PY1”没有登记在进程参照表52中,因而将该进程登记在进程参照表52中。这时,为了指定输入处的网络地址,采用示于图40的进程配置表210,把节点信息登记在进程参数表52中。由该节点信息可明了输入处的网络地址。
具体地说,由示于图40的进程配置表210,可得到网络节点“B”的网络地址,以太网是“s2.dvl.co.jp”、ATM是“s2a.dvl.co.jp”这些节点信息。
然后,通用进程在输入处的网络节点上的管理进程中,把配置ID及进程名作为关键字,进行检索,得到相关端口号码(步骤S36)。具体地说,通用进程在输入处的管理进程中,把配置ID=#000001及进程名“D2/PY1”作为关键字检索端口号码。受到检索的管理进程,参照示于图44的端口号码分配表254,将端口号码“#010000”送回通用进程。
通用进程一旦得到端口号码,即将该端口号码和进程名登记在进程参照表52中(步骤S37)。由此,进程参照表52成为如图48所示。
又,进程“PY1”所属的域“D2”的参照不存在时,如图48所示,在域参照表53中生成新的域。
然后,如图49A、49B所示,生成函数/进程名散列表55及域名散列表54,确定参照关系。
然后,通用进程由进程名得到该进程的参照,把打印名作为关键字,查得远端ID(步骤S33)。
具体地说,把输入模块中记述的函数的打印名“func 4”作为关键字,在例如管理进程中检索远端ID。管理进程又把打印名“func 4”作为关键字,由本地函数参照表查得远端ID“#000101”,并送回通用进程。又,本地函数参照表,如图45所示,是输入处理(步骤24)开始前,进行输出处理(步骤S22)时生成的。
然后,通用进程把已得到的远端ID、打印名及进程参照登记在远端函数参照表中(步骤S34)。
具体地说,通用进程如图50所示,将得到的远端ID“#000101”、打印名“func 4”及进程参照登记在远端函数参照表51中(步骤S34)。
(程序模块执行)例如,一旦示于图37的网络节点A执行示于图34的程序模块X,产生进程“PX1”,则执行与程序模块X的函数“func 2()”内的“call(Yfunc 4)”对应的处理。这时,进程“PX1”参照示于网络节点A的图41所示进程配置表210,得到与程序模块Y的进程相关的进程参照。该进程参照表明程序模块Y配置在网络节点B,网络节点B的网络地址,对以太网为“s2.dvl.co.jp”,而对ATM为“s2a.dvl.co.jp”。
然后,进程“PX1”,把已得到的进程参照、打印名(func 4)、通信媒体组作为关键字,参照示于图50的远端函数参照表51,查得外部参照。该外部参照是远端函数ID“#000101”、网络地址及网络端口ID“#010000”。
接着,进程“PX1”采用网络地址及网络端口ID,在对端进程中进行访问,调用远端函数ID的指定函数。
调用的进程把远端ID作为关键字,由示于图52的远端函数ID散列表56,查得本地ID,输出函数启动命令至操作系统(OS)。
如上述说明,在并行分布执行支援的系统31中,在程序模块外记述该程序模块进行的网络节点有关的配置信息,因而不修正程序模块的记述,仅变更配置信息,就能动态变更执行程序模块的网络节点。即,在计算对象空间形成后,可动态变更该空间构成。
而且,根据并行分布执行支援系统31,应用程序能不依赖执行时的网络配置,记述程序模块执行时的参照关系。
即,程序模块执行时的配置信息,在该模块外记述,因而使用者可以仅知道程序模块上的计算对象的参照关系(程序名及计算对象的组合),就记述程序模块。由此,可分别处理程序模块内记述的计算对象的静态参照关系和配置信息中记述的动态参照关系。
再者,根据并行分布执行支援系统31,通过导入计算空间的概念,使用者能自由形成仅管理适合用途需要的函数的管理空间。结果,能减轻函数名称和标识符之类的使用者的管理负担。且,因管理的对象数减少,能缩短规定对象的时间。再者,能有效防止错误访问参照空间外的对象。
又,根据并行分布执行支援系统31,除导入计算空间外,还导入域。由此,域相互间也允许函数等的名称冲突,能在各域中提高可用函数名称的自由度。
又,根据并行分布执行支援系统31,在追加新函数,或削除函数时,通过修正与该函数关连的本地函数参照表50、远端函数参照表51、进程参照表52、域参照表53、域名散列表54、函数/进程名散列表55及远端函数ID散列表56等处,能灵活且容易适应上述情况。
又,在上述并行分布执行支援系统31中,网络节点的执行环境(OS)的种类,与空间管理无关,因而,能提供不依赖执行环境的系统。
又,在上述并行分布执行支援系统31中,通过使用域概念,能与网络中的网络节点连接形态元关地管理各进程中具有的函数参照。
本发明不限于上述实施例。例如构成域的计算对象形态不限于上述例子。
又,在上述实施例中,以函数作为计算对象为例,但其它在管理执行预定的程序的计算模块、实例、类、方法、大域函数及文件等的参照信息的场合,本发明也同样适用。
又,在图37所示的管理进程中,哪个管理进程都可以成为主管理进程。
又,参照保持部及参照生成部,可在每个进程中设置,也可设置在每个计算对象中。
第4实施例作为本实施例,例如对于连接多套计算机装置的计算机网络上,展开由多个处理模块构成的计算空间,而且各处理模块一方面实质上与其它模块进行通信,一方面进行分布处理或并行分布处理的环境,说明参照变换装置,它用于例如把应用层指定的各处理模块的参照信息变换成能直接指定实际系统的对象的系统参照信息,以进行所述处理模块间的通信。
图55是该参照变换装置的构成框图。
参照变换装置530具有输入切换部531、第1变换部532、第2变换部533、第3变换部534、第4变换部535、第5变换部536、输出切换部537及控制部538。
且,在图55中,符号A表示应用参照信息、符号S表示系统参照信息。
首先,对各部分的构成、功能作说明。
输入切换部531,根据来自控制部538的切换信号,有选择地将输入的应用参照信息或后述的由输出切换部537再次输入的应用参照信息输入至第1变换部532~第5变换部536中的某一个。
第1变换部532把已输入的应用参照信息变换成1个系统参照信息。
第2变换部533把输入的应用参照信息变换成2个以上的系统参照信息组。
第3变换部534,把输入的应用参照信息变换成其它应用参照信息。
第4变换部535,把输入的应用参照信息,变换成2个以上应用参照信息组。
第5变换部536,把输入的应用参照信息,变换成其它应用参照信息及系统参照信息组。
输出切换部537,根据由控制部538输入的控制信号,在第1变换部532~第5变换部536中进行变换,切换对按顺序输出的参照信息的处理。即,输出的参照信息中,系统参照信息切换成输出至外部,而应用参照信息切换成再输入至输入切换部531。又,在输出切换部537内有未图示的存储部,经变换可能输出至外部的系统参照信息暂时存储在该存储部。然后,在对输入至参照交换装置530的应用参照信息来说,参照信息全部变换成系统参照信息的时刻,包括存储在该存储部中的信息在内,将系统参照信息成批输出。
控制部538控制输入切换部531和输出切换部537,使输入的应用参照信息适当地变换成系统参照信息。
控制部538首先写入变换对象的应用参照信息(即,由外部输入至输入切换部531的应用参照信息或由输出切换部537输入的应用参照信息),分析该内容,判定第1变换部532至第5变换部536中哪个进行参照求解是合适的。且,根据该判定结果,切换输入切换部531,使该输入应用参照信息输入至期望的变换部。
控制部538还判定由第1变换部532~第5变换部536输入至输出切换部537的变换结果的参照信息是应用参照信息或系统参照信息,若是应用参照信息,则控制输出切换部537使再次输入至输入切换部531。又,若是系统参照信息,则控制输出切换部537,使作为输出用的参照信息存贮在输出切换部537内的存储部中。
如果对输入的应用参照信息来说,参照信息全部变换成系统参照信息,控制部538就将该系统参照信息或该系统参照信息组作为变换结果,输出至外部。
参照图56的流程图说明控制部538实际控制参照变换装置530的操作。
如图56所示,若应用参照信息已输入至参照变换装置530,则控制部538开始处理(步骤S110),分析输入的应用参照信息在第1变换部532~第5变换部536中的哪个中变换是可能的,通过把该应用参照信息输入至该变换部,使变换开始(步骤S111)。若变换终了,检查在该变换结果的参照信息内,是否存在应用参照信息(步骤S112),在存在时,对该应用参照信息再次反复作步骤S111的处理。
在步骤S112中,全部参照信息若判定为变换成系统参照信息,则输出该变换结果(步骤S113)。一系列的变换处理终了(步骤S144)。
然后,参照图57A、图57B、图57C,对该参照变换装置530的操作进行说明。
首先,该参照变换装置530的通常操作例子示于图57A。
在图57A所示例子中,首先输入的应用参照信息A在控制部538进行内容分析,决定在第4变换部535变换后,在第4变换部535中变换成应用参照信息组(A1、A2、A3)。该变换结果均是应用参照信息,所以再作变换,各应用参照信息的内容再次由控制部538分析,确定下一个变换部。在图57A的例子中,应用参照信息A1-A3分别输入至第1-第3变换部532-534,进行变换。
该变换结果,应用参照信息A1在第1变换部532中变换成一个系统参照信息S1;应用参照信息A2,在第2变换部533中变换成系统参照信息组(S2、S3);应用参照信息A3,在第3变换部534中,变换成1个应用参照信息A4。
在这些变换结果中,只有参照信息A4还是应用参照信息,所以再进行变换。即,再次根据该内容选择变换部。这次的结果是,在第5变换部536中,变换成应用参照信息和系统参照信息的组合(A5、S4、S5)。再者,在这些变换结果中,残留应用参照信息A5,因而这次把它在第1变换部532中,变换成1个系统参照信息S6。
这样顺次变换的结果,输入的应用参照信息A变换成系统参照信息串(S1,(S2,S3)(S6,S4,S5)),加以输出。
又,应用参照信息及系统参照信息,具体地说,是各模块和对象的逻辑名称或ID之类。
又,在第1变换部532~第4变换部535中,也可能对参照信息组进行成批处理。其例子示于图57B。
在图57B中,根据输入的应用参照信息A,由第4变换部535生成应用参照信息组(A1,A2,A3),然后把该应用参照信息组原样输入至第1变换部532,得到对应的系统参照信息组(S1,S2,S3)。
在参照变换装置530的第1变换部532~第5变换部536中,能这样把应用参照信息组作为输入。
又,也可以不是图57B所示那样将应用参照信息组成批输入,而仅输入其一部分。
这样的例子示于图57C。
在图57C中,也根据输入的应用参照信息A,由第4变换部535生成应用参照信息组(A1,A2,A3)。然后在下一阶段,抽出应用参照信息组(A1,A2),输出到第1变换部532,把剩余的应用参照信息A3输出到第2变换部533,再进行变换。
在参照变换装置530中,也可这样将生成的应用参照信息组作适当的重新排列,作为下一阶段的应用参照信息输入。
这样,在参照变换装置530中,对于输入的应用参照信息,根据该参照信息的内容,适当反复选择第1变换部532~第5变换部536,进行参照信息的变换。因而,即使结构复杂的应用参照信息,最终也展开为直接表示系统上的对象的参照信息串。
第5实施例本实施例的并行分布执行支援系统,是把第4实施例中已述的参照变换装置适用于第2实施例中已述的、示于图9的并行分布执行支援系统中,各处理模块作实质联系,进行处理的这样一种系统。
在示于图9的并行分布处理系统中,以消息发送为根本,各并行对象进行通信,实现并行分布处理。
在本实施例的并行分布执行支援系统中,这种消息发送中,根据对送达处对象的远端参照,指定送达处的节点、进程、对象,进行发送处理。这时,若送达处为域和对象群,则进行多点同发。
又,参照符若表示代理对象(プロキシォブジェクト),则通过代理端中继,进行消息发送。进而,根据送达处的地址,目的地,选择网络上的RPC、节点内的IPC,或进程内的通信,进行消息发送。
这时,并行对象在应用空间中管理相互远端参照,由此,实现高速消息发送。
对于本发明参照变换装置作如下说明,该装置进行这种分布处理系统的应用空间中的对象参照信息和用于进行实际发送的系统参照信息的变换。
图58是表示该参照变换器650构成的框图。
参照变换器650具有变换控制部65 1、域变换部652、实全变换部653、进程变换部654、节点名变换部655、DNS名代理变换部656。
首先,参照域变换部652~节点名变换部655的各部,对用于本发明分布处理系统的空间管理的参照信息加以说明。
在该公布处理系统中采用的主要参照信息,如上述图11所示,用4种参照表和3种检索用散列表进行管理。4种参照表有示于图12的本地函数参照表50、示于图13的远端函数参照表51、示于图14的进程参照表52及示于图15的域参照表53。又,检索用散列表是名称和标识符间的散列表,它是示于图16的域名散列表54、示于图17的函数/进程名散列表55及示于图18的远端函数ID散列表56。
上述各表的内容,与前文所述第2实施例中已说明的内容相同。
下面,说明示于图58的参照变换器650的各部分构成。
变换控制部651进行参照变换器650的总体管理。具体地说,确认输入的应用参照信息的内容,并根据其种类,把输入的名称输出至域变换部652~节点名变换部655中的某一个。又,读出该变换部得到的变换结果,判断得到的参照信息是否系统参照信息。且,对应用参照信息,根据其内容,再次输入至域变换部652~节点名变换部655。重复这样处理,变换控制部651使最终输入的应用参照信息以系统参照信息表示,并输出得到的系统参照信息。
又,该变换控制部651具有存储手段,按顺序存储对输入的参照信息依次检出的输出用系统参照信息。若最终全部参照信息均变换为系统参照信息,则读出该存储手段的内容,成批输出经变换的系统参照信息。
在变换控制部651中,应用参照信息与指定通信媒体之类的附加信息同时输入时,各参照信息,与该附加信息同时对变换部输出。
域变换部652参照输入的域参照信息、域参照表53,把输入的域参照信息变换成构成该域要素的集合。具体地说,例如变换成该域中所包含的实体参照和域参照的组合。
实体变换部653,参照实体参照表,把输入的实体参照信息变换成该实体所在进程的参照信息和其上的远端标识符。该实体参照表实质上是与前述的本地函数参照表50及远端函数参照表51相同的表。又,这里,所谓实体,表示例如实例、类别、方法、大域函数等。
进程变换部654参照进程参照表52,把输入的进程参数信息变换成该进程所在节点的信息、该节点内的进程标识符。节点信息是DNS名、IP地址或独自赋予的节点名中的某一种。
节点名变换部655参照进程参照表52中包含的节点参照表,把输入的节点名称变换成DNS名或IP地址。
DNS名代理变换部656把输入的DNS名变换成IP地址。DNS代理变换部656内部具有通信手段和存储手段。若DNS名输入,则经该通信手段对作为外部参照变换装置的DNS名变换部660进行通信,求解DNS名至IP地址的变换。所得结果作为变换的结果输出。
又,在DNS名代理变换部656中,把此时得到的DNS名与IP地址的对应关系预先存入上述内部的存储手段中。在要变换的DNS名输入时,首先,检索该存储手段中存储的DNS名,有同样DNS(已曾变换过)时,把在该存储手段中存储的IP地址作为变换结果输出。因而,对DNS名变换部660,只询问内部存储手段未存储的DNS名。
区域变换部652~节点名变换部655的各变换器中,在输入的应用参照信息是名称或ID时,适当参照上述的域名散列表54~远端函数ID散列表56及未图示的其它散列表,由此,检索各表的该项目。
又,在进程变换部654~节点名变换部655中进行的网络节点有关信息的变换,是从变换控制部651参照与参照信息同时输入的表示通信媒体的附加信息进行的。即使对同一系统,若通信媒体不同,地址通常不同。因而,作为附加信息,具体地说,输入指定以太网或ATM的信息。又,本实施例中,在没有指定这种通信媒体时,作为缺省,把以太网当作通信媒体进行变换。
然后,参照图59,对该参照求解器650的具体操作进行说明。
图59作为参照变换器650操作的一个例子,示出域内所属全部实体中进行消息发送时的参照信息变换处理。
图59中,在各变换处理进行上述第1实施例的参照变换装置530中同样操作时,同时记录进行该变换处理的变换部及其变换操作的种类。
首先,所述域名D1一旦输入参照变换器650的变换控制部651,由于其内容是域名,变换控制部651就把该参照信息输出至域变换部652。
在域变换部652中,通过域名散列表54参照域参照表53,抽出该域中所包含的全部实体及域。结果,域名D1变换成实体E1、E2和域名D2、D3的组合。
得到的要素中的域名D2、D3,进而在变换部652中进行循环变换,由此,变换成各实体E3、E4及实体E5、E6的组合。
结果,输入的域名D在域变换部652中变换成实体组(E1,E2,E3,E4,E5,E6)。
然后,得到的实体E1~E6依次输入至实体变换部653。在实体变换部653中,各实体参照信息E1~E6变换成该实体所进程的参照信息和远端式标识符组。其结果,得到如图所示的参照信息P1~P4和以远端标识符ID1~ID3组表示的参照信息。
然后,变换控制部把得到的进程参照信息P1~P4输入至进程变换部654。在进程变换部654中,将该进程参照信息变换成节点信息和进程标识符。即,得到对进程P1及P2,用DNS名表示的节点信息及该节点的进程标识符;对进程P3,用IP地址表示的节点信息和该节点中的进程标识符;对进程P4,以节点名表示的节点信息及该节点中的进程ID。
在得到的节点信息中,将对进程P4得到的、用节点名表示的节点信息,接着输入节点名变换部155,变换成DNS名。
又,用对进程P1及P2所得DNS名获取的节点信息,经节点名变换部655转送至DNS名变换部660,且在DNS名变换部660中,变换成ID地址。
这样处理的结果,输入的域名D1全部变换成用系统地址表示的系统参照信息。
这样,参照变换器650,通过多级循环处理,进行参照信息的变换,因而即使在复杂的计算机网络上,也能把应用层的参照信息变换成系统参照信息。换言之,从逻辑的应用参照信息,不依赖于系统构成,可参照种种计算资源,即,域、节点、进程、实例、类、方法、大域函数等。结果,能实现不依赖于网络物理结构的高级分布处理系统。
又,本发明不限于本实施例,也可作任意适当的改变。
例如,本发明的参照变换器的构成如图58所示,这种构成是表示基本功能的,也可以加以种种变形。
作为例子,更具体地参照变换器的构成例子示于图60。
示于图60的参照求解器700是把变换器分离成名称求解部702和参照求解部708而加以构成的。
下文,简单说明参照求解器700的构成及功能。
参照求解器700具有求解器管理部701、名称求解部702、参照求解部708及表管理部714。
求解器管理部701进行参照求解器的总体管理。具体地说,判断输入的参照信息是名称或是参照信息,若是名称,则输入至名称求解部702,若是参照信息则输出至参照信息求解部。
名称求解部702把自解决器管理部701输入的变换对象的名称空间上的名称,变换成对应的参照。
名称求解管理部703进行名称求解部702的总体管理。名称求解管理部703相应于赋予的名称的种类,把输入的名称输出至域名求解部704~代理求解部707的某一个。读出该求解部得到的参照,输出至求解器管理部701。
域名求解部704,利用域名散列表54,进行域名至域参照的变换。
进程名求解部705,利用函数/进程名散列表55,进行进程名至进程参照的变换。
实体名求解部706,利用没有图示的其它散列表,进行实体名至实体参照的变换。
外部名代理求解部707,利用代理端进行从外部名至外部参照变换。具体地说,例如利用对DNS名服务器的代理端。
参照求解部708,进行求解器管理部701所输入变换对象的参照至本原参照的交换。
参照求解管理部709进行参照求解部708的总体管理。参照求解管理部709根据赋予的参照种类,把输入的参照输出至域参照求解部710~外部参照求解部713中某一个。且,读出该求解部得出的变换结果,输出至求解器管理部701。
域参照求解部710进行域参照至实体参照的变换。具体地说,把域参照变换为(实体参照、域参照)的组合。变换结果得到的域参照,在域参照求解部710中循环变换。
进程参照求解部711进行自进程参照向本原进程原照的变换。通过指定通信媒体把这时网络节点名变换为期望的网络地址。
实体参照求解部712进行由输入的实体参照对本源实体参照的求解。本实施例中,在本地实体参照变换时,将所赋予的本地实体参照本身依然作为变换结果送回。又,在远端实体参照求解时,把内部表现呈现的进程参照变换为本原参照,输出结果。
外部参照求解部713,进行由外部参照对本原外部参照的求解。
又,在图60中,外部各求解部715是DNS名变换手段,把输入的DNS名变换为IP地址。
消息发送部800,在分布处理系统1中进行用于对象间通信的消息发送。
因而,具体地说,在参照求解器700中,自消息发送部输入例如送达处的节点和进程、表示对象的参照信息,又在参照求解器700中,把该参照信息变换成系统参照信息,输出至消息发送部800,而且消息发送部800根据该系统参照信息,进行实际通信。
参照求解器也可这样构成。
权利要求
1.一种并行分布处理系统,以网络为中介,将执行具有单个或多个计算对象的进程的多个运算处理节点相互连接,其特征在于,第二进程调用并执行具有第一进程的计算对象或其功能时,所述第二进程将该计算对象或其功能的名或标识符作为关键字,根据参照信息,在所述网络上获得直接规定该计算对象或其功能的定位信息,将该定位信息发送给所述第一进程,进行对具有所述第一进程的计算对象或其功能的调用处理。
2.如权利要求1所述的并行分布处理系统,其特征在于,所述参照信息用下列手段构成设于计算对象或其功能的调用宿进程中,对所调用的计算对象或其功能表示该计算对象或其功能的标识符与该计算对象或其功能的执行地址的对应关系的内部参照手段;设于计算对象或其功能的调用源进程中,对进行调用的计算对象或其功能表示该计算对象或其功能的名称或标识符与该计算对象或其功能的标识号的对应关系的外部参照手段;其中,所述调用源进程,将进行调用的计算对象或其功能的名称或标识符作为关键字,从所述外部参照手段获得对应的标识号,将含有该标识号的消息发送给计算对象或其功能的调用宿进程,所述调用宿进程,将包含在所述调用源进程所发送的消息中的所述标识号作为关键字,从所述内部参照手段获取该被调用的计算对象或其功能的执行地址,按照该执行地址执行该被调用的计算对象或其功能。
3.如权利要求1所述的并行分布处理系统,其特征在于,规定由单个或多个任意所述计算对象或其功能的集合所构成,而且仅在该集合内要求所述计算对象或其功能的名称或标识符具有单一性的计算空间。所述参照信息,将所述计算空间内的所述计算对象或其功能的名称或标识符作为关键字提供所述计算对象或其功能的定位信息。
4.如权利要求1所述的并行分布处理系统,其特征在于,所述运算处理节点具有根据表示实现所述进程的程序模块的定位信息与配置该程序模块的目的运算处理节点信息的对应关系的配置信息,将所述程序模块配置给规定的运算处理节点,并在该配置的目的运算处理节点生成进程的进程配置手段;根据记述在所述配置信息和所述程序模块中的计算对象或其功能相互间的参照关系,在各进程中生成实现该进程的程序模块相互参照的计算对象或其功能的所述参照信息的参照信息生成手段。
5.如权利要求1所述的并行分布处理系统,其特征在于,规定由单个或多个任意所述计算对象或其功能集合所构成,而且仅在该集合内要求所述计算对象或其功能的名称或标识符具有单一性的计算空间,所述系统进一步包含将在所述计算空间中规定计算对象或其功能的逻辑参照信息,变换为同样的逻辑参照信息及作为所述定位信息的系统参照信息的任一种或它们的组合参照信息的多个参照变换手段;根据该逻辑参照信息,将所输入的逻辑参照信息及在所述参照变换手段中被变换生成的逻辑参照信息反馈输入到所述多个参照变换手段的任一个,并将所述被输入的逻辑参照信息变换为所述系统参照信息的变换控制手段;其中,由所述参照变换手段通过所述变换控制手段,将通信对端进程的逻辑参照信息变换为系统参照信息,进行进程间的相互通信。
6.如权利要求2所述的并行分布处理系统,其特征在于,所述消息中含有所述调用源进程中所用计时器表示的时间。
7.如权利要求2所述的并行分布处理系统,其特征在于,在多个消息从调用源进程发送给调用宿进程的情况下,按照包含在消息中的、在调用宿进程中处理的优先权,依次执行对应于这些消息的多个功能调用。
8.如权利要求2所述的并行分布处理系统,其特征在于,所述消息中含有被调用的功能在调用宿进程中执行的时间。
9.如权利要求1至8任一权利要求所述的并行分布处理系统,其特征在于,所述计算对象或其功能可以是函数、类、实例、方法、大域共用变量及文件等中的某一种。
10.如权利要求5所述的并行分布处理系统,其特征在于,所述多个参照变换手段包含将所述逻辑参照信息变换为所述系统参照信息的第一参照变换手段;将所述逻辑参照信息变换为所述系统参照信息组的第二参照变换手段;将所述逻辑参照信息变换为另一逻辑参照信息的第三参照变换手段;将所述逻辑参照信息变换为另一逻辑参照信息组的第四参照变换手段;将所述逻辑参照信息变换为所述系统参照信息和所述逻辑参照信息组的第五变换手段;所述变换控制手段根据该逻辑参照信息的内容,将所述输入的逻辑参照信息及所述变换生成的逻辑参照信息输入到所述第一至第五参照变换手段中的任一个。
11.如权利要求1至10任一权利要求所述的并行分布处理系统,其特征在于,新的计算对象或其功能被登记时,对该计算对象或其功能所构成的调用宿及调用源的进程进行解析,并根据该解析结果动态作成所述参照信息。
12.一种运算处理装置,执行具有单个或多个计算对象的进程,并通过网络与其它运算处理装置相互连接,其特征在于,该运算处理装置具有生成与第一程序模块对应的第一进程的进程生成手段;根据记述在多个程序模块中的计算对象或其功能的相互参照关系,生成与在网络上直接规定所述多个程序模块相互参照的计算对象或其功能的定位信息有关的参照信息的参照信息生成手段;保持所述参照信息的参照信息保持手段;所述第一进程调用并执行具有对应于第二程序模块的第二进程的计算对象或其功能时,可向所述参照信息保持手段查询所述计算对象或其功能的执行地址的参照查询手段;在所述第一进程和所述第二进程间收发含有由所述参照查询手段获得的参照信息的消息,并进行所述第一及第二进程具有的计算对象或其功能的相互调用处理的消息通信手段。
13.一种运算处理装置,执行具有单个或多个计算对象的进程,并通过网络与其它运算处理装置相互连接,其特征在于,所述运算处理装置具有根据表示实现所述进程的程序模块的定位信息与配置该程序模块的目的运算处理节点的信息的对应关系的配置信息,对规定的运算处理节点指示配置所述程序模块和生成对应于所述程序模块的进程,从而实际生成所述进程配置手段;根据所述配置信息和记述在所述程序模块中的计算对象或其功能相互间的参照关系,对根据程序模块生成的所述进程指示进行与在网络上直接规定多个程序模块相互参照的计算对象或其功能的定位信息有关的生成,从而实际生成参照信息的参照信息生成手段;指示所述运算处理节点配置所述进程,指示所述进程生成所述参照信息所用的通信手段。
14.一种并行分布处理方法,用于执行具有单个或多个计算对象的进程的多个运算节点相互连接的网络,其特征在于,第二进程调用并执行具有第一进程的计算对象或其功能时,所述第二进程将该计算对象或其功能的名或标识符作为关键字,根据参照信息,在所述网络上获得直接规定该计算对象或其功能的定位信息,将该定位信息发送给所述第一进程,进行对具有所述第一进程的计算对象或其功能的调用处理。
15.如权利要求14所述的并行分布处理方法,其特征在于,所述参照信息包含设于计算对象或其功能的调用宿进程中,对所调用的计算对象或其功能表示该计算对象或其功能的标识符与该计算对象或其功能的执行地址的对应关系的内部参照信息;设于计算对象或其功能的调用源进程中,对进行调用的计算对象或其功能表示该计算对象或其功能的名称或标识符与该计算对象或其功能的标识号的对应关系的外部参照信息;其中,所述调用源进程,将进行调用的计算对象或其功能的名称或标识符作为关键字,从所述外部参照信息获得对应的标识号,将含有该标识号的消息发送给计算对象或其功能的调用宿进程,所述调用宿进程,将包含在所述调用源进程所发送的消息中的所述标识号作为关键字,从所述内部参照信息获取该被调用的计算对象或其功能的执行地址,按照该执行地址执行该被调用的计算对象或其功能。
16.如权利要求14所述的并行分布处理方法,其特征在于,规定由单个或多个任意所述计算对象或其功能的集合所构成,而且仅在该集合内要求所述计算对象或其功能的名称或标识符具有单一性的计算空间。所述参照信息,将所述计算空间内的所述计算对象或其功能的名称或标识符作为关键字提供所述计算对象或其功能的定位信息。
17.如权利要求14所述的并行分布处理方法,其特征在于,所述运算处理节点,根据表示实现所述进程的程序模块的定位信息与配置该程序模块的目的运算处理节点信息的对应关系的配置信息,将所述程序模块配置给规定的运算处理节点,并在该配置的目的运算处理节点生成进程;根据记述在所述配置信息和所述程序模块中的计算对象或其功能相互间的参照关系,在各进程中生成实现该进程的程序模块相互参照的计算对象或其功能的所述参照信息。
18.如权利要求14所述的并行分布处理方法,其特征在于,所述处理方法,规定由单个或多个任意所述计算对象或其功能集合所构成,而且仅在该集合内要求所述计算对象或其功能的名称或标识符具有单一性的计算空间,在所述计算空间中,对规定进程的通信对端计算对象或其功能的逻辑参照信息,按其内容确定参照变换的方法,通过所述已确定的参照变换方法,将所述通信对端的逻辑参照信息变换为另一逻辑参照信息,以及直接规定所述计算机网络上的对象的系统参照信息二者中的任一种,或变换为它们的组合参照信息,对所述变换结果的参照信息中的逻辑参照信息,再次根据所述逻辑参照信息确定参照变换方法,用所述确定的参照变换方法,再次进行所述变换,反复进行所述对逻辑参照信息的参照变换方法的确定和根据该确定的变换,直到所述变换结果中参照信息的全部元素成为所述系统参照信息,当所述全部元素变为所述系统参照信息时,按照该参照信息进行所述各进程间的通信,所述各进程实际上连系起来进行分布处理。
19.如权利要求1 5所述的并行分布处理方法,其特征在于,所述消息中含有所述调用源进程中所用计时器表示的时间。
20.如权利要求15所述的并行分布处理方法,其特征在于,在多个消息从调用源进程发送给调用宿进程的情况下,按照包含在消息中的、在调用宿进程中处理的优先权,依次执行对应于这些消息的多个功能调用。
21.如权利要求15所述的并行分布处理方法,其特征在于,所述消息中含有被调用的功能在调用宿进程中执行的时间。
22.如权利要求14至21任一权利要求所述的并行分布处理方法,其特征在于,所述计算对象或其功能可以是函数、类、实例、方法、大域共用变量及文件等中的某一种。
23.如权利要求18所述的并行分布处理方法,其特征在于,所述参照变换方法由以下五种方法,根据所述已输入逻辑参照信息及所述变换生成的逻辑参照信息的内容确定将所述逻辑参照信息变换为所述系统参照信息的第一方法;将所述逻辑参照信息变换为所述系统参照信息组的第二方法;将所述逻辑参照信息变换为另一逻辑参照信息的第三方法;将所述逻辑参照信息变换为另一逻辑参照信息组的第四方法;将所述逻辑参照信息变换为所述系统参照信息和所述逻辑参照信息组的第五方法。
24.如权利要求14至23任一权利要求所述的并行分布处理方法,其特征在于,新的计算对象或其功能被登记时,对该计算对象或其功能所构成的调用宿及调用源的进程进行解析,并根据该解析结果动态作成所述参照信息。
全文摘要
一种并行分布处理系统及其方法,用于多个网络节点通过网络相连接的系统中,其特征在于在第一网络节点的类(模块)中调用第二网络节点的类函数(功能)时,第一网络节点从外部参照表获得所述函数的功能标识码(数值),通过网络将该功能标识码与变元一起作为消息输出给第二网络节点。在第二网络节点中,将输入的功能标识码作为关键字,从内部参照表获得该功能的执行地址,执行该功能。
文档编号H04L29/06GK1165343SQ9710313
公开日1997年11月19日 申请日期1997年3月5日 优先权日1996年3月5日
发明者前川博俊, 千叶哲央, 小早川雄一, 齐藤隆之 申请人:株式会社数字视觉实验室
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1