图像形成装置和用远程应用软件操作图像形成装置的方法技术领域
本发明涉及通过Java应用软件操作图像形成装置的技术。
背景技术
近来,在一个机壳内包括打印机、复印机、传真机、扫描仪等等功能
的图像形成装置(在下文中称为复合机)已广泛公知。这种复合机在一个
机壳中包括显示部分、打印部分和图像获取部分等。在这种复合机中,提
供分别对应于打印机、复印机和传真机的软件块,这样复合机就可以通过
转换软件块而分别起打印机、复印机、扫描仪和传真机的作用。
由于通常的复合机配备了打印机、复印机、扫描仪和传真机的相应应
用软件块,所以需要为每个应用软件的开发花费很多时间。为了解决这个
问题,申请人已经开发出了一种包括硬件资源、多种应用软件以及一个在
应用软件和硬件资源之间提供多种控制服务程序的平台的复合机。这种硬
件资源用于显示部分、打印部分和图像获取部分的图像形成处理。应用软
件执行用于打印机、复印机和传真机等等的用户服务程序的固有处理。平
台包括多种控制服务程序,用来在执行用户服务程序时执行共同运行至少
两个应用软件所需的硬件资源的管理,和用来执行应用软件和图像形成处
理的执行过程。
根据这种新的复合机,可以分别提供应用软件和控制服务程序。因此,
在装运复合机之后,用户或者第三方销售商能够在不改变系统附带软件的
情况下开发出新的应用软件,以安装在复合机上。
人们已经开发出多种应用软件。为了开发应用软件,从支持各种平台
和网络通信的观点出发,人们考虑到使用Java应用软件作为用于复合机的
应用软件。作为涉及Java应用软件的常规技术,例如公知的在日本公开专
利申请No.2002-287990中描述的技术。
为了在复合机中执行Java应用软件,需要一个管理Java应用软件的模
块。此外,为了为复合机开发Java应用软件,需要在PC机等上开发出Java
应用软件之后,对已经开发的应用软件进行测试,看其实际上是否能在复
合机上运行。然而,每次执行测试时,在复合机上安装和执行Java应用软
件都是非常困难的,因此就需要一种环境,在这种环境中开发出的应用软
件可以从开发应用软件的PC机上直接在复合机上执行。此外,如果远程执
行的Java应用软件能够操作复合机,那么用户就能更加方便地使用Java应
用软件。
发明内容
本发明的目的是为了提供一种Java应用软件可以很容易地在复合机中
运行的环境,以及提供一种能够通过在例如PC机的终端装置上执行的Java
应用软件来操作复合机的环境。
上述目的是通过一种包括控制部件的图像形成装置实现的,该控制部
件在硬件资源的控制下提供公共服务程序给多个应用软件,从而能够包括
多个应用软件,该图像形成装置包括:
虚拟机;
由该虚拟机执行的应用软件;以及
管理由虚拟机运行的应用软件的应用软件管理部件。
根据本发明,由于是在图像形成装置的应用层上提供虚拟机,因此就
能够运行可以由虚拟机执行的Java应用软件。此外,由于提供了应用软件
管理部件,因此容易添加、删除以及管理Java应用软件。这样,Java应用
软件就能够很容易地在图像形成装置上运行。
在图像形成装置中,由虚拟机运行的应用软件能够利用控制图像形成
装置的类来操作图像形成装置。该类包括用于将信息输出到图像形成装置
的操作面板和从该操作面板输入信息的操作面板类。通过利用该类,就能
够很容易地开发Java应用软件了。
在图像形成装置中,应用软件管理部件包括执行管理功能,该执行管
理功能包括启动虚拟机执行的应用软件的功能。此外,当应用软件没有安
装到图像形成装置中的时候,应用软件管理部件可以下载应用软件。
应用软件管理部件参考一个与应用软件相关联的应用软件信息文件,
并且在该应用软件信息文件的信息基础上更新应用软件。由于应用软件能
够在应用软件信息文件的设置基础上得到更新,因此应用软件能够得到自
动更新。
应用软件管理部件能够将关联应用软件的应用软件信息文件中说明的
第一版本与关联更新应用软件的另一个应用软件信息文件中说明的第二版
本相比较,如果第二版本比第一版本新,那么应用软件管理部件用更新的
应用软件替代原应用软件。因此,旧的应用软件可以得到自动更新。
应用软件管理部件可以从存储卡或者网络站点上下载应用软件。此外,
应用软件管理部件可以从与应用软件相关联的应用软件信息文件中说明的
位置下载应用软件。应用软件管理部件能够在下载应用软件之前检查该应
用软件是否能在图像形成装置中运行,并且应用软件管理部件能够检查该
应用软件是否能在与应用软件相关联的应用软件信息文件中说明的信息基
础上运行。此外,应用软件管理部件能够检查在执行应用软件所需的图像
形成装置中包括资源项目的项目。因此,应用软件能够得到安全地安装和
更新。
图像形成装置可以包括一个服务器应用软件,该服务器应用软件用来
接收来自与图像形成装置相连接的终端装置的操作请求,并且根据该操作
请求操作图像形成装置。根据本发明,能够通过在终端装置中运行的应用
软件来操作图像形成装置。应用软件管理部件与终端装置进行通信。
此外,上述目的是通过一个操作装配成能够包括多个应用软件的图像
形成装置的终端装置实现的,该终端装置包括:
虚拟机;
应用软件,由虚拟机执行,并且用来操作图像形成装置;以及
应用软件管理部件,其用来管理由虚拟机运行的应用软件。
根据本发明,图像形成装置能够通过在终端装置中运行的应用软件进
行操作。
终端装置通过网络与图像形成装置连接,并且由虚拟机运行的应用软
件利用控制图像形成装置的类来操作图像形成装置。此外,终端装置能够
利用基于Java的分布式对象处理技术来操作图像形成装置。利用支持网络
处理的基于Java的分布式对象处理技术,图像形成装置能够由在网络上的
装置中运行的应用软件进行操作。
在终端装置中,类可以包括用于在终端装置上显示图像形成装置的操
作面板上显示的屏幕的仿真屏幕的功能。因此,用户可以象直接操作图像
形成装置一样从终端装置上操作图像形成装置。
终端装置可以具有允许用户选择是访问图像形成装置的硬盘还是访问
终端装置的硬盘的功能。例如,用户能够从终端装置上选择在图像形成装
置的硬盘中存储的文件。
在终端装置中,应用软件管理部件可以包括执行管理功能,该执行管
理功能包括启动应用软件的功能,并且可以在应用软件没有安装到终端装
置上的时候,通过与图像形成装置通信下载应用软件。此外,应用软件管
理部件可以参考一个与应用软件相关联的应用软件信息文件,并且在应用
软件信息文件的信息基础上更新应用软件。
应用软件管理部件可以从一个插入到图像形成装置的储存卡或者网络
站点上下载应用软件。此外,应用软件管理部件能接收存储在储存卡中的
文件信息并且在终端装置上显示文件信息。
应用软件管理部件能够将输入到终端装置中的URL信息发送给图像形
成装置,这样图像形成装置通过URL信息从网络站点上下载应用软件。由
于,应用软件管理部件与用于执行处理的图像形成装置进行通信,因此用
于图像形成装置中的应用软件的管理功能可以扩展到终端装置。
附图说明
通过下面结合附图的详细描述能够更明显地了解本发明的其他的目
的、特征和优点,其中:
图1是根据本发明一个实施例的复合机100的框图;
图2显示了复合机100的硬件配置的示例;
图3显示了根据第一实施例的Java运行环境的配置示例;
图4A和4B显示了应用软件管理部件204的实现示例;
图5显示了Java应用软件使用的操作面板的层次结构的示例;
图6显示了Java应用软件的程序列表;
图7是由简单打印机显示的屏幕;
图8是通过运行简单打印机显示的软键盘的示例;
图9是根据第一实施例启动简单打印机的过程的流程图;
图10显示了JNLP文件的格式示例;
图11显示了JNLP文件的树形结构;
图12是用来自SD卡的Java应用软件(更新应用软件)自动地更新在
SD卡(其为存储卡的示例)或者HDD中的Java应用软件(更新目标应用
软件)的流程图;
图13是用来自网络站点的Java应用软件(更新应用软件)自动地更新
在SD卡或者HDD中的Java应用软件(更新目标应用软件)的流程图;
图14显示了根据本发明第三实施例的系统配置;
图15是根据第三实施例启动简单打印机的过程的流程图;
图16是根据本发明第四实施例的复合机的框图;
图17显示了在图16中的JSDK应用软件147和JSDK平台148的类;
图18显示了根据本发明第四实施例的系统配置;
图19显示了在图18中的PC701中的JSDK应用软件147和JSDK平
台148的类;
图20是在复合机100中为实现远程操作进行的预处理的执行过程的解
释图。
具体实施方式
下面,结合附图说明本发明的实施例。如下所述,复合机中的Java运
行环境是作为第一和第二实施例描述的。随后,通过在PC中执行在PC机
等中开发出的应用软件来操作复合机的环境是作为第三和第四实施例描述
的。首先,描述在第一至第三实施例中使用的复合机。
图1是根据本发明一个实施例的复合机100的框图。
如在图1中所示,复合机100包括硬件资源103和软件组110。硬件资
源103包括一台黑白激光打印机(B&WLP)101、一台彩色激光打印机102
以及诸如扫描仪、传真机、硬盘、存储器(RAM、NV-RAM、ROM等等)
和网络接口这样的硬件资源。软件组110包括平台120以及应用软件130。
平台120包括用于解释来自应用软件的处理请求以对硬件资源发布获
取请求的控制服务程序、用于管理一个或者多个硬件资源和裁定从控制服
务程序中获取的请求的系统资源管理程序(SRM)123以及通用OS121。
控制服务程序包括多个服务模块,这些模块是系统控制服务程序(SCS)
122、电动机控制服务程序(ECS)124、存储控制服务程序(MCS)125、操
作面板控制服务程序(OCS)126、传真控制服务程序(FCS)127以及网络
控制服务程序(NCS)128。平台120具有应用软件程序接口(API),该应用
软件程序接口能够通过预定功能接收来自应用软件130的处理请求。
通用OS121是诸如UNIX一样的通用操作系统,并且能够作为各自的
进程同时执行平台120和应用软件130的每个软件块。
处理SRM123的作用是用于利用SCS122执行系统的控制以及资源的
管理。SRM123的处理执行裁决和控制来自使用包括例如扫描仪部分和打印
机部分的电动机、存储器、HDD文件和主机I/O(centronics I/F,网络I/F
IEEE1394 I/F,RS232C I/F等等)的硬件资源的上层的请求。
处理SCS122的作用是执行应用软件的管理,操作面板的控制、系统屏
幕的显示,LED显示、资源管理以及中断应用软件的控制。ECS124的作用
是控制包括黑白激光打印机(B&WLP)101、彩色激光打印机(彩色LP)
102、扫描仪以及传真机等的硬件资源的电动机。
处理MCS125的作用是获得和释放图像存储器的区域,使用硬盘装置
(HDD)以及压缩和扩大图像数据。FCS127的作用是提供用于通过
PSTN/ISDN网络从每个应用软件层发送和接收传真、记录/访问由BKM(备
用的SRAM)管理的多种传真数据、读取传真、接收和打印传真以及混合
发送和接收的API。
NCS128是用来提供需要网络I/O的应用软件共同使用的服务的处理。
NCS128将从网络接收的数据分配给相应的应用软件,并且在将数据发送给
网络时作为应用软件和网络之间的媒介。具体的说,NCS128的作用包括服
务器端口监督程序,例如ftpd、httpd、lpd、telnetd、snmpd以及这些协议的
客户功能。
处理OCS126控制操作面板,该操作面板是用来在操作员(用户)和
机器的控制部件之间传输信息的装置。在该实施例中的复合机100中,
OCS126包括一个OCS处理部分和一个OCS函数库部分。OCS处理部分包
括一个按键事件,该按键事件指示从操作面板上按下该按键并且将对应于
该按键事件的按键事件函数发送给SCS122。OCS函数库记录用来控制操作
面板的作图函数以及其他函数,其中作图函数用来根据来自具有控制权的
应用软件或者来自控制服务程序的请求在操作面板上输出各种图像。当已
经开发出应用软件时,OCS函数库中的函数连接到一个通过汇编应用软件
的源代码文件产生的目标程序上,因此产生了应用软件的可执行文件。
应用软件130包括用于具有页面描述语言(PDL)和打印机控制语言
PCL以及附言(PS)的打印机的打印机应用软件111、复制应用软件112、
用于传真机的传真应用软件113、用于扫描仪的扫描仪应用软件114、以及
网络文件应用软件115。此外,还包括Java执行环境116和Java应用软件
117。图1中所示的复合机100包括多个Java应用软件。
在应用软件的进程和控制服务程序的进程之间进行进程间通信,其中
调用函数,发送返回值并且发送和接收消息。通过进程间通信,实现了进
行图像形成处理的用户服务程序,例如复制、打印、扫描以及发送传真。
如上所述,这个实施例的复合机100包括多个应用软件130和多个控
制服务程序,其中每一个都工作为进程。在每个进程中,产生一个或者多
个线程并且这些线程并行执行。控制服务程序向应用软件130提供通用的
服务程序。当进程并行执行,线程并行执行,并且执行进程间通信时,提
供进行图像形成的用户服务程序,例如复制、打印、扫描和发送传真。第
三方销售商可以为复合机100开发新的应用软件,并且能够在复合机100
的控制服务程序层上执行应用软件层中的应用软件。
图2显示了复合机100的硬件结构的示例。
如图2所示,复合机100包括控制器40、操作面板60、传真控制单元
(FCU)65以及发动机70和绘图仪75。
控制器40包括CPU41、MEM-P(系统存储器)42、北桥接器(north bridge)
(NB)43、南桥接器(south bridge)(SB)44、ASIC45、MEM-C(局部存
储器)46、HDD47、网络接口卡(NIC)48、USB设备49、IEEE1394设备
50以及centronics51。
操作面板60直接与控制器40的ASIC45连接。FCU65、接口、电动机
70和绘图仪75通过PCI总线与控制器40中的ASIC45相连接。
CPU41控制复合机100。NB43是用来连接CPU41、MEM-P42和ASIC45
的桥接器。MEM-P42是例如用作制图存储器的系统存储器。SB44是用于
连接NB43和外围设备的桥接器。在这个实施例中,存储卡卡槽441能够使
存储卡442插入其中。MEM-C46是用作复制图像缓冲器、代码缓冲器等等
的局部存储器。ASIC45是用于图像处理的IC,其中包括用于图像处理的硬
件。HDD47是用来存储图像数据、程序、字形数据等等的存储器。
(第一实施例)
下面,复合机100中的Java应用软件117的执行环境116作为第一实
施例进行描述。
图3显示了根据第一实施例的Java执行环境116的结构示例。如图3
所示,Java执行环境116包括复合机类库201、虚拟机202、本地程序接口
203以及应用软件管理部件204。
复合机类库201是用于使Java应用软件117容易操作复合机100的类
库,因此Java应用软件117能够利用本地程序接口203的机构访问复合机
100的API。通过复合机类库201,能够识别与机器相关的功能,提供简单
操作的功能并且能够提供各种面向对象的类。
根据这个实施例的复合机类库201包括基本Java类库、进程事件的事
件类、用于执行网络通信进程的网络事务类、用于在复合机100的操作面
板上绘制图像的操作面板类、用于控制复合机100的复合机控制类等等。
操作面板类和复合机控制类是该实施例的复合机100特有的类。操作面板
类和复合机控制类可以在下面称为“复合机类”,其他的类(基本Java类库、
事件类、网络事务类)可以称为“Java核心类”。
将Java源代码程序汇编成中间码(字节码)。虚拟机202具有用于翻译
和执行字节码的功能。本地程序接口203具有使虚拟机202执行的Java代
码与由不同的程序语言例如C语言编写的应用软件和库共同使用的功能。
应用管理部件204具有管理Java应用软件的功能。例如,应用软件管
理部件204具有显示Java应用软件列表、安装和更新Java应用软件、删除
已经安装的Java应用软件、为记录的应用软件设置口令、存储Java应用软
件等等的功能。此外,应用软件管理部件204执行Java应用软件执行管理,
例如启动、强行终止、暂停以及重新开始Java应用软件。
应用软件管理部件204在复合机100中是作为与虚拟机202无关的元
件实现的,因此应用软件管理部件不能由Java应用软件控制。如图4A和
4B所示,应用软件管理部件204能够作为Java应用软件实现(图4A),或
者能够作为C语言程序(图4B)等等实现。
由于Java执行环境116是安装在复合机100上的应用软件,因此Java
执行环境116能够以与其他应用软件一样的方式安装到复合机100中。例
如Java执行环境116能够从存储卡安装到复合机100中。
(Java应用软件的示例)
随后,描述Java应用软件的示例。在下面的例子中,将要说明使用操
作面板类的Java应用软件。图5显示了Java应用软件使用的操作面板类的
层次结构。图6显示了Java应用软件的程序列表。在下文中,将应用软件
程序称为“简单打印机”。
随后,描述图6中显示的程序。这个程序使复合机100在复合机100
的操作面板上显示用户界面屏幕,从操作面板接收指定打印文件名,并且
打印该指定文件。程序操作的概述如下:
当完全启动了复合机100之后,在操作面板上显示图7所示的屏幕。
如图7所示,在屏幕的上部显示出字符串“简单打印机”,并且,在屏幕的
中央部分显示出“取得输入文件名...”的按钮。当用户触到“取得输入文
件名...”按钮的时候,在图8中作为示例示出的软键盘在操作面板上显示
出来。在软键盘上,显示出题目“输入文件名”,这样用户输入用户想打印
的文件的名字。例如,当用户输入“/usr/hdd/photo.tiff”的时候,程序使复
合机100打印存储在目录:“/usr/hdd”下的“photo.tiff”文件。
下面,根据程序的一些注释说明程序。
“(1)”是使用复合机类库的命令。“(2)”指示出GWApp被继承了,
其中GWApp是复合机的应用软件在初始设定和结束处理(end processing)
上的原型(抽象)。因此,用户不需要编写复杂的初始设定代码和结束处理
代码,并且能够向用户隐藏接收信息等等的过程。
通过“(3)”,产生操作打印机的对象,并且通过“(4)”产生显示信息:
“简单打印机”的对象,通过“(5)”产生“取得输入文件名...”的按钮对
象。“(6)”指示增加对象,从而当用户接触按钮的时候显示软键盘。“(7)”
指示显示软键盘并且提示文件名。通过“(8)”打印由软键盘指定的文件。
在按钮操作((5)“取得输入文件名...”)中,按钮操作的结果通过程
序接收为消息,并且程序执行与响应接收消息的按钮操作相符的处理。该
处理设置在(6)的addchangeListener()中。
(从下载到启动的过程示例)
通过应用软件管理部件204管理Java应用软件的安装和启动。因此,
通过利用应用软件管理部件204的功能,可以以下面的方式执行从下载到
启动的过程。结合图9所示的流程图描述启动简单打印机的过程作为示例。
当启动复合机100的时候,应用软件管理部件204象其他的应用软件
一样得到启动。在步骤S1中,通过按下与应用软件管理部件204相应的应
用软件选择按键,用于操作应用软件管理部件204的用户界面屏幕在复合
机100的操作面板上显示出来。在步骤S2中,当用户在用户界面屏幕上确
定简单打印机作为Java应用软件已经被安装了的时候,用户选择简单打印
机以执行它。
如果没有安装简单打印机,那么在步骤S3中,通过从用户界面屏幕中
指定应用软件的载入显示应用软件载入屏幕。
在步骤S4中,在应用软件载入屏幕上,用户选择是从网络站点下载简
单打印机还是从插入复合机中的存储卡上下载。
当从存储卡下载简单打印机时,在步骤S5中,应用软件管理部件204
检查存储卡中的文件,并且在操作面板上显示存储在存储卡中的文件名。
当在步骤S6中用户选择简单打印机的时候,在步骤S7中应用软件管理部
件204检查该应用软件是否能够在复合机100上执行。根据检查的结果,
如果能够执行该应用软件,就下载该应用软件并且将该应用软件安装到硬
盘中。此外,在步骤S9中应用软件管理部件204获得应用软件名(简单打
印机)并且将其增加到应用软件列表中,其中应用软件列表是通过应用软
件管理部件204管理的文件,以便用户识别已经安装的Java应用软件。
当从网络服务器下载简单打印机时,在步骤S4中选择网络,这样在步
骤S10中显示用于指定URL的屏幕,从该屏幕用户输入具有简单打印机程
序的网络站点的URL上。然后,在步骤S11中应用软件管理部件204访问
网络站点,并且在步骤S12中检查在复合机上是否能够执行简单打印机,
并在步骤S13中下载简单打印机。然后,在步骤S14中,应用软件管理部
件204将简单打印机安装到硬盘中,获得应用软件名字(简单打印机)并
且将该名字增加到应用软件列表中。
或者,应用软件管理部件204可以自动搜索存储卡或者网络服务器以
将应用软件安装到硬盘中。在上述例子中,虽然描述了将Java应用软件安
装到硬盘中的例子,但是该Java应用软件不是必须要安装到硬盘中以执行
Java应用软件。
为了检查Java应用软件是否能够在复合机100上执行,应用软件管理
部件204检查程序大小、程序版本、程序最后的更新信息、使用存储器工
作容量(memory work size)、使用存储大小、使用网络地址、有效期(可用
数量)、应用软件名等等。这些信息项目与Java应用软件相关联。如下所述,
信息项目可以从与Java应用软件相关的JNLP文件中获得。
在上述的过程结束之后,可以使用下载的简单打印机,因此在步骤S15
中用户从用户界面屏幕启动简单打印机。因此,虚拟机202得到启动并且
执行简单打印机。
已经启动的简单打印机通过Java核心类和复合机类操作复合机100,
为简单打印机显示前述的用户界面屏幕。用户输入用户想打印的文件名称,
因此文件被打印。在这个实施例中,输入“/usr/hdd/photo.tiff”,打印存储在
复合机100硬盘中的“/usr/hdd”目录下的“photo.tiff”文件。
打印结束后,应用软件管理部件204结束简单打印机的执行。
(第二实施例)
复合机100能够利用JNLP(Java建网语言协议)自动更新复合机100
中安装的Java应用软件。下面,说明利用JNLP的Java应用软件的自动更
新。随后的过程是通过应用软件管理部件204控制的。
由于“JNLP文件”(也称为“应用软件信息文件”)在随后的过程中使
用,因此首先对JNLP文件进行描述说明。JNLP文件与Java应用软件是一
一对应的,并且包括关于Java应用软件定义的信息。也就是,JNLP文件附
属于每个Java应用软件。
图10示出了JNLP文件的格式例子。JNLP文件是XML(可扩展置标
语言)文件。JNLP文件的格式和JNLP标准相适应。然而,这个实施例中
使用的JNLP被扩展。下面就是该扩展。
在图10中,说明1是包括指示应用软件名称的标题单元(说明1A)、
指示销售商名字的销售商单元(说明1B)、指示销售商的电话号码的电话单
元(说明1C)、指示销售商传真号码的传真单元(说明1D)以及指示应用
软件的产品ID的产品ID单元(说明1E)在内的信息单元。
说明2指示安全单元。说明3指示出包括指示Java应用软件版本的jsdk
单元(说明3A)、指示Jar文件(Java应用软件的执行文件)和版本的Jar
单元(说明3B)以及指示子JNLP文件的子jnlp单元(说明3C)在内的资
源单元。
说明4是用于设置更新执行方法的更新单元。如果该单元是“自动”,
那么应用软件的更新是自动执行的。如果该单元是“手动”,那么应用软件
的更新是手动执行的。如果该单元是“邮件”,那么当应用软件的更新能够
执行的时候,递送更新通知邮件。
说明5指示安装单元,该安装单元指示出安装的执行方法。如果该单
元是“自动”,那么应用软件的安装目的地是自动选择的。如果单元是“手
动”,那么应用软件的安装目的地是手动选择的。说明6指示出应用软件的
类型是“存在GUI”还是“缺少GUI”。
如图11所示,与Java应用软件相对应的JNLP文件的信息通常为树形
结构。涉及来自上层JNLP文件的JNLP文件与对应于上层JNLP文件的Java
程序执行中使用的模块相对应。
如图10中的更新单元所述,安装的Java应用软件是更新的目标。随后,
说明用来自动更新已安装的Java应用软件的自动更新过程。
图12是将SD卡(SD卡是存储卡的示例)或者HDD中的Java应用软
件自动更新为来自SD卡的Java应用软件(更新应用软件)的流程图。
当包含更新应用软件的SD卡插入SD卡槽时,在步骤S101中,应用
软件管理部件204获得SD卡中的更新应用软件的JNLP文件。当JNLP文
件的更新单元是“自动”,且复合机100包括与对应于JNLP文件的更新应
用软件相同的更新目标应用软件的时候(步骤S102,S103),在步骤S104
中,应用软件管理部件204比较更新应用软件和更新目标应用软件的版本。
当更新应用软件的版本比更新目标应用软件的版本新的时候(步骤S105),
在步骤S106中,应用软件管理部件204将该更新目标应用软件更新为更新
应用软件(用更新应用软件代替更新目标应用软件)。就是说,应用软件管
理部件204更新Jar文件和JNLP文件。
图13是利用来自网络站点的Java应用软件(更新应用软件)自动更新
SD卡或者HDD中的Java应用软件(更新目标应用软件)的流程图。
在步骤S201中,应用软件管理部件204获得更新目标应用软件的JNLP
文件。当JNLP文件的更新单元是“自动”,与复合机100连接的网络服务
器包括与更新目标应用软件相同的更新应用软件的时候(步骤S202,S203),
在步骤S204,应用软件管理部件204比较更新目标应用软件与更新应用软
件的版本。当更新应用软件的版本比更新目标应用软件的版本新的时候,
在步骤S206中,应用软件管理部件204用更新应用软件更新该更新目标应
用软件。
复合机100访问更新应用软件的目的地可以通过参考JNLP文件获得。
当JNLP文件是树形结构的时候,上述的过程是对每层的JNLP文件执行的。
启动更新的触发可以是从复合机100接通后的经过时间、预定时间、
复合机100的通电/断电、在运行应用软件之前/当中/之后、处于等待状态的
经过时间等等。
在第一实施例中,同样能够使用JNLP文件。在这种情况下,在下载
Java应用软件之前,复合机100能够根据JNLP文件中的信息检查Java应
用软件是否是可执行的。在这种情况下,JNLP文件包括用于确定Java应用
软件在复合机100中是否是可以执行的信息。例如,JNLP文件包括用于鉴
别、执行Java应用软件所必须的设备配置(例如支持的颜色)、使用资源信
息等,再加上第一实施例中说明的程序大小等等的信息。将JNLP文件中的
信息与复合机100中的资源信息等相比较。结果,如果复合机100确定Java
应用软件是不可执行的,那么例如输出一个警告。此外,Jar文件可以包括
用于鉴别的数字签名,这样应用软件管理部件204可以校验该签名。
(第三实施例)
随后,说明通过在用来开发Java应用软件的PC机中执行Java应用软
件从而远程操作复合机100的方法。
图14显示了根据该实施例执行Java应用软件的系统配置。如图所示,
系统包括通过网络400连接的PC300和复合机100。例如,PC300是用来为
复合机100开发Java应用软件的PC机。
PC300包括作为Java应用软件的简单打印机301、Java核心类304、用
于在复合机100中操作复合机类的客户复合机类303、通过与复合机100的
应用软件管理部件204通信来管理应用软件的远程应用软件管理部件302、
虚拟机305和OS306。
复合机100除Java执行环境116之外还包括服务器复合机应用软件
210。服务器复合机应用软件210是在复合机100中执行的应用软件,提供
来自PC300的远程操作服务。在图14中没有示出本地程序接口。
在PC300中的客户复合机类303与服务器复合机应用软件210通信,
这样客户复合机类303操作复合机100中的对象。因此,能够从PC300中
远程操作复合机100,并且可以实现应用软件的分布式处理。用于从远程
PC300操作复合机100中对象的技术是通过例如基于分布式对象处理技术
的Java来实现的。
远程应用软件管理部件302与复合机100的应用软件管理部件204通
信,这样复合机100的Java应用软件管理功能能够扩展到PC300中。远程
应用软件管理部件302具有与复合机100的应用软件管理部件204相同的
功能。就是说,远程应用软件管理部件302具有Java应用软件执行管理(启
动/强制终止/暂停/重新开始等等)、安装和更新Java应用软件、删除安装的
Java应用软件、为应用软件记录设置口令、存储Java应用软件、显示安装
的Java应用软件的列表等等的功能。上述的过程必需是通过与复合机100
的应用软件管理部件通信执行的。
在PC300中的客户复合机类303还包括模拟复合机100部分功能的功
能。例如,客户复合机类303能够模拟复合机100的操作面板的操作。
为了利用PC300中执行的应用软件操作复合机100,可以选择是使用
复合机100的操作面板还是使用PC300中的模拟功能。在模拟操作面板的
操作时,在PC300上显示复合机100的操作面板上显示的屏幕。PC300的
键盘和鼠标用来操作PC300上显示的操作按钮。在利用复合机100的操作
面板和利用PC300的键盘和鼠标之间的选择是通过将请求从远程应用软件
管理部件302发送到复合机100的应用软件管理部件204执行的。例如,
当远程应用软件管理部件302通知复合机100中的应用软件管理部件
204PC300模拟操作面板的时候,应用软件管理部件204控制复合机100,
使得通过操作复合机100产生的屏幕显示信息被发送到PC300而不是显示
在复合机100上。
当从PC300执行Java应用软件的时候,对于远程PC300和复合机100
中相同种类的资源,用户能够在远程PC300和复合机100中选择一个。例
如,对于PC300和复合机100中都包括的“硬盘”,用户能够从PC300中选
择是利用PC300的硬盘还是利用复合机100的硬盘。其他的这种资源是用
于建网、I/O(USB,ilink、RS232C)等等的资源。
随后,在图14所示的环境中,结合图15的流程图,说明通过执行PC300
中的Java应用软件操作复合机100的过程。在下面的例子中,将简单打印
机用作示例。
首先,在PC300中启动远程应用软件管理部件302。在复合机100中,
包括应用软件管理部件204的Java执行环境116和服务器复合机应用软件
210已经得到执行。
在步骤S21中,远程应用软件管理部件302显示一个用于在PC300上
选择应用软件的屏幕。同时,检查Java应用软件是安装在复合机100的硬
盘还是PC300的硬盘上。在Java应用软件的检查中,例如,远程应用软件
管理部件302检查PC300中的Java应用软件,复合机100中的应用软件管
理部件204检查复合机100中的Java应用软件,并且应用软件管理部件204
将检查结果通知给远程应用软件管理部件302。当存在Java应用软件的时
候,Java应用软件的名称显示在屏幕上。当用户选择了简单打印机时,在
步骤S22启动简单打印机。
作为Java应用软件是否安装的检查结果,如果Java应用软件并没有安
装在任何一个硬盘中,那么在步骤S23中通过从屏幕指定应用软件载入来
显示应用软件载入屏幕。
在步骤S24中,用户从应用软件载入屏幕选择是从网络站点还是从插
入复合机100的存储卡中下载简单打印机。
当用户选择从存储卡安装Java应用软件的时候,在存储卡插入到复合
机100中的时候,应用软件管理部件204识别存储卡,并且应用软件管理
部件204检查存储卡中的文件信息,并且在步骤S25中将文件信息通知给
远程应用软件管理部件302。
在步骤S26中,远程应用软件管理部件302在PC300的屏幕上显示通
知的文件信息,这样在步骤S27用户选择简单打印机。然后,远程应用软
件管理部件302通知应用软件管理部件204简单打印机是下载的对象。应
用软件管理部件204将应用软件(简单打印机)的信息发送给远程应用软
件管理部件302。在步骤S28中,远程应用软件管理部件302检查简单打印
机在系统的环境中是否是可执行的。如果远程应用软件管理部件302确定
简单打印机是可执行的,那么远程应用软件管理部件302指示应用软件管
理部件204下载简单打印机,这样在步骤S29中下载简单打印机并且在步
骤S30中将其安装到已经指定的安装目的地(PC300的硬盘或者复合机100
的硬盘)中。此外,将简单打印机加入到应用软件列表中。
在步骤S28中的检查项目是,例如,程序大小、版本、程序最近更新
信息、使用存储工作容量、使用存储大小、使用网络地址、有效期(可用
数量(usable number))、应用软件名称等等。
当从网络站点安装简单打印机时,远程应用软件管理部件302显示允
许用户指定网络服务器的URL的屏幕,这样用户在步骤S31从屏幕输入
URL。然后在步骤S32,远程应用软件管理部件302将该URL通知给复合
机100中的应用软件管理部件204。接着,在步骤S33中应用软件管理部件
204访问URL的网络站点,并且在步骤S34检查网络站点中的应用软件(简
单打印机)是否能够从PC300上操作复合机100。这样的检查也可以通过
远程应用软件管理部件302执行。在这种情况下,应用软件管理部件204
获得预定信息(例如JNLP文件)并且将该信息发送给远程应用软件管理部
件302。
当确定该应用软件能够操作复合机100的时候,在步骤S35下载简单
打印机,并且将其安装在指定硬盘中。然后,在步骤S36中将简单打印机
增加到应用软件列表中。
当安装了简单打印机时,能够在步骤S21从屏幕选择简单打印机。当
选择了简单打印机时,远程应用软件管理部件302在PC300的虚拟机305
中载入简单打印机,这样在步骤S37执行简单打印机。
简单打印机利用Java核心类304和客户复合机类303来操作复合机
100。在复合机100的操作中,例如,简单打印机301将消息发送给复合机
100中的服务器复合机应用软件210,这样服务器复合机应用软件210操作
复合机100的Java执行环境中的对象,以操作复合机100。
如前所述,简单打印机301最初显示图形界面屏幕。可以选择是在
PC300的屏幕上显示还是在复合机100的操作面板上显示。例如,当用户
选择简单打印机之后,远程应用软件管理部件302显示一个用于选择是在
PC300的屏幕上还是在复合机100的操作面板上显示的屏幕,从而可以实
现选择。在这个实施例中,选择了PC300并且在PC300上显示操作面板的
模拟屏幕。
随后,用户从PC300的屏幕上选择要打印的文件名称。用户可以选择
PC300的硬盘和复合机100的硬盘中的一个作为用户想要打印文件的存储
器。由于用户可以选择复合机100的硬盘,因此用户能够象在操作面板上
操作复合机100一样在PC300上执行操作。当通过远程应用软件管理部件
302选择简单打印机的时候,该选择可以通过用于在硬盘之间进行选择的显
示屏幕得到执行。
当选择了复合机100的硬盘时,用户从PC300的屏幕上指定文件例如
“/hdd/ts/photo.tiff”打印。结果,选择了复合机100的硬盘中的文件,并且
打印该文件。
为了结束复合机100的操作,远程应用软件管理部件302请求复合机
100的应用软件管理部件204结束或者暂停应用软件,并且结束与复合机
100的通信。
象第二实施例一样,在第三实施例中,Java应用软件也能够通过JNLP
文件自动得到更新。
(第四实施例)
接下来,第三实施例的远程操作的另外一个例子作为第四实施例得到
说明。在第四实施例中,复合机100配置成如图16所示的结构。在图16
中的复合机100中,Java执行环境116和Java应用软件117变成JSDK应
用软件147和JSDK平台148。JSDK平台148用于执行与其他软件和应用
软件管理等等之间的调解。
“SDK”的意思是特定的软件开发工具包,并且利用SDK开发的应用
软件称为“SDK应用软件”。作为一种特定的SDK,例如“JSDK”用来开
发使用Java语言的应用软件。利用JSDK开发的应用软件称为“JSDK应用
软件”。
图17示出图16中的JSDK应用软件147和JSDK平台148的类。JSDK
应用软件147和JSDK平台148通过Java编译程序从源代码编译成字节码,
并且通过Java虚拟机逐步执行。JSDK应用软件147和JSDK平台148是基
于Java2 Micro Edition的个人基础协议(personal basis profile)。
JSDK应用软件147包括用户应用软件501、JSDK GUI管理程序511、
以及任务栏管理程序512。
用户应用软件501是由复合机100的用户(例如,软件销售商)利用
JSDK开发的JSDK应用软件。JSDK GUI管理程序511是用来显示操作JSDK
应用软件的操作屏幕的JSDK应用软件。任务栏管理程序512是用来显示操
作JSDK应用软件的任务栏的JSDK应用软件。
用户应用软件501是作为Java应用软件的“Xlet”。JSDK GUI管理程
序511和任务栏管理程序512中的每一个是从Xlet扩展的“Xlet(XletEx)”。
JSDK平台148包括象JSDK主群组(Main)521、JSDK环境522、本
地管理程序523、Xlet管理程序531、多Xlet管理程序532、JSDK管理程
序533、发送管理程序541、事件管理程序542、系统事件管理程序543、
面板管理程序544、安装管理程序545、服务器/客户机管理程序546等等的
类。
JSDK主群组521是用来启动JSDK环境522的类。JSDK环境522是
用来执行启动JSDK系统的环境设置的类。本地管理程序523是用来执行外
语支持等等的类。
Xlet管理程序531是用来管理Xlet的生命期的类。通过五个Xlet管理
程序管理五个Xlet的生命期。这五个Xlet与五个Xlet管理程序是一一对应
的。所有Xlet管理程序的所有生命期是通过多Xlet管理程序532管理的。
JSDK管理程序533是用来管理整个JSDK系统的生命期的类。例如多Xlet
管理程序532的生命期、发送管理程序541、事件管理程序542、系统事件
管理程序543、面板管理程序544、安装管理程序545以及服务器/客户机管
理程序546是通过JSDK管理程序533管理的。Xlet的生命期是状态变换的,
例如,初始化状态(加载的)、暂停状态(暂停)、活动状态(活动)、结束
状态(毁坏的)等等。
系统事件管理程序543是用来管理来自平台120的系统事件(例如电
源模式)的类。面板管理程序544是用来当一个Xlet占用操作面板的屏幕
时执行调解等等的类。安装管理程序545是用来管理从SD卡和从网络服务
器安装或者卸载应用软件的类。
图17中的JSDK系统包括JSDK API 551和JSDK API 552。Xlet和
XletEx之间的不同是XletEx能够利用JSDKAPI 551来访问对象并且能够访
问JSDK平台。图16的复合机100进一步包括JSDK会话553和本地JSDK
会话554,它们是C语言与Java语言之间的接口。图16的复合机100进一
步包括CVM555,CVM555是Java虚拟机。
如图18所示,复合机100与PC701相连接。PC701用作复合机100的
仿真器。
图18中的PC701包括,例如,键盘712、鼠标713、显示器714等等。
机身711包括CPU、ROM、RAM、NVRAM、HDD、MODEM以及NIC等
等。
键盘712和鼠标713是由操作者使用的、用来输入数据的硬件(操作
部分)。显示器714是用来输出数据的硬件(显示部分)。
图19示出了图18中的PC701的JSDK应用软件147和JSDK平台148
的类。图19的PC701包括与图16中所示相同的JSDK应用软件147和JSDK
平台148。
图17和图19之间的不同如下所述。
首先,图17中的面板管理程序544由图19中的面板管理程序仿真器
744代替。其次,图17中的JSDK会话553由图19中的仿真器JSDK会话
753代替。第三,图17中的本地JSDK会话554由图19中的事件仿真器754
代替。第四,图1 7中的CVM555由图19中的JVM755代替。
面板管理程序仿真器744是用来仿真面板管理程序544以将操作面板
的操作改变为键盘712和鼠标713的操作的类。仿真器JSDK会话753是用
来建立通信路径的类。事件仿真器754是用来仿真复合机100的操作的类。
JVM755是用来执行JSDK应用软件147和JSDK平台148的Java虚拟机。
图20是用于解释复合机100中用于远程操作的预处理的执行过程的示
意图。
首先,在复合机100的服务器/客户机管理程序546和PC701的服务器
/客户机管理程序546之间建立通信会话(1)。会话的建立是通过与SIP(会
话启动协议)相似的协议执行的。
其次,复合机100的服务器/客户机管理程序546向复合机100的JSDK
管理程序533询问复合机100是否能够变换成远程操作模式,用来确定能
否执行远程操作(2)。
当能够执行远程操作的时候,复合机100的服务器/客户机管理程序546
通过发送管理程序541将远程操作所必须的请求信息发送给PC701(3),
并且通过复合机100中的事件管理程序542从PC701接收远程操作所必须
的响应消息(4)。
接下来,复合机100中的服务器/客户机管理程序546请求面板管理程
序544将用于远程操作的信息发送给PC701(5)。
最后,在复合机100的服务器/客户机管理程序546和PC701的服务器
/客户机管理程序546之间交换通知,用来互相通知远程操作的预备完成情
况(6)。因此,可以从PC701执行对复合机100的远程操作。第三实施例
中所述的、实现应用软件分布式处理的功能能够包括在,例如,复合机100
的服务器/客户机管理程序546和PC701的服务器/客户机管理程序546中。
在第一至第四实施例中说明的每一个程序能够存储在象存储卡这样的
记录介质中。程序能够从记录介质安装到复合机100中。此外,用来建立
Java执行环境、例如虚拟机的程序也能够存储在象CD-ROM的存储介质中,
并且能够从CD-ROM安装到PC300中。
如上所述,根据本发明,通过在复合机100中提供Java执行环境,Java
应用软件能够很容易地在复合机100上得到安装和启动。因此,能够很容
易地执行Java应用软件。此外,能够通过在经由网络与复合机100连接的
终端装置上执行Java应用软件来操作复合机100。
本发明并不限制于这些特定公开的实施例,在不脱离本发明范围的条
件下可以作出变化和修改。
本发明包括涉及2003年3月25日向JPO提出的日本专利申请
No.2003-082908和2004年3月18日向JPO提出的日本专利申请
No.2004-078979的主题,将它们的全部内容作为参考合并于此。