CN110249594B - 通信装置和通信方法 - Google Patents
通信装置和通信方法 Download PDFInfo
- Publication number
- CN110249594B CN110249594B CN201880010398.3A CN201880010398A CN110249594B CN 110249594 B CN110249594 B CN 110249594B CN 201880010398 A CN201880010398 A CN 201880010398A CN 110249594 B CN110249594 B CN 110249594B
- Authority
- CN
- China
- Prior art keywords
- function
- instance
- procedure
- execution
- function instance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
通信装置具备分组接收部、分组发送部和对处理顺序进行控制的处理顺序控制部,处理顺序控制部具备:分组保持部;包括过程组和变量组的每个功能文件的功能实例;保持实例信息的实例信息管理部;保持将功能实例标识符、过程标识符和过程的返回值与属于接下来执行的功能实例的过程相对应的执行顺序信息的执行顺序信息管理部;以及基于执行顺序信息和实例信息来调用过程并且对通信分组执行处理并根据返回值执行下一处理的功能执行部,所述实例信息包括识别功能实例的功能实例标识符、识别属于功能实例的过程的过程标识符、和过程的存储器地址。
Description
技术领域
本发明涉及通信装置和通信方法。
本申请基于在2017年2月8日向日本申请的日本特愿2017-021382号要求优先权,将其内容引用于此。
背景技术
近年,实现服务导入的迅速化的NFV(Network Function Virtualization;网络功能虚拟化)受到注目。NFV的概念是通过软件安装以往通过专用的硬件而安装的通信装置的功能(以下,称为“NW功能”(网络功能))并且使该NW功能在通用的硬件上的操作系统中工作这样的概念(例如,参照非专利文献1)。利用NFV,能够仅通过软件的变更来进行NW功能的追加或变更,因此,缩短了从服务的开发到导入和展开的时间。
此外,近年,作为根据用户加入的服务来组合基于NFV的概念而软件安装的多个NW功能的技术,讨论了服务功能链(以下,称为“SFC”)(例如,参照非专利文献2)。在SFC中,用户的通信分组(以下,也称为“分组”)依照与加入服务对应的转送顺序经由各NW功能(参照图24)。用户的分组在经由的各NW功能中进行报头(header)改写、丢弃、信息赋予等处理。例如,在图24中,分组首先被转送到NW功能1并被赋予标签,接下来被转送到NW功能2并改写该标签。在SFC中,能够通过变更分组经由的NW功能的转送路径来变更构成服务的NW功能的组合。
现有技术文献
非专利文献
非专利文献1:ETSI, “Network Functions Virtualisation - IntroductoryWhite Paper”, 2012;
非专利文献2:北田裕之他, “将来ネットワークに向けたサービスファンクションチェイニング技術”, NTT技術ジャーナル, 26(5), pp. 10-13, 2014.5。
发明内容
发明要解决的课题
然而,在SFC中,存在产生由于NW功能间的分组转送造成的通信的延迟的情况。关于上述的延迟的产生,一边参照图25一边进行说明。各NW功能在虚拟机或容器(container)等虚拟环境内进行工作。由于不同的NW功能在不同的软件过程内工作,所以在从某个NW功能(NW功能1)向其他的NW功能(NW功能2)转送分组的情况下,首先,NW功能1将分组写入到在软件过程间共有的共有存储器中,接下来,NW功能2进行从该共有存储器的分组的读出。此时,由于分组的存储器拷贝,存在产生通信的延迟的情况。
相对于此,还考虑了不是在NW功能间授受分组的实体而是在NW功能间授受向分组存在的存储器地址的参照信息、由此缩短写入处理和读入处理所花费的时间的方法。然而,在该方法中,在分组的写入时和读出时,也需要在NW功能间的排他控制。
特别地,在为将许多小规模的NW功能组合那样的处理的情况下,预想与NW功能的执行中的通信的延迟相比由NW功能间的分组转送造成的通信的延迟的比例更高。进而,在通用硬件的计算资源很少的情况下,通过多个软件过程在一个CPU(Central ProcessingUnit;中央运算处理装置)上进行工作,从而频繁地发生上下文切换,由此,担忧通信的延迟的进一步的增大。
本发明是鉴于这样的事情而完成的,其目的在于提供特别是在将在单一的通用硬件中工作的多个NW功能组合的情况下减少通信的延迟的通信装置。
用于解决课题的方案
本发明的第1方式是,一种通信装置,其中,具备:分组接收部,从外部的装置接收通信分组;分组发送部,将对所述通信分组执行规定的处理后的通信分组向所述外部的装置或其他的外部的装置发送;以及处理顺序控制部,控制所述通信分组的处理顺序,所述处理顺序控制部具备:分组保持部,保持所述通信分组;功能实例,通过按包括通信功能中的处理所需要的过程组和变量组的每个功能文件而分别变换为执行形式并在存储器中展开来生成;实例信息管理部,保持实例信息,所述实例信息包括识别所述功能实例的功能实例标识符、识别属于所述功能实例的过程的过程标识符、和示出属于所述功能实例的所述过程在所述存储器中的位置的存储器地址;执行顺序信息管理部,保持将所述功能实例标识符、所述过程标识符和所述过程的返回值与属于接下来执行的功能实例的过程相对应后的、执行顺序信息;以及功能执行部,基于所述执行顺序信息和所述实例信息来调用属于所述功能实例的所述过程,对在所述分组保持部中保持的所述通信分组执行基于属于所述功能实例的所述过程的处理,根据基于属于所述功能实例的所述过程的所述处理的所述返回值来执行基于属于所述接下来执行的所述功能实例的所述过程的处理。
在上述的通信装置中,所述处理顺序控制部具备:外部协作部,从外部协作装置取得所述通信功能的追加、所述通信功能的变更或所述通信功能的删除的请求;执行顺序变更部,根据来自所述外部协作装置的执行顺序变更请求来对所述执行顺序信息管理部请求执行顺序变更;以及实例注册·删除部,根据所述通信功能的追加、所述通信功能的变更或所述通信功能的删除的所述请求,在所述存储器中展开所述功能实例或从所述存储器删除所述功能实例,所述功能实例具有:开始过程,进行所述功能实例的初始化;以及结束过程,进行结束处理也可。
在上述的通信装置中,所述功能实例也可以具备通知受理过程,在所述通知受理过程中根据来自属于其他的功能实例的过程的信息取得请求和功能执行的请求来进行处理。
在上述的通信装置中,所述处理顺序控制部也可以具备:通知过程,根据来自属于所述功能实例的所述过程的请求,对其他的功能实例的信息取得和功能执行进行中介(mediate);以及协作信息保持部,根据来自所述通知过程的请求,输出与所述其他的功能实例的通知受理过程有关的信息。
在上述的通信装置中,所述执行顺序信息管理部保持将示出所述功能执行部执行的所述过程的位置的存储器地址作为节点的、基于执行顺序的树构造的信息,所述功能执行部基于在调用所述过程时从所述执行顺序信息管理部取得的所述树构造的信息,根据所述返回值来转变所述树构造的所述节点,由此,执行所述过程也可。
本发明的第2方式是,一种通信方法,所述方法是利用计算机的通信方法,其中,所述通信方法具有:分组接收步骤,分组接收部从外部的装置接收通信分组;分组发送步骤,分组发送部将对所述通信分组执行规定的处理后的通信分组向所述外部的装置或其他的外部的装置发送;处理顺序控制步骤,处理顺序控制部控制所述通信分组的处理顺序;分组保持步骤,分组保持部保持所述通信分组;功能实例生成步骤,功能执行部通过按包括通信功能中的处理所需要的过程组和变量组的每个功能文件而分别变换为执行形式并在存储器中展开来生成功能实例;实例信息管理步骤,实例信息管理部保持实例信息,所述实例信息包括识别所述功能实例的功能实例标识符、识别属于所述功能实例的过程的过程标识符、和示出属于所述功能实例的所述过程在所述存储器中的位置的存储器地址;以及执行顺序信息管理步骤,执行顺序信息管理部保持将所述功能实例标识符、所述过程标识符和所述过程的返回值与属于接下来执行的功能实例的过程相对应后的、执行顺序信息,在所述处理顺序控制步骤中,所述功能执行部基于所述执行顺序信息和所述实例信息来调用属于所述功能实例的所述过程,对在所述分组保持部中保持的所述通信分组执行基于属于所述功能实例的所述过程的处理,根据基于属于所述功能实例的所述过程的所述处理的所述返回值来执行基于属于所述接下来执行的所述功能实例的所述过程的处理。
本发明的第3方式是,一种通信装置,其中,具备:过程,属于通信中的处理的功能实例;以及处理顺序控制部,根据属于前次处理的功能实例的过程和属于所述前次处理的功能实例的所述过程的返回值来调用属于应执行的功能实例的过程。
在上述本发明的第3方式的通信装置中,在没有所述返回值的情况下,所述处理顺序控制部调用属于所述前次处理的功能实例的所述过程所对应的过程、规定的过程或进行规定的处理的过程来作为属于所述应执行的功能实例的所述过程也可。
本发明的第4方式是,一种通信方法,所述方式是利用计算机的通信方法,其中,所述通信方法具有处理顺序控制步骤,在所述处理顺序控制步骤中根据属于前次处理的、通信中的处理的功能实例的过程和属于所述前次处理的功能实例的所述过程的返回值来调用属于应执行的功能实例的过程。
发明效果
根据本发明,能够抑制在装置内发生的延迟。
附图说明
图1是示出本发明的各实施方式的通信装置的功能结构的概略的功能框图。
图2是示出通过本发明的第1实施方式的通信装置将多个功能组合执行时的功能部间的协作处理的一个例子的图。
图3是示出本发明的第1实施方式的通信装置的功能执行部的工作的流程图。
图4是示出本发明的第1实施方式的通信装置的执行顺序信息管理部所保持的执行顺序规则表的一个例子的图。
图5是示出本发明的第1实施方式的通信装置的实例(instance)信息管理部所保持的功能实例信息表的一个例子的图。
图6是示出本发明的第1实施方式的变形例1的通信装置的功能执行部的工作的流程图。
图7是示出本发明的第1实施方式的变形例1的通信装置的执行顺序信息管理部所保持的执行顺序规则表的一个例子的图。
图8是示出本发明的第1实施方式的变形例2的通信装置的功能执行部的工作的流程图。
图9是示出本发明的第1实施方式的变形例2的通信装置的执行顺序信息管理部所保持的执行顺序规则表的一个例子的图。
图10是示出本发明的第2实施方式的通信装置的功能追加时的工作的一个例子的图。
图11是示出本发明的第2实施方式的通信装置的功能删除时的工作的一个例子的图。
图12是示出本发明的第2实施方式的通信装置的新功能实例所生成的实例信息的一个例子的图。
图13是示出由本发明的第2实施方式的通信装置进行的执行顺序变更方法的一个例子的图。
图14是示出本发明的第3实施方式的通信装置的功能间协作的工作的一个例子的图。
图15是示出本发明的第3实施方式的通信装置的协作信息保持部所保持的协作类别表的一个例子的图。
图16是示出本发明的第3实施方式的变形例的通信装置的功能间协作的工作的一个例子的图。
图17是示出本发明的第3实施方式的变形例的通信装置的公开变量信息保持部所保持的公开变量表的一个例子的图。
图18是示出本发明的第4实施方式的通信装置的执行顺序信息管理部所保持的执行顺序规则表的一个例子的图。
图19是示出本发明的第4实施方式的变形例的通信装置的执行顺序信息管理部所保持的执行顺序规则表的一个例子的图。
图20是示出本发明的第5实施方式的通信装置被流水线(pipeline)化的情况下的功能结构的概略的功能框图。
图21A是示出本发明的第5实施方式的通信装置被流水线化的情况下的执行顺序信息管理部所保持的功能执行部用的执行顺序规则表的一个例子的图。
图21B是示出本发明的第5实施方式的通信装置被流水线化的情况下的执行顺序信息管理部所保持的第二功能执行部用的执行顺序规则表的一个例子的图。
图22A是示出图1所示的通信装置的变形例的功能结构的功能框图。
图22B是示出图1所示的通信装置的变形例的功能结构的功能框图。
图22C是示出图1所示的通信装置的变形例的功能结构的功能框图。
图23是示出图1所示的通信装置的变形例中的处理顺序控制部的工作的流程图。
图24是示出以往的服务功能链(service function chaining)(SFC)的概要的概略图。
图25是对在以往的服务功能链(SFC)中产生的延迟进行说明的图。
具体实施方式
以下,对本发明的各实施方式进行说明。
本发明的各实施方式的通信装置不是在NW功能间进行分组转送而是通过在不移动分组的数据本身的情况下依照确定的顺序来执行各NW功能来实现多个NW功能的组合。由此,在本发明的各实施方式的通信装置中,不发生在NW功能间的分组转送,因此,能够抑制在通信装置内产生的通信的延迟。此外,本发明的各实施方式的通信装置针对将许多小规模的功能组合的情况下的通信的延迟的抑制更有效。
此外,根据在以下说明的、本发明的各实施方式的通信装置,由于依照确定的顺序依次执行各NW功能,所以,多个NW功能不会同时进行分组的读入处理或写入处理等,因此,能够使需要排他控制的处理的数量变少。进而,根据本发明的各实施方式,能够安装通信装置,以使执行各NW功能的工作主体为单一的软件过程(software process),因此,与利用多个软件过程分别安装各NW功能的情况相比,能够抑制由上下文切换(context switch)造成的通信的延迟的产生。
本发明的各实施方式的通信装置能够通过将多个NW功能组合而使单一的通用硬件作为虚拟的通信装置进行工作。再有,在此所说的虚拟的通信装置是指可以为核心网装置,也可以为接入网装置。本发明的各实施方式的通信装置通过将例如MPCP(Multi-PointControl Protocol,多点控制协议)功能或DBA(Dynamic Bandwidth Allocation,动态带宽分配)功能安装为功能实例,从而还能够使通用硬件作为接入网的虚拟OLT(Optical LineTerminal;光终端装置)进行工作。
[通信装置的功能结构]
以下,一边参照附图一边对本发明的各实施方式的通信装置的功能结构进行说明。
图1是示出本发明的各实施方式的通信装置的功能结构的概略的功能框图。如图示那样,通信装置1包括功能文件保持部11、功能实例12、处理顺序控制部13、分组接收部14和分组发送部15来构成。
功能文件保持部11保持记述了NW功能的处理的功能文件。功能文件是记载有在NW功能的处理中需要的过程(procedure)组和变量组的、源代码或者编译(compile)后的执行文件等。
功能实例12是在使功能文件为执行形式后按组合的每个NW功能在存储器(未图示)中展开的过程组和变量组。
分组接收部14从外部的装置接收该外部的装置所取得的分组(通信分组)。处理顺序控制部13从分组接收部14取得该分组,依照确定的顺序调用功能实例12的过程,对取得的分组执行与NW功能有关的处理。关于取得的分组,在指定的处理结束后丢弃或者经由分组发送部15向外部的装置(或其他的外部的装置)送出。
处理顺序控制部13包括执行顺序信息管理部131、实例信息管理部132、功能执行部133和分组保持部134来构成。
执行顺序信息管理部131保持示出与NW功能有关的处理的执行顺序的、执行顺序规则表来作为执行顺序信息。此外,执行顺序信息管理部131在存在执行顺序的变更的请求的情况下进行执行顺序的规则的变更或者在存在特定的NW功能的删除的请求的情况下进行功能的删除。
实例信息管理部132保持在存储器中展开的功能实例的标识符(以下,称为“实例ID”)、对属于各功能实例12的过程进行识别的标识符(以下,称为“过程ID”)和展开了上述的过程的存储器的地址来作为实例信息。此外,在存在新的功能实例12的追加请求、功能删除的请求或功能替换的请求的情况下,实例信息管理部132进行保持的信息的追加或删除。再有,实例信息也可以不仅包括与展开了过程的存储器的地址有关的信息而且包括与展开了功能实例的存储器的地址有关的信息。
功能执行部133基于上述的实例信息而调用属于功能实例12的过程,对在分组保持部134中保持的分组进行处理。进而,功能执行部133依照上述的执行顺序规则表所示出的执行顺序,根据过程的返回值而调用下一过程。再有,也可以去掉过程的返回值。此外,规定在返回值为“0”的情况下表示分组的丢弃而在返回值比“0”小的情况下表示异常结束。
<第1实施方式>
以下,一边参照附图一边对本发明的第1实施方式的通信装置1a进行说明。本实施方式的通信装置1a组合多个NW功能来进行转送。
以下,一边参照图2至图5一边说明通过通信装置1a实现VLAN-ID变换功能和过滤功能这2个功能的组合的例子,所述VLAN-ID变换功能进行分组的VLAN-ID(Virtual LocalArea Network-Identifier,虚拟局域网-标识符)的变换,所述过滤功能丢弃特定的IP(Internet Protocol,互联网协议)地址的分组。
图2是示出通过本发明的第1实施方式的通信装置1a将多个功能组合执行时的功能部间的协作处理的一个例子的图。图3是示出本发明的第1实施方式的通信装置1a的功能执行部133的工作的流程图。图4是示出本发明的第1实施方式的通信装置1a的执行顺序信息管理部131所保持的执行顺序规则表的一个例子的图。图5是示出本发明的第1实施方式的通信装置1a的实例信息管理部132所保持的功能实例信息表的一个例子的图。
如图2所图示那样,首先,功能执行部133从执行顺序信息管理部131取得执行顺序规则表。执行顺序规则表如图4所示那样是将对当前执行的功能实例12进行识别的“执行实例ID”、对当前执行的功能实例12的过程进行识别的“执行过程ID”、执行处理的“返回值”、对与该返回值对应的接下来应执行的功能实例12进行识别的“下一执行实例ID”、以及对与该返回值对应的接下来应执行的功能实例12的过程进行识别的“下一执行过程ID”相对应后的表。
再有,虽然在图4中未图示,但是,在接下来应执行的功能实例12和过程不管返回值都相同那样的情况下,设定“*”来作为执行顺序规则表中的“返回值”的项目的值也可。此外,虽然在图4中未图示,但是,为了没有返回值的情况而设定“NULL(空字符)”来作为执行顺序规则表中的“返回值”的项目的值也可。
此外,不管执行的功能实例12的类别,在返回值为“0”的情况下,功能执行部133都丢弃在分组保持部134中保持的分组。
此外,关于最初应执行的功能实例12和过程,在执行顺序规则表的第1行中设定“0”(在图4中,图示为“START(0)”)来作为“执行实例ID”的项目的值、设定“0”(在图4中,图示为“START(0)”)来作为“执行过程ID”的项目的值、以及设定“0”(在图4中,图示为“START(0)”)来作为“返回值”的项目的值。再有,执行顺序规则表的第1行中的“返回值”的项目的值不是“0”而是“*”也可。
接着,功能执行部133通过分别将“0”代入到表示执行实例ID的变量即变量CUR_INST_ID、表示过程ID的变量即变量CUR_METD_ID、和表示该过程的返回值的变量即变量CUR_RET中来初始化(图3、步骤S001),所述执行实例ID识别该功能执行部133当前执行的功能实例12,所述过程ID识别功能执行部133当前执行的功能实例12的过程。
接着,功能执行部133读入执行顺序规则表(图3、步骤S002),从该执行顺序规则表的第1行起检索在各行中记述的“执行实例ID”、“执行过程ID”和“返回值”的项目的值分别与变量CUR_INST_ID、变量CUR_METD_ID和变量CUR_RET一致的行(图3、步骤S003)。
在图4所示的执行顺序规则表中,第1行的“执行实例ID”、“执行过程ID”和“返回值”的项目的值分别为“0”(START(0)),与在上述中分别代入“0”后的变量CUR_INST_ID、变量CUR_METD_ID和变量CUR_RET一致。由此,功能执行部133将一致的行(即,图4所示的执行顺序规则表的第1行)的“下一执行实例ID”的项目的值即“1”和“下一执行过程ID”的项目的值即“1”分别代入到变量NXT_INST_ID和变量NXT_METD_ID中(图3、步骤S004)。由此,变量NXT_INST_ID=1,变量NXT_METD_ID=1。
接着,功能执行部133从实例信息管理部132取得示出接下来执行的功能实例12和过程的、功能实例信息表。功能实例信息表如图5所示那样是将示出功能实例12的名称的“功能实例名”、示出属于该功能实例12的过程的名称的“过程名”、识别该功能实例12的“实例ID”、识别属于该功能实例12的过程的“过程ID”、以及示出在存储器上展开了该过程的位置(地址)的“存储器地址”相对应后的表。再有,在功能实例信息表中,过程的存储器地址的项目也可以为空栏。此外,虽然在图5中未图示,但是,功能实例信息表也可以不仅包括过程的存储器地址,而且包括功能实例的存储器地址。
功能执行部133读入功能实例信息表(图3、步骤S005),从该功能实例信息表的第1行起检索在各行中记述的“实例ID”和“过程ID”分别与变量NXT_INST_ID和变量NXT_METD_ID一致的行(图3、步骤S006)。
在图5所示的功能实例信息表中,在第2行中记述的功能实例12(接收功能实例)的“实例ID”和“过程ID”的项目的值分别为“1”,与在上述中分别代入“1”后的变量NXT_INST_ID和变量NXT_METD_ID一致。
功能执行部133取得一致的行(即,在第2行中记述的功能实例12(接收功能实例))的“存储器地址”的项目的值即“0x000000”。然后,功能执行部133基于取得的存储器地址,参照存储器来调用过程,执行处理(图3、步骤S007)。
此外,功能执行部133在过程调用时向接收功能实例12a输出在分组保持部134中保持的分组中的存储器地址。
此外,在接收功能实例12a的接收过程中,从分组接收部14取出分组,将分组转移到分组保持部134中。在进行正常的分组转送的情况下,在接收功能实例12a的接收过程中,结束处理,向功能执行部133输出表示正常结束的值(比“0”大的整数)来作为返回值。再有,在分组接收部14中不存在分组的情况下,在接收功能实例12a的接收过程中,向功能执行部133输出“-1”来作为返回值。此外,表示正常结束的值(比“0”大的整数”)优选为在执行顺序规则表中记载的返回值。这不限于接收功能实例12a,对于其他的功能实例也是同样的。
功能执行部133当从执行的功能实例12的过程接收返回值时将该返回值代入到变量CUR_RET中(图3、步骤S008)。
在返回值为“0”的情况下(图3、步骤S009·否),功能执行部133丢弃分组保持部134所保持的分组(图3、步骤S010),控制返回到变量初始化的阶段(图3、步骤S001)。在返回值为“0”以外的情况下(图3、步骤S009·是),功能执行部133再次读入执行顺序规则表(图3、步骤S002),检索示出接下来执行的功能实例和过程的信息(图3、步骤S003)。
例如,如图4的执行顺序规则表的第2行所示那样,在“执行实例ID”的项目的值为“1”以及“执行过程ID”的项目的值为“1”(即,如图5所示那样为接收功能实例12a的接收过程)且返回值为“1”时,功能执行部133取得“下一执行实例ID”的项目的值“2”和“下一执行过程ID”的项目的值“1”。功能执行部133基于这些值,执行在图5所示的功能实例信息表中“实例ID”的项目的值为“2”且“过程ID”的项目的值为“1”的、VLAN-ID变换功能实例12b的VLAN-ID变换过程。
功能执行部133基于功能实例信息表而取得上述的VLAN-ID变换过程的存储器地址即“0x000100”,基于该存储器地址,参照存储器执行VLAN-ID变换过程。
再有,VLAN-ID变换功能实例12b保持例如将变换前的VLAN-ID和变换后的VLAN-ID相对应后的列表,根据分组保持部134所保持的分组的VLAN-ID来进行该VLAN-ID的改写。当VLAN-ID的改写结束时,VLAN-ID变换过程结束,VLAN-ID变换功能实例12b输出返回值。然后,功能执行部133从执行的VLAN-ID变换功能实例12b取得返回值,将该返回值代入到变量CUR_RET中。再有,此时,通过根据VLAN-ID的值来使返回值变化,从而还能够使之后的处理变化。
例如,如图4的执行顺序规则表的第3行所示那样,在“执行实例ID”的项目的值为“2”以及“执行过程ID”的项目的值为“1”(即,如图5所示那样为VLAN-ID变换功能实例12b的VLAN-ID变换过程)且返回值为“1”时,功能执行部133取得“下一执行实例ID”的项目的值“4”和“下一执行过程ID”的项目的值“1”。功能执行部133基于这些值,执行在图5所示的功能实例信息表中“实例ID”的项目的值为“4”且“过程ID”的项目的值为“1”的、发送功能实例12d的发送过程。
在发送功能实例12d的发送过程中,将分组保持部134所保持的、执行了规定的处理后的分组转送到分组发送部15中。由此,向外部的装置送出该分组。
再有,如图4的执行顺序规则表的第6行所示那样,针对“执行实例ID”的项目的值为“4”以及“执行过程ID”的项目的值为“1”的、发送功能实例12d的发送过程,分别设定“0”(在图4中图示为“START(0)”)来作为“下一执行实例ID”的项目的值以及“下一执行过程ID”的项目的值。
此外,如图5的功能实例信息表的第1行所示那样,预先设定“实例ID”和“过程ID”的项目的值分别为“0”且过程的“存储器地址”的项目为空栏(“-”)的、实际上未执行的哑功能实例(dummy function instance)和哑过程(dummy procedure)。由此,在下次执行顺序规则表的检索时检索图4所示的执行顺序规则表的第1行,再次开始分组的接收处理。
另一方面,例如,如图4的执行顺序规则表的第4行所示那样,在“执行实例ID”的项目的值为“2”以及“执行过程ID”的项目的值为“1”(即,如图5所示那样为VLAN-ID变换功能实例12b的VLAN-ID变换过程)且返回值为“2”时,功能执行部133取得“下一执行实例ID”的项目的值“3”和“下一执行过程ID”的项目的值“1”。功能执行部133基于这些值,执行在图5所示的功能实例信息表中“实例ID”的项目的值为“3”且“过程ID”的项目的值为“1”的、过滤功能实例12c的过滤过程。
过滤功能实例12c例如保持过滤对象的IP地址的列表。在过滤功能实例12c的过滤过程中,取得分组保持部134所保持的分组的IP地址,在该IP地址被包括在上述的列表中的情况下,向功能执行部133输出“0”来作为返回值,功能执行部133丢弃分组保持部134所保持的分组。在返回值为“1”的情况下,功能执行部133检索执行顺序规则表,执行“实例ID”的项目的值为“4”且“过程ID”的项目的值为“1”的、发送功能实例12d的发送过程。
如上述那样,符合接着发送过程而应执行的功能实例和过程(实际上由于是哑功能实例和哑过程所以不执行)的、“实例ID”和“过程ID”的项目的值为“0”,因此,再次开始分组的接收处理。
以上,如说明的那样,本发明的第1实施方式的通信装置1a能够基于由执行顺序规则表定义的执行顺序来依次执行属于NW功能的各种过程,根据执行的各过程的返回值来决定接下来执行的过程下去。在这样的依次的处理中,不需要在现有技术中进行那样的在NW功能间的分组的授受用的处理。由此,本发明的第1实施方式的通信装置1a能够抑制由于在NW功能间的分组的授受造成的延迟的产生。此外,在本发明的第1实施方式的通信装置1a中,依次执行各功能,因此,不需要针对分组的排他控制,能够例如谋求装置的简易化。
<第1实施方式的变形例1>
以下,对本发明的第1实施方式的变形例1的通信装置进行说明。本变形例的通信装置的结构基本上与第1实施方式的通信装置1a的结构同样,并且,功能执行部133的工作和执行顺序规则表与第1实施方式不同。图6是示出本变形例的通信装置1a的功能执行部133的工作的流程图。图7是示出本变形例的通信装置1a的执行顺序信息管理部131所保持的执行顺序规则表的一个例子的图。
如图2所图示那样,首先,功能执行部133从执行顺序信息管理部131取得执行顺序规则表。
再有,在接下来应执行的功能实例12和过程不管返回值都相同那样的情况下,设定“*”来作为执行顺序规则表中的“返回值”的项目的值也可。此外,虽然在图7中未图示,但是,为了没有返回值的情况而设定“NULL(空字符)”来作为执行顺序规则表中的“返回值”的项目的值也可。
此外,不管执行的功能实例12的类别,在返回值为“0”的情况下,功能执行部133都丢弃在分组保持部134中保持的分组。
此外,关于最初应执行的功能实例12和过程,在执行顺序规则表的第1行中设定“0”(在图7中,图示为“START(0)”)来作为“执行实例ID”的项目的值、设定“0”(在图7中,图示为“START(0)”)来作为“执行过程ID”的项目的值、以及设定“*”来作为“返回值”的项目的值。
接着,功能执行部133通过分别将“0”代入到变量CUR_INST_ID、变量CUR_METD_ID和变量CUR_RET中来初始化(图6、步骤S001)。
接着,功能执行部133读入执行顺序规则表(图6、步骤S002),从该执行顺序规则表的第1行起检索在各行中记述的“执行实例ID”、“执行过程ID”和“返回值”的项目的值分别与变量CUR_INST_ID、变量CUR_METD_ID和变量CUR_RET一致的行(图6、步骤S003)。
在图7所示的执行顺序规则表中,第1行的“执行实例ID”、“执行过程ID”和“返回值”的项目的值分别为“0”(START(0))、“0”(START(0))、“*”,与在上述中分别代入“0”后的变量CUR_INST_ID、变量CUR_METD_ID和变量CUR_RET一致。由此,功能执行部133将一致的行(即,图7所示的执行顺序规则表的第1行)的“下一执行实例ID”的项目的值即“1”和“下一执行过程ID”的项目的值即“1”分别代入到变量NXT_INST_ID和变量NXT_METD_ID中(图6、步骤S004)。由此,变量NXT_INST_ID=1,变量NXT_METD_ID=1。
接着,功能执行部133从实例信息管理部132取得示出接下来执行的功能实例12和过程的、功能实例信息表。
功能执行部133读入功能实例信息表(图6、步骤S005),从该功能实例信息表的第1行起检索在各行中记述的“实例ID”和“过程ID”分别与变量NXT_INST_ID和变量NXT_METD_ID一致的行(图6、步骤S006)。
在图5所示的功能实例信息表中,在第2行中记述的功能实例12(接收功能实例)的“实例ID”和“过程ID”的项目的值分别为“1”,与在上述中分别代入“1”后的变量NXT_INST_ID和变量NXT_METD_ID一致。
功能执行部133取得一致的行(即,在第2行中记述的功能实例12(接收功能实例))的“存储器地址”的项目的值即“0x000000”。然后,功能执行部133基于取得的存储器地址,参照存储器来调用过程,执行处理(图6、步骤S007)。
此外,功能执行部133在过程调用时向接收功能实例12a输出在分组保持部134中保持的分组中的存储器地址。
此外,在接收功能实例12a的接收过程中,从分组接收部14取出分组,将分组转移到分组保持部134中。在进行正常的分组转送的情况下,在接收功能实例12a的接收过程中,结束处理,向功能执行部133输出表示正常结束的值(比“0”大的值)来作为返回值。再有,在分组接收部14中不存在分组的情况下,在接收功能实例12a的接收过程中,向功能执行部133输出“-1”来作为返回值。此外,表示正常结束的值(比“0”大的值”)优选为在执行顺序规则表中记载的返回值。这不限于接收功能实例12a,对于其他的功能实例也是同样的。
接下来,功能执行部133分别将变量NXT_INST_ID、变量NXT_METD_ID的值代入到变量CUR_INST_ID、变量CUR_METD_ID中(图6、步骤S051)。
功能执行部133当从执行的功能实例12的过程接收返回值时将该返回值代入到变量CUR_RET中(图6、步骤S052)。再有,在没有返回值的情况下,功能执行部133将“NULL(空字符)”代入到变量CUR_RET中。
在返回值为“0”的情况下(图6、步骤S053·是),功能执行部133丢弃分组保持部134所保持的分组(图6、步骤S010),控制返回到变量初始化的阶段(图6、步骤S001)。在返回值为“0”以外的情况下(图6、步骤S053·否),功能执行部133再次读入执行顺序规则表(图6、步骤S002),检索示出接下来执行的功能实例和过程的信息(图6、步骤S003)。
例如,如图7的执行顺序规则表的第2行所示那样,在“执行实例ID”的项目的值为“1”以及“执行过程ID”的项目的值为“1”(即,如图5所示那样为接收功能实例12a的接收过程)且返回值为“1”时,功能执行部133取得“下一执行实例ID”的项目的值“2”和“下一执行过程ID”的项目的值“1”。功能执行部133基于这些值,执行在图5所示的功能实例信息表中“实例ID”的项目的值为“2”且“过程ID”的项目的值为“1”的、VLAN-ID变换功能实例12b的VLAN-ID变换过程。
功能执行部133基于功能实例信息表而取得上述的VLAN-ID变换过程的存储器地址即“0x000100”,基于该存储器地址,参照存储器执行VLAN-ID变换过程。
再有,VLAN-ID变换功能实例12b保持例如将变换前的VLAN-ID和变换后的VLAN-ID相对应后的列表,根据分组保持部134所保持的分组的VLAN-ID来进行该VLAN-ID的改写。当VLAN-ID的改写结束时,VLAN-ID变换过程结束,VLAN-ID变换功能实例12b输出返回值。然后,功能执行部133从执行的VLAN-ID变换功能实例12b取得返回值,将该返回值代入到变量CUR_RET中。再有,此时,通过根据VLAN-ID的值来使返回值变化,从而还能够使之后的处理变化。
例如,如图7的执行顺序规则表的第3行所示那样,在“执行实例ID”的项目的值为“2”以及“执行过程ID”的项目的值为“1”(即,如图5所示那样为VLAN-ID变换功能实例12b的VLAN-ID变换过程)且返回值为“1”时,功能执行部133取得“下一执行实例ID”的项目的值“4”和“下一执行过程ID”的项目的值“1”。功能执行部133基于这些值,执行在图5所示的功能实例信息表中“实例ID”的项目的值为“4”且“过程ID”的项目的值为“1”的、发送功能实例12d的发送过程。
在发送功能实例12d的发送过程中,将分组保持部134所保持的、执行了规定的处理后的分组转送到分组发送部15中。由此,向外部的装置送出该分组。
再有,如图7的执行顺序规则表的第6行所示那样,针对“执行实例ID”的项目的值为“4”以及“执行过程ID”的项目的值为“1”的、发送功能实例12d的发送过程,分别设定“0”(在图7中图示为“START(0)”)来作为“下一执行实例ID”的项目的值以及“下一执行过程ID”的项目的值。
此外,如图5的功能实例信息表的第1行所示那样,预先设定“实例ID”和“过程ID”的项目的值分别为“0”且过程的“存储器地址”的项目为空栏(“-”)的、实际上未执行的哑功能实例和哑过程。由此,在下次执行顺序规则表的检索时检索图7所示的执行顺序规则表的第1行,再次开始分组的接收处理。
另一方面,例如,如图7的执行顺序规则表的第4行所示那样,在“执行实例ID”的项目的值为“2”以及“执行过程ID”的项目的值为“1”(即,如图5所示那样为VLAN-ID变换功能实例12b的VLAN-ID变换过程)且返回值为“2”时,功能执行部133取得“下一执行实例ID”的项目的值“3”和“下一执行过程ID”的项目的值“1”。功能执行部133基于这些值,执行在图5所示的功能实例信息表中“实例ID”的项目的值为“3”且“过程ID”的项目的值为“1”的、过滤功能实例12c的过滤过程。
过滤功能实例12c例如保持过滤对象的IP地址的列表。在过滤功能实例12c的过滤过程中,取得分组保持部134所保持的分组的IP地址,在该IP地址被包括在上述的列表中的情况下,向功能执行部133输出“0”来作为返回值,功能执行部133丢弃分组保持部134所保持的分组。在返回值为“1”的情况下,功能执行部133检索执行顺序规则表,执行“实例ID”的项目的值为“4”且“过程ID”的项目的值为“1”的、发送功能实例12d的发送过程。
如上述那样,符合接着发送过程而应执行的功能实例和过程(实际上由于是哑功能实例和哑过程所以不执行)的、“实例ID”和“过程ID”的项目的值为“0”,因此,再次开始分组的接收处理。
再有,如图7的第7行所示那样,如果在执行顺序规则表中记载了返回值比“0”小的值,则也能够记载异常结束的情况下的异常处理的执行。
此外,在上述的说明中,记述了通过执行接收过程而将分组从分组接收部14转送到分组保持部134中的例子。可是,分组接收部14也可以一接收到分组就自主地向分组保持部134转送接收到的分组。在该情况下,处理顺序控制部13不是总是执行图6所示的顺序,而是分组一到达分组保持部134中就通过中断等开始顺序的工作。根据该方法,与前述的方法相比期待提高功率效率等。
<第1实施方式的变形例2>
以下,对本发明的第1实施方式的变形例2的通信装置进行说明。在上述的第1实施方式中,执行顺序规则表的各行基本上具有返回值,能够根据返回值进行不同的处理顺序下的执行。可是,也能够去掉返回值而依顺序进行决定的处理。
本变形例的通信装置的结构基本上与第1实施方式的通信装置1a的结构同样,并且,执行顺序规则表的结构和功能执行部133的工作与第1实施方式不同。
图8是示出本变形例的通信装置1a的功能执行部133的工作的流程图。图9是示出本变形例的通信装置1a的执行顺序信息管理部131所保持的执行顺序规则表的一个例子的图。
如图9所示那样,本变形例的执行顺序规则表是将识别当前执行的功能实例12的“执行实例ID”和识别当前执行的功能实例12的过程的“执行过程ID”相对应后的表。
在以下,对本变形例的通信装置1a的工作进行说明。首先,功能执行部133将“1”代入到在执行顺序规则表中表示执行当前过程的行数的变量CUR_LINE中,初始化变量CUR_LINE(图8、步骤S101)。接下来,功能执行部133判断变量CUR_LINE是否为执行顺序规则表的行数(在图9的例子中为“4”)以下(图8、步骤S102)。在此,由于变量CUR_LINE为“1”且为执行顺序规则表的行数以下(图8、步骤S102·是),所以,功能执行部133使处理前进到步骤S103。
接着,功能执行部133取得在执行顺序规则表中变量CUR_LINE所示的行的信息(图8、步骤S103),将在第1行中记载的执行实例ID、执行过程ID分别代入到变量NXT_INST_ID、NXT_METD_ID中(图8、步骤S104)。接着,功能执行部133与第1实施方式同样地读入功能实例信息表(图8、步骤S105)。接下来,功能执行部133在功能实例信息表中检索实例ID、过程ID分别与变量NXT_INST_ID、变量NXT_METD_ID一致的行(图8、步骤S106)。
接下来,功能执行部133基于一致的行的存储器地址的值,参照存储器来调用过程,执行处理(图8、步骤S107)。当该处理结束而功能执行部133从执行了处理的过程接收返回值时,功能执行部133将该返回值代入到变量CUR_RET中(图8、步骤S108)。再有,在没有返回值的情况下,功能执行部133将表示空白的“NULL”代入到变量CUR_RET中。
接下来,功能执行部133判断变量CUR_RET是否为比“0”大的值或“NULL”(图8、步骤S109)。在变量CUR_RET为比“0”大的值的情况或为“NULL”的情况下(图8、步骤S109·是),功能执行部133看作正常地执行了过程,转移到下一过程的处理。之后,功能执行部133使变量CUR_LINE递增一(图8、步骤S110)。由此,变量CUR_LINE为“2”。
接下来,功能执行部133与上述同样地判断变量CUR_LINE是否为执行顺序规则表的行数以下(图8、步骤S102)。在该情况下,变量CUR_LINE为“2”且为执行顺序规则表的行数以下,因此,功能执行部133使处理前进到步骤S103,与上述同样地,调用在执行顺序规则表的第2行中记载的执行实例ID和执行过程ID所对应的功能实例的过程。
在调用的过程的返回值均为比“0”大的值或“NULL”的情况下,对执行顺序规则表的全部行进行以上的工作。然后,在执行顺序规则表的第4行所对应的过程的处理结束后,在步骤S110中使变量CUR_LINE递增一而变为“5”。在该情况下,变量CUR_LINE比执行顺序规则表的行数大(图8、步骤S102·否),因此,功能执行部133看作应执行的过程结束,将控制返回到步骤S101而将变量CUR_LINE初始化为“1”,之后,从执行顺序的最初开始执行。
另一方面,在任一个过程的工作中判断为变量CUR_RET不为比“0”大的值且也不为“NULL”的情况下(图8、步骤S109·否),功能执行部133判断变量CUR_RET是否为“0”(图8、步骤S111)。在变量CUR_RET不为“0”的情况下(图8、步骤S111·否),根据步骤S109中的判断的结果,变量CUR_RET不比“0”大,因此,变量CUR_RET比“0”小。在该情况下,功能执行部133看作发生了异常,转移到用于应对异常的处理(异常处理)(图8、步骤S112)。另一方面,在变量CUR_RET为“0”的情况下(图8、步骤S111·是),功能执行部133丢弃分组保持部134所保持的分组(图8、步骤S113),将控制返回到步骤S101而将变量CUR_LINE初始化为“1”,之后,从执行顺序的最初开始执行。
本变形例不进行与返回值对应的处理的变更的另一面不需要执行顺序规则表的检索处理,因此,能够期待高速的处理。
<第2实施方式>
以下,对本发明的第2实施方式的通信装置1b进行说明。本实施方式的通信装置1b为相对于上述的第1实施方式的通信装置1a加上了进行新的NW功能的追加、现有功能的删除、现有功能和新功能的替换的功能后的装置。
在以下,一边参照附图一边对本实施方式的通信装置1b的工作进行说明。图10是示出本发明的第2实施方式的通信装置1b的功能追加时的工作的一个例子的图。图11是示出本发明的第2实施方式的通信装置1b的功能删除时的工作的一个例子的图。
如图10和图11所图示那样,第2实施方式的通信装置1b相对于上述的第1实施方式的通信装置1a在处理顺序控制部13中还具备外部协作部135、实例注册·删除部136和执行顺序变更部137的方面不同。再有,在图10和图11中,省略了功能执行部133、分组保持部134、接收功能文件、VLAN-ID功能文件、过滤功能文件、发送功能文件、接收功能实例12a、VLAN-ID变换功能实例12b、过滤功能实例12c、发送功能实例12d的图示。
外部协作部135从外部协作装置取得通信功能的追加、通信功能的变更或通信功能的删除的请求。
如图10所图示那样,在例如通信装置1b的管理者等追加新的功能实例的情况下,基于上述的通信功能的追加的请求,针对外部协作部135设定作为新功能的功能文件的新功能文件以及示出新功能的实例ID和执行顺序的变更方法的信息。
外部协作部135对实例注册·删除部136输出示出功能追加的请求的信息、新功能文件和实例ID,所述实例ID识别新生成的新功能的功能实例12即新功能实例12e。实例注册·删除部136将取得的新功能文件保存在功能文件保持部11中,并且进行向存储器的展开。再有,全部功能实例具有开始过程和结束过程。在存储器中展开新功能文件时,实例注册·删除部136取得上述的开始过程的存储器地址。
在进行了新功能文件向存储器的展开后,实例注册·删除部136基于取得的开始过程的存储器地址,执行新功能实例12e的开始过程,进行新功能实例12e的初始化。新功能实例12e在调用开始过程后取得自身的存储器地址、自身所保持的过程的过程ID和向各过程的存储器地址,生成实例信息。例如,图12是示出本发明的第2实施方式的通信装置1b的新功能实例12e所生成的实例信息的一个例子的图。
新功能实例12e向实例注册·删除部136输出所生成的实例信息。实例注册·删除部136将取得的实例信息与实例ID一起向实例信息管理部132输出。实例信息管理部132对保持的功能实例信息表记述取得的实例信息。
在实例信息管理部132中完成上述的实例信息的记述后,外部协作部135将执行顺序变更请求与示出由管理者等设定的执行顺序的变更方法的信息一起输出到执行顺序变更部137中。执行顺序变更部137基于取得的示出执行顺序的变更方法的信息,将变更请求输出到执行顺序信息管理部131所保持的执行顺序规则表中。如图13所示那样,在例如进行功能追加时,执行顺序变更部137请求对执行顺序信息管理部131的执行顺序规则表追加示出从新功能向现有功能的转变的规则(1)、追加示出向新功能的转变的规则(2)、最后进行不需要的规则行的删除(3)。
如图11所图示那样,在例如通信装置1b的管理者等删除功能实例12的情况下,对外部协作部135设定识别删除的功能实例12的实例ID、和示出执行顺序的变更方法的信息。外部协作部135首先对执行顺序变更部137输出示出执行顺序的变更方法的信息。
执行顺序变更部137基于取得的示出执行顺序的变更方法的信息,与新功能实例12e的追加时同样地更新执行顺序信息管理部131所保持的执行顺序规则表。在执行顺序信息管理部131中的执行顺序规则表的更新完成后,外部协作部135向实例注册·删除部136输出删除对象的功能实例的实例ID以及功能删除请求。实例注册·删除部136从实例信息管理部132取得删除对象的功能实例12的存储器地址和该功能实例12的结束过程的存储器地址。
之后,实例注册·删除部136调用删除对象的功能实例12的结束过程。在功能实例12的结束过程中,在进行了功能的结束所需要的处理(结束处理)后,向实例注册·删除部136输出删除请求的通知。实例注册·删除部136当从功能实例12接收删除请求的通知时,在删除了在存储器中展开的功能实例12后,向实例信息管理部132请求删除对象的功能实例12的信息的删除。实例信息管理部132当取得删除请求时删除在保持的功能实例信息表中删除对象的功能实例12的实例ID被相对应后的行。
不仅能够进行功能的追加·删除,还能够用新功能替换现有功能。例如在通信装置1b的管理者等将现有的功能实例替换为新的功能实例的情况下,对外部协作部135设定作为新功能的功能文件的新功能文件和替换对象的现有功能的实例ID。外部协作部135将功能替换请求的通知输出到实例注册·删除部136中。实例注册·删除部136进行上述的功能追加处理。此时,实例信息管理部132用新功能实例信息的存储器地址值覆盖功能实例信息表内的现有功能实例信息的存储器地址值的方面与功能追加时不同。此外,不进行执行顺序规则表的更新处理。在功能实例信息表的更新处理结束之后,实例注册·删除部136调用现有功能实例的结束过程,进行在存储器中展开的功能实例的删除。
以上,如说明的那样,本发明的第2实施方式的通信装置1b仅对变更对象的功能实例12、实例信息管理部132和执行顺序信息管理部131施加变更,不会对其他的现有功能施加变更。由此,本发明的第2实施方式的通信装置1b能够在不对现有功能的工作造成大的影响的情况下此外在不停止现有功能的工作的情况下进行新的NW功能的追加·删除。
<第3实施方式>
以下,对本发明的第3实施方式的通信装置1c进行说明。本实施方式的通信装置1c为相对于上述的第1实施方式的通信装置1a追加了能够进行在NW功能间的协作的结构后的装置。
在以下,一边参照附图一边对本实施方式的通信装置1c的工作进行说明。图14是示出本发明的第3实施方式的通信装置1c的功能间协作的工作的一个例子的图。
如图14所图示那样,第3实施方式的通信装置1c相对于上述的第1实施方式的通信装置1a还具备功能文件保持部11内的桥功能文件、具有通知受理过程的桥功能实例12f、以及处理顺序控制部13内的协作信息保持部138和通知过程的方面不同。再有,在图14中,省略了执行顺序信息管理部131、实例信息管理部132、功能执行部133、分组保持部134、接收功能文件、VLAN-ID变换功能文件、发送功能文件、接收功能实例12a、VLAN-ID变换功能实例12b、发送功能实例12d的图示。
如图14所图示那样,在本实施方式的通信装置1c中,各功能实例12经由处理顺序控制部13中的通知过程执行其他的功能实例12的通知受理过程。即,在各功能实例12的通知受理过程中,根据来自属于其他的功能实例12的过程的信息取得请求和功能执行的请求进行处理。由此,本实施方式的通信装置1c能够实现某个功能进行其他的功能的变量值的取得或设定等的功能间协作。
再有,在处理顺序控制部13的功能执行部133执行功能实例12的开始过程时,将通知过程的存储器地址作为自变量(argument)向功能实例12传递。再有,如在第2实施方式中叙述那样,全部功能实例具有开始过程和结束过程。此外,在功能实例12的开始过程结束时,假设通知受理过程的存储器地址通过被包括在成为返回值的实例信息之中而被向处理顺序控制部13传递。
以下,一边参照图14一边说明过滤功能实例12c从桥功能实例12f取得示出分组的接收数的接收数信息的情况。首先,在过滤功能实例12c的过滤过程的执行中,调用处理顺序控制部13的通知过程。此时,调用源的过滤功能实例12c向调用目的地的处理顺序控制部13的通知过程传递协作类别标识符(以下,称为“协作类别ID”)来作为自变量。调用的通知过程取得处理顺序控制部13的协作信息保持部138所保持的协作类别表。
图15是示出本发明的第3实施方式的通信装置1c的协作信息保持部138所保持的协作类别表的一个例子的图。如图示的那样,协作类别表是将示出协作类别的“协作类别ID”、“协作内容”、示出向调用对象的功能实例12传递的自变量的“自变量信息”、示出对调用对象的功能实例12进行识别的实例ID的“调用实例ID”、以及示出对调用对象的功能实例12的过程进行识别的过程ID的“调用过程ID”相对应后的表。
再有,“协作类别ID”不限于图15所示那样的连号的数字那样的形式,只要是能够唯一识别协作内容的形式,则也可以是任意的形式。
此外,在协作类别表中定义的、“协作类别ID”、“协作内容”和“自变量信息”的项目的值被事前公开,开发各功能实例12的开发者能够基于公开的信息来开发与其他的功能协作的功能实例12。
在通知过程中,将作为自变量传递的“协作类别ID”作为检索关键来检索协作类别表,取得与作为调用对象的功能实例12和该功能实例12的过程分别对应的“调用实例ID”和“调用过程ID”。
例如,过滤功能实例12c向处理顺序控制部13的通知过程传递“协作类别ID”的值即“1”。然后,在通知过程中,取得作为调用对象的功能实例12的桥功能实例12f所对应的“调用实例ID”的值即“5”、和桥功能实例12f的通知受理过程所对应的“调用过程ID”的值即“1”。然后,在处理顺序控制部13的通知过程中,基于上述的“调用实例ID”和“调用过程ID”的值,调用桥功能实例12f的通知受理过程。
假设桥功能实例12f对接收分组进行计数,保持示出计数出的结果(分组的接收数)的接收数信息。在桥功能实例12f的通知受理过程中,当从处理顺序控制部13的通知过程调用自身的通知受理过程时,读出上述的接收数信息,将该接收数信息作为返回值向通知过程输出。
在处理顺序控制部13的通知过程中,当取得接收数信息时,向作为调用源的过滤功能实例12c输出该接收数信息。通过这些处理,在过滤功能实例12c中,能够在不直接执行桥功能实例12f的过程的情况下取得接收分组的接收数信息。
再有,属于功能实例12的通知受理过程的数量不限于一个,也可以存在多个通知受理过程。
以下,对协作类别表的生成进行说明。例如能够在第2实施方式中说明的功能追加时进行协作类别表的生成。在像这样在功能追加时生成协作类别表的情况下,只要在处理顺序控制部13中设置在第2实施方式中说明的外部协作部135、实例注册·删除部136、执行顺序变更部137即可。在通信装置的管理者等向外部协作部135输出新功能文件时,传递功能文件和“功能实例ID”以及通知受理过程的“过程ID”、“协作类别ID”、“协作内容”和“自变量信息”。从外部协作部135接收到功能追加的请求的实例注册·删除部136在进行了执行顺序信息管理部131所保持的执行顺序规则表的更新后,向协作信息保持部138输出功能追加的新功能实例12e的“功能实例ID”、以及从外部协作部135取得的“过程ID”、“协作类别ID”、“协作内容”和“自变量信息”。然后,协作信息保持部138向协作类别表写入取得的信息。
再有,在为处理顺序控制部13具有通知受理过程那样的结构的情况下,也能够从功能实例12取得或设定处理顺序控制部13具有的、在各功能之间共同的信息。
<第3实施方式的变形例>
以下,对本发明的第3实施方式的变形例的通信装置1d进行说明。第3实施方式的变形例的通信装置1d与上述的第3实施方式的通信装置1c同样地为相对于上述的第1实施方式的通信装置1a追加了能够进行在NW功能间的协作的结构后的装置。
在以下,一边参照附图一边对本变形例的通信装置1d的工作进行说明。图16是示出本发明的第3实施方式的变形例的通信装置1d的功能间协作的工作的一个例子的图。
如图16所图示那样,第3实施方式的变形例的通信装置1d相对于上述的第1实施方式的通信装置1a除了追加了功能文件保持部11内的桥功能文件和桥功能实例12f之外还在处理顺序控制部13中具备公开变量信息保持部139、公开变量更新过程和公开变量取得过程的方面不同。再有,在图16中,省略了执行顺序信息管理部131、实例信息管理部132、功能执行部133、分组保持部134、接收功能文件、VLAN-ID变换功能文件、发送功能文件、接收功能实例12a、VLAN-ID变换功能实例12b和发送功能实例12d的图示。
在处理顺序控制部13的功能执行部133执行各功能实例12的开始过程时,将公开变量取得过程和公开变量更新过程的存储器地址作为自变量向功能实例12传递。再有,如在第2实施方式中叙述那样,全部功能实例具有开始过程和结束过程。
以下,与上述的第3实施方式的通信装置1c同样地,例示了过滤功能实例12c从桥功能实例12f取得示出分组的接收数的接收数信息的情况。
公开变量信息保持部139保持公开变量表。图17是示出本发明的第3实施方式的变形例的通信装置1d的公开变量信息保持部139所保持的公开变量表的一个例子的图。
如所图示那样,公开变量表是将对在通信装置1d中工作的功能实例12进行识别的“实例ID”、作为属于该功能实例12的变量的“变量ID”、说明该变量的内容的“变量说明”、作为变量的值的“变量值”、以及示出针对该变量许可的处理的“可能的处理”相对应后的表。再有,“变量ID”既可以为图17所示那样的字符串,也可以为数字等。
再有,在公开变量表中定义的、“变量ID”、“变量说明”和“可能的处理”的项目的值被事前公开,开发各功能实例12的开发者能够基于公开的信息来开发与其他的功能协作的功能实例12。
例如能够在上述的第2实施方式中说明的功能追加时进行公开变量表的生成。在像这样在功能追加时生成公开变量表的情况下,只要在处理顺序控制部13中设置在第2实施方式中说明的外部协作部135、实例注册·删除部136、执行顺序变更部137即可。在通信装置的管理者等向外部协作部135输出新功能文件时,输出功能文件和功能实例ID、以及定义了属于功能实例12的变量之中的变量组(公开变量)的“变量ID”、“变量说明”和“可能的处理”后的表,所述变量组(公开变量)能够根据其他的功能实例12仅进行参照或进行参照和更新双方。外部协作部135向公开变量信息保持部139输出上述的表。然后,公开变量信息保持部139向公开变量表写入取得的表所示出的信息。
各功能实例12在需要其他的功能实例12的信息的取得的情况下调用处理顺序控制部13的公开变量取得过程,取得了取得对象的变量值。此外,在各功能实例12需要向其他的功能实例12传递信息的情况或需要更新自身的功能实例12的变量和其他的功能实例12的变量的情况下,各功能实例12调用公开变量更新过程来传递信息或者变更可改写操作的变量值。
在图17所示的例子中,桥功能实例12f每当接收分组时将字符串“RX_COUNT”作为自变量调用公开变量更新过程,更新公开变量表的“RX_COUNT”的值。桥功能实例12f在取得桥功能的接收分组数的情况下将字符串“RX_COUNT”作为自变量调用公开变量取得过程,取得公开变量表的“RX_COUNT”的值。
如以上说明的那样,本发明的第3实施方式的变形例的通信装置1d每当各功能实例12更新自身的功能实例12的公开变量时调用处理顺序控制部13的公开变量更新过程。由此,本变形例的通信装置1d能够使通信装置的结构比第3实施方式的通信装置1c简单。
<第4实施方式>
以下,对本发明的第4实施方式进行说明。本实施方式的通信装置为相对于上述的第1实施方式的通信装置1a追加了实现高速的执行顺序规则检索的结构后的装置。
在本实施方式中,执行顺序信息管理部131所保持的执行顺序规则表被构筑为成为将向依照返回值和执行顺序而应执行的过程的存储器地址信息作为节点的树构造。图18是示出本发明的第4实施方式的通信装置1a的执行顺序信息管理部131所保持的执行顺序规则表的一个例子的图。
功能执行部133当执行处理(过程)时根据其返回值取得下一节点的存储器地址,执行在该下一节点中记述的过程。重复这些处理,由此,当相当于树构造中的父节点(parent node)的过程的执行完成时,应执行处理的对象向子节点移动。
根据本发明的第4实施方式的通信装置1a,不需要从实例信息管理部132取得接下来应执行的过程的存储器地址,因此,能够更高速地执行处理。但是,在通过功能的替换等变更某个功能实例的过程的存储器地址的情况下,不仅需要在实例信息管理部132所保持的功能实例信息表中进行变更,而且还需要在前述执行顺序规则表中进行变更。
<第4实施方式的变形例>
以下,对本发明的第4实施方式的变形例进行说明。第4实施方式的变形例的通信装置与上述的第4实施方式的通信装置同样地为相对于上述的第1实施方式的通信装置1a追加了实现高速的执行顺序规则检索的结构后的装置。
上述的第1实施方式的通信装置1a在从执行顺序信息管理部131取得的执行顺序规则表中每当功能实例12的过程结束时将该功能实例12的执行实例ID、执行过程ID和返回值作为检索关键进行检索,取得接下来应执行的功能实例12的下一执行实例ID和下一执行过程ID。
另一方面,如图19所示那样,按作为检索关键的执行实例ID、过程ID和返回值的每一个预先分离执行顺序规则表而再构成为成为树构造,由此,能够谋求检索的高速化。
如图19所示那样,在将执行实例ID、过程ID作为主关键的执行顺序规则表中,值(value)是下一检索关键向执行顺序规则表的排头规则的参照,在将返回值作为主关键的执行顺序规则表中,值是下一执行实例ID和下一执行过程ID。再有,也可以去掉将返回值作为主关键的执行顺序规则表中的“存储器地址”。对该“存储器地址”在后面进行叙述。
在进行检索时,首先,检索将执行实例ID作为主关键的执行顺序规则表(例如,图19的(a)),基于所取得的指针(pointer)来检索过程ID的执行顺序规则表(例如,图19的(b-1)或(b-2)),进而基于所取得的指针来检索返回值的执行顺序规则表(例如,图19的(c-1)或(c-2)),取得接下来应执行的功能实例12的实例ID和过程ID。
根据执行顺序规则表的树构造化,与单纯的线性检索的计算量O(n)相比,能够将计算量削减到O(log(n))。在本发明的各实施方式中,每当对分组进行处理时进行检索,因此,进行庞大的检索处理,计算量的削减效果被认为非常大。
对上述的返回值的执行顺序规则表进而赋予接下来应执行的过程的存储器地址也可。由此,能够在不参照实例信息管理部132所保持的功能实例信息表的情况下取得接下来应执行的过程的存储器地址。
此外,主关键不同的各个执行顺序规则表的规则顺序不限于图19所示的执行顺序规则表的规则顺序,也可以根据与规则匹配的频度而变更。由此,能够避免无用的检索而期待进一步的高速化。
<第5实施方式>
以下,对本发明的第5实施方式进行说明。本实施方式的通信装置1e为相对于上述的第1实施方式的通信装置1a追加了利用流水线处理来实现转送的高速化的结构后的装置。
在第1实施方式的通信装置1a中,单一的功能执行部133进行了针对一个分组的功能的执行。另一方面,通过用多个功能执行部进行功能的执行,从而能够进行流水线化,预料吞吐量(throughput)的提高。
图20是示出本发明的第5实施方式的通信装置1e被流水线化的情况下的功能结构的概略的功能框图。如图示那样,在本实施方式的通信装置1e中,通过具备2个功能执行部(功能执行部133和第二功能执行部133b)来进行流水线化。此外,不仅是功能执行部的数量而且还具备2个分组保持部(分组保持部134和第二分组保持部134b)的方面也与上述的第1实施方式的通信装置1a不同。此外,由于需要与功能执行部的数量相同数量的执行顺序规则表,所以,本实施方式的通信装置1e的执行顺序信息管理部131假设为能够管理多个执行顺序规则表的结构。
作为例子而说明与上述的第1实施方式的通信装置1a同样地实现进行分组的VLAN-ID的变换的VLAN-ID变换功能和丢弃特定的IP地址的分组的过滤功能这2个功能的组合的情况。
与上述的第1实施方式的通信装置1a同样地,功能执行部133在进行了分组的接收和VLAN-ID变换后,检索执行顺序信息管理部131所保持的、功能执行部133用的执行顺序规则表,取得接下来应执行的功能实例的实例ID和过程ID。
图21A和图21B是示出本发明的第5实施方式的通信装置1e被流水线化的情况下的执行顺序信息管理部131所保持的执行顺序规则表的一个例子的图。如图示那样,图21A是功能执行部133用的执行顺序规则表,图21B是第二功能执行部133b用的执行顺序规则表。
如图示那样,分别设定“99”(在图21A中,图示为“第二分组保持部(99)”)来作为示出接下来应执行的过程为向第二分组保持部134b的转送过程的、“下一执行实例ID”和“下一执行过程ID”的项目的值。再有,在功能实例信息表中也准备“实例ID”和“过程ID”为“99”的行,在该行中记述从分组保持部134取得分组且向第二分组保持部134b转送取得的分组的过程。
另一方面,第二功能执行部133b定期地进行用于确认在第二分组保持部134b中是否不存在分组的轮询。然后,第二功能执行部133b一确认分组的存在就检索执行顺序信息管理部131所保持的第二功能执行部133b用的执行顺序规则表,取得“执行实例ID”和“过程ID”。
在第二功能执行部133b用的执行顺序规则表中记述有过滤功能实例12c的过滤过程调用,因此,第二功能执行部133b调用过滤功能。在过滤功能的处理后,与上述的第1实施方式的通信装置1a同样地从分组发送部15发送分组。
本发明的第5实施方式的通信装置1e能够与过滤功能的执行并行地进行VLAN-ID变换的执行,因此,与上述的第1实施方式的通信装置1a相比,能够实现大约2倍左右高的吞吐量。
[通信装置的功能结构的变形例]
接下来,对参照图1说明的通信装置的变形例进行说明。图22A是示出本变形例的通信装置1f的功能结构的功能框图。如图示那样,通信装置1f被构成为包括通信中的处理的功能实例12和处理顺序控制部13。处理顺序控制部13具备示出与NW功能有关的处理等的执行顺序的执行顺序规则。
功能实例12包括每个NW功能的过程。功能实例12将记载有在NW功能的处理中需要的过程组和变量组的源代码或者编译后的执行文件等展开到例如存储器或寄存器等中,以使能够进行NW功能的处理。源代码或执行文件等可以保持在通信装置1f的内部,也可以保持在处于通信装置1f的外部的其他的装置中。在其他的装置保持源代码或执行文件等的情况下,处理顺序控制部13按1个过程或多个过程的每一个、按每个功能实例、或按每个其他的单位从其他的装置读出源代码或执行文件等。在该情况下,如图22B所示那样,通信装置1f还具备从其他的装置接收各种信息的接收部24和对其他的装置发送各种信息的发送部25,以使处理顺序控制部13能够与其他的装置交换。
处理顺序控制部13依照确定的顺序而调用功能实例12的过程,对分组执行与NW功能有关的处理。分组例如保持在设置在通信装置1f的内部的分组保持部中。在该情况下,例如如图22C所示那样与图1同样地在处理顺序控制部13内设置分组保持部134。或者,也可以在设置在通信装置1f的外部的分组保持部中保持分组。在该情况下,通信装置1f还具备接收部24和发送部25,以使能够与该分组保持部交换。此外,在通信装置1f的内部保持分组的结构中,例如在通信装置1f具备多个处理顺序控制部的情况下,在这些处理顺序控制部13之外设置分组保持部134也可。
在通信装置1f内的处理顺序控制部13保持分组的情况下,通信装置1f从其他的装置接收分组的输入,将该分组转移到分组保持部134中,处理顺序控制部13对在分组保持部134中保持的分组进行指定的处理,在处理结束后,废弃分组或将分组输出到其他的装置中。
在通信装置1f的外部保持分组的情况下或在通信装置1f具备多个处理顺序控制部的情况下,多个装置(例如,通信装置1f和其他的装置)或多个处理顺序控制部共有分组保持部134也可。再有,在多个装置共有分组保持部134的情况下,可以在多个装置的任一个的内部设置分组保持部134,也可以在多个装置的外部设置分组保持部134。处理顺序控制部13从其他的装置或其他的处理顺序控制部接收分组的处理权限或分组的地址的输入,对在分组保持部134中保持的分组进行指定的处理。在该处理结束后,处理顺序控制部13废弃分组或者对其他的装置或其他的处理顺序控制部授予分组的处理权限,或者输出分组的地址。
或者,也可以组合前者和后者。前者适于在单一的硬件上存在单一的通信装置的情况。另一方面,后者适于在单一的硬件上存在多个虚拟的装置的情况或在单一的通信装置内存在多个处理顺序控制部的情况。
处理顺序控制部13依照执行顺序规则示出的执行顺序来调用接下来应执行的过程。在存在来自调用的过程的返回值的情况下,处理顺序控制部13根据当前执行的过程(即,调用的过程)及其返回值来调用接下来应执行的过程。换言之,处理顺序控制部13根据属于前次处理的功能实例的过程和该过程的返回值来调用属于以后应执行的功能实例的过程。调用的过程可以为属于与当前执行的过程所属的功能实例相同的功能实例的过程,也可以为属于与当前执行的过程所属的功能实例不同的功能实例的过程。
关于过程,可以通过1个或多个装置而为唯一,也可以按1个或多个功能实例的每一个为唯一。此外,在过程的调用时,可以使用通过1个或多个装置唯一的ID等来调用过程,也可以使用功能实例和过程的组合来唯一地调用过程,还可以调用功能实例之后调用功能实例内的过程。再有,不同的功能实例的过程也可以为同一过程。在不同的功能实例的过程为同一过程且通过功能实例和过程的组合来唯一地调用过程时,不同的功能实例和过程的组合可以处理为调用同一过程的组合,也可以处理为调用进行同一处理的不同的过程的组合。
在执行顺序规则中,例如将对当前执行的功能实例12的过程进行识别的“执行过程ID”、执行处理的“返回值”、以及在存在返回值的情况下根据该返回值对接下来应执行的功能实例12的过程进行识别的“下一执行过程ID”相对应。或者,在执行顺序规则中,也可以将“执行实例ID”、“执行过程ID”、“返回值”、“下一执行实例ID”以及“下一执行过程ID”相对应。或者,在执行顺序规则中,也可以将展开了当前执行的功能实例的过程的存储器地址、返回值以及展开了接下来应执行的功能实例的过程的存储器地址相对应。
再有,接下来应执行的功能实例12的过程也可以不管返回值都相同。此外,在返回值为“Null”的情况下或没有返回值的情况下,接下来应执行的功能实例12的过程也可以为通过下一顺序的执行顺序规则而识别的过程等、与当前执行的功能实例12的过程对应的过程(换言之,以后应执行的功能实例12的过程为属于前次处理的功能实例的过程所对应的过程或预先确定的不属于前次处理的功能实例的过程所对应的过程)或者根据最初的执行顺序规则而识别的过程等规定的过程或者进行初始化处理或丢弃分组的处理或使一系列的过程结束的处理等规定的处理的过程。
此外,在返回值为“0”的情况下,可以丢弃分组或者保持该分组的分组保持部在保持分组的情况下向通信装置1f内的其他的处理顺序控制部或其他的装置授予处理权限或分组的地址,也可以向其他的装置送出分组。
此外,最初的执行顺序规则指定在最初执行的功能实例的过程或者在最初执行的功能实例和过程。在通过“执行过程ID”的值和“返回值”指定在最初执行的功能实例的过程的情况下,也可以分别设定“0”来作为它们的值。在通过“执行实例ID”的值、“执行过程ID”的值和“返回值”指定在最初执行的功能实例和过程的情况下,也可以分别设定“0”来作为它们的值。在通过示出在存储器上展开该过程的位置(地址)的“存储器地址”指定在最初执行的功能实例的过程的情况下,也可以在执行顺序规则中设定该存储器地址。
接下来,对本变形例的通信装置1f的工作进行说明。图23是示出本变形例的处理顺序控制部13的工作的流程图。
首先,处理顺序控制部13分别将“0”代入到表示执行过程ID的变量即变量CUR_METD_ID和表示该过程的返回值的变量即变量CUR_RET中,由此,进行这些变量的初始化(图23、步骤S201),所述执行过程ID识别当前执行的功能实例12的过程。在此,在不能仅通过执行过程ID唯一地确定过程、并且、与表示执行实例ID的变量即变量CUR_INST_ID的值一起确定过程的情况下,处理顺序控制部13也将“0”代入到变量CUR_INST_ID中,所述执行实例ID识别当前执行的功能实例12。
接着,处理顺序控制部13读入执行顺序规则(图23、步骤S202)。接下来,处理顺序控制部13从最初的执行顺序规则起检索“执行过程ID”的值和“返回值”分别与变量CUR_METD_ID和变量CUR_RET一致的执行顺序规则(图23、步骤S203)。在此,在与变量CUR_INST_ID的值一起确定过程的情况下,处理顺序控制部13检索“执行实例ID”的值、“执行过程ID”的值和“返回值”分别与变量CUR_INST_ID、变量CUR_METD_ID和变量CUR_RET一致的执行顺序规则。
例如,最初的执行顺序规则中的“执行过程ID”的值和“返回值”分别为“0”,这些值与在上述中分别代入“0”后的变量CUR_METD_ID和变量CUR_RET一致。在此,在与变量CUR_INST_ID的值一起确定过程的情况下,最初的执行顺序规则中的“执行实例ID”的值、“执行过程ID”的值和“返回值”分别与变量CUR_INST_ID、变量CUR_METD_ID和变量CUR_RET一致。由此,处理顺序控制部13将一致的执行顺序规则中的“下一执行过程ID”的项目的值(例如“1”)代入到变量NXT_METD_ID中(图23、步骤S204)。由此,变量NXT_METD_ID=1。在此,在与变量CUR_INST_ID的值一起确定过程的情况下,处理顺序控制部13进而将一致的执行顺序规则中的“下一执行实例ID”的项目的值(例如“1”)代入到变量NXT_INST_ID中。由此,变量NXT_INST_ID=变量NXT_METD_ID=1。
在此,使用变量NXT_METD_ID或变量NXT_INST_ID和变量NXT_METD_ID来表示下一执行的过程。可是,关于将这些变量变换为展开了过程的位置(地址)等的处理,可以通过处理顺序控制部13进行,也可以通过执行NW功能的其他的装置或其他的处理顺序控制部进行。或者,在通信装置1f内或其他的装置中设置将展开了变量和过程的位置(地址)等相对应后的表,使用该表来间接地参照展开了过程的位置(地址)等也可。或者,通信装置1f向其他的装置进行询问,其他的装置进行变换,将通过变换而得到的位置(地址)发送到通信装置1f中,通信装置1f接收该位置(地址)也可。例如,在通过识别功能实例的信息和识别过程的信息的组合来确定过程的情况下,使用将“功能实例ID”和“功能实例名”的至少一个、“过程ID”和“过程名”的至少一个、以及示出在存储器上展开了该过程的位置(地址)或该过程的参照目的地的“存储器地址”相对应后的表等来进行变换也可。或者,在能够仅通过识别过程的信息来唯一地确定过程的情况下,使用将“过程ID”和“过程名”的至少一个以及示出在存储器上展开了该过程的位置(地址)或该过程的参照目的地的“存储器地址”相对应后的表等来进行变换也可。此外,还可以代替使用变量NXT_INST_ID或变量NXT_METD_ID,而使用示出在存储器上展开了过程的位置(地址)的“存储器地址”或直接示出该过程的参照目的地的信息。
接着,处理顺序控制部13调用并执行根据与变量NXT_METD_ID一致的“执行过程ID”而确定的过程、或根据与变量NXT_INST_ID和变量NXT_METD_ID的组合一致的“执行实例ID”和“执行过程ID”的组合而确定的过程(图23、步骤S205)。在进行正常的处理的情况下,功能实例12的过程结束处理,向处理顺序控制部13输出表示正常结束的值(比“0”大的值)来作为返回值。在此,表示正常结束的值优选为在执行顺序规则中记载的返回值。再有,在不存在成为处理的对象的分组的情况下,功能实例12的过程也可以输出“-1”来作为返回值。
接下来,处理顺序控制部13将变量NXT_METD_ID的值代入到变量CUR_METD_ID中(图23、步骤S206)。在此,在与变量CUR_INST_ID的值一起确定过程的情况下,处理顺序控制部13分别将变量NXT_INST_ID、变量NXT_METD_ID代入到变量CUR_INST_ID、变量CUR_METD_ID中。
处理顺序控制部13当从执行了处理的功能实例12的过程接收返回值时,将该返回值代入到变量CUR_RET中(图23、步骤S207)。在返回值为“0”的情况下(图23、步骤S208·是),处理顺序控制部13丢弃分组(图23、步骤S209),控制返回到初始化的阶段(图23、步骤S201)。这以后的工作与上述的工作同样。在返回值为“0”以外的情况下(图23、步骤S208·否),处理顺序控制部13再次读入执行顺序规则(图23、步骤S202),检索示出接下来执行的功能实例的过程的信息(图23、步骤S203)。这以后的工作与上述的工作同样。
如以上说明的那样,本发明的各实施方式的目的在于减少特别是将在单一的通用硬件中进行工作的多个NW功能组合的情况下的、延迟。在本发明的各实施方式中,不是在NW功能间进行分组转送,而是在不移动分组的数据本身的情况下依照确定的顺序执行各NW功能,由此,实现NW功能的组合。由此,在本发明的各实施方式中,不发生在NW功能间的分组转送,因此,能够抑制在装置内产生的延迟。此外,本发明的各实施方式对于将多个小规模的功能组合的情况下的延迟的抑制更有效。
也可以用计算机实现上述的实施方式中的通信装置1、1a~1f的至少一部分。在该情况下,将用于实现该功能的程序记录在计算机可读取的记录介质中,使计算机系统读入记录在该记录介质中的程序并执行,由此,也可以实现。再有,在此所说的“计算机系统”是指包含OS(Operating System,操作系统)或周围设备等硬件。此外,“计算机可读取的记录介质”是指软盘、光磁盘、ROM(Read Only Memory,只读存储器)、CD(Compact Disc,压缩盘)-ROM等可移动介质、内置在计算机系统中的硬盘等存储装置。进而,“计算机可读取的记录介质”还可以包含像在经由因特网等网络或电话线路等通信线路来发送程序的情况下的通信线那样在短时间的期间动态地保持程序的记录介质、像在该情况下的成为服务器或客户端的计算机系统内部的易失性存储器那样将程序保持固定时间的记录介质。此外,上述程序可以是用于实现前述的功能的一部分的程序,进而,也可以是能够以与已经记录在计算机系统中的程序的组合来实现前述的功能的程序,也可以是使用FPGA(FieldProgrammable Gate Array,现场可编程门阵列)等可编程逻辑器件来实现的程序。
以上,参照附图对该发明的实施方式详细地进行了描述,但是,具体的结构不限于这些实施方式,还包括不偏离该发明的主旨的范围的设计等。
产业上的可利用性
本发明能够利用于各种通信服务。根据本发明,能够抑制在装置内产生的延迟。
附图标记的说明
1…通信装置、11…功能文件保持部、12…功能实例、13…处理顺序控制部、14…分组接收部、15…分组发送部、131…执行顺序信息管理部、132…实例信息管理部、133…功能执行部、134…分组保持部、135…外部协作部、136…实例注册·删除部、137…执行顺序变更部、138…协作信息保持部、139…公开变量信息保持部。
Claims (9)
1.一种通信装置,其中,具备:
分组接收部,从外部的装置接收通信分组;
分组发送部,将对所述通信分组执行规定的处理后的通信分组向所述外部的装置或其他的外部的装置发送;以及
处理顺序控制部,控制所述通信分组的处理顺序,
所述处理顺序控制部具备:
分组保持部,保持所述通信分组;
功能实例,通过按包括通信功能中的处理所需要的过程组和变量组的每个功能文件而分别变换为执行形式并在存储器中展开来生成;
实例信息管理部,保持实例信息,所述实例信息包括识别所述功能实例的功能实例标识符、识别属于所述功能实例的过程的过程标识符、和示出属于所述功能实例的所述过程在所述存储器中的位置的存储器地址;
执行顺序信息管理部,保持将所述功能实例标识符、所述过程标识符和所述过程的返回值与属于接下来执行的功能实例的过程相对应后的、执行顺序信息;以及
功能执行部,基于所述执行顺序信息和所述实例信息来调用属于所述功能实例的所述过程,对在所述分组保持部中保持的所述通信分组执行基于属于所述功能实例的所述过程的处理,根据基于属于所述功能实例的所述过程的所述处理的所述返回值来执行基于属于所述接下来执行的所述功能实例的所述过程的处理。
2.根据权利要求1所述的通信装置,其中,
所述处理顺序控制部具备:
外部协作部,从外部协作装置取得所述通信功能的追加、所述通信功能的变更或所述通信功能的删除的请求;
执行顺序变更部,根据来自所述外部协作装置的执行顺序变更请求来对所述执行顺序信息管理部请求执行顺序变更;以及
实例注册·删除部,根据所述通信功能的追加、所述通信功能的变更或所述通信功能的删除的所述请求,在所述存储器中展开所述功能实例或从所述存储器删除所述功能实例,
所述功能实例具有:
开始过程,进行所述功能实例的初始化;以及
结束过程,进行结束处理。
3.根据权利要求1所述的通信装置,其中,
所述功能实例具备通知受理过程,在所述通知受理过程中根据来自属于其他的功能实例的过程的信息取得请求和功能执行的请求来进行处理。
4.根据权利要求1所述的通信装置,其中,
所述处理顺序控制部具备:
通知过程,根据来自属于所述功能实例的所述过程的请求,对其他的功能实例的信息取得和功能执行进行中介;以及
协作信息保持部,根据来自所述通知过程的请求,输出与所述其他的功能实例的通知受理过程有关的信息。
5.根据权利要求1所述的通信装置,其中,
所述执行顺序信息管理部保持将示出所述功能执行部执行的所述过程的位置的存储器地址作为节点的、基于执行顺序的树构造的信息,
所述功能执行部基于在调用所述过程时从所述执行顺序信息管理部取得的所述树构造的信息,根据所述返回值来转变所述树构造的所述节点,由此,执行所述过程。
6.一种通信方法,所述方法是利用计算机的通信方法,其中,所述通信方法具有:
分组接收步骤,分组接收部从外部的装置接收通信分组;
分组发送步骤,分组发送部将对所述通信分组执行规定的处理后的通信分组向所述外部的装置或其他的外部的装置发送;
处理顺序控制步骤,处理顺序控制部控制所述通信分组的处理顺序;
分组保持步骤,分组保持部保持所述通信分组;
功能实例生成步骤,功能执行部通过按包括通信功能中的处理所需要的过程组和变量组的每个功能文件而分别变换为执行形式并在存储器中展开来生成功能实例;
实例信息管理步骤,实例信息管理部保持实例信息,所述实例信息包括识别所述功能实例的功能实例标识符、识别属于所述功能实例的过程的过程标识符、和示出属于所述功能实例的所述过程在所述存储器中的位置的存储器地址;以及
执行顺序信息管理步骤,执行顺序信息管理部保持将所述功能实例标识符、所述过程标识符和所述过程的返回值与属于接下来执行的功能实例的过程相对应后的、执行顺序信息,
在所述处理顺序控制步骤中,所述功能执行部基于所述执行顺序信息和所述实例信息来调用属于所述功能实例的所述过程,对在所述分组保持部中保持的所述通信分组执行基于属于所述功能实例的所述过程的处理,根据基于属于所述功能实例的所述过程的所述处理的所述返回值来执行基于属于所述接下来执行的所述功能实例的所述过程的处理。
7.一种通信装置,其中,具备:
过程,属于通信中的处理的功能实例;以及
处理顺序控制部,将属于功能实例的过程和属于所述功能实例的过程的返回值的组合与属于所述功能实例的所述过程的接下来应执行的过程相关联地存储,将与属于前次处理的功能实例的过程和属于所述前次处理的功能实例的所述过程的返回值的组合相关联地存储的过程决定为属于应执行的功能实例的过程进行调用,对在单一的分组保持部保持的相同的通信分组执行与多个网络功能相关的处理。
8.根据权利要求7所述的通信装置,其中,
在没有所述返回值的情况下,所述处理顺序控制部调用属于所述前次处理的功能实例的所述过程所对应的过程、规定的过程或进行规定的处理的过程来作为属于所述应执行的功能实例的所述过程。
9.一种通信方法,所述方法是利用计算机的通信方法,其中,
所述通信方法具有处理顺序控制步骤,在所述处理顺序控制步骤中,将属于通信中的处理的功能实例的过程和属于所述功能实例的过程的返回值的组合与属于所述功能实例的所述过程的接下来应执行的过程相关联地存储,将与属于前次处理的功能实例的过程和属于所述前次处理的功能实例的所述过程的返回值的组合相关联地存储的过程决定为属于应执行的功能实例的过程进行调用,对在单一的分组保持部保持的相同的通信分组执行与多个网络功能相关的处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-021382 | 2017-02-08 | ||
JP2017021382 | 2017-02-08 | ||
PCT/JP2018/004163 WO2018147313A1 (ja) | 2017-02-08 | 2018-02-07 | 通信装置及び通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110249594A CN110249594A (zh) | 2019-09-17 |
CN110249594B true CN110249594B (zh) | 2022-12-06 |
Family
ID=63108355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880010398.3A Active CN110249594B (zh) | 2017-02-08 | 2018-02-07 | 通信装置和通信方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11424959B2 (zh) |
EP (1) | EP3582457B1 (zh) |
JP (1) | JP6706354B2 (zh) |
CN (1) | CN110249594B (zh) |
WO (1) | WO2018147313A1 (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1750222A1 (en) * | 2005-07-11 | 2007-02-07 | International Business Machines Corporation | Process instance serialization |
CN102456185A (zh) * | 2010-10-29 | 2012-05-16 | 金蝶软件(中国)有限公司 | 一种分布式工作流处理方法及分布式工作流引擎系统 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6272450B1 (en) * | 1998-06-16 | 2001-08-07 | Telefonaktiebolaget L M Ericsson (Publ) | Cellular network traffic simulator (cents) |
US7835933B2 (en) * | 2002-04-08 | 2010-11-16 | Hewlett-Packard Development Company, L.P. | Method and system for event management in business processes |
US20050066149A1 (en) * | 2003-09-22 | 2005-03-24 | Codito Technologies Private Limited | Method and system for multithreaded processing using errands |
US8149382B2 (en) | 2005-07-08 | 2012-04-03 | Nikon Corporation | Surface position detection apparatus, exposure apparatus, and exposure method |
JP2008066903A (ja) | 2006-09-06 | 2008-03-21 | Nec Corp | 不正侵入検知システム及びその方法並びにそれを用いた通信装置 |
CN101035110B (zh) | 2007-02-28 | 2011-01-12 | 华为技术有限公司 | 业务调用方法、系统及单元 |
KR20130051872A (ko) * | 2011-11-10 | 2013-05-21 | 한국전자통신연구원 | 적응적인 복합 서비스 경로 관리 장치 및 그 방법 |
JP5970819B2 (ja) * | 2012-01-10 | 2016-08-17 | 株式会社リコー | ネットワーク制御装置 |
CN103812838A (zh) * | 2012-11-13 | 2014-05-21 | 中国移动通信集团公司 | 一种服务调用方法和设备及系统 |
JP2014197774A (ja) * | 2013-03-29 | 2014-10-16 | ソニー株式会社 | 通信機器、通信システム、通信機器の制御方法およびプログラム |
CN103346974B (zh) * | 2013-06-03 | 2015-04-08 | 华为技术有限公司 | 一种业务流程的控制方法及网络设备 |
JP6592595B2 (ja) * | 2015-06-25 | 2019-10-16 | エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー | コンピューティングネットワークにおけるデータトラフィックを管理する方法およびシステム |
US9929945B2 (en) | 2015-07-14 | 2018-03-27 | Microsoft Technology Licensing, Llc | Highly available service chains for network services |
WO2017018965A1 (en) | 2015-07-27 | 2017-02-02 | Intel IP Corporation | Virtual mobile management entity management |
CN105068859B (zh) * | 2015-07-29 | 2017-12-15 | 上海谐桐信息技术有限公司 | 一种跨虚拟机的多服务调用方法及系统 |
CN105100117B (zh) * | 2015-08-28 | 2018-07-13 | 北京奇艺世纪科技有限公司 | 一种用于访问组合服务的方法及装置 |
CN106339222B (zh) * | 2016-08-23 | 2019-09-17 | 联动优势电子商务有限公司 | 一种服务实现方法及装置 |
-
2018
- 2018-02-07 EP EP18751438.5A patent/EP3582457B1/en active Active
- 2018-02-07 CN CN201880010398.3A patent/CN110249594B/zh active Active
- 2018-02-07 WO PCT/JP2018/004163 patent/WO2018147313A1/ja unknown
- 2018-02-07 JP JP2018567457A patent/JP6706354B2/ja active Active
- 2018-02-07 US US16/483,680 patent/US11424959B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1750222A1 (en) * | 2005-07-11 | 2007-02-07 | International Business Machines Corporation | Process instance serialization |
CN102456185A (zh) * | 2010-10-29 | 2012-05-16 | 金蝶软件(中国)有限公司 | 一种分布式工作流处理方法及分布式工作流引擎系统 |
Also Published As
Publication number | Publication date |
---|---|
JP6706354B2 (ja) | 2020-06-03 |
EP3582457A4 (en) | 2021-01-13 |
EP3582457A1 (en) | 2019-12-18 |
US11424959B2 (en) | 2022-08-23 |
WO2018147313A1 (ja) | 2018-08-16 |
JPWO2018147313A1 (ja) | 2019-07-04 |
EP3582457B1 (en) | 2022-11-09 |
CN110249594A (zh) | 2019-09-17 |
US20200021464A1 (en) | 2020-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190014066A1 (en) | Message delivery in a message system | |
JP5943331B2 (ja) | サービスプロセス制御方法およびネットワークデバイス | |
EP2835938B1 (en) | Message publishing and subscribing method and apparatus | |
JP3866466B2 (ja) | データ構造管理装置、データ構造管理システム、データ構造管理方法およびデータ構造管理プログラムを格納する記録媒体 | |
US11184281B2 (en) | Packet processing method and apparatus | |
CN114244919B (zh) | 一种基于协议无感知转发的ndn模态实现方法 | |
US11915034B2 (en) | Sidecar-based integration capabilities for containerized applications | |
CN115426312A (zh) | 一种大规模多模态网络中标识管理及优化转发方法和装置 | |
EP2139193B1 (en) | A method of performing data mediation, and an associated computer program product, data mediation device and information system | |
US8886913B2 (en) | Apparatus and method for identifier management | |
CN109995674B (zh) | 一种可编程sdn交换机系统 | |
CN110249594B (zh) | 通信装置和通信方法 | |
KR102226915B1 (ko) | 소프트웨어 정의 네트워크에서 플로우 룰 데이터베이스를 운영하는 방법, 장치 및 컴퓨터 프로그램 | |
US20080019366A1 (en) | Process data for a data packet | |
JP2016015672A (ja) | ネットワーク制御装置、及びネットワーク設定システム | |
CN113708966B (zh) | 一种交换机网络化在线配置方法、系统和设备 | |
JP7166359B2 (ja) | ネットワークエンティティのモバイルイベントメッセージの伝播方法 | |
US11314414B2 (en) | Methods, devices, and computer program products for storage management | |
US20050281258A1 (en) | Address translation program, program utilizing method, information processing device and readable-by-computer medium | |
CN115665042B (zh) | 数据处理方法、装置、用户平面功能实体及存储介质 | |
CN111355818B (zh) | 地址解析调度方法、装置及地址解析系统 | |
CN114615216A (zh) | 一种基于交换芯片的路由表动态调整方法 | |
CN116996435A (zh) | 一种报文处理方法及装置 | |
CN117714398A (zh) | 一种数据传输系统、方法、电子设备及存储介质 | |
JP2018025859A (ja) | サービス提供システムおよびサービス提供方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |