信息处理装置及信息处理装置的控制方法与流程

文档序号:12486305阅读:356来源:国知局
信息处理装置及信息处理装置的控制方法与流程

本发明涉及信息处理装置、信息处理装置的控制方法以及程序。



背景技术:

近年来,针对安装在办公室中的图像形成装置,能够扩展图像形成装置的功能的系统已经流行。使用软件程序(扩展软件)实现功能的扩展(下文中,这种功能被称为扩展功能),并且不仅可以在出厂时扩展功能,而且可以在安装系统之后或者在系统操作中扩展功能。这种系统的具体示例为可从佳能株式会社获得的多功能嵌入式应用平台(MEAP)(注册商标)。

已知从外部服务器下载用户选择的扩展软件,并安装该扩展软件,从而扩展图像形成装置的功能(例如,参照日本特许第4039439号公报)。

尤其是,专用于特定用途的扩展软件被称为应用软件(下文中也简称为应用)。各应用通过使用图像形成装置的功能(例如传真功能、扫描器功能、打印机功能等),来实现其用途。图像形成装置被构造为使得根据用户期望的用途而能够安装多个应用。

在传统技术中,通过应用程序定义用于实现期望处理的过程。各应用能够仅执行在程序中预先定义的处理。如果期望实现其他处理,则需要修改应用程序或使用其他应用程序,并因此难以灵活地扩展功能。



技术实现要素:

本发明提供如下机制:使得能够灵活地扩展诸如图像形成装置等的信息处理装置的功能。

根据本发明的一方面,提供了一种信息处理装置,其能够通过扩展程序添加功能,所述信息处理装置包括:登记单元,其被构造为登记关于具有针对各类型的功能定义的接口的所述扩展程序的信息;设置单元,其被构造为设置所述扩展程序的使用条件;执行单元,其被构造为通过根据定义文件组合多个扩展程序,来执行处理序列,所述定义文件定义包括多个步骤的所述处理序列;以及确定单元,其被构造为当通过所述执行单元执行所述处理序列时,根据在所述登记单元中登记的关于所述扩展程序的信息、以及在所述设置单元中设置的所述扩展程序的使用条件,动态地确定执行所述处理序列的各步骤的扩展程序。

在通过根据定义包括多个步骤的处理序列的定义文件而组合多个扩展程序来执行处理序列的情况下,根据关于登记的扩展程序的信息以及针对该扩展程序设置的使用条件,动态地确定执行处理序列中的步骤的各扩展程序。通过以下参照附图对示例性实施例的描述,本发明的其他特征将变得清楚。

附图说明

图1是例示包括根据实施例的图像处理装置(MFP)的系统的构造的图。

图2是例示MFP的硬件构造的图。

图3是例示服务器的硬件构造的图。

图4是例示MFP的软件构造的图。

图5是例示与图像处理系统相关联的处理序列的图。

图6是例示更新MFP中的功能提供器信息表的处理的流程图。

图7是例示功能提供器信息表的示例的图。

图8是例示设置MFP中的功能提供器设置表的处理的流程图。

图9A至图9C是例示功能提供器设置表的示例的图。

图10是例示工作流定义文件的示例的图。

图11是例示执行MFP中的工作流的处理的流程图。

图12A至图12C是例示搜索MFP中的功能提供器的处理的流程图。

图13是例示功能提供器接口的定义的示例的图。

具体实施方式

下面将结合附图,参照实施例进一步详细描述本发明。

图1是例示包括根据实施例的图像处理装置(作为信息处理装置的示例)的系统的构造的示例的图。

根据本实施例的系统包括经由局域网(LAN)110连接的多功能打印机(MFP)101、以及经由广域网(WAN)120连接的服务器102。LAN 110上的装置和WAN 120上的装置能够经由各自的网络相互进行通信。请注意,图1例示了网络构造的典型示例,并且各装置可以位于LAN 110或WAN 120中任意一者上。

MFP 101是多功能外围设备,即包括扫描器和打印机的图像形成装置。MFP 101包括用于添加扩展软件并在该装置上执行该扩展软件的软件平台。也就是说,MFP 101是能够使用扩展软件(扩展程序)添加或扩展功能的信息处理装置。

服务器102是被构造为与MFP 101协作进行各种处理的服务器。更具体地说,例如,服务器102可以是被构造为从MFP 101接收图像数据的文件服务器、被构造为响应于从MFP 101接收到的处理请求进行光学字符识别(OCR)处理的应用服务器等。服务器102的数量不限于一个,而可以根据用途提供多个服务器。

图2是例示MFP 101的构造的示例的框图。

包括中央处理单元(CPU)211的控制单元210控制整个MFP 101的操作。

CPU 211读出存储在只读存储器(ROM)212或硬盘驱动器(HDD)214中的控制程序,并通过执行控制程序来进行与读取、发送等相关联的各种控制处理。ROM 212存储各种程序和数据。随机存取存储器(RAM)213用作CPU 211的主存储器,还用作诸如工作区域等的临时存储区域。HDD 214是用于存储图像数据和包括安装的扩展软件的各种程序的硬盘驱动器。请注意,诸如固态存储器(SSD)等的其他类型的存储装置可以用来代替HDD,或与HDD一起使用。

操作单元接口(I/F)215将操作单元219连接至控制单元210。操作单元219包括具有触摸屏功能的液晶显示单元、键盘等。

打印机I/F 216连接打印机220和控制单元210。经由打印机I/F 216将要由打印机220打印的图像数据从控制单元210发送至打印机220,并通过打印机220将该图像数据打印机在记录介质上。

扫描器I/F 217将扫描器221连接至控制单元210。扫描器221读取原稿上的图像,并生成原稿的图像数据,并且经由扫描器I/F 217将所得的图像数据输出至控制单元210。

网络I/F 218将控制单元210(MFP 101)连接至LAN 110。网络I/F 218将各种信息发送至LAN 110或WAN 120上的其他装置,或者从LAN 110或WAN 120上的其他装置接收各种信息。

图3是例示服务器102的构造的示例的框图。

包括CPU 311的控制单元310控制整个服务器102的操作。CPU 311读出存储在ROM 312或HDD 314中的控制程序,并执行各种控制处理。ROM 312存储各种程序和数据。RAM 313用作CPU 311的主存储器,还用作诸如工作区域等的临时存储区域。HDD 314存储各种程序和数据。请注意,诸如SSD等的其他类型的存储装置可以用来代替HDD,或与HDD一起使用。

显示单元I/F 315将显示单元318连接至控制单元310。键盘I/F 316将键盘319和诸如鼠标的定点设备连接至控制单元310。CPU 311识别用户经由键盘319等给出的命令,并根据识别出的命令改变显示单元318上显示的画面。

网络I/F 317将控制单元310(服务器102)连接至WAN 120。网络I/F 317将各种信息发送至LAN 110或WAN 120上的其他装置,或者从LAN 110或WAN 120上的其他装置接收各种信息。

图4是例示根据本实施例的MFP 101的软件构造的图。图4中所示的各单元是通过CPU 211将存储在MFP 101的HDD 214中的程序(软件)读取到RAM 213中、并且分析并执行所读取的程序而实现的功能单元。

扩展软件管理单元410是用于在MFP 101上运行扩展软件的软件平台。在图4所示的示例中,安装有六个功能提供器411至功能提供器416,作为MFP 101中的扩展软件。

请注意,尽管功能提供器是一种扩展软件,但是功能提供器不是应用。各应用自身具有以输入开始并以输出结束的完整的处理序列。相比之下,各功能提供器专用在诸如输入、输出等的具体功能中。因此,为了通过使用功能提供器进行以输入开始并以输出结束的完整的处理序列,需要组合多个功能提供器。

例如,当功能“扫描图像、显示预览、然后发送结果”被提供给用户时,如果使用应用程序实现功能,则使用单个应用程序实现“扫描”、“预览”和“发送”这三个功能。另一方面,为了通过使用功能提供器提供上述功能,需要使用以下三个功能提供器:用来实现扫描功能的功能提供器;用来实现预览功能的功能提供器;以及用来实现发送功能的功能提供器。此外,为了执行通过这三个功能提供器实现的完整的功能序列,还需要使用如稍后描述的工作流处理单元430和工作流定义文件440。

在使用应用的情况下,登记应用,使得各应用显示在相同的水平线上,在该水平线上,相应的功能显示在用于调用原始配设在MFP 101上的功能(例如复印功能、传真发送功能)的菜单画面中。响应于用户在菜单画面上输入的命令来调用应用。相比之下,功能提供器未登记在菜单画面中,而是登记在稍后描述的功能提供器管理单元420中。响应于工作流处理单元430经由功能提供器管理单元420发出的命令,来调用功能提供器。

对功能提供器进行编程,以满足稍后描述的功能提供器管理单元420定义的规则(下文中称为功能提供器接口)。功能提供器接口是定义软件间通信方面的规则的软件接口。针对由功能提供器提供的各功能类型,单独确定功能提供器接口。根据功能提供器接口,通过工作流处理单元430来调用功能提供器。

一个功能提供器根据用途而可以具有多个不同类型的接口。例如,针对用来实现扫描功能的功能提供器,为不同用途准备的接口可以是用于显示扫描设置画面的接口、以及用于执行扫描作业的接口。

此外,可以在MFP 101中安装多种类型的功能提供器。在这种情况下,所安装的多种类型的功能提供器在功能类型方面可以不同或相同。相同功能类型的功能提供器具有相同的软件接口。因此,在功能提供器在功能类型方面相同的情况下,使得扩展软件能够以类似的方式进行软件通信。

标准扫描提供器411和简单扫描提供器412两者均是提供扫描功能的功能提供器(功能类型=扫描)。功能类型为“扫描”的功能提供器通常称为扫描提供器。各扫描提供器实现针对功能类型为“扫描”的功能提供器定义的功能提供器接口(扫描提供器接口)。

标准扫描提供器411具有供普通用户使用的扫描设置画面。简单扫描提供器412具有供对MFP 101的操作不熟悉的用户使用的扫描设置画面。

OCR包括通过读取打印形式的数据并识别字符,来将文本转换为机器编码文本。内置OCR提供器413和Web OCR提供器414两者均是提供OCR功能的功能提供器(功能类型=OCR)。功能类型为“OCR”的功能提供器通常被称为OCR提供器。各OCR提供器实现针对功能类型为“OCR”的功能提供器定义的功能提供器接口(OCR提供器接口)。内置OCR提供器413通过在MFP 101上进行字符识别处理来提供OCR功能。另一方面,Web OCR提供器414通过调用由外部Web服务器(例如服务器102)提供的字符识别处理,来提供OCR功能。

文件传输协议(FTP)发送提供器415是提供FTP发送功能的功能提供器(功能类型=文件发送)。功能类型为“文件发送”的功能提供器通常称为文件发送提供器。FTP发送提供器实现针对功能类型为“文件发送”的功能提供器定义的功能提供器接口(文件发送提供器接口)。

预览提供器416是提供图像显示功能的功能提供器(功能类型=图像显示)。功能类型为“图像显示”的功能提供器通常称为图像显示提供器。图像显示提供器实现针对功能类型为“图像显示”的功能提供器定义的功能提供器接口(图像显示提供器接口)。

即使在MFP 101中不存在相同功能类型的其他功能提供器的情形下,各功能提供器也实现针对其功能类型定义的功能提供器接口。

上述六个功能提供器411至功能提供器416仅仅是示例,MFP 101可以包括用作附加的各种功能提供器的扩展软件,或者可以移除上述功能提供器中的一些。

功能提供器管理单元420是管理安装在MFP 101中的功能提供器的软件。功能提供器管理单元420包括功能提供器登记单元421、功能提供器设置单元422、功能提供器搜索单元423、功能提供器信息表424、功能提供器设置表425、以及功能提供器接口定义426。

响应于从功能提供器接收到请求,功能提供器登记单元421将在功能提供器的功能类型、能够设置的值等方面的、关于功能提供器的信息登记在功能提供器信息表424中。响应于从用户接收到请求,功能提供器设置单元422在功能提供器设置表425中进行在功能提供器的优先顺序、针对各用户功能提供器有效还是无效等方面的与功能提供器相关联的设置。稍后将参照图7描述功能提供器信息表424的详情,并且稍后将参照图9描述功能提供器设置表425的详情。

当功能提供器搜索单元423从稍后描述的工作流处理单元430接收到功能提供器搜索条件时,功能提供器搜索单元423基于在功能提供器信息表424和功能提供器设置表425中描述的信息,检测满足搜索条件的功能提供器。功能提供器搜索单元423仅返回一个功能提供器作为搜索结果。因此,在找到满足搜索条件的多个功能提供器的情况下,选择优先顺序最高的功能提供器,作为搜索结果。

功能提供器接口定义426定义功能提供器接口。稍后将参照图13描述功能提供器接口定义426的详情。

工作流处理单元430通过根据以下描述的工作流定义文件440组合多个功能提供器,来执行作为处理序列的多个处理。在本公开中,工作流表示包括通过组合多个功能提供器而实现的多个步骤的处理序列。

工作流定义文件440定义在要由工作流处理单元430调用的功能提供器的搜索条件、调用顺序、应用于调用的功能提供器的设置值等方面的与功能提供器的调用相关联的信息。在图4所示的示例中,仅定义了一个工作流定义文件。然而,工作流定义文件的数量不限于一个,而在MFP 101上可以存在多个工作流定义文件。稍后将参照图10描述工作流定义文件440的详情。

图5是例示在根据本实施例的MFP 101上进行的处理序列的流程的图。通过CPU 211将存储在MFP 101的HDD 214中的程序(软件)读取到RAM 213中、并且分析并执行所读取的程序而实现的各功能单元,来执行图5所示的处理。

当标准扫描提供器411启动时,标准扫描提供器411指示功能提供器管理单元420将标准扫描提供器411登记为功能提供器(S501)。该指令包括在登记中必要的信息。

响应于接收到该登记命令,功能提供器管理单元420将该指令中包括的登记信息与功能提供器,相关联地存储在功能提供器信息表424中(S502)。

与标准扫描提供器411一样,当功能提供器412至功能提供器416启动时,功能提供器412至功能提供器416指示功能提供器管理单元420将它们登记为功能提供器(S503、S505、S507、S509、S511)。

当功能提供器管理单元420接收到这些登记命令时,功能提供器管理单元420将该指令中包括的登记信息与功能提供器,相关联地存储在功能提供器信息表424中(S504、S506、S508、S510、S512)。

接下来,当功能提供器管理单元420从用户接收到功能提供器设置命令时(S520),功能提供器管理单元420根据命令内容来更新功能提供器设置表425(S521)。

接下来,当工作流处理单元430从用户接收到工作流执行命令时(S530),工作流处理单元430读取与接收到的执行命令相对应的工作流定义文件440(S531)。这里,通过示例假设工作流定义文件440定义了依次执行“功能类型为扫描的功能提供器”、“功能类型为OCR的功能提供器”以及“FTP发送提供器”。在工作流定义文件中,可以允许通过指定功能类型或唯一指定特定的功能提供器,来指定要执行的功能提供器。

工作流处理单元430指示功能提供器管理单元420搜索“功能类型为扫描的功能提供器”,即扫描提供器(S532)。命令包括在工作流定义文件440中定义的搜索条件。响应于接收到搜索命令,功能提供器管理单元420基于功能提供器信息表424和功能提供器设置表425中描述的信息,提取满足搜索条件的扫描提供器(S533)。在找到多个满足搜索条件的扫描提供器的情况下,功能提供器管理单元420选择优先顺序最高的扫描提供器,作为搜索结果。功能提供器管理单元420向工作流处理单元430通知扫描提供器的搜索结果(S534)。

响应于接收到该搜索结果,工作流处理单元430指示由搜索结果表示的扫描提供器进行扫描(S535)。在这种情况下,工作流处理单元430不关心搜索结果是表示标准扫描提供器411还是简单扫描提供器412。无论扫描提供器是标准扫描提供器411还是简单扫描提供器412,它们的相同之处在于,二者均是扫描提供器。因此,使得工作流处理单元430能够根据扫描提供器接口发出扫描命令,而无需检测扫描提供器是标准扫描提供器411还是简单扫描提供器412。

当扫描提供器(在图5所示的示例中为标准扫描提供器411)从工作流处理单元430接收到扫描命令时,扫描提供器根据该命令进行扫描(S536)。

接下来,工作流处理单元430指示功能提供器管理单元420搜索“功能类型为OCR的功能提供器”,即OCR提供器(S537)。命令包括在工作流定义文件440中定义的搜索条件。当功能提供器管理单元420接收到搜索命令时,功能提供器管理单元420基于功能提供器信息表424和功能提供器设置表425中描述的信息,提取满足搜索条件的OCR提供器(S538)。在找到多个满足搜索条件的OCR提供器的情况下,选择优先顺序最高的OCR提供器,作为搜索结果。功能提供器管理单元420向工作流处理单元430通知OCR提供器的搜索结果(S539)。

响应于接收到该搜索结果,工作流处理单元430指示由搜索结果表示的OCR提供器进行OCR处理(S540)。

当OCR提供器(在图5所示的示例中为内置OCR提供器413)从工作流处理单元430接收到OCR命令时,OCR提供器根据该命令进行OCR处理(S541)。

接下来,工作流处理单元430指示功能提供器管理单元420搜索FTP发送提供器415(S542)。功能提供器管理单元420向工作流处理单元430通知FTP发送提供器415的搜索结果(S543)。

响应于接收到该搜索结果,工作流处理单元430指示由搜索结果表示的FTP发送提供器415进行发送处理(S545)。

当FTP发送提供器415从工作流处理单元430接收到发送命令时,FTP发送提供器415根据该命令进行发送处理(S546)。

图6是例示当启动各功能提供器时由各功能提供器在图5所示的步骤S501至步骤S512的相应一个步骤中进行的处理的流程图。通过CPU 211将存储在MFP 101的HDD 214中的程序加载到RAM 213中、并且分析并执行加载的程序,来实现该流程图所示的处理。

首先,响应于触发(例如启动MFP 101或用户发出的命令),扩展软件管理单元410启动功能提供器(S601)。

启动的功能提供器(在图4所示的示例中为功能提供器411至功能提供器416)中的各个,(根据功能类型、允许的设置值等)向功能提供器登记单元421通知各个功能提供器的信息,并指示功能提供器登记单元421将该信息登记为功能提供器(S602)。

当功能提供器登记单元421从功能提供器接收到登记命令时(S603),功能提供器登记单元421将接收到的信息存储在功能提供器信息表424中,由此更新功能提供器信息表424(S604)。

图7是例示功能提供器信息表424的示例的图。

如图7所示,功能提供器信息表424描述了各功能提供器在唯一识别功能提供器的功能提供器标识(ID)、功能提供器的名称、功能类型、功能提供器接口、允许对功能提供器设置的值等方面的信息。

图8是例示在图5所示的S520和S521中的处理的流程图。通过CPU 211将存储在MFP 101的HDD 214中的程序加载到RAM 213中、并且分析并执行加载的程序,来实现该流程图中所示的处理。

当功能提供器设置单元422从用户接收到功能提供器设置命令时(S801),功能提供器设置单元422根据命令的内容更新功能提供器设置表425(S802)。

图9A至图9C是例示功能提供器设置表425的示例的图。请注意,功能提供器设置表425包括分别在图9A、图9B和图9C中示出的三个子表。

图9A例示了在对使用MFP 101的所有用户公共适用的功能提供器的设置方面的子表(公共设置表)。更具体地说,公共设置表描述了功能提供器的使用条件方面的设置,使得针对各功能类型定义优先顺序以及被指定为无效的功能提供器。关于优先顺序,按照从最高优先级到最低优先级的顺序描述功能提供器ID。例如,针对功能类型“扫描”,设置优先顺序,使得“正常_扫描(NORMAL_SCAN)”最高,“简单_扫描(EASY_SCAN)”最低。在“无效”栏描述了特定功能提供器的情况下,该特定功能提供器被指定为无效。

图9B例示了在针对用户的各角色单独定义的功能提供器的设置方面的子表(角色设置表)。角色设置表针对各角色并针对各功能类型,定义了优先顺序和无效功能提供器。例如,针对角色为“访客用户”的用户,针对功能类型“OCR”,功能提供器“OCR_WEB”无效。

图9C例示了针对各用户单独定义功能提供器的子表(用户设置表)。用户设置表针对各用户并针对各功能类型,定义了优先顺序和无效功能提供器。例如,针对用户“tanaka”,定义功能类型为“扫描(SCAN)”的优先顺序,使得“简单_扫描”最高,“正常_扫描”最低。

图13是例示根据本实施例的功能提供器接口的定义的示例的图。尽管在本实施例中,通过示例的方式,以程序源代码格式描述了功能提供器接口,但是可以以其他格式描述功能提供器接口。

在图13中,1301表示扫描提供器接口的定义,其中,定义了三个接口“showSettingUI”、“doScan”和“doScanWithSettingUI”。任何扫描提供器都需要包括1301中定义的这三个接口。

接口“showSettingUI”用于显示扫描设置画面,经由该接口接收参数并返回以布尔(真/假值)表达的结果。当用户最终确定扫描设置时,返回“真”。如果用户取消扫描设置,则返回“假”。变量“参数”为在工作流定义文件440中定义并在调用接口时使用的设置值。

接口“doScan”用于执行扫描,经由该接口接收参数并以文档(Document)数据格式返回结果。接口“doScan”使用用户经由“showSettingUI”设置的值或由参数指定的设置值,来执行扫描。

接口“doScanWithSettingUI”使用用户经由显示的扫描设置画面最终确定的值,来执行扫描。

类似地,1302表示OCR提供器接口的定义,1303表示文件发送提供器接口的定义,1304表示预览提供器接口的定义。如上所述,在功能提供器接口定义中,(根据名称、输入和输出)定义了各功能提供器的接口。

图10是例示根据本实施例的工作流定义文件的具体示例的图。在本实施例中,以可扩展标记语言(XML)格式,通过示例的方式描述工作流定义文件。然而,格式不限于XML,而可以以其他格式描述文件。

工作流标签1010表示以下描述为工作流的定义。

功能提供器(FP)标签1020为工作流标签1010的子元素,并且定义了在工作流中执行的功能提供器方面的信息。在FP标签1020中,属性“no”定义了工作流中的功能提供器的执行顺序,其中,no=“1”表示要首先执行关注功能提供器。在FP标签1020中,属性“类型(type)”定义了要执行的功能提供器的功能类型,其中,类型=“扫描”表示关注功能提供器为扫描提供器。

条件标签1021是FP标签1020的子元素,其中,通过子元素必需标签1022和可选标签1023定义扫描提供器的搜索条件。

必需标签1022定义了搜索扫描提供器中的“必要条件”,使得扫描提供器允许将“PDF”设置为设置值“FILE_FORMAT(文件格式)”。

可选标签1023定义了搜索扫描提供器中的“可选条件”。在本示例中,定义了:在使用中,对能够将“文本(TEXT)”设置为设置值“ORIGINAL_TYPE(原稿类型)”的扫描提供器赋予高优先级。

以下描述“必要条件”与“可选条件”之间的差异。

在功能提供器搜索处理中,必要条件是必须满足的条件。如果不存在满足必要条件的功能提供器,则“无功能提供器”为搜索结果。另一方面,当指定可选条件时,以高优先级使用满足可选条件的功能提供器。在不存在满足可选条件的功能提供器的情况下,从搜索条件中移除可选条件。如上所述,在工作流定义文件440中,允许将必要条件和可选条件中的一者或二者,指定为执行工作流中定义的各步骤的功能提供器要满足的条件。

行动标签1024是FP标签1020的子元素,并且定义了调用功能提供器方面的信息。在行动标签中,属性“no”定义了在FP标签中定义的功能提供器当中的执行顺序,并且属性“方法(method)”定义了要调用的接口。在本示例中,行动标签1024定义了在执行扫描提供器时首先调用“showSettingUI”。

参数标签1025是行动标签1024的子元素,并且定义了要在调用行动标签1024中定义的接口(showSettingUI)时传输的设置值。

行动标签1026是FP标签1020的子元素,并且定义了在执行扫描提供器时其次调用“doScan”。

输出标签1027是行动标签1026的子元素,并且定义了“doScan”的执行结果的输出。在输出标签1027中,“类型”属性定义了输出类型为“文档”,并且“id”属性定义了“foo”为唯一识别输出数据的ID。

在FP标签1030中,“no”属性和“类型”属性定义了OCR提供器为要其次执行的功能提供器。必需标签1031定义了OCR提供器的必要条件。在本示例中,定义了OCR提供器需要满足如下条件:允许将“JA(日语)”设置为设置值“LANG(识别语言)”。

行动标签1032是FP标签1030的子元素,并且定义了在执行OCR提供器时首先调用“doOCR”。

输入标签1033定义了“doScan”的输入。在本示例中,定义了要接收由ID“foo”识别出的“文档”格式的数据。具有ID“foo”的数据为在输出标签1027中定义的“doScan”的输出数据。也就是说,定义OCR提供器,使得以“文档”格式接收从扫描提供器输出的扫描数据。

输出标签1034定义了“doOCR”的输出。在本示例中,“类型”属性定义了输出格式为“String(字符串)”并且“id”属性定义了ID“bar”唯一识别输出数据。

在FP标签1040中,no属性和“id”属性定义了FTP发送提供器是要在第三步骤中执行的功能提供器。FP标签可以与FP标签1020和FP标签1030一样,通过使用“类型”属性,利用功能类型来指定功能提供器,或者FP标签可以与FP标签1040一样,通过使用“id”属性来唯一指定功能提供器。

输入标签1041定义了在调用FTP发送提供器中的“doSend”时的输入。在本示例中,定义了从“doScan”的输出中接收由ID“foo”识别出的类型“文档”的数据。

输入标签1042定义了在调用FTP发送提供器中的doSend时的输入。在本示例中,从“doOCR”的输出中接收由ID“bar”识别出的类型“String”的数据。

图11是例示图5所示的S530至S546中的处理的流程图。通过CPU 211将存储在MFP 101的HDD 214中的程序加载到RAM 213中、并且分析并执行加载的程序,来实现该流程图所示的处理。

首先,当工作流处理单元430从用户接收到执行命令时(S1101),工作流处理单元430读取与接收到的执行命令相对应的工作流定义文件440(S1102)。

接下来,工作流处理单元430从工作流定义文件440获取在FP标签中定义的功能提供器定义中的一个(S1103)。请注意,按照执行顺序,依次逐一读取功能提供器定义。这里,通过在FP标签的“no”元素中定义的数字指定执行顺序,使得越小的数字表示越早的执行。

在S1104中,工作流处理单元430确定是否存在接下来要执行的功能提供器的定义。在确定存在接下来要执行的功能提供器的定义的情况下(S1104中的是),工作流处理单元430使处理进行到S1105。

在S1105中,工作流处理单元430从FP标签以及作为FP标签的子元素的条件标签,获取功能提供器的搜索条件,并且工作流处理单元430指示功能提供器搜索单元423搜索功能提供器。稍后将参照图12所示的流程图描述由功能提供器搜索单元423进行的功能提供器的搜索处理的详情。

当工作流处理单元430从功能提供器搜索单元423接收到搜索结果时,工作流处理单元430确定搜索结果是否表示已获得满足搜索条件的功能提供器(S1106)。在确定搜索结果表示未获得满足搜索条件的功能提供器的情况下(S1106中的否),工作流处理单元430发出错误通知(S1131),并且结束工作流的处理。

另一方面,在确定搜索结果表示已获得满足搜索条件的功能提供器的情况下(S1106中的是),工作流处理单元430使处理进行到S1107。

在S1107中,工作流处理单元430从工作流定义文件440中读取作为FP标签的子元素的一个行动标签,使得根据执行顺序逐一读取行动标签(S1107)。这里,通过在行动标签的“no”元素中定义的数字来指定执行顺序,使得越小的数字表示越早的执行。

接下来,在S1108中,工作流处理单元430确定是否存在接下来要处理的行动标签。在确定存在接下来要处理的行动标签的情况下(S1108中的是),工作流处理单元430使处理进行到S1109。

在S1109中,根据行动标签的定义,工作流处理单元430调用作为S1105中的搜索结果而获取的功能提供器。在该步骤中,如果将参数标签或输入标签定义为行动标签的子元素,则工作流处理单元430根据其定义给出功能提供器的输入。例如,输入标签1033定义了要在调用OCR提供器的“doOCR”时给出的输入,使得要接收由ID“foo”识别出的“文档”类型的数据。ID为“foo”的数据是在输出标签1027中定义的扫描提供器的“doScan”的输出数据。由此,工作流处理单元430传输数据,使得在工作流处理单元430中保持的“doScan”的输出数据,被给出作为调用“doOCR”时的输入数据。

由工作流处理单元430调用的功能提供器根据指令执行处理(S1121)。

工作流处理单元430等待调用的功能提供器完成处理的执行(S1110)。当功能提供器完成了处理的执行时,工作流处理单元430将来自功能提供器的输出存储在HDD 214或RAM 213中,使得能够使用该输出作为其他功能提供器的输入(S1111)。例如,输出标签1027定义了当调用扫描提供器的“doScan”时出现的输出,使得从“doScan”输出的类型“文档”的数据存储为具有ID“foo”的数据。在存储来自功能提供器的输出之后,工作流处理单元430使处理进行到S1107,以获取接下来要处理的行动标签。

另一方面,在确定不存在接下来要处理的行动标签的情况下(S1108中的否),工作流处理单元430确定已经获取包括最后一个的所有行动标签,并且工作流处理单元430使处理进行到S1103,以获取下一个功能提供器定义。

另一方面,在S1104中确定不存在接下来要执行的功能提供器的定义的情况下(S1104中的否),工作流处理单元430确定已经执行包括最后一个的所有功能提供器,并且工作流处理单元430结束工作流的执行。

接下来,下面参照图12A至图12C所示的流程图,来描述由功能提供器搜索单元423进行的功能提供器搜索处理。

图12A至图12C例示了响应于图11所示的S1105中的调用而进行的处理的流程图,该处理对应于图5所示的S533、S538和S543中进行的处理。通过CPU 211将存储在MFP 101的HDD 214中的程序加载到RAM 213中、并且分析并执行加载的程序,来实现该流程图所示的处理。

首先,功能提供器搜索单元423从工作流处理单元430接收功能提供器搜索命令(S1201)。该搜索命令包括在FP标签、以及作为FP标签的子元素的条件标签中定义的功能提供器的搜索条件。

接下来,功能提供器搜索单元423检查在FP标签属性的定义中如何指定功能提供器(S1202)。在确定通过ID指定功能提供器的情况下(在S1202中“通过ID指定”的情况下),功能提供器搜索单元423使处理进行到S1231。

在S1231中,功能提供器搜索单元423从功能提供器信息表424中提取具有指定ID的这种功能提供器(即,“功能提供器ID”栏中描述的ID与指定ID相同的功能提供器),并且功能提供器搜索单元423采用提取出的功能提供器作为搜索结果候选。

接下来,在S1232中,功能提供器搜索单元423检查提取结果。在这种情况下,通过唯一识别功能提供器的ID来指定功能提供器,由此搜索结果候选包括一个功能提供器或者不包括功能提供器。

在确定不存在搜索结果候选的情况下(S1232中的否),功能提供器搜索单元423向工作流处理单元430返回表示没有获得满足搜索条件的功能提供器作为搜索结果的通知(S1251),并且功能提供器搜索单元423结束本处理流程。

另一方面,在确定获得功能提供器作为搜索结果候选的情况下(S1232中的是),功能提供器搜索单元423使处理进行到S1205。

另一方面,在S1202中确定通过功能类型指定功能提供器的情况下(在(S1202)中“通过功能类型指定”),功能提供器搜索单元423使处理进行到S1203。

在S1203中,功能提供器搜索单元423从功能提供器信息表424中提取指定功能类型的这种功能提供器(即,“功能类型”栏中描述的功能类型与功能类型相同的功能提供器),并且功能提供器搜索单元423采用提取出的功能提供器作为搜索结果候选。

在S1204中,功能提供器搜索单元423检查在S1203中获得的提取结果。在这种情况下,通过功能类型来指定功能提供器,由此存在如下可能:MFP 101具有相同功能类型的多个功能提供器,提取结果也包括多个功能提供器。例如,在将“扫描”指定为功能类型的情况下,提取两个功能提供器(即标准扫描提供器411和简单扫描提供器412)作为功能提供器信息表424中的功能类型被定义为“扫描”的功能提供器,并且提取这两个功能提供器作为搜索结果候选。

在确定未获得搜索结果候选的情况下(S1204中的否),功能提供器搜索单元423确定未提取搜索结果候选,并且向工作流处理单元430返回表示不存在满足搜索条件的功能提供器的搜索结果(S1251)。在这种情况下,结束本处理流程。

另一方面,在功能提供器搜索单元423确定提取出一个或更多个搜索结果候选的情况下(S1204中的是),功能提供器搜索单元423使处理进行到S1205。

在S1205中,功能提供器搜索单元423检查是否将必要条件指定为一个搜索条件。

在功能提供器搜索单元423确定未指定必要条件的情况下(S1205中的否),功能提供器搜索单元423使处理进行到S1208。

另一方面,在功能提供器搜索单元423确定指定了必要条件的情况下(S1205中的是),功能提供器搜索单元423使处理进行到S1206。

在S1206中,功能提供器搜索单元423使搜索结果候选的范围缩小到满足必要条件的那些功能提供器,并采用所得的功能提供器作为新的搜索结果候选。通过确定在功能提供器信息表424中的“允许设置的值”栏中是否描述有被指定为必要条件的值,来进行关于是否满足必要条件的确定。

接下来,在S1207中,功能提供器搜索单元423检查作为缩小范围的结果是否仍然留存一个或更多个搜索结果候选。在功能提供器搜索单元423确定没有搜索结果候选留存的情况下(S1207中的否),功能提供器搜索单元423向工作流处理单元430返回表示不存在满足搜索条件的功能提供器的搜索结果(S1251),并且功能提供器搜索单元423结束本处理流程。

另一方面,在功能提供器搜索单元423确定存在留存的搜索结果候选的情况下(S1207中的是),功能提供器搜索单元423使处理进行到S1208。

在S1208中,功能提供器搜索单元423检查是否将可选条件指定为搜索条件中的一个。在确定未指定可选条件的情况下(S1208中的否),功能提供器搜索单元423使处理进行到S1212。

另一方面,在确定指定了可选条件的情况下(S1208中的是),功能提供器搜索单元423使处理进行到S1209。

在S1209中,功能提供器搜索单元423使搜索结果候选的范围缩小到满足可选条件的那些功能提供器,并采用所得的功能提供器作为新的搜索结果候选。通过确定在功能提供器信息表424中的“允许设置的值”栏中是否描述有被指定为可选条件的值,来进行关于是否满足可选条件的确定。

接下来,在S1210中,功能提供器搜索单元423检查作为缩小范围的结果是否仍然留存一个或更多个搜索结果候选。在功能提供器搜索单元423确定存在留存的搜索结果候选的情况下(S1210中的是),功能提供器搜索单元423使处理进行到S1212。

另一方面,在确定没有搜索结果候选留存的情况下(S1210中的否),功能提供器搜索单元423使处理进行到S1211。

在S1211中,功能提供器搜索单元423丢弃在S1209中获得的范围缩小结果并向紧接在S1209之前获得的内容返回搜索结果候选(S1211)。也就是说,不使用可选条件作为范围缩小条件。然后处理流程进行到S1212。

在S1212中,功能提供器搜索单元423从搜索结果候选中移除在功能提供器设置表425的公共设置表中被指定为无效的功能提供器。

接下来,在S1213中,功能提供器搜索单元423检查作为S1212中的进行的移除结果,是否留存一个或更多个搜索结果候选。在功能提供器搜索单元423确定未留存搜索结果候选的情况下(S1213中的否),功能提供器搜索单元423向工作流处理单元430返回表示不存在满足搜索条件的功能提供器的搜索结果(S1251),并且功能提供器搜索单元423结束本处理流程。

然而,在确定存在留存的搜索结果候选的情况下(S1213中的是),功能提供器搜索单元423使处理进行到S1214。

在S1214中,功能提供器搜索单元423根据针对功能提供器设置表425的公共设置表中的各功能类型定义的优先顺序,针对各搜索结果候选定义优先级。

接下来,功能提供器搜索单元423检查在功能提供器设置表425的角色设置表中是否描述了发出执行工作流的命令的用户的角色的设置(S1215)。在确定在角色设置表中未描述角色的设置的情况下(S1215中的否),功能提供器搜索单元423使处理进行到S1219。

另一方面,在功能提供器搜索单元423确定在角色设置表中描述了角色的设置的情况下(S1215中的是),功能提供器搜索单元423使处理进行到S1216。

在S1216中,功能提供器搜索单元423从搜索结果候选中移除在功能提供器设置表425的角色设置表中被指定为无效的功能提供器。例如,在图9B中,针对“访客用户”的角色,“OCR_WEB”无效,因此,针对角色为“访客用户”的用户,从OCR提供器搜索结果中移除Web OCR提供器414。也就是说,针对角色为“访客用户”的用户,在执行工作流时不允许使用Web OCR提供器414。

接下来,在S1217中,功能提供器搜索单元423检查作为在S1216中进行的移除结果,是否留存一个或更多个搜索结果候选。在确定不存在留存的搜索结果候选的情况下(S1217中的否),功能提供器搜索单元423向工作流处理单元430返回表示不存在满足搜索条件的功能提供器的搜索结果(S1251),并且功能提供器搜索单元423结束本处理流程。

另一方面,在确定存在一个或更多个留存的搜索结果候选的情况下(S1217中的是),功能提供器搜索单元423使处理进行到S1218。

在S1218中,功能提供器搜索单元423根据针对功能提供器设置表425的角色设置表中的各功能类型定义的优先顺序,针对各搜索结果候选更新在S1214中分配的优先级。

接下来,功能提供器搜索单元423检查在功能提供器设置表425的用户设置表中是否描述了发出执行工作流的命令的用户的设置(S1219)。在确定在用户设置表中未描述用户的设置的情况下(S1219中的否),功能提供器搜索单元423使处理进行到S1223。

另一方面,在功能提供器搜索单元423确定在用户设置表中描述了用户的设置的情况下(S1219中的是),功能提供器搜索单元423使处理进行到S1220。

在S1220中,功能提供器搜索单元423从搜索结果候选中移除在功能提供器设置表425的用户设置表中被指定为无效的功能提供器。

接下来,在S1221中,功能提供器搜索单元423检查作为在S1220中进行的移除结果,是否留存一个或更多个搜索结果候选。在确定不存在留存的搜索结果候选的情况下(S1221中的否),功能提供器搜索单元423向工作流处理单元430返回表示不存在满足搜索条件的功能提供器的搜索结果(S1251),并且功能提供器搜索单元423结束本处理流程。

另一方面,在确定存在一个或更多个留存的搜索结果候选的情况下(S1221中的是),功能提供器搜索单元423使处理进行到S1222。

在S1222中,功能提供器搜索单元423根据针对功能提供器设置表425的用户设置表中的各功能类型定义的优先顺序,针对搜索结果候选更新优先顺序。在图9A所示的示例中,功能类型“扫描”的优先顺序被设置为“正常_扫描,简单_扫描”。然而,在图9C中,用户“tanaka”被分配了“简单_扫描,正常_扫描”。此外,在图9B中,在角色设置表中未定义功能类型“扫描”的优先顺序。因此,针对在角色设置表和用户设置表中未分配优先顺序的用户,按顺序“标准扫描提供器411、简单扫描提供器412”赋予优先级。另一方面,针对用户“tanaka”,按顺序“简单扫描提供器412、标准扫描提供器411”赋予优先级。然后,处理流程进行到S1223。

在S1223中,功能提供器搜索单元423从搜索结果候选中选择具有最高优先级的功能提供器,并向工作流处理单元430返回所选择的功能提供器作为搜索结果,并且功能提供器搜索单元423结束本处理流程。

以上参照具体实施例描述的技术使得能够提供通过组合多个功能提供器来执行包括多个步骤的处理序列的功能、以及当执行处理序列时动态地确定在处理序列中使用的功能提供器的功能。因此,这里公开的技术使得能够使用充当扩展程序的功能提供器,实现灵活的扩展功能。

例如,在实现功能“扫描,进行OCR,并发送结果”时,存在如下可能:用户可能想要切换使用的OCR引擎。例如,假设当用户正在使用MFP 101上的OCR引擎时,用户想要将OCR引擎切换为具有更高字符识别性能的OCR引擎。在以下描述中,通过示例假设以一个月的试用期来使用由外部Web服务器提供的OCR功能,并且如果证明该OCR功能足够好,则将进一步使用该OCR功能,而如果证明该OCR功能不是足够好,则OCR功能返回到MFP 101上的先前OCR功能,或者尝试其他OCR功能。

在使用应用的情况下,为了将OCR引擎切换为由外部Web服务器提供的一个OCR引擎,则需要修改应用程序。在一个月的试用期之后OCR引擎返回到MFP 101上提供的先前OCR引擎的情况下,需要将应用程序返回到在试用期之前使用的先前应用程序。另选地,当修改应用程序时,需要添加用于切换OCR引擎的开关。在仍然尝试其他OCR功能的情况下,需要进一步修改应用程序,这需要进一步的作业。

在不使用这里公开的技术的传统工作流处理系统的情况下,仅在工作流定义文件中控制处理的调用。因此,为了切换OCR引擎,需要将工作流处理程序修改为能够调用由外部Web服务器提供的OCR,并且还需要进一步准备多个工作流定义文件。也就是说,除了现有的定义工作流“扫描,进行OCR,并发送结果”的工作流定义文件之外,还制作其他的工作流定义文件来定义工作流“扫描,使用外部Web服务器进行OCR,并发送结果”。此外,需要在一个月试用期与之后的期间之间改变工作流定义文件,这需要非常繁琐的作业。可以制作使得能够改变OCR引擎的复杂的定义文件。然而,实际上,对于终端用户而言,很难制作这种复杂的定义文件。

相比之下,在根据本公开的技术的工作流处理系统中,能够容易地改变OCR引擎。工作流定义文件针对各功能类型(例如“执行扫描提供器”、“执行OCR提供器”和“执行发送提供器”等)单独定义了处理的内容。为了改变OCR引擎,与新的OCR引擎相对应的OCR提供器被添加到MFP 101。之后,根据OCR的功能类型的优先顺序修改功能提供器设置表425的公共设置表。在这种情况下,无需进行现有OCR提供器、工作流处理单元430和工作流定义文件方面的任何改变。当期望在试用期结束之后将OCR引擎返回到MFP 101上提供的先前OCR引擎时,使得能够仅通过改变OCR的优先顺序,来将OCR引擎返回到先前的OCR引擎。

现在,以下描述另一示例。在该示例中,通过示例的方式假设实现功能“扫描,进行OCR,并发送结果”,使得能够根据用户改变扫描设置画面。例如,针对不熟悉MFP 101的使用的用户显示简单扫描设置画面,而针对一般用户显示标准扫描设置画面。

在使用应用程序实现该功能的情况下,需要两个应用程序。也就是说,即使在除了扫描设置画面以外不存在功能差异的情况下,也需要使用简单扫描设置画面的应用程序、和使用标准扫描设置画面的应用程序。此外,当准备这两个应用程序时,需要根据用户正确地选择这两个应用程序中的一个,这需要繁琐的作业。

在不使用这里公开的技术的传统工作流处理系统的情况下,为了根据用户改变扫描设置画面,需要准备多个工作流定义文件。也就是说,需要以下两个工作流定义文件:使用简单扫描设置画面的工作流定义文件、以及使用标准扫描设置画面的工作流定义文件。在准备这两个工作流定义文件的情况下,需要根据用户正确地选择这两个工作流定义文件中的一个,这需要繁琐的作业。此外,对于终端用户而言,很难制作这种复杂的定义文件,从而使得能够改变扫描设置画面。

相比之下,在根据本公开的技术的工作流处理系统中,能够根据用户容易地切换扫描设置画面。工作流定义文件针对各功能类型(例如“执行扫描提供器”、“执行OCR提供器”和“执行发送提供器”等)单独定义了处理内容。当用户想要切换扫描设置画面时,用户改变功能提供器设置表425的用户设置表中的功能类型“扫描”的优先顺序。针对在用户设置表中未设置“扫描”的优先顺序的用户,使用在公共设置表中定义的“扫描”的优先顺序。

如上所述,在根据本公开的技术的工作流处理系统中,在指定了使用的功能提供器的功能类型的工作流定义文件中定义处理序列,并且在实际执行该处理序列时通过功能提供器管理单元420动态地确定使用的具体功能提供器,由此能够实现灵活的扩展功能。

以上描述了本公开的实施例,其中,通过示例的方式假设信息处理装置是MFP。然而,在本公开中,信息处理装置不限于MFP,本公开可以适用于其他类型的信息处理装置。本公开可以适用于任何装置,只要允许装置添加充当具有针对各功能类型定义的接口的扩展程序的功能提供器,并允许该装置执行组合通过多个功能提供器提供的功能的工作流即可。例如,本公开甚至可以适用于诸如电视机、汽车导航装置等的家用电器。

请注意,上述各数据的数据结构及数据的内容不限于上述示例,而可以根据使用、用途等改变数据结构和内容。

尽管以上参照具体实施例描述了本公开,但是可以以许多形式(例如系统、装置、方法、程序、存储介质等)嵌入本公开。本公开可以适用于包括多个设备的系统,或者可以适用于仅包括单个设备的装置。

此外,请注意,可以组合上述两个或更多个实施例,并且任何这种组合的实施例也落入本公开的范围内。

其他实施例

还可以实施本公开,使得经由存储介质或网络将用于实现上述一个或更多个功能的程序供给至系统或装置,并且在系统或装置中,一个或更多个处理器读出并执行程序。还可以通过用来实现上述一个或更多个功能的电路(例如,专用集成电路(ASIC))来实施本公开。

本公开可以应用于包括多个设备的系统,或者可以应用于仅包括单个设备的装置。

请注意,本公开不限于上述实施例的细节,而可以在不背离本公开的实质和范围的情况下进行各种变型(包括实施例的组合)。实施例的任何组合或变型落入本公开的范围内。

根据上述参照实施例的本公开,能够灵活地实现添加至信息处理装置的扩展功能。

另外,可以通过读出并执行记录在存储介质(也可更完整地称为“非临时性计算机可读存储介质”)上的计算机可执行指令(例如,一个或更多程序)以执行上述实施例中的一个或更多的功能、并且/或者包括用于执行上述实施例中的一个或更多的功能的一个或更多电路(例如,专用集成电路(ASIC))的系统或装置的计算机,来实现本发明的实施例,并且,可以利用通过由所述系统或装置的所述计算机例如读出并执行来自所述存储介质的所述计算机可执行指令以执行上述实施例中的一个或更多的功能、并且/或者控制所述一个或更多电路执行上述实施例中的一个或更多的功能的方法,来实现本发明的实施例。所述计算机可以包括一个或更多处理器(例如,中央处理单元(CPU),微处理单元(MPU)),并且可以包括分开的计算机或分开的处理器的网络,以读出并执行所述计算机可执行指令。所述计算机可执行指令可以例如从网络或所述存储介质被提供给计算机。所述存储介质可以包括例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算系统的存储器、光盘(诸如压缩光盘(CD)、数字通用光盘(DVD)或蓝光光盘(BD)TM)、闪存设备以及存储卡等中的一者或更多。

本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。

虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明并不限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以使其涵盖所有这些变型例以及等同的结构和功能。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1