路由选择 本发明涉及从客户机至多个服务器之一的消息的路由选择和从服务器返回至客户机的应答消息的路由选择。本发明特别涉及消息的适配来实现此路由选择。
通过定义客户机与服务器能生成例如无线电手机的电子设备的功能。服务器提供资源的一项业务或一组业务。客户机通过将请求消息发送给合适的服务器来接入这些业务。随后将该接入的结果作为应答消息返回给客户机。
然而,此设备可以具有提供相似业务的多个相似资源。这些重复业务可能相互独立,在任何一个时间多个业务之中只有一个业务是合适的。这些重复资源之中的每个资源将具有相关的服务器。
因此,需要路由选择装置来为业务的请求消息选择从始发客户机至多个重复服务器之中合适的一个服务器的路由,并且为应答消息选择从合适地服务器至始发客户机的路由。这样的路由选择装置是公知的。然而,这样的装置是复杂的并且具有存储器以便将消息识别符与始发客户机相关。此识别符在此消息中发送给此合适的资源并且在应答消息中返回。然后,接入此存储器以识别此应答应传送至的始发客户机。
希望提供一种路由选择装置,此路由选择装置为业务的请求消息选择从始发客户机至多个重复服务器之中合适的一个服务器的路由,并且能为来自此合适服务器的应答消息选择路由至始发客户机,但此路由选择装置不必存储接收的对于每个请求消息的信息,而能正确地为接收的应答信息选择路由。
根据本发明的一个方面,提供一种引向器,用于为消息选择从客户机至多个服务器之中选择的一个服务器的路由以接入资源,并且用于为此资源的应答选择从此选择的服务器至客户机的路由,其中每条消息具有其始发地的指示、其目的地的指示和消息正文,它包括:第一输入装置,用于从客户机接收第一输入消息,表示其始发地为此客户机和其目的地为路由选择装置;第一输出装置,用于提供第一输出消息给此选择的服务器,表示其始发地为此客户机和其目的地为此选择的服务器;第二输入装置,用于从此选择的服务器接收第二输入消息以响应第一输出消息,表示其始发地为此选择服务器和其目的地为路由选择装置而且具有识别此客户机的指示作为附加项;和第二输出装置,用于提供第二输出消息给这一个客户机以响应第二输入消息,表示其始发地为路由选择装置和其目的地为这一个客户机;安排所述引向器为作为输出消息的输入消息选择路由,通过修改第一输入消息的目的地的指示生成第一输出消息,并且通过修改第二输入消息的目的地的指示与始发地的指示而且通过从第二输入消息中除去此附加项来生成第二输出消息。
应认识到:此引向器与客户机接口,就好像它是提供此客户机所请求的业务的资源的服务器而不是客户机和服务器之间的中介。而且,此引向器不存储诸如将客户机与消息或服务器相关的路由选择表的信息。
此引向器最好应通过重新格式化接收的消息来为这些消息选择路由。具体地,通过重新格式化其始发地与目的地的指示,并且在需要时,通过除去此附加项来编辑此消息。
可将此引向器安排为修改具有不同于第一输入消息的格式并且也不同于输出消息的格式的预定格式的第二输入消息。第二输入消息的格式通过给之加上此附加项而可以不同。
此客户机最好使用识别所要求的业务的符号资源地址。此符号地址将此引向器识别为接入提供此业务的服务器的控制器。
无线电手机可以包括此引向器和具有存储器的处理器装置,用于通过在客户机与服务器之间通信来执行手机的功能。客户机、服务器和引向器均是实体并且具体地是同一基本类别的特殊形式的目标,其中一些实体可以在手机内,而其他实体可以在辅助设备内。
该无线电手机也可以包括:耦合到处理器装置的接口,用于耦合到辅助设备并与之通信以增强手机的功能;和路由选择装置,耦合到处理器装置,并且安排为通过允许在手机中生成代理实体用于与此手机中的实体进行事务处理、在此辅助设备中生成代理实体用于与此辅助设备中的实体进行事务处理并且通过利用接口在此手机与辅助设备之间通信而在手机中的实体与辅助设备中的实体之间提供通信。此接口可以包括无线电收发信机。
可将该手机中的路由选择装置安排为将手机内的每个实体与任务相关并利用一个或多个任务内事务处理和在需要时利用任务间通信在始发任务中的始发实体与目的任务中的目的实体之间提供通信,每个事务处理涉及与同一任务相关的两个实体,在需要时,所述路由选择装置安排为通过在始发与目的任务相同时允许始发实体与目的实体的事务处理并且在始发与目的任务不同时允许在始发任务中生成代理实体用于与始发实体进行事务处理、在目的任务中生成代理实体用于与目的实体进行事务处理而且通过利用接口在始发与目的任务之间通信来在始发实体与目的实体之间提供通信。
可将该客户机安排为利用识别业务的符号地址请求此业务。将该路由选择装置则安排为从此符号地址中确定在手机或始发任务内是否提供此业务。此业务可以由用作此客户机的服务器的引向器来提供。
为了更好理解本发明和理解本发明如何进行实施,现在将仅利用示例描述附图,其中:
图1与2表示无线电手机和辅助设备;
图3表示手机与辅助设备之间的电话机特性的划分;
图4表示连接层;
图5a与5b表示符号路由选择表;
图6示意地表示手机与辅助设备内的任务;
图7表示应用程序目标与服务器目标;
图8表示任务间消息传送;
图9表示代理目标;
图10a与10b表示任务间消息传送;
图11a表示利用引向器的消息的路由选择;
图11b表示消息的重新格式化;
图12表示引向器和引向的服务器目标;和
图13a与13b表示单个任务内的消息路由选择。
图1与2表示手持便携式无线电通信设备,下面称为终端或无线电手机2。终端2足够小以致于能手持并且大小最好为能装入夹克上衣的口袋内。此终端利用无线电波与其他终端或设备通信。
终端2具有用户接口,此接口包括用于输入的具有键24a的键盘24与麦克风20和用于输出的扬声器18与显示器14。键盘24与显示器14的大小必定受终端2的大小的限制。终端2由控制器4进行控制并且利用电池26来供电。控制器4从麦克风20与键盘24中接收信号并提供信号给显示器14与扬声器18,终端2具有接口34和无线电收发信机3,此接口和无线电收发信机用于在终端2的外部通信。接口34通过总线32连接到控制器。此接口可以包括用于无线电或红外通信的收发信机和/或用于直接电连接的端口。无线电收发信机3是连接到天线28与控制器4的射频收发信机,它安排为通过射频接口30通信。此无线电收发信机3包括用于调制从控制器4接收的信号的调制器8和用于将调制信号提供给天线28的发射机6。此无线电收发信机3也包括接收机12,此接收机处理在天线28上接收到的信号并将这些信号提供给解调器10,此解调器10给控制器4提供解调的信号。终端2具有通过总线与控制器4连接的RAM存储器16。此终端也具有连接到控制器4的SIM存储器22,提供允许终端2用作移动电话机的信息。在用作移动电话机时,移动终端2通过天线28发射与接收射频信号。
终端2通过接口34连接到辅助设备40的接口42。接口34与接口42之间的连接36可以通过许多方式来实现。例如,能使用无线电波。一个合适的无线电通信协议是“WAP结构版本1998年4月30日”中所述的无线应用协议(WAP),这要求接口34包括WAP堆栈和无线电收发信机并且要求接口42同样包括WAP堆栈和无线电收发信机。另一合适的协议是其内容引入在此作为参考的共同待审的英国专利申请号9820859.8中所述的蓝牙协议,此协议要求接口34与接口42包括低功率RF收发信机。
虽然在图1与2中示出单个辅助设备40,但终端2能同时与多个这样的辅助设备进行连接。虽然分开示出收发信机4/天线28与接口34,但这些设备可以集成在一起。
利用控制器4与存储器16的组合来提供终端2的基本功能。辅助设备40可以通过总线32与接口34由控制器4接入并因而增强终端2的功能。
终端2具有许多基本能力,包括涉及其无线电通信才干的系统能力(不管其涉及WAP、Bluetooth、GSM、AMPS还是其他通信协议)和允许终端提供数据库、个人组织器、字处理器与网络浏览器的特性的其他能力。这些基本能力以相干方式集成在一起以提供终端的特性。
电话机的基本能力在逻辑组中构造为资源。通过“服务器”接入每个资源。服务器封装资源以提供用于接入此资源的接口。“应用程序”通过服务器接入资源并且将这些资源与逻辑链接在一起以提供终端的特性。这些应用程序与资源通过连接层(CL)进行连接。
图3表示用作电话机的终端2的功能的划分,此电话机示意地具有:呼叫服务器50,封装电话机的能力以发出与接收电话呼叫;SMS服务器52,封装发出与接收短消息业务(SMS)消息的电话能力;和电话簿服务器#254,封装将名称与电话号码相关的数据库。此电话机具有能用于查找由电话簿服务器#254提供服务的电话簿数据库内的名称的名称查找应用程序56和能用于通过呼叫服务器50发出呼叫的快速拨号应用程序58。辅助设备40具有封装将电话号码与名称相关的数据库的电话簿服务器#162和用于生成与编辑文本消息的文本消息应用程序64。服务器50、52与54和电话机内的应用程序56与58互相连接并通过连接层70连接到服务器62和辅助设备中的应用程序64。连接层70利用接口34与42和连接36在终端2与辅助设备40之间提供通信。在辅助设备40通过连接层连接到此电话机时,文本消息应用程序64可以通过电话机来利用并用于接入此SMS服务器52,另外,名称查找应用程序56可以通过辅助设备40中的电话簿服务器#162接入辅助设备中的电话薄。
终端2中的控制器4一般是利用代码控制的微处理器。在终端内可能具有需要由控制器并行完成的许多同时功能。然而,此控制器可能一次只能完成一块代码并且将不得不指派任务给这些功能。此上下文中的任务指派表示控制器以循环方式分配其处理资源。即,它在指定顺序的一序列任务之中的每个任务上花费短的时间周期并随后重复此顺序。任务因此进行时分多路复用但在逻辑上是不同的。结果,在几个序列任务的处理过程中,完成执行功能所需的任务。使用任务允许平衡控制器上的处理负载。
应用程序是控制器4上运行的代码块。此应用程序在存储器中定义为目标。在终端2中使用存储器16。此目标在存储器中具有允许寻址它的目标地址并且是连接层(CL)基本类别的特殊形式。此应用程序使用一个或多个服务器的业务来生成特性并且能提供这些特性给用户。
服务器利用标准接口封装资源,这是存储在存储器中的目标。在终端2中使用存储器16。此目标在存储器中具有允许寻址它的目标地址并且是连接层(CL)基本类别的特殊形式。每个服务器通过控制资源或其他服务器来提供业务,这提供标准接口给资源,只能通过连接层70接入此资源。
应用程序使用表示要求的业务的符号资源地址而不利用服务器的目标地址来接入服务器。
在图4中更详细地示出连接层70。此连接层是通信管理器(CM)80与信息协议82的组合。单个通信管理器控制每个任务。CM 80利用涉及此消息的始发目标与此消息的目的目标的事务处理在任务内的目标之间发送消息(任务内消息)。消息协议82控制任务之间消息(任务间消息)的路由选择。此任务间通信可以采用诸如WAPBluetooth的许多通信形式之中任何一种通信形式或至另一设备或至另一任务的总线。
每个通信管理器具有符号路由选择表。此符号路由选择表包含用于每个目标(每个应用程序与服务器)的表目,并且通信管理器80互连以定义其任务,即本地任务。应用程序不具有符号地址并且每个应用程序目标地址与缺省的符号地址相关。连接到通信管理器80的每个服务器具有与识别利用它封装的资源提供的业务的符号地址相关的其目标地址。在图5a中表示出图3中用于电话机2的符号路由选择表的一个示例,假定所有的应用程序与服务器都在同一任务内。在图5b中示出图3中用于辅助设备40的符号路由选择表的一个示例,假定所有的应用程序与服务器都在同一任务内。为简洁起见,图3中所使用的标号示意地用作目标地址。
通信管理器80能使用符号路由选择表来从利用应用程序提供的符号地址中识别与那个符号地址相关的服务器是否在此本地任务内并且提供此相关目标地址给此应用程序。如果应用程序所请求的业务不在本地任务内,则通信管理器80将控制传送到消息协议82。此消息协议82将此请求从原始通信管理器发送给相连到合适服务器的通信管理器。任何合适的协议可以用于发送这些任务外部消息。任务之间的通信是异步的。
该通信管理器对任务内消息进行排序。它处理诸如需要在其本地任务之外和从其本地任务之外接收的那些任务外部消息。此通信管理器一次处理一个消息并且此通信管理器最好在服务于接收的任务外部消息之前清除任务内消息。
连接层70将资源的物理位置隐藏在标准接口后面。CL提供一种间接消息路由选择机构,此机构允许应用程序通过发送请求消息使用符号寻址来接入合适的服务器和它封装的资源。CL允许服务器通过发送应答消息将接入的结果返回给合适的应用程序。应用程序能接入资源而不知道或关心在哪里实施此资源或控制此资源的服务器。此资源因此可能在终端2或辅助设备40内。此应用程序只需知道资源的符号地址和用于与连接层接口以便能接入和使用此资源的协议。
图6表示前面根据图1与2所述的终端2、连接36和辅助设备40。此图示意地表示是辅助设备的任务901与902和终端的任务903、904与905如何通过连接层70互相连接。逻辑上,可以认为任务包括利用通信管理器链接的应用程序与服务器。自身在任务内的CM使用符号路由选择表定义它控制的任务内的目标(即,应用程序与服务器)。此CM和任务中的目标存储在存储器的“本地”部分中。指针在此本地存储器内可以用于指向同一任务内的目标。指针应不用于从一个任务指向另一任务,这是因为这可能在任务之间引起冲突,并且应在据此理解术语“指针”的使用。
消息协议82互连每个通信管理器80。图6表示不同任务90i的独立性,利用虚线表示任务边界,并且这些任务边界不重叠。每个任务90i具有与消息协议82进行双向通信的相关通信管理器80i。此任务也包括许多目标100。这些目标可以是应用程序102或服务器104。这些服务器封装资源106。
任务内的目标不能直接与另一目标通信,它只能与此任务的通信管理器80通信。通信管理器80有效地从其请求的业务/资源中去耦这些应用程序。此应用程序只需向通信管理器80请求所需的业务,此通信管理器80随后接入所需资源。此资源可能在与此应用程序相同的任务内或可能在同一设备或不同设备内的另一任务内但通过消息协议82链接到原始任务。目的服务器在它自己的任务内从通信管理器80接收请求并应答那个通信管理器80,通信管理器80保证为此应答选择路由返回至正确的应用程序。
图7表示通信管理器80中面向目标的封装。下面称为链路层(CL)类别的基本或抽象类别110具有三个部分:名称112、属性114和功能116。抽象CL类别具有两种特殊形式120与130。特殊形式120代表应用程序目标102。特殊形式120具有名称122、属性124(空)和功能126。特殊形式130代表服务器目标并具有名称132、属性134(空)和功能136。特殊形式120与130具有单个功能126,即RECVMESSAGE(接收消息)功能。特殊形式本身不具有属性。
抽象类别的特殊形式使用抽象CL类别110的属性114和功能116。抽象类别110包括目标地址与符号资源地址作为属性。抽象CL类别110的功能包括SENDREQUEST(发送请求)功能和SENDRESPONSE(发送应答)功能。抽象CL类别110的所有目标因此共享相同属性114与功能118。应用程序目标102还具有RECVMESSAGE功能126。服务器目标104还具有RECVMESSAGE功能136。目标只能调用同一任务的另一目标中的功能(与之进行事务处理)。
第一目标(应用程序或服务器)能请求第二目标(服务器)封装的资源的业务,这通过发送消息给此另一服务器并从中接收应答消息来实现。对于同一任务内的第一与第二目标,CM80中的事务处理如下。如果第二目标不在本地任务内,则CM 80不同地操作。
在图8中示出任务内通信的处理。通信管理器80在应用程序102与封装应答106的服务器104之间协调通信。此应用程序与服务器在同一任务90内。此应用程序希望接入业务,它知道它要求的业务和此业务的符号地址,但它不知道提供此业务的服务器的目标地址。此应用程序给通信管理器80提供符号地址并作为应答接收指向合适的服务器的指针*SERV。此通信管理器使用其符号路由选择表来执行此功能。
此应用程序具有目标地址APP,并且指向此应用程序的指针表示为*APP。此服务器具有目标地址SERV,并且指向服务器目标的指针表示为*SERV。此应用程序通过利用变元*APP、*SERV和*MSG调用功能SENDREQUEST(发送请求)来给此服务器发送消息MSG,其中*MSG是指向消息MSG的指针。此功能将指向始发第一目标的指针(即,第一目标的地址)、指向第二目标的指针(即,第二目标的地址)和指向定义所要求业务的消息正文的指针用作其变元,此通信管理器对此消息进行排序并随后通过调用服务器中的功能RECVMESSAGE将此消息向前传送给此服务器,此RECVMESSAGE功能具有其变元*APP、*SERV和*MSG。此RECVMESSAGE功能将指向第一始发目标的指针(即,第一目标的地址)、指向第二目的目标的指针(即,第二目标地址)和指向消息正文的指针作为其变元。此服务器接收此消息,并处理此消息以接入资源106,此服务器随后朝向此应用程序发送应答消息(RMSG),这通过调用应用程序目标102中的功能SENDRESPONSE(发送应答)来实现。此功能具有变元*SERV、*APP和指向应答消息RMSG的指针*RMSG。通信处理器80将此消息放置在其内部队列上。然后通过调用应用程序目标中的功能RECVMESSAGE将应答消息RMSG发送给此应用程序。RECVMESSAGE功能具有*SERV、*APP和*RMSG作为其变元。因而,此应用程序接收此应答消息。
因此将明白:第一目标通过发送消息利用通信管理器80与第二目标62通信。这些消息是涉及一个或多个事务处理的特殊类型的消息。通过从中始发此消息的目标调用此消息所指向(与之进行事务处理)的目标中的功能来启动任务内消息。此功能包括指向始发目标的指针、指向目的目标的指针和指向消息正文的指针。此消息、第一目标和第二目标都在由CM 80分配给单个本地任务的本地存储空间内。以这种方式,任务内的消息传送与其他任务中的消息传送完全隔离。然而,在应用程序请求接入的服务器或其他服务器不在与那个应用程序相同的本地任务中时,出现问题。目的目标不在同一本地任务中,此问题通过在与始发任务相同的本地任务内生成代理目标并且在与目的目标相同的本地任务中生成代理目标来解决。始发任务中的代理目标将始发目标视为目的目标并与此始发目标进行事务处理。目的任务中的代理目标将目的目标视为始发目标并与此目的目标进行事务处理。
代理目标封装用于在任务之间发送消息的机构。结果,第一任务中的第一目标通过与第一任务中的代理目标进行事务处理能将消息发送给第二任务中的第二目标。此后此代理目标通过消息协议82管理从第一任务至第二任务的通信。
图9表示包括代表连接层(CL)代理的特殊形式140的通信管理器80中的面向目标的封装。此特殊形式140代表代理目标108。特殊形式140具有名称142、属性144(空)和功能146。此特殊形式140具有两个功能:SEND REQUEST功能和SEND RESPONSE功能。调用CL代理目标中的SEND REQUEST功能和SEND RESPONSE功能的效果不同于调用应用程序或服务器目标中的SEND REQUEST或SENDRESPONSE时引起的效果。此代理目标代表在另一任务中执行的目标,此目标从来不是消息的最后目的地而是任务之间的接口。
在图10a与10b中示出任务内通信的处理。包括始发任务的通信管理器80、目的任务的通信管理器80和内部链接消息协议82的连接层协调始发任务中的应用程序102与目的任务中封装资源106的服务器104之间的通信。此应用程序102希望接入业务。与以前在任务内通信中一样,此应用程序将所需资源的符号地址提供给始发任务的通信管理器80。通信管理器80不能在其路由选择表中找到相关的目标地址,这是因为符号地址与另一任务中提供的业务相关,因此知道所需业务在它控制的任务的外部。通信管理器生成代理服务器并将指向代理服务器目标的指针*P-SERV返回给此应用程序102。始发任务中的通信管理器80也在其资源路由选择表中生成临时表目,将接收的符号资源地址与生成的代理服务器的目标地址P-SERV相关。将此临时表目标记为代理。应用程序102在接收到指向代理服务器的指针时调用此代理服务器中的SENDREQUEST功能。SENDREQUEST功能具有指向应用程序102的指针*APP、指向代理服务器的指针*P-SERV和指向正在发送的消息正文的指针*MSG作为其变元。通信管理器80通过接入连接层70中的消息协议82来应答此代理服务器中SENDREQUEST的调用。此消息协议82将消息越过任务边界从始发任务传送到目的任务。发送的任务之外消息包括始发应用程序102的地址APP、与指针*P-SERV相关的符号资源地址和正在发送的消息的地址。
目的任务中的通信管理器80接收越过任务边界发送的消息。从其中包含的符号资源地址中,它认识到:所要求的业务在它控制的任务内。
通信管理器80因此生成具有地址P-OBJ的代理目标109。通信管理器80接入其符号路由选择表以获得与此符号资源地址相关的目标地址SERV。通信管理器80随后在越过任务边界在此消息中接收的应用程序地址APP与生成的代理目标109的地址之间进行相关。此相关最好使代理目标的地址与地址APP相同。然后,通信管理器80分配包含消息MSG并利用指向它自己任务的指针*MSG来指向的存储器的部分。
之后,通信管理器80调用服务器104中的RECVMESSAGE功能。RECVMESSAGE功能具有指向代理目标109的指针*P-OBJ、指向服务器104的指针*SERV和指向现在在目的任务内的消息正文的指针*MSG作为其变元。结果,RECVMESSAGE功能的变元只是目的任务内的指针。此事务处理不越过任务边界。此服务器接收MSG并处理之以接入资源106,它随后将应答消息(RMSG)发回给此请求的始发地。此应答消息通过调用代理目标109中的功能SENDRESPONSE来发送。此功能具有*SERV、*P-OBJ和指向此应答消息正文的指针*RMSG作为变元。代理目标中的功能SENDRESPONSE不言明地表示通过调用此功能发送的消息预定用于另一任务。通信管理器80随后利用信息协议82越过任务边界将应答消息从其任务回传给始发任务。此通信管理器将其符号路由选择表用于利用符号资源地址代替服务器104的地址(SERV),并且它利用它以前生成的代理目标109的地址与应用程序102的地址之间的相关性来越过任务边界在此消息中发送此符号地址、应用程序地址APP和应答消息RMSG的地址。通信管理器80随后释放代理目标109,除去代理目标地址与始发应用程序地址APP之间的相关性并重新分配保持此消息MSG的存储器部分。
始发任务18中的通信管理器通过消息协议82从目的任务中接收任务之外消息。通信管理器80将保持此消息RMSG的存储器16的部分分配给它控制的任务,它利用它以前生成的包含在从目的任务中接收的消息中的符号资源地址与代理服务器108的地址之间的相关性来调用应用程序102中的SENDRESPONSE功能。此功能将指向代理服务器的指针*P-SERV、指向应用程序102的*APP和指向现在为同一任务的一部分的应答消息的*RMSG作为其变元。将认识到,功能SENDRESPONSE的所有变元都是始发任务中的指针。此事务处理不越过任务边界。因而,此应用程序102接收应答消息RMSG。通信管理器80随后释放代理服务器108,从其符号路由选择表中除去代理服务器的地址与符号资源地址的相关性并重新分配保持消息RMSG的存储器16的部分。
服务器给任何应用程序提供一组业务并能位于终端2内部或外部。连接层将来自应用程序的请求传送给合适的服务器。某一资源的缺省服务器是连接层传送那个资源的所有请求给之的服务器。
终端与辅助设备的组合或终端自身可以包含两个或多个类似资源,即,提供利用同一符号资源地址识别的同一业务的资源。每个类似资源都具有服务器。这表示将具有重复服务器。例如,可能具有重复电话薄,一个电话簿在终端2中,而另一个电话簿在辅助设备中。这两个电话薄都具有其自己的服务器。作为另一示例,用作多模式电话机的终端2将具有用于发出与接收呼叫的两种类型的资源和重复服务器,每个资源使用一个服务器。第一重复服务器接入第一蜂窝/无绳系统,而第二重复服务器接入第二蜂窝/无绳系统。此蜂窝系统可以是用于GSM、AMPS、UMTS等的系统。此无绳系统可以是DECT。此电话机可以具有蜂窝/蜂窝双模式或蜂窝/无绳双模式。
在具有重复服务器时,引向器则必须在重复服务器之间进行更高级的控制与仲裁。引向器在任何一个时间定义哪个重复服务器是缺省服务器。此引向器可以是重复服务器之一或者可以是完全不同的实体。
引向器是路由器,为请求选择路由至正确的资源并将来自资源的任何应答返回给发出此请求的始发应用程序。
图11a表示如何为消息选择路由,示出两个独立的应用程序APP1152与APP2 154。每个应用程序能请求接入重复服务器SERV1 156与SERV2 158的资源。将请求消息160发送给仲裁哪个重复服务器是缺省服务器的引向器150。引向器150将此请求消息162发送给在此示例中为SERV1 156的缺省重复服务器。服务器SERV1 156执行其功能并将应答消息164返回给引向器150,引向器150在应答中提供应答消息166给应用程序APP1 152。引向器150接收用于控制仲裁处理的输入信号151。因而根据信号151、信号160或这两个信号的组合,此引向器选择服务器SERV1与SERV2之中哪个服务器来与消息162一样为此消息选择路由。
消息160、162、164与166之中的每一个消息识别特定消息的始发地与目的地,消息160识别始发应用程序APP1 152为始发地并识别引向器150为目的地。
此引向器修改消息160以生成消息162。重新格式化此消息,以使此消息162将缺省服务器识别为目的地,不改变始发地的识别。
缺省服务器知道这是引向的服务器并且它只能从此引向器中接收消息。由服务器SERV1 156生成的应答消息164识别缺省服务器SERV1为始发地并识别引向器150为目的地。此应答消息还识别始发应用程序。这可以利用始发应用程序APP1 152的地址附加到消息164的末尾的格式来实现。
引向器修改从缺省重复服务器SERV1 156接收的应答消息164,重新格式化此消息。除去消息164的附加项,将引向器150识别为始发地并将始发应用程序APP1 152识别为目的地,将修改的应答消息作为消息166发送给始发应用程序。
图11b是表示每个不同的消息160、162、164与166的定义的始发地与定义的目的地以及消息是否具有附加的附加地址的表。
图12表示如何能利用连接层的面向目标的封装来实施引向器150和引向服务器156与158,前面已参照图7描述了基本类别110和实际的服务器特殊形式130。引向器是形成为基本类别110的特殊形式170的目标,它具有其属性,即,所有引向服务器的表,它具有功能SENDRESPONSE、SENDRESPONSE与RECVMESSAGE作为其功能174。
引向服务器是形成为自身为基本类别110的特殊形式的基本类别180的特殊形式190的目标。特殊形式180或其特殊形式190都不具有属性。特殊形式180具有SENDREQUEST与SENDRESPONSE的功能。代表引向服务器的特殊形式190具有RECVMESSAGE的功能。
图13a与13b表示如何通过一个目标调用另一目标的功能来传送消息160、162、164与166。应用程序APP1通过发送识别要求的业务的符号资源地址给此应用程序的任务的通信管理器来请求业务。假定此引向器在同一任务中,则此通信管理器通过接入其符号路由选择表来返回指向引向器目标的指针*DIR。否则,如前所述将生成代理。
应用程序APP1调用引向器目标中的功能SENDREQUEST。此功能具有指向此消息的始发地(即,应用程序APP1)的指针*APP、指向此消息的目的地(即,此引向器)的*DIR和指向发送的消息正文的*MSG作为其变元。
引向器执行其仲裁处理并确定它控制的哪个重复服务器是缺省服务器,在此实例中缺省服务器为服务器SERV1。引向器调用目标SERV1中的SENDREQUEST功能。此功能具有指向消息的有效始发地(即,应用程序APP1)的*APP、指向此消息的目的地(即,服务器SERV1)的*SERV1和指向发送的消息正文的*MSG作为其变元。在通信管理器中对此消息进行排序,此通信管理器随后调用目标SERV1中的功能RECEIVEMESSAGE(接收消息)。此功能具有指向此消息的有效始发地(即,应用程序APP)的*APP、指向此消息的目的地(即,服务器SERV1)的*SERV1和指向发送的消息正文的*MSG作为其变元。
服务器SERV1执行其功能并通过调用引向器目标中的功能SENDRESPONSE(参见图13b)来朝向始发应用程序发回应答消息。此功能具有指向此消息的始发地(即,服务器SERV1)的*SERV1、指向此消息的目的地(即,此引向器)的*DIR和指向正在发送的应答消息正文的*RMSG作为其变元。此应答消息包括指向始发应用程序的指针*APP。此应答消息在通信管理器中进行排序,此通信管理器随后调用引向器目标中的功能RECEIVEMESSAGE(接收消息)。此功能具有指向此消息的始发地(即,服务器SERV1)的*SERV1、指向此消息的目的地(即,此引向器)的*DIR和指向此应答消息正文的*RMSG作为其变元。
此引向器处理此消息,它调用应用程序目标APP1中的功能SENDRESPONSE。此功能具有指向此消息的始发地(即,此引向器)的*DIR、指向此消息的目的地(即,应用程序APP1)的*APP1和指向此应答消息正文的*RMSG作为其变元。此消息由通信管理器进行排序,此通信管理器随后调用应用程序APP1中的功能RECEIVEMESSAGE。此功能具有指向此消息的始发地(即,此引向器)的*DIR、指向此消息的目的地(即,应用程序APP1)的*APP1和指向此应答消息正文的*RMSG作为其变元。
前面的说明描述本发明的优选实施例和本发明的优选应用程序。应认识到,可以利用其他实施例与应用程序而不背离要求保护的本发明的范畴。