本公开涉及信息处理装置、信息处理方法和程序。
背景技术:
已经提出了各种用于通过网络发送例如语音或动画等数据的技术。
例如,在专利文献1中记载了如下技术:在发送流数据时,将成为空闲区域的发送频带用于不要求实时性的优先级较低的业务的发送处理。
引用列表
专利文献
专利文献1:日本未审查专利申请公开第2003-143222号。
技术实现要素:
本发明要解决的问题
同时,假设从另一装置接收输入数据的一部分。然而,在专利文献1所记载的技术中,没有考虑在这种情况下将每个单独的部分数据适当地存储在存储区域中。
因此,本公开提出了一种新颖且改进的信息处理装置、信息处理方法和程序,其能够将从另一装置接收到的每个单独的部分数据适当地存储在缓冲区中。
解决问题的手段
根据本公开,提供了一种信息处理装置,包括接收器,其从另一装置接收多个控制信息,以及控制器,其按照接收顺序,将从另一装置接收的多个控制信息添加到预定存储区中,并且根据与存储在预定存储区中的第一控制信息对应的第一输入数据的部分数据的接收顺序,将部分数据添加到与第一控制信息相关的第一缓冲区。
此外,根据本公开,提供了一种信息处理方法,包括从另一装置接收多个控制信息,以及处理器按照接收顺序,将从另一装置接收的多个控制信息添加到预定存储区中,并且根据与存储在预定存储区中的第一控制信息对应的第一输入数据的部分数据的接收顺序,将部分数据添加到与第一控制信息相关的第一缓冲区。
此外,根据本公开,提供了一种程序,其用于使计算机充当:接收器,其从另一装置接收多个控制信息,以及控制器,其按照接收顺序,将从另一装置接收的多个控制信息添加到预定存储区中,并且根据与存储在预定存储区中的第一控制信息对应的第一输入数据的部分数据的接收顺序,将部分数据添加到与第一控制信息相关的第一缓冲区。
本发明的效果
如上所述,根据本公开,可以将从另一装置接收的每个单独的部分数据适当地存储在缓冲区中。应当注意,在此描述的效果不一定是限制性的,而是可以是本公开中描述的任何效果。
附图说明
图1是说明本公开的每个实施方式共同的信息处理系统的结构实例的说明图。
图2图示了根据各实施方式的操作信息的实例。
图3图示了根据各实施方式的输入数据的实例。
图4是说明根据本公开的第一实施方式的服务器10的结构实例的功能框图。
图5图示了在每个单独的缓冲区108中存储每个单独的部分数据的实例。
图6a图示了从fifo队列102取出控制信息的实例。
图6b图示了从fifo队列102取出控制信息的实例。
图6c图示了从fifo队列102取出控制信息的实例。
图7是说明根据第一实施方式的输入输入数据时的处理流程的实例的时序图。
图8是说明根据第一实施方式的处理输入数据时的处理流程的实例的时序图。
图9是说明根据第一实施方式的“信息输入/输出处理”的流程的流程图。
图10图示了根据第一实施方式的应用例1的指示fifo队列102中的每个控制信息与缓冲区108中的数据量之间的对应关系的曲线图的实例。
图11图示了根据应用例1的指示fifo队列102中的每个控制信息与缓冲区108中的数据量之间的对应关系的曲线图的实例。
图12图示了指示fifo队列102中的每个控制信息与缓冲区108中的数据量之间的对应关系的曲线图的实例。
图13是说明根据应用例1的监控终端22的显示控制的流程的流程图。
图14图示了根据第一实施方式的应用例2的指示fifo队列102中的每个控制信息与缓冲区108中的数据量之间的对应关系的曲线图的实例。
图15是说明应用例2的监控终端22的显示控制的流程的流程图。
图16图示了根据本公开的第二实施方式的多个fifo队列102的实例。
图17图示了根据第二实施方式的指示每个单独的fifo队列102中的每个单独的控制信息的存储状态的显示画面的实例。
图18图示了各实施方式共同的服务器10的硬件结构实例。
具体实施方式
下面将参照附图详细描述本公开的优选实施方式。需要注意的是,在本说明书和附图中,用相同的附图标记表示具有基本相同的功能和结构的部件,因此省略对这些部件的重复说明。
此外,在本说明书和附图中,有时在相同附图标记后面添加不同的字母来区别基本上具有相同功能结构的多个部件。例如,根据需要将基本上具有相同功能结构的多个部件区别为处理服务器20a和处理服务器20b。然而,在不需要特别区分基本上具有相同功能结构的多个部件的情况下,仅使用相同的附图标记。例如,在不需要特别区分处理服务器20a和处理服务器20b的情况下,将处理服务器20a和处理服务器20b简称为处理服务器20。
此外,在下文中,将根据以下顺序描述“具体实施方式”。
1.背景
2.信息处理系统的结构
3.第一实施方式
4.第二实施方式
5.硬件结构
6.变型例
[1.背景]
首先,将描述创建本公开的实施方式的背景。近来,用户对web服务的输入信息(请求)例如是用户的话语或正在拍摄的活动动画的服务正在普及。在许多这样的请求中,通常存在事先未知许多请求结束的情况,因为数据的生成是在发送请求时或即将发送请求时开始的。这种web服务的实例包括使用云上的数据库的语音识别服务。在语音识别服务中,例如,用户终端将用户的话语作为语音请求发送到服务器,并且服务器通过语音识别将接收到的语音请求转换为文本。转换后的文本例如可以用作web搜索引擎的搜索短语或对另一电子装置的控制命令。
然而,在已知的web服务中,当服务器负载变高时,服务器暂时拒绝来自用户的请求并要求用户重试。然而,在比如语音识别等服务中,不希望拒绝用户的输入,因为这会给用户带来较大的负担。例如,为了重试,用户必须再次重复相同的话语。相反,如果处理服务器不顾负载较高的情况而接受新的输入,则可能导致输入已经被接受的另一用户的处理中的延迟变大。
作为解决上述问题的方法,已经提出了使用消息队列的方法。消息队列是用于例如在多个服务器之间发送消息并排队等待处理的装置。在使用消息队列的情况下,接受请求的功能和处理请求的功能由不同的装置执行,而不是由单个装置集中执行。因此,即使在该装置处理请求的处理能力过载的情况下,也可以接受用户的请求而不拒绝该请求,并且使请求排队等待。
然而,在已知的消息队列中,直到用户的输入全部完成之前,服务器无法接受来自用户的输入信息(请求)。因此,存在处理根据来自用户的输入的时间的长度而延迟的问题。
因此,考虑到上述情况,创建了根据本公开的实施方式的服务器10。服务器10按照接收顺序,将来自一个或多个用户终端30的多个控制信息添加到fifo(先进先出)队列102,并且根据与存储在fifo队列102中的某控制信息对应的输入数据的部分数据的接收顺序,将该部分数据添加到与该控制信息相关的缓冲区108。因此,可以将从用户终端30接收的每个单独的部分数据适当地存储在缓冲区108中。其结果是,在要求处理与从用户终端30接收的每个单独的控制信息对应的输入数据的场景中,可以提高处理的效率。这里,fifo队列102用作根据本公开的预定存储区的实例。
[2.信息处理系统的结构]
接下来,参考图1,将描述本公开的实施方式共同的信息处理系统的示例性结构。如图1所示,根据各实施方式的信息处理系统包括服务器10、一个或多个处理服务器20、监控终端22、通信网络24以及一个或多个用户终端30。
[2-1.服务器10]
服务器10是根据本公开的信息处理装置的实例。服务器10基于从每个单独的用户终端30或每个单独的处理服务器20接收的操作信息来输入和输出信息。例如,服务器10基于从每个单独的用户终端30接收的操作信息,取出存储在操作信息中的信息,并存储该信息。此外,服务器10从存储在服务器10中的信息中取出由从每个单独的处理服务器20接收的操作信息所指定的信息,并将该信息提供给处理服务器20。
图2图示了操作信息(操作信息40a至操作信息40d)的具体实例。如图2所示,操作信息40可以包括用于发出指令以向服务器10输入信息或从服务器10输出信息的命令400,以及该命令的目的地的识别信息402。命令的目的地(后文将详细描述)可以是fifo队列102或任意缓冲区108(后文将详细描述)。图2示出了用于发出指令以向服务器10输入信息的命令是“push”并且用于发出指令以从服务器10输出信息的命令是“pop”的示例性情况。
此外,在操作信息发出指令以将向服务器10输入信息的情况下(换言之,在该信息是从用户终端30接收到操作信息的情况下),操作信息包括待向服务器10输入的信息404。待输入的信息404是控制信息或整体输入数据的一个部分数据。在此,输入数据是由后述的处理服务器20处理的数据。例如,输入数据是流数据(即,连续的数据)。输入数据可以是二进制数据,比如声音或图像,或文本数据,比如其他类型的传感器数据。整体输入数据可以构造成一个或多个部分数据的组合。此外,一个或多个部分数据中的每一个可以彼此不同。例如,在输入数据是流数据的情况下,整体输入数据的一个部分数据可以是对应于流数据的一个块的数据。
此外,控制信息可以是用于针对与控制信息对应的输入数据的部分数据指定例如处理服务器20(将在后文描述)执行的处理的内容的信息。控制信息可以由用户终端30生成,如后文描述。控制信息的内容可以由用户终端30指定。在下文中,与某控制信息对应的整体输入数据的每个单独的部分数据被称为“与某控制信息对应的每个单独的部分数据”。
在图2所示的实例中,操作信息40a是从用户终端30接收的操作信息,并且是用于发出指令以将控制信息40a添加到fifo队列102的操作信息。如图2所示,控制信息404a例如包括控制信息404a的id、控制信息404a的创建日期和时间、处理服务器20将要对与控制信息404a对应的每个单独的部分数据执行的处理(比如方法)的类型的指定、以及方法的参数。
[2-2.处理服务器20]
处理服务器20是根据本公开的处理装置的实例。处理服务器20对从服务器10接收的每个单独的部分数据执行各种处理,比如语音识别、动画处理或数据分发。例如,处理服务器20对从服务器10接收的一个部分数据执行由与从服务器10接收的该部分数据对应的控制信息指定的处理。
例如,处理服务器20首先向服务器10发送用于发出指令以输出存储在服务器10中的任一个控制信息的操作信息。此后,在从服务器10接收到某控制信息的情况下,处理服务器20向服务器10发送用于发出指令以输出与该控制信息对应的一个部分数据的操作信息。此后,在从服务器10接收到一个部分数据的情况下,处理服务器20对已经从服务器10接收到的部分数据执行由与该部分数据对应的控制信息指定其内容的处理。应当注意,处理服务器20基本上与用户终端30异步地操作。
[2-3.用户终端30]
用户终端30是根据本公开的另一装置的实例。用户终端30是用户使用的信息处理终端。用户终端30可以是固定设备、便携式设备或可穿戴设备。用户终端30包括各种传感器,比如麦克风、相机(图像传感器)、深度传感器和/或加速计。
用户终端30例如基于用户的操作生成包括控制信息或输入数据的部分数据的操作信息。例如,用户终端30将用户终端30感测到的各种感测结果视为一个部分数据,并生成包括该部分数据的操作信息。另外,每当用户终端30生成操作信息时,例如,用户终端30通过通信网络24(将在后文描述)将所生成的操作信息发送到服务器10。
图3图示了由用户终端30感测到的全部输入数据(输入数据50)的实例。输入数据50例如是用户终端30感测到的用户的全部语音数据。在图3所示的实例中,输入数据50的总感测持续时间为“40毫秒”。例如,每经过10毫秒的感测时间时,用户终端30向服务器10发送仅包括一个部分数据500的操作信息,该部分数据500是在相应的感测时间中的语音感测结果,并且顺序地发送多个操作信息。这样,用户终端30可以每隔一定时间(或以小的增量)将输入的部分数据500顺序地发送到服务器10。例如,即使在预先不知道输入(比如用户的话语)结束的情况下,用户终端30也可以向服务器10仅发送到当前时间已经输入的片段数据(即一个部分数据),并且顺序地发送多个片段数据。
[2-4.监控终端22]
监控终端22是用于监视人员进行监控例如服务器10的操作状态、存储在服务器10中的各个数据(比如控制信息和部分数据)的数量和内容等的装置。监控终端22包括例如用于用户操作的输入部(例如鼠标或触摸板)、用于显示显示画面的显示单元(例如lcd(液晶显示器)或oled(有机发光二极管))以及用于通过通信网络24与服务器10等通信的通信部。
[2-5.通信网络24]
通信网络24是用于从与通信网络24连接的装置发送的信息的有线或无线传输路径。例如,通信网络24可以包括公共网络,比如电话网络、因特网、卫星通信网络等,以及各种lan(局域网)、wan(广域网)等,包括以太网(注册商标)。此外,通信网络24还可以包括专用网络,比如ip-vpn(互联网协议-虚拟专用网络)。
上面已经描述了本公开的实施方式共同的信息处理系统的结构。接下来,将详细描述本公开的各实施方式的内容。
[3.第一实施方式]
[3-1.结构]
首先,对第一实施方式进行说明。图4是说明根据第一实施方式的服务器10的结构实例的功能框图。如图4所示,服务器10包括控制器100、fifo队列102、缓冲管理器104、整体缓冲区106、监控部110、显示控制器112、操作部114以及通信部120。此外,整体缓冲区106包括一个或多个缓冲区108。
[3-1-1.fifo队列102]
fifo队列102可以包括后文描述的存储装置160。fifo队列102是以先进先出(fifo)结构存储从一个或多个用户终端30接收的每个单独的控制信息的存储区域。即,关于存储在fifo队列102中的一个或多个控制信息,从fifo队列102中取出一个或多个控制信息的顺序是,存储顺序越靠前,取出顺序越靠前。可以预先确定fifo队列102的大小。可选地,例如,后文描述的控制器100可以根据已接收的多个控制信息的数量或数据大小来动态地增加fifo队列102的大小。
[3-1-2.整体缓冲区106]
整体缓冲区106是根据本公开的存储部的实例。整体缓冲区106可以包括后文描述的存储装置160。整体缓冲区106是产生每个单独的缓冲区108的场所。例如,整体缓冲区106包括存储器、文件系统等。
[3-1-3.缓冲区108]
每个单独的缓冲区108是以先进先出(fifo)数据结构存储与从一个或多个用户终端30接收的与缓冲区108相关联的控制信息对应的每个单独的部分数据的存储区域。即,关于存储在缓冲区108中的一个或多个部分数据,从缓冲区108中取出一个或多个部分数据的顺序是,存储顺序越靠前,取出顺序就越靠前。
可以生成的缓冲区108的数量可以大于或等于存储在fifo队列102中的控制信息的数量。存储在fifo队列102中的一个或多个控制信息分别与彼此不同的缓冲区108相关联。
缓冲区108可以具有启用唯一指定的地址。此外,如后文将描述的,每个单独的缓冲区108的地址可以与用于唯一指定缓冲区108的用于识别的id相关联。
应当注意,在启动服务器10时,不必确保任何缓冲区108,或仅确保预定数量的缓冲区108。
[3-1-4.控制器100]
[3-1-4-1.数据的添加]
控制器100例如可以包括处理电路,比如cpu(中央处理单元)150和gpu(图形处理单元),这将在后文描述。控制器100基于从任一个用户终端30或任一个处理服务器20接收的操作信息,向fifo队列102和每个单独的缓冲区108输入(存储)信息并从fifo队列102和每个单独的缓冲区108输出(取出)信息。
例如,在从用户终端30新接收到包括控制信息的操作信息的情况下,控制器100按照来自一个或多个用户终端30的多个控制信息的接收顺序,将接收到的控制信息添加到fifo队列102。此外,在从用户终端30新接收到包括部分数据的操作信息的情况下,控制器100按照与来自一个或多个用户终端30的控制信息对应的每个单独的部分数据的接收顺序,将接收到的部分数据添加到一个或多个缓冲区108(将在后文描述)中的与该部分数据对应的控制信息相关联的缓冲区108。
例如,在从用户终端30接收到操作信息的情况下,控制器100首先解析接收到的操作信息,并指定包括在操作信息中的信息类型(即控制信息或部分数据)和由操作信息指定的信息的存储目的地。此后,在操作信息包括控制信息的情况下,控制器100将控制信息添加到fifo队列102的末端。此外,在操作信息中包括部分数据的情况下,控制器100将部分数据添加到指定为部分数据的存储目的地的缓冲区108的末端。
现在将参考图5更详细地描述上述功能。如以上参考图3所描述的,假设每当在用户终端30中感测到“10毫秒语音”的部分数据500时,例如从用户终端30接收部分数据500,并且顺序地接收多个部分数据500。在这种情况下,如图5所示,每当从用户终端30接收到包括一个部分数据500的操作信息时,控制器100将新接收到的部分数据500添加到与已经从用户终端30接收到的控制信息(图5所示的实例中的控制信息“a”)相关联的缓冲区108c的末尾,多个新接收的部分数据500依次添加。
应当注意,在从用户终端30接收到尚未与任何缓冲区108相关联的控制信息的情况下,控制器100可以向缓冲管理器104(将在后文描述)发出请求,以确保用于存储与控制信息对应的每个单独的部分数据的新的缓冲区108。
[3-1-4-2.数据的取出]
此外,在从任一个处理服务器20接收到用于发出指令以从服务器10输出控制信息的操作信息的情况下,控制器100可以基于该操作信息取出存储在fifo队列102的头部的控制信息,并且可以使通信部120将取出的控制信息发送到对应的处理服务器20。例如,每当从任一个处理服务器20接收到用于发出指令以输出控制信息的操作信息时,控制器100首先从fifo队列102中取出存储在fifo队列102的头部的控制信息(即存储顺序最靠前的控制信息),并且使通信部120将取出的控制信息发送到处理服务器20。
此外,在从任一个处理服务器20接收到用于发出指令以从服务器10输出某部分数据的操作信息的情况下,控制器100可以基于该操作信息取出存储在与该部分数据对应的控制信息相关联的缓冲区108的头部的部分数据,并且可以使通信部120将取出的部分数据发送到处理服务器20。例如,每当从任一个处理服务器20接收到用于发出指令以输出某个部分数据的操作信息时,控制器100首先基于包括在操作信息中的用于标识缓冲区108的id,从所有缓冲区108中指定目标缓冲区108。接下来,控制器100从目标缓冲区108中取出存储在目标缓冲区108的头部的部分数据(即存储顺序最靠前的部分数据)。然后,控制器100使通信部120将取出的部分数据发送到处理服务器20。
-具体实例
现在参考图6a至图6c,将更详细地描述上述功能。如图6a所示,假设在fifo队列102中存储了六个控制信息。此外,假定安装了两个处理服务器20,并且每个单独的处理服务器20能够同时处理与两个控制信息中的每一个相对应的每个单独的部分数据。在图6a所示的时间点,假设每个单独的处理服务器20不处理任何一个部分数据。
两个处理服务器20中的每一个向服务器10发送两次用于发出指令以输出控制信息的操作信息。每当接收到操作信息时,服务器10的控制器100取出存储在fifo队列102的头部的控制信息,并使通信部120将取出的控制信息发送到已经发送了操作信息的处理服务器20。因此,如图6b所示,取出存储在fifo队列102中的前四个控制信息(即控制信息“a”至“d”),并且向两个处理服务器20中的每一个发送四个控制信息中的两个控制信息。
假定在图6b所示的时间点之后,处理服务器20完成了对与控制信息“a”对应的所有部分数据(即与控制信息“a”对应的整体输入数据)的处理。还假设处理服务器20a新发送了用于发出指令以将控制信息输出到服务器10的操作信息。在这种情况下,如图6c所示,服务器10的控制器100取出存储在fifo队列102的头部的控制信息(即控制信息“e”),并使通信部120将控制信息“e”发送到处理服务器20a。
[3-1-5.缓冲管理器104]
缓冲管理器104基于来自控制器100的请求生成或删除一个或多个缓冲区108。例如,在从用户终端30接收到包括尚未与任一个缓冲区108相关联的控制信息的操作信息的情况下,缓冲管理器104首先在整体缓冲区106中生成(例如动态地保留)新的缓冲区108,用于存储与控制信息对应的每个单独的部分数据。此后,缓冲管理器104将缓冲区108与用于标识缓冲区108的id相关联。例如,缓冲管理器104将缓冲区108的地址与用于标识缓冲区108的id相关联。
应当注意,可以如下确定用于标识每个单独的缓冲区108的id。例如,每当从用户终端30接收到包括新的控制信息的操作信息时,控制器100可以通过使用预定的单向函数和控制信息来生成用于标识与控制信息相关联的缓冲区108的id。
或者,用户终端30可以确定用于标识与待发送的控制信息相关联的缓冲区108的id。在这种情况下,用户终端30可以向服务器10发送包括控制信息和用于识别与该控制信息相对应的缓冲区108的id的操作信息。此外,在接收到操作信息的情况下,缓冲管理器104可以将与操作信息中的控制信息相关联的缓冲区108与操作信息中的用于标识缓冲区108的id相关联。
[3-1-6.监控部110]
监控部110监控fifo队列102和每个单独的缓冲区108的状态。例如,监控部110监控fifo队列102中的控制信息的总数、向fifo队列102输入控制信息的速度、从fifo队列102输出控制信息的速度、存储在fifo队列102中的每个单独的控制信息的内容等。此外,监控部110监控当前已创建的缓冲区108的数量、存储在每个单独的缓冲区108中的数据量、向每个单独的缓冲区108输入部分数据的速度、从每个单独的缓冲区108输出部分数据的速度等。
应当注意,检测控制信息的输入速度和输出速度以及部分数据的输入速度和输出速度的结果可以呈现给使用监控终端22的监视人员。监视人员能够通过参考这些检测结果来确定服务器10中是否发生了错误。
[3-1-7.显示控制器112]
显示控制器112使用监控部110取得的信息来控制监控终端22的显示。例如,显示控制器112利用由监控部110取得的信息,生成用于进行监控的显示信息(例如字符串、表格、图形等),并使监控终端22显示该显示信息。例如,监控终端22可以使用网络浏览器来显示显示信息。
[3-1-8.操作部114]
在从监控终端22接收到用户(例如监视人员)的指令信息的情况下,操作部114基于该指令信息改变存储在fifo队列102或每个单独的缓冲区108中的信息。例如,在从监控终端22接收到用于改变存储在fifo队列102中的两个或更多个控制信息的顺序关系的指令信息的情况下,操作部114根据该指令信息改变存储在fifo队列102中的多个控制信息的顺序关系。
作为变型例,控制器100和操作部114可以一体地构造,而不是彼此分开地构造。
[3-1-9.通信部120]
通信部120是根据本公开的接收器和发送器的实例。通信部120可以包括后文描述的通信装置162。通信部120通过例如通信网络24向其他装置发送信息和从其他装置接收信息。例如,通信部120从一个或多个用户终端30以及一个或多个处理服务器20接收操作信息。通信部120根据控制器100的控制,向目标处理服务器20发送从fifo队列102取出的控制信息或从任一个缓冲区108取出的部分数据。
[3-2.处理流程]
以上已经对第一实施方式的结构进行了描述。接下来,将在“3-2-1.输入输入数据时的处理流程”和“3-2-2.处理输入数据时的处理流程”中对根据第一实施方式的处理流程进行描述。
[3-2-1.输入输入数据时的处理流程]
首先,参照图7,将对“输入输入数据时的处理流程”进行描述。图7是说明输入输入数据时的流程处理的实例的时序图。在此,将描述一个用户终端30向服务器10发送操作信息的情况的实例。
如图7所示,首先,用户终端30例如基于用户的操作生成包括控制信息的操作信息。此后,用户终端30将所生成的操作信息发送到服务器10(s101)。之后,服务器10的控制器100执行“信息输入/输出处理”(将在后文描述)(s103)。
在s101之后,用户终端30开始输入(感测等)与控制信息对应的输入数据(s105)。然后,用户终端30确定输入数据的输入持续时间是否已经达到预定时间。应当注意,如果输入数据的输入持续时间已经达到预定时间至少一次,则用户终端30确定自从上一次向服务器10发送部分数据以来的持续时间长度是否已经达到预定时间(s107)。
在输入数据的输入持续时间已经达到预定时间的情况下(s107:是),则用户终端30首先指定到目前为止输入的数据中没有被发送到服务器10的部分数据,然后生成包括该部分数据的操作信息。此后,用户终端30将所生成的操作信息发送到服务器10(s109)。然后,服务器10的控制器100执行与s103相似的处理(“信息输入/输出处理”)(s111)。此后,用户终端30执行s113(将在后文描述)。
可选地,在输入数据的输入持续时间未达到预定时间的情况下(s107:否),则用户终端30接下来确定输入数据的输入是否已经完成(s113)。在输入数据的输入没有完成的情况下(即正在继续)(s113:否),则用户终端30再次执行s107之后的处理。
可选地,在输入数据的输入已经完成的情况下(s113:是),则用户终端30首先指定整体输入数据的未被发送到服务器10的一部分即部分数据,然后生成包括该部分数据的操作信息。此后,用户终端30将所生成的操作信息发送到服务器10(s115)。然后,服务器10的控制器100执行与s103相似的处理(“信息输入/输出处理”)(s117)。
[3-2-2.处理输入数据时的处理流程]
接下来,参考图8,将对“处理输入数据时的处理流程”进行描述。图8是说明处理输入数据时的流程处理的实例的时序图。在此,将描述一个处理服务器20向服务器10发送操作信息的情况的实例。
如图8所示,首先,处理服务器20生成用于发出指令以输出控制信息的操作信息。然后,处理服务器20将所生成的操作信息发送到服务器10(s151)。
然后,服务器10的控制器100执行与s103相似的处理(“信息输入/输出处理”)(s153)。此后,通信部120根据控制器100的控制,将在s153中取出的控制信息发送到处理服务器20(s155)。
然后,处理服务器20生成用于发出指令以输出与在s155中接收到的控制信息对应的一个部分数据的操作信息。例如,处理服务器20预先存储与用于识别上述缓冲区108的id的生成规则或id体系相关的多个信息。在这种情况下,处理服务器20首先使用这些信息来指定用于识别与控制信息相关联的缓冲区108的id,然后通过将所指定的用于识别的id存储在操作信息中来生成操作信息。
然后,处理服务器20将所生成的操作信息发送到服务器10(s157)。
然后,服务器10的控制器100执行与s103相似的处理(“信息输入/输出处理”)(s159)。此后,通信部120根据控制器100的控制,将在s159中取出的部分数据发送到处理服务器20(s161)。
此后,处理服务器20对在s161中接收到的部分数据执行例如在s155中接收到的控制信息中指定的内容的处理(s163)。
[3-2-3.信息输入/输出处理]
接下来,参见图9,将对s103(s111、s117、s153和s159)中的“信息输入/输出处理”的流程进行描述。图9是说明“信息输入/输出处理”的流程的流程图。首先,如图9所示,服务器10的控制器100解析接收到的操作信息。例如,控制器100指定在该操作信息中指定的命令的类型和该操作信息中的信息的目的地。此外,在所指定的命令是“push”的情况下,控制器100取出存储在操作信息中的信息(具体地,控制信息或部分数据)(s201)。
在s201中指定的目的地是fifo队列102并且s201中指定的命令是“push”的情况下(s203:是,s205:是),则控制器100接着确定在s201中取出的控制信息的信息量是否大于“0”(s207)。在控制信息的信息量为“0”的情况下(s207:否),则“信息输入/输出处理”结束。可选地,在控制信息的信息量大于“0”的情况下(s207:是),则控制器100将控制信息添加到fifo队列102的末尾(s209)。然后,“信息输入/输出处理”结束。
可选地,在s201中指定的目的地是fifo队列102并且s201中指定的命令是“pop”的情况下(s203:是,s205:否,s211:是),则控制器100从fifo队列102中取出存储在fifo队列102的头部的控制信息(s213)。然后,“信息输入/输出处理”结束。
可选地,在s201中指定的目的地是fifo队列102并且s201中指定的命令不是“push”和“pop”中的任一个时(s203:是,s205:否,s211:否),则“信息输入/输出处理”结束。
可选地,在s201中指定的目的地是任一个缓冲区108并且在s201中指定的命令是“push”的情况下(s203:否,s215:是,s217:是),则控制器100接着确认是否存在目的地缓冲区108(s219)。在存在目的地缓冲区108的情况下(s219:是),则控制器100执行s223的处理(将在后文描述)。可选地,在目的地缓冲区108不存在的情况下(s219:否),则控制器100向缓冲管理器104发送请求以生成目的地缓冲区108。随后,缓冲管理器104基于该请求生成缓冲区108,并且唯一地将所生成的缓冲区108与控制信息相关联(s221)。此后,控制器100将在s201中取出的部分数据添加到目的地缓冲区108的末尾(s223)。然后,“信息输入/输出处理”结束。
可选地,在s201中指定的目的地是任一个缓冲区108并且s201中指定的命令是“pop”的情况下(s203:否,s215:是,s217:否,s211:是),则控制器100从缓冲区108中取出存储在目的地缓冲区108的头部的部分数据(s213)。然后,“信息输入/输出处理”结束。
可选地,在s201中指定的目的地是任一个缓冲区108并且s201中指定的命令不是“push”和“pop”中的任一个时(s203:否,s215:是,s217:否,s211:否),则“信息输入/输出处理”结束。此外,在s201中指定的目的地既不是fifo队列102也不是任一个缓冲区108的情况下(s203:否,s215:否),则“信息输入/输出处理”结束。
[3-3.效果]
如上所述,根据第一实施方式的服务器10按照接收顺序,将来自一个或多个用户终端30的多个控制信息添加到fifo队列102,并且根据与存储在fifo队列102中的某控制信息对应的输入数据的部分数据的接收顺序,将该部分数据添加到与该控制信息相关的缓冲区108。因此,根据第一实施方式,提供了两种fifo结构(即,fifo队列102和每个单独的缓冲区108)的存储区,并且服务器10能够将从用户终端30接收到的每个单独的数据适当地存储到这些存储区。其结果是,在处理与从用户终端30接收的每个单独的控制信息对应的输入数据的情况下,可以提高处理的效率。
例如,每当从任一个处理服务器20中接收到用于发出指令以输出某部分数据的操作信息时,服务器10能够取出存储在与该部分数据对应的控制信息相关联的缓冲区108的头部的部分数据,并将取出的部分数据发送到处理服务器20。因此,与已知的消息队列不同,例如,可以在确定输入数据的结束之前,顺序地将整体输入数据的每个单独的部分数据发送到处理服务器20。因此,与已知的消息队列相比,可以减少将整体输入数据发送到处理服务器20之前的延迟时间,从而提高对输入数据执行的处理的效率。
此外,根据第一实施方式,对于来自用户的输入数据的长度没有预先确定并且难以拒绝来自用户的输入(比如语音识别)的服务或应用,可以接受而不拒绝来自每个单独的用户的输入。
[3-4.应用例]
第一实施方式不限于上述实例。接下来,将在“3-4-1.应用例1”和"3-4-2.应用例2”中对第一实施方式的应用例进行描述。应当注意,根据本申请的实例的服务器10中所包括的部件与图4所示的实例中的部件类似。
[3-4-1.应用例1]
[3-4-1-1.显示控制器112]
首先,将对应用例1进行描述。根据应用例1的显示控制器112使监控终端22显示指示存储在fifo队列102中的一个或多个控制信息中的每一个控制信息与存储在与控制信息相关联的缓冲区108中的数据量之间的关系的曲线图(在下文中,称为“指示针对每个控制信息的数据量的曲线图”)。
图10图示了根据应用例1的示出针对每个控制信息的数据量的曲线图(直方图60)的实例。如图10所示,直方图60指示fifo队列102中的每个单独的控制信息与存储在每个单独的缓冲区108中的数据量之间的对应关系。
另外,每当从用户终端30接收到控制信息时并且每当从用户终端30接收到与控制信息对应的每个单独的部分数据时,显示控制器112根据该接收,顺序地更新显示在监控终端22上的指示针对每个控制信息的数据量的曲线图,例如如图11所示。图11图示了当在图10中示出的实例的时间点之后从用户终端30新接收到一个控制信息和与该一个控制信息对应的一个或多个部分数据时被更新的直方图60b的实例。在图11所示的实例中,新接收到的控制信息已被添加到fifo队列102中的第“10”个区域,并且与该控制信息相关联的缓冲区108中的所有部分数据的数据量为“50”。
此外,每当从fifo队列102取出fifo队列102中的一个控制信息并将该一个控制信息发送到处理服务器20时,显示控制器112根据该发送,顺序地更新显示在监控终端22上的指示针对每个控制信息的数据量的曲线图,例如如图12所示。图12图示了当在图10中示出的实例的时间点之后从fifo队列102取出一个控制信息时被更新的直方图60c的图。如图12中所示,直方图60c的形状可以是图10中所示的直方图60a相对于水平轴线向左偏移一个刻度。
-变型例
应当注意的是,在图10至图12中的指示针对每个控制信息的数据量的每个曲线图中,示出的实例是“缓冲区108中的数据量”设置在纵轴上,而“fifo队列102中的每个控制信息的存储顺序”设置在横轴上,但是本公开不限于这样的实例。例如,纵轴上的项目和横轴上的项目可以相反地设置。可选地,(代替“fifo队列102中的每个控制信息的存储顺序”),监视人员能够指定多个控制信息之间的顺序关系的其他类型的信息,例如,每个控制信息的创建日期和时间或者与每个生成信息相关联的序列号,可以被设置为横轴上的项。
[3-4-1-2.处理流程]
接着,参见图13,将对应用例1的监控终端22的显示控制的流程的实例进行描述。应当注意,显示控制的流程可以与图7至图9所示的处理流程并行地执行。
如图13所示,首先,监控部110确认fifo队列102中的元素数量(即,控制信息的数量)是否已经改变(s201)。在fifo队列102中的元素数量没有改变的情况下(s201:否),则显示控制器112执行s211的处理,其将在后文描述。
可选地,在fifo队列102中的元素数量已经减少的情况下(s201:是,s203:是),则显示控制器112在监控终端22当前显示的指示针对每个控制信息的数据量的曲线图中,例如如图10所示,删除与在fifo队列102中的顺序为第一个的控制信息对应的显示信息(s205)。之后,显示控制器112执行s211的处理,其将在后文进行描述。
可选地,在fifo队列102中的元素数量已经增多的情况下(s201:是,s203:否),则监控部110首先指定与新添加到fifo队列102的控制信息相关联的缓冲区108中的数据量(s207)。然后,显示控制器112在监控终端22当前显示的曲线图中,添加与所添加的控制信息对应的指示在s207中指定的数据量的显示信息(s209)。
之后,显示控制器112更新显示,使得曲线图中包括的指示每个缓冲区108中的数据量的显示指示当前的数据量(s211)。然后,服务器10重复s201至s211的处理,直到例如服务器10停止。
[3-4-1-3.效果]
如上所述,根据应用例1,通过查看监控终端22上显示的针对每个控制信息的数据量的曲线图,监视人员能够一目了然地理解存储在fifo队列102中的每个单独的控制信息与每个缓冲区108中的数据量之间的关系。其结果是,监视人员能够及早发现错误数据。另外,监视人员能够根据情况迅速且适当地执行关于从用户终端30接收到的每个单独的部分数据的处理的异常操作。例如,监视人员能够通过异常地手动改变存储在fifo队列102中的每个单独的控制信息的顺序关系,或者强制中断处理服务器20执行的处理。
[3-4-2.应用例2]
[3-4-2-1.显示控制器112]
以上已对应用例1进行了描述。接下来,将对根据第一实施方式的应用例2进行描述。根据应用例2的显示控制器112使监控终端22显示指示以下关系的曲线图:存储在fifo队列102中的一个或多个控制信息中的每一个控制信息与控制信息相关联的缓冲区108中的数据量之间的第一关系,以及从fifo队列102取出的一个或多个控制信息中的每一个控制信息与控制信息相关联的数据量之间的第二关系,该曲线图区别地指示第一关系与第二关系。在下文中,将第一关系称为“等待状态下的针对每个控制信息的数据量”,将第二关系称为“处理期间的针对每个控制信息的数据量”。
图14图示了根据应用例2的曲线图(曲线图62)的实例,其中“等待状态下的针对每个控制信息的数据量”与“处理期间的针对每个控制信息的数据量”相区别。如图14所示,在曲线图62中,从曲线图62的中间向左放置指示“处理期间的针对每个控制信息的数据量”的直方图620,从曲线图62的中间向右放置指示“等待状态下的针对每个控制信息的数据量”的直方图622。然而,直方图620和直方图622之间的位置关系不限于此,并且可以颠倒。可选地,尽管曲线图62被分为左和右以显示“等待状态下的针对每个控制信息的数据量”和“处理期间的针对每个控制信息的数据量”,但是该实例不限于此,曲线图62还可以被划分为顶部和底部以显示“等待状态下的针对每个控制信息的数据量”和“处理期间的针对每个控制信息的数据量”。
[3-4-2-2.处理流程]
接下来,参考图15,将对根据应用例2的显示控制的流程的实例进行描述。应当注意,显示控制的流程可以与图7至图9所示的处理流程并行地执行。
如图15所示,首先,监控部110确认fifo队列102中的元素数量(即,控制信息的数量)是否已经改变(s301)。在fifo队列102中的元素数量没有改变的情况下(s301:否),则显示控制器112执行s311的处理,其将在后文描述。
可选地,在fifo队列102中的元素数量已经减少的情况下(s301:是,s303:是),则显示控制器112将监控终端22当前显示的“区别地指示等待状态下的针对每个控制信息的数据量与处理期间的针对每个控制信息的数据量的曲线图(例如如图14所示)”中的每个直方图的显示位置在横轴上向左偏移一个刻度(s305)。之后,显示控制器112执行s311的处理,其将在后文进行描述。
可选地,在fifo队列102中的元素数量已经增多的情况下(s301:是,s303:否),则监控部110首先指定与新添加到fifo队列102的控制信息相关联的缓冲区108中的数据量(s307)。然后,显示控制器112在监控终端22当前显示的曲线图中,添加与所添加的控制信息对应的指示在s307中指定的数据量的显示信息(s309)。
之后,显示控制器112更新显示,使得曲线图中包括的指示每个缓冲区108中的数据量的显示指示当前的数据量(s311)。然后,服务器10重复s301至s311的处理,直到例如服务器10停止。
[4.第二实施方式]
[4-1.fifo队列102]
以上已对第一实施方式进行了描述。接下来,将对根据本公开的第二实施方式进行描述。与第一实施方式相比,根据第二实施方式的服务器10的不同之处在于,服务器10具有多个fifo队列102,例如如图16所示。另外,每个单独的fifo队列102对于将处理服务器20执行的处理具有不同程度的优先级。
[4-2.显示控制器112]
根据第二实施方式的显示控制器112能够使监控终端22显示如图17所示的监控画面,例如,该监控画面指示每个单独的fifo队列102中的每个单独的控制信息的存储状态。
图17图示了监控画面的显示实例(监控画面70)。图17中所示的实例指示在优先级为“1”的fifo队列102a中存储4个控制信息、在优先级为“10”的fifo队列102b中存储1个控制信息的状态。
监控画面70还可以接受用户将存储在一个fifo队列102中的控制信息移动到另一个fifo队列102中的操作。例如,如图17中的虚线箭头所示,假设监视人员相对于监控终端22的输入单元执行将优先级为“1”的fifo队列102a中的控制信息1020a移动到优先级为“100”的fifo队列102c中的操作。在这种情况下,监控终端22将与该操作对应的指令信息发送到服务器10。然后,服务器10的操作部114首先基于指令信息从优先级为“1”的fifo队列102a中取出fifo队列102a中的控制信息1020a。之后,操作部114基于指令信息将控制信息1020a添加到优先级为“100”的fifo队列102c中的指定位置。
因此,根据第二实施方式,监督人员能够在优先级彼此不同的fifo队列102之间的改变控制信息的存储位置。
[5.硬件结构]
接下来,将参考图18对各实施方式共同的服务器10的硬件结构的实例进行描述。如图18所示,服务器10包括cpu150、rom(只读存储器)152、ram(随机存取存储器)154、总线156、接口158、存储装置160以及通信装置162。
cpu150用作运算处理装置和控制装置,根据各种程序控制服务器10的整体操作。另外,cpu150例如在服务器10中实现控制器100的功能。cpu150包括处理器,比如微处理器。
rom152存储cpu150使用的控制数据,比如程序和操作参数。
ram154临时存储例如cpu150执行的程序或正在使用的数据。
总线156包括cpu总线等。总线156将cpu150、rom152和ram154相互连接。
接口158将存储装置160和通信装置162连接到总线156。
存储装置160是用于存储例如用作fifo队列102和整体缓冲区106的数据的装置。存储装置160包括例如存储介质、用于在存储介质上记录数据的存储装置、用于从存储介质读取数据的读取装置、或用于删除记录在存储介质上的数据的删除装置。
通信装置162例如可以是包括待与通信网络24等连接的通信装置(例如网卡)的通信接口。此外,通信装置162可以是无线lan可用的通信装置、lte(长期演进)可用的通信装置或有线通信装置。通信装置162用作通信部120。
[6.变型例]
以上已经参照附图详细描述了本公开的优选实施方式,但是本公开的技术范围不限于这样的实施方式。显然,本公开的本领域普通技术人员可以在所附权利要求中描述的技术思想的范围内进行各种变更和修改,并且应当理解,这样的变更和修改自然地落入本公开的技术范围内。
例如,fifo队列102、缓冲管理器104、整体缓冲区106、监控部110、显示控制器112和操作部114中的一个或多个可以被包括与通信网络24连接的一个或多个其他装置中,而不是被包括在服务器10中。在这种情况下,根据上述实施方式的服务器10的功能可以通过服务器10与一个或多个其他装置的协同操作来实现。
作为另一个变型例,图1中仅示出了一个服务器10,但不限于此实例。根据上述实施方式的服务器10的功能可以通过多个计算机协同操作来实现。
作为另一个变型例,根据本公开的信息处理装置不限于服务器10。例如,信息处理装置可以是具有包括在上述服务器10中的每个部件的另一类型的装置。作为实例,信息处理装置可以是通用pc(个人计算机)、平板型终端、游戏机、移动电话比如智能手机、便携式音乐播放器、扬声器、投影仪、可穿戴设备比如hmd(头戴式显示器)或智能手表、车载设备(比如车载导航设备)或机器人(比如仿人机器人、自主汽车、无人机等)。
此外,根据上述各实施方式的处理流程中的各步骤不必按所记载的顺序进行处理。例如,可以适当地改变步骤的顺序。而且,这些步骤可以部分并行或单独处理,而不是按时间序列处理。此外,可以省略所描述的步骤中的一部分,或者可以进一步添加其他步骤。
另外,根据上述实施方式,提供了一种计算机程序,用于使诸如cpu150、rom152和ram154等硬件能够发挥与根据每个实施方式的服务器10的部件相对应的功能。此外,还提供记录有该计算机程序的存储介质。
此外,本文中描述的效果仅仅是说明性和示例性的,而不是限制性的。也就是说,除了上述效果之外或代替上述效果,根据本公开的技术可发挥对本领域技术人员从本文的描述显而易见的其它效果。
应当注意,本公开可以具有以下结构。
(1)一种信息处理装置,包括:
接收器,其从另一装置接收多个控制信息;以及
控制器,其按照接收顺序,将从另一装置接收的多个控制信息添加到预定存储区中,并且根据与存储在预定存储区中的第一控制信息对应的第一输入数据的部分数据的接收顺序,将该部分数据添加到与第一控制信息相关的第一缓冲区。
(2)根据(1)所述的信息处理装置,其中,存储在预定存储区中的包括第一控制信息的多个控制信息分别与包括第一缓冲区的多个缓冲区中的彼此不同的缓冲区相关。
(3)根据(2)所述的信息处理装置,其中,控制器还根据第二输入数据的部分数据的接收顺序,向与存储在预定存储区中的第二控制信息相关的第二缓冲区添加与第二控制信息对应的第二输入数据的部分数据。
(4)根据(2)或(3)所述的信息处理装置,其中,存储在预定存储区中的多个控制信息中,存储顺序越靠前的控制信息,从预定存储区中取出的顺序越靠前。
(5)根据(4)所述的信息处理装置,其中,存储在多个缓冲区中的每一个缓冲区中的对应于与缓冲区相关的控制信息的一个或多个输入数据的部分数据中,存储顺序越靠前的部分数据,从缓冲区中取出的顺序越靠前。
(6)根据(5)所述的信息处理装置,其中,每当从处理与控制信息对应的输入数据的处理装置接收到用于发出指令以输出控制信息的第一操作信息时,控制器从预定存储区中取出存储顺序在存储在预定存储区中的多个控制信息中是最先的控制信息,并使发送器将取出的控制信息发送到处理装置。
(7)根据(6)所述的信息处理装置,其中,每当从处理装置接收到用于发出指令以输出部分数据的第二操作信息时,控制器从第一缓冲区取出存储顺序在第一缓冲区内是最先的部分数据,并使发送器将取出的部分数据发送到处理装置。
(8)根据(7)所述的信息处理装置,其中,每当从处理装置接收到第二操作信息时,控制器基于第二操作信息从多个缓冲区中指定第一缓冲区,以从第一缓冲区取出一个部分数据。
(9)根据(5)至(8)中任一项所述的信息处理装置,还包括:
显示控制器,其在显示画面上显示指示从另一装置接收到的多个控制信息中的每一个控制信息与存储在与控制信息相关的缓冲区中的数据量之间的关系的图像。
(10)根据(9)所述的信息处理装置,其中,每当从另一装置接收到控制信息时,以及每当从另一装置接收到与控制信息对应的输入数据的部分数据时,显示控制器使显示画面显示指示已经根据接收而改变的关系的图像。
(11)根据(10)所述的信息处理装置,其中,每当从预定存储区取出存储在预定存储区中的多个控制信息中的任一个控制信息并将取出的控制信息发送到处理与控制信息对应的输入数据的处理装置时,显示控制器使显示画面显示指示已经根据发送而改变的关系的图像。
(12)根据(9)至(11)任一项所述的信息处理装置,其中,显示控制器使显示画面显示指示以下关系的图像:
存储在预定存储区中的多个控制信息中的每一个控制信息与存储在与控制信息相关的缓冲区中的数据量之间的第一关系,以及
已经从预定存储区中取出并且已经发送到处理装置的一个或多个控制信息中的每一个控制信息与存储在与控制信息相关的缓冲区中的数据量之间的第二关系,图像区别地指示第一关系与第二关系。
(13)根据(9)至(12)任一项所述的信息处理装置,其中,多个预定存储区分别具有彼此不同的值,每个值设定为与存储在预定存储区中的相关一个存储区域中的一个或多个控制信息相关的优先级。
(14)根据(13)所述的信息处理装置,其中,
多个预定存储区包括第一存储区和第二存储区,并且
控制器基于来自用户的将存储在第一存储区中的第三控制信息移动到第二存储区的指令,将第三控制信息从第一存储区中取出并将第三控制信息添加到第二存储区。
(15)根据(9)至(14)任一项所述的信息处理装置,其中,第一输入数据为第一控制信息指定的待处理数据。
(16)根据(15)所述的信息处理装置,其中,
第一输入数据是流数据,并且
第一输入数据的部分数据是与流数据的一个块对应的数据。
(17)根据(15)或(16)的信息处理装置,还包括:
预定存储区;以及
多个缓冲区。
(18)根据(17)的信息处理装置,还包括:
缓冲管理器,在从另一装置接收到与任一个缓冲区无关的第四控制信息的情况下,在包括多个缓冲区的存储部中生成新的缓冲区,并将所生成的缓冲区与第四控制信息相关联。
(19)一种信息处理方法,包括:
从另一装置接收多个控制信息;以及
处理器按照接收顺序,将从另一装置接收的多个控制信息添加到预定存储区中,并且根据与存储在预定存储区中的第一控制信息对应的第一输入数据的部分数据的接收顺序,将部分数据添加到与第一控制信息相关的第一缓冲区。
(20)一种程序,其用于使计算机充当:
接收器,其从另一装置接收多个控制信息,以及
控制器,其按照接收顺序,将从另一装置接收的多个控制信息添加到预定存储区中,并且根据与存储在预定存储区中的第一控制信息对应的第一输入数据的部分数据的接收顺序,将部分数据添加到与第一控制信息相关的第一缓冲区。
附图标记列表
10服务器20处理服务器
22监控终端24通信网络
30用户终端100控制器
102fifo队列104缓冲管理器
106整体缓冲区108缓冲区
110监控部112显示控制器
114操作部120通信部