JP2023011236A - 情報処理システム、情報処理方法、プログラム - Google Patents

情報処理システム、情報処理方法、プログラム Download PDF

Info

Publication number
JP2023011236A
JP2023011236A JP2021114971A JP2021114971A JP2023011236A JP 2023011236 A JP2023011236 A JP 2023011236A JP 2021114971 A JP2021114971 A JP 2021114971A JP 2021114971 A JP2021114971 A JP 2021114971A JP 2023011236 A JP2023011236 A JP 2023011236A
Authority
JP
Japan
Prior art keywords
information
application
description
information processing
processing system
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.)
Pending
Application number
JP2021114971A
Other languages
English (en)
Inventor
岳史 木暮
Takeshi Kogure
篤 池田
Atsushi Ikeda
宏明 小池
Hiroaki Koike
空 熊谷
Sora Kumagai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2021114971A priority Critical patent/JP2023011236A/ja
Priority to CN202210847075.8A priority patent/CN115617413A/zh
Priority to US17/862,116 priority patent/US20230020062A1/en
Publication of JP2023011236A publication Critical patent/JP2023011236A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • H04N1/00244Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server with a server, e.g. an internet server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • H04N1/00949Combining applications, e.g. to create workflows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】 記述ファイルとアプリケーションデータに基づくカスタムアプリケーションを適切に管理可能なシステムを提供する。【解決手段】 再生アプリケーション(608)とディスクリプション(612)の組み合わせ情報をMFP(0203)で実行するカスタムアプリケーション(S911)として提供するオーサリングシステム(0101)において、再生アプリケーションから定義情報を取得する手段と、前記定義情報に基づき画面情報を出力する手段と、前記画面情報に対応する編集指示を受け付ける手段と、前記編集指示に基づいて、前記再生アプリケーションに対応する記述ファイルを生成する手段と、を有することを特徴とするものである。【選択図】 図6

Description

本発明は、情報処理装置にインストールするアプリケーションを編集するシステムに関する。この情報処理装置としては、例えば、プリンタ、スキャナ、FAX、複写機、およびこれらの複合機等の画像形成装置を利用することができる。また、この情報処理装置として、パーソナルコンピュータやモバイル端末等の電子機器を利用してもよい。
MFP等の情報処理装置にアプリケーションをインストールして機能を拡張する仕組みが知られている。特許文献1には情報処理装置にインストールしたアプリケーションID等を用いて管理する技術について開示している。
特開2016-2470号公報
情報処理装置を扱う顧客のニーズは様々である。そのため、顧客のニーズにあった機能をアプリケーションの形で提供することが望ましい。また、顧客の要望に迅速に対応できるよう、サービスマンや営業担当者等の関係者がアプリケーションをカスタマイズして顧客に提供できるとよい。
そこで、本願発明人は、編集が容易な記述データとしてのディスクリプション情報と汎用の再生アプリケーションを組み合わせることでカスタマイズされたアプリケーション(カスタムアプリケーション)を提供する仕組みについて検討を進めている。複数のデータを組み合わせて用いる仕組みでは、バージョン違い等、データ同士の対応関係によってはエラーの原因となるため適切に運用できることが望ましい。
本発明の他の目的は、記述ファイルとアプリケーションデータに基づくカスタムアプリケーションを適切に管理可能なシステムを提供することである。
本発明は、動作手順が定義された記述ファイルを再生する再生アプリケーションと記述ファイルの組み合わせ情報を画像処理装置で実行する組み合わせアプリケーションとして提供する情報処理システムにおいて、再生アプリケーションから定義情報を取得する手段と、前記定義情報に基づき画面情報を出力する手段と、前記画面情報に対応する編集指示を受け付ける手段と、前記編集指示に基づいて、前記再生アプリケーションに対応する記述ファイルを生成する手段と、を有することを特徴とするものである。
本発明によれば、記述ファイルとアプリケーションデータに基づくカスタムアプリケーションを適切に管理可能なシステムを提供できる。
オーサリングシステムについて説明する図である。 図2(A)は、オーサリングシステムのソフトウェア構成を示す図である。図2(B)は、オーサリングシステムに用いられるサーバ装置のハードウェア構成を示す図である。 図3(A)は、MFPのハードウェア構成を示す図である。図3(B)は、MFPのソフトウェア構成を示す図である。 MFPにおけるソフトウェアの階層構造を示す図である。 図5(A)はクライアント端末のハードウェア構成を示す図である。図5(B)はクライアント端末が実行するディスクリプションエディタのソフトウェア構成を示す図である。 ディスクリプションエディタに関するソフトウェアの階層構造を示す図である。 図7(A)は、ディスクリプションエディタの画面を示す図である。図7(B)は、MFPにおけるカスタムアプリケーションの実行画面を示す図である。 ディスクリプションエディタのソフトウェアモジュール間のシーケンスを示す図である。 オーサリングシステムの利用フローを示す図である。 カスタムアプリケーションのデータ構造を示す図である。 ディスクリプションを示す図である。 再生アプリケーションの構造を示す図である。 カスタマイズ可能な情報を示す図である。 ディスクリプションエディタのアプリケーションフレームワークエミュレータ制御部のソフトウェアモジュール構成を示す図である。 アプリケーションフレームワークエミュレータ内の処理シーケンスを示す図である。 アプリケーションフレームワークエミュレータの文字列描画処理のフローを示す図である。 機種依存情報を含むカスタマイズ可能な情報を示す図である。 ディスクリプションエディタの設定パラメータ表示処理のフローを示す図である。
以下、本発明の実施するための形態について、実施例を挙げ図面を用いて具体的に説明する。なお、本発明の範囲は実施例に記載の構成には限定されない。同様の効果が得られる範囲において、構成の一部や処理の一部について均等物へ置き換えたり省略したりといった改変をおこなってもよい。
(実施例)
<オーサリングシステム>
図1は、オーサリングシステムについて説明する図である。オーサリングシステム0101は、MFP0203で実行されるカスタムアプリケーションの編集環境を提供する情報処理システムである。本実施例では、オーサリングシステム0101を用いることで、サービスマンや営業担当者等の関係者によるアプリケーションのカスタマイズ可能にする。これにより、顧客の要望にあったカスタムアプリケーションを迅速に提供することが可能となる。また、顧客の要望毎に種類が増えていくカスタムアプリケーションを適切に管理にすることができる。
オーサリングシステム0101は汎用クラウドサービス上に構築されるシステムであり、ネットワークを介して様々な装置からアクセスすることができる。オーサリングシステム0101を使用するすべての管理者および利用者は、ユーザ認証の仕組みによってログイン管理される。すなわち、管理者および利用者は、オーサリングシステム0101の利用開始時にユーザIDやパスワード等を用いたユーザ認証手続きをおこなう。本実施例では、ユーザ認証の仕組みとして汎用クラウドサービスが提供する機能を利用するものとし、その詳細な説明は割愛する。なお、オーサリングシステム0101は、独自のユーザ認証機能を備えていてもよい。
オーサリングシステム0101はテナント発行サイト0106を備えており、用途に応じて複数のテナントを作成することができる。図1は、少なくとも、テナントA(0107)、テナントB(0108)、および、テナントC(0109)が発行された状態を示している。例えば、システム管理者0102は、クライアント端末0240からwebブラウザ介してテナント発行サイト0106にアクセスすることで、各国のグループ販売会社に対してテナントを作成することができる。グループ販売会社ではなくシステムインテグレータに対してテナントを発行してもよい。
テナントが発行された場合、ひとつのテナントには、それを管理する一人以上の管理者が割り当てられる。図1では、少なくとも、テナントA(0107)を管理するテナントA管理者0103、テナントB(0108)を管理するテナントB管理者0104、および、テナントC(0109)を管理するテナントC管理者0105が存在する例を示している。あるテナントのテナント管理者は、別のテナント管理者を設定したり、削除したりすることが可能である。
テナント管理者は、クライアント端末0240からwebブラウザを介して管理するテナントにアクセスし、そのテナントを利用する複数の利用者アカウントを作成することができる。図1では、テナントA管理者0103が、技術営業A1(0110)、技術営業A2(0111)から、技術営業An(0112)までのアカウントを作成した例を示している。それぞれのアカウントには、ディスクリプションを格納しておくディスクリプションプールが割り当てられる。ここで、ディスクリプションとは、カスタムアプリケーションの振る舞い(動作手順)を記述したファイル(記述ファイル)であり、オーサリングシステム0101を用いて作成することができる。なお、カスタムアプリケーションの構成やディスクリプションの詳細については後述する。
図1では、技術営業A1(0110)、技術営業A2(0111)から、技術営業An(0112)までのアカウントに、それぞれディスクリプションプールが割り当てられている様子を示している。各アカウントにはそれぞれ、ディスクリプションプールA1(0113)、ディスクリプションプールA2(0114)から、ディスクリプションプールAn(0115)(nは自然数)までが割り当てられている。なお、図1上では割愛するが、テナントB管理者やテナントC管理者も同様に、各テナントにおける利用者のアカウントを適宜作成することができる。また、テナント管理者は、共有ディスクリプションプールをテナント中に配置することで、1つのディスクリプションをテナント内の複数のアカウントで共有することを許可することができる。図1では、テナントA(0107)内に共有ディスクリプションプールA(0116)が配置することで、テナントA(0107)内でディスクリプションを共有する例を示している。テナント内のディスクリプションを共有する同様の構成として、テナントB(0108)内には共有ディスクリプションプールB(0117)が、テナントC(0109)には共有ディスクリプションプールC(0118)が配置されている。
なお、本実施例では、テナント内のすべてのアカウントが読み書き可能をおこなえるように共有ディスクリプションプールの設定がなされているものとして説明する。なお、アカウントに応じて書き込みや読み取りが制限されるように共有ディスクリプションプールの設定を変更しても構わない。また、オーサリングシステム0101は、すべてのテナントのアカウントがアクセス可能な共有ディスクリプションプールを備えていてもよい。この、共有ディスクリプションプールについても、アカウントに応じた制限を設定してもよい。
<システムの利用フロー>
図9を用いて、オーサリングシステムの主要な利用フローを説明する。図9はオーサリングシステムの利用フローを示す図である。
ステップ901(以降、S901等と表記する)において、システム管理者0102は、オーサリングシステム0101に対してテナント作成処理・再生アプリケーションの登録処理を行う。オーサリングシステム0101には、カスタムアプリケーション用の再生アプリケーションの他、通常のアプリケーションの情報が登録されている。これらのアプリケーションは一意に識別可能な情報に基づいて他のアプリケーションと区別可能に管理されている。S902において、システム利用者0202は、クライアント端末0240を用いて、テナント情報を元にWEBツールにアクセスする。クライアント端末0240は、ネットワークを経由して、オーサリングシステム0101からWEBツールを取得する。
システム利用者0202の指示によって、クライアント端末0240では、WEBツールを使用したディスクリプションの生成処理、登録処理がおこなわれる(S904~S907)。オーサリングシステム0101に登録されたディスクリプションは、一意に識別可能な情報に基づいて他のディスクリプションと区別可能に管理される。ディスクリプションの生成処理・登録処理の詳細については図14を用いて後述する。
S908において、クライアント端末0240は、登録されたディスクリプションを使用するカスタムアプリケーションについて、インストールコードの発行依頼をオーサリングシステム0101に送信する。
S914でインストールコード発行依頼を受信したオーサリングシステム0101は、後述するディスクリプション署名付与0211において署名用鍵情報0218を用いることで、ディスクリプション0219に署名情報を付与する。なお、署名用鍵情報0218は、後述の再生アプリケーションの署名に使用する鍵情報とは異なる情報である。再生アプリケーションの署名に使用する鍵情報はシステム開発者0201の開発環境において管理される。
S915において、オーサリングシステム0101は、後述するカスタムアプリパッケージング0212において、署名付与したディスクリプションと署名付与済みの再生アプリケーションのパッケージング処理を行う。
S909において、オーサリングシステム0101は、インストールコード発行システム0214においてインストールコードを発行し、パッケージングしたカスタムアプリケーションをカスタムアプリ配信システム0213に登録する。発行されたインストールコードは、電話やEメールなどの伝達手段によって利用者0202から顧客0230に伝達される。
S910において、顧客0230がMFP0203にインストールコードを入力すると、MFP0203はオーサリングシステム0101にインストールコードを送信する。
S911において、オーサリングシステム0101は、カスタムアプリ配信システム0213において、受信したインストールコードに対応したカスタムアプリケーションをMFP0203に提供する。
S912において、カスタムアプリケーションを受信したMFP0203は、カスタムアプリケーションのインストールを行う。正常にインストールが完了すると、S913においてアプリケーションが実行され、アプリケーションが提供する機能を顧客0230が利用可能な状態となる。
<オーサリングシステムのソフトウェア構成>
次に、オーサリングシステム0101のソフトウェア構成について説明する。図2(A)は、オーサリングシステムのソフトウェア構成を示す図である。
同図において、オーサリングシステム0101、テナントA(0107)、利用者アカウントである技術営業A1(0110)、および、ディスクリプションプールA1(0113)は、図1と同一のものである。
オーサリングシステム0101は、フロントエンドリソース0204、バックエンドプログラム0205、再生アプリケーションリソース0206といったソフトウェアモジュールを備える。
フロントエンドリソース0204は、ディスクリプションエディタ0207、フレームワークエミュレータ0208、インストールコード発行画面0209などのリソースを収容する。それぞれのリソースは、JavaScript等で記述されたプログラムで、利用者がオーサリングシステム0101にアクセスする際に使うwebブラウザ上(ウェブブラウザ上)で動作する。
ディスクリプションエディタ0207は、各テナントの利用者がディスクリプションの作成・編集等を行う際にwebブラウザ上で動作するプログラム(編集プログラム)である。ディスクリプションエディタ0207で作成されたディスクリプションは、利用者アカウントに紐づけられたディスクリプションプールに保存することができる。図2では、利用者である技術営業A1(0202)が、オーサリングシステム0101にログインし、フロントエンドリソース0204にアクセスしている例を示している。また、利用者である技術営業A1(0202)がフロントエンドリソース0204に収容されているディスクリプションエディタ0207を使って作成したディスクリプション0219が、ディスクリプションプールA1(0113)に保存された様子を示している。前述した通り、ディスクリプションプールA1(0113)は、テナントA(0107)に作成された利用者アカウントである技術営業A1(0110)に紐づけられている。
フレームワークエミュレータ0208は、ディスクリプションエディタ0207上で作成中(編集中)・作成済みのディスクリプションの振る舞いを同エディタ内で確認する際に呼び出されるプログラムである。フレームワークエミュレータ0208は、Webブラウザ上で動作するよう構成されている。フレームワークエミュレータ0208は、デバイスにおけるアプリケーションフレームワークの動作をエミュレーションし、作成されたディスクリプションを含むカスタムアプリケーションの振る舞いを画面情報として出力することで可視化する。
インストールコード発行画面0209は、カスタムアプリケーションをデバイスにインストールする際に使われるインストールコードを、利用者が使うwebブラウザ上に表示するプログラムである。
バックエンドプログラム0205は、ディスクリプションナンバー管理0210、ディスクリプション署名付与0211、カスタムアプリパッケージング0212、カスタムアプリ配信システム0213、インストールコード発行システム0214などを収容する。
バックエンドプログラム0205に収容されたそれぞれのプログラムは、オーサリングシステム0101がホストされるクラウド上のサーバ装置0220で実行され、フロントエンドリソース0204の各プログラムと協調して動作する。
ディスクリプションナンバー管理0210は、ひとつひとつのディスクリプションを識別するためのユニークなシリアルナンバーを発行するプログラムである。ディスクリプションナンバー管理0210は、利用者がディスクリプションエディタ0207を使って新たなディスクリプションの作成を開始するときに呼び出される。また、利用者が過去に作ったディスクリプションを破棄するときにも呼び出される。破棄したいディスクリプションがカスタムアプリケーションとして使用されていなければ、該ディスクリプションの作成時に割り当てたシリアルナンバーを再利用可能な状態に戻す等の処理を受け持つ。
ディスクリプション署名付与0211は、ディスクリプションが改ざんされていないことを保証するための署名を該ディスクリプションに付与するプログラムである。署名の付与は、例えば、作成されたディスクリプションを含むカスタムアプリケーションのインストールパッケージの生成時におこなわれる。ディスクリプション署名付与0211は、その署名の際に用いる署名用鍵情報0218を備える。図2では、ディスクリプションプールA1(0113)に保存されているディスクリプション0219がディスクリプション署名付与0211に引用されている例を示している。
カスタムアプリパッケージング0212は、カスタムアプリケーションのインストールパッケージ化を行うプログラムである。インストールパッケージでは、ディスクリプション署名付与0211によって生成された署名付きディスクリプションと、後述する特定の再生アプリケーションとをひとつにまとめられている。インストールパッケージ化することによって、任意のデバイスにカスタムアプリケーションをインストールすることが可能になる。なお、インストールパッケージのパッケージデータの構造の詳細については後述する。
カスタムアプリ配信システム0213は、インストールコード発行画面0209で発行されたインストールコードに予め紐づけられた、ひとつ以上のカスタムアプリケーションのインストールパッケージを、デバイスに配信するシステムのプログラムである。ここで、ひとつ以上のカスタムアプリケーションのインストールパッケージをカスタムアプリケーションのインストールパッケージアーカイブと呼ぶこととする。カスタムアプリ配信システム0213は、インストールコードを伴った配信要求をデバイスから受け取ると、そのインストールコードに紐づけられたカスタムアプリケーションのインストールパッケージアーカイブをデバイスに送信する。図2では、デバイスとしてMFP0203がオーサリングシステム0101のバックエンドプログラム0205に接続されている例を示しており、カスタムアプリケーションのインストールパッケージはMFP0203に順次送信されることになる。
インストールコード発行システム0214は、インストールコード発行画面0209と協調して動作し、利用者によって選択されたひとつ以上のカスタムアプリケーションに対するインストールコードを発行するプログラムである。また、インストールコード発行システム0214は、選択されたひとつ以上のカスタムアプリケーション(すなわち、カスタムアプリケーションのインストールパッケージアーカイブ)と、発行されたインストールコードとの関係を示すテーブルを内部に保持する。詳細は後述する。
ここで、カスタムアプリケーションのインストールパッケージアーカイブは、オンデマンドで生成されるように構成してもよいし、事前に生成しておくように構成してもよい。もしオンデマンドで生成されるように構成したならば、カスタムアプリ配信システム0213がインストールコードを伴った配信要求をデバイスから受け取った後に、カスタムアプリパッケージング0212によって生成される。一方、事前に生成しておくように構成したならば、インストールコード発行システム0214がインストールコードを発行したときにカスタムアプリパッケージング0212によって生成される。そして、インストールコード発行システム0214内部に発行されたインストールコードとの関係を示すテーブルと共に保持される。
再生アプリケーションリソース0206は、作成されたディスクリプションを再生するためのアプリケーションであって、かつ、事前に署名が付加されたパッケージである署名付きアプリケーションを収容する。再生アプリケーションリソース0206で管理される再生アプリケーションはひとつとは限らない。例えば、バージョン毎に別々に管理されるなど複数を管理されてもよい。図2では、事前に署名が付与された再生アプリケーションver1(0215)、再生アプリケーションver2(0216)から再生アプリケーションverN(0217)を収容している例を示している。各再生アプリケーションには対応する署名「署名1」「署名2」から「署名N」が付与される。それぞれの再生アプリケーションは、システム開発者0201によって開発される。また、再生アプリケーションの署名は、その署名に用いられる鍵情報が厳重に管理されたシステム開発者0201の開発環境で事前に付与される。そして、事前に署名が付与された再生アプリケーションは、システム開発者0201によって再生アプリケーションリソース0206へ適時アップロードされる。加えて、再生アプリケーションリソース0206に収容されるそれぞれの再生アプリケーションは、カスタマイズ可能な情報を備える。利用者は、ディスクリプションエディタ0207でディスクリプションの作成を開始するときに再生アプリケーションのバージョンを選択する。そして、ディスクリプションエディタ0207は、選択されたバージョンの再生アプリケーションから、同再生アプリケーション固有のカスタマイズ可能な情報を取得する。これにより、ディスクリプションエディタ0207は、カスタマイズに必要なメニュー項目のような情報を静的に保持しておく必要がなくなる。
<サーバ装置>
図2(A)で説明したオーサリングシステムのソフトウェア構成を実行するためのハードウェア構成について説明する。オーサリングシステム0101、クラウド上に構築するシステムであるため、複数の装置によって負荷を分散するように構成される。本実施例では説明を簡単にするため、1つのサーバ装置0220で処理するケースについて説明する。図2(B)は、オーサリングシステムに用いられるサーバ装置のハードウェア構成を示す図である。
サーバ装置0220はオーサリングシステムを実行するための情報処理装置であり、コントローラユニット250を備える。コントローラユニット250は、CPU252、RAM253、HDD255、ROM256、ネットワークI/F257を備える。CPU252、RAM253、HDD255、ROM256、ネットワークI/F257は、システムバス259を介して接続されている。
CPU252は、サーバ装置の動作を制御するものであり、RAM253に格納されたプログラムに基づいて動作する。ROM256はブートROMであり、システムのブートプログラムが格納されている。ネットワークI/F257はLANに接続されて、ネットワーク経由での各種情報の入出力を司る。HDD255は、システムソフトウェアをはじめとした各種プログラム等が格納されている。HDD255に格納されたプログラムがRAM253にロードされ、CPU252はこれに基づいてサーバ装置0220の動作を制御する。
上述した管理者や利用者のアカウント情報、図2(A)記載のテナントA(0107)に代表される各テナントに関する情報などは、すべてHDD255上で保持・管理される。図2(A)記載のフロントエンドリソース0204、バックエンドプログラム0205、再生アプリケーションリソース0206などもまた、HDD255上に保存される。加えて、図示しないが、図1の説明で記述した管理者および利用者のユーザ認証の仕組みを実現するプログラムなどもHDD255上に保持されている。ユーザ認証の仕組みを実現するプログラムは、サーバ装置0220を起動すると自動的にRAM253上にロードされ、CPU252によって実行される。例えば、図2(A)記載のシステム開発者0201や利用者(技術営業A1)0202がオーサリングシステム0101にアクセスしてログインを試みると、その要求はネットワークI/F257を介してユーザ認証のプログラムに伝えられる。そして、ユーザ認証のプログラムによって、システム開発者0201や利用者(技術営業A1)0202が使用しているPC等のwebブラウザ上にログイン画面が表示される。フロントエンドリソース0204に収容されるディスクリプションエディタ0207なども、HDD255上に保持されている。例えば利用者(技術営業A1)0202がオーサリングシステム0101にログインしてディスクリプションエディタのURLにアクセスすると、その要求はネットワークI/F257を介してサーバ装置0220に伝わる。そして、ディスクリプションエディタ0207のプログラムは、利用者(技術営業A1)0202が使用しているPCのwebブラウザに返され、webブラウザ上で動作する。フレームワークエミュレータ0208やインストールコード発行画面0209についても同様の処理がなされる。
バックエンドプログラム0205に収容されるディスクリプションエディタ0207なども、HDD255上に保持されている。前述の通り、バックエンドプログラム0205はフロントエンドリソース0204の各プログラムと協調して駆動される。バックエンドプログラム0205に収容されたディスクリプションナンバー管理0210をはじめとする各モジュールは、駆動を要求されるとHDD255からRAM253上にロードされ、CPU252によって実行される。
<MFP>
MFP0203は情報を処理する情報処理装置であり、画像を処理する画像処理装置であり、シートに画像を形成する画像形成装置である。図3(A)は、MFPのハードウェア構成を示す図である。図3(B)は、MFPのソフトウェア構成を示す図である。
MFP0203はコントローラユニット300と、プリンタ395と、スキャナ370と、操作部312、USBストレージ314とを備える。コントローラユニット300は、スキャナ370で読み取られた画像データをプリンタ395により印刷出力するコピー機能を実現するための制御を行う。スキャナ370は、原稿から画像を読み取る画像読取部である。プリンタ395は、シート(用紙)に画像を形成する画像形成部である。操作部312はユーザの指示を受け付ける受付部であり、ユーザに情報を表示する表示部である。
コントローラユニット300は、CPU301を有し、CPU301は、ROM303に格納されているブートプログラムによりオペレーションシステム(OS)を立ち上げる。
CPU301は、このOS上で、ストレージ304に格納されているプログラムを実行し、これによって各種処理を実行する。このCPU301の作業領域としてはRAM302が用いられる。RAM302は、作業領域を提供するとともに、画像データを一時記憶するための画像メモリ領域を提供する。ストレージ304は、プログラムや画像データを格納する。
CPU301には、システムバス307を介して各構成と通信可能に接続されている。各構成とは、ROM303、RAM302、操作部I/F(操作部インターフェース)306、ネットワークI/F(ネットワークインターフェース)310、USBホストI/F313、画像バスI/F(画像バスインターフェース)305である。操作部I/F306は、タッチパネルを有する操作部312とのインターフェースであり、操作部312に表示すべき画像データを操作部312に対して出力する。また、操作部I/F306は、操作部312においてユーザにより入力された情報をCPU301に送出する。ネットワークI/F310は、MFP0203をLANに接続するためのインターフェースである。USBホストI/F313は、USBストレージ314と通信するインターフェース部である。USBホストI/F313は、ストレージ304に格納されているデータをUSBストレージ314に記憶させるための出力部である。また、USBホストI/F313は、USBストレージ314に格納されているデータを入力し、CPU301にそれを伝える。USBストレージ314は、データを格納する外部記憶装置であり、USBホストI/F313に対して着脱可能である。USBホストI/F313には、USBストレージ314を含む複数のUSBデバイスが接続可能である。RTC315は、現在時刻を制御する。このRTC315で制御する時刻情報はジョブ投入時間の記録などに利用する。画像バスI/F305は、システムバス307と、画像データを高速で転送する画像バス308とを接続し、データ形式を変換するためのバスブリッジである。画像バス308は、PCIバスまたはIEEE3394等によって構成される。画像バス308上には、デバイスI/F320、スキャナ画像処理部380、プリンタ画像処理部390が設けられる。デバイスI/F320には、スキャナ370およびプリンタ395が接続され、デバイスI/F320は、画像データの同期系/非同期系の変換を行う。スキャナ画像処理部380は、入力画像データに対し補正、加工、編集を行う。プリンタ画像処理部390は、プリント出力画像データに対してプリンタ395に応じた補正、解像度変換などを行う。
ストレージ304に記憶されているプログラムを、CPU301がRAM302にロードし、プログラムを実行することで図3の各モジュールが実現される。図3(B)はMFPのソフトウェア構成を示す図である。
MFP0203は、そのソフトウェア構成として、サーブレットサービス354、UI制御部353、アプリケーション実行制御部355、ストレージ制御部356、アプリケーション実行制御部355、標準機能制御部351、タイマー管理部359を備える。
サーブレットサービス354は、ネットワークI/F310を通してHTTPアクセスされた際に、そのリクエストを受け付ける。そして、アクセスされたURLによってモジュール(アプリケーション管理部352か標準機能制御部351)に処理を振り分けるモジュールである。
UI制御部353は、操作部312に画面を表示し、ユーザからの操作を受け付けて、その操作情報を適切なモジュール(アプリケーション管理部352か標準機能制御部351)に通知を行うモジュールである。アプリケーション管理部352は、インストールされている拡張アプリケーション440のインストールやの起動等の管理を行うモジュールである。
アプリケーション実行制御部355は、アプリケーション管理部352で起動されたアプリケーションの実行制御を行うモジュールである。具体的には、VMスレッド415、VMシステムサービス420、VM430、拡張アプリケーション440を制御する。
ストレージ制御部356は拡張アプリケーション440のプログラムや、設定情報を記録管理するモジュールである。
アプリケーション実行制御部355は、ストレージ制御部356にアクセスしてアプリケーションのプログラムを読み出す。また、各モジュールは、ストレージ制御部356にアクセスし、設定値の参照、設定を行う。
標準機能制御部351は、MFP0203の標準機能であるコピーやFAXの制御や、その他のMFP0203に必要な制御(例えばUSBホストパスI/F313の制御)を行うモジュールである。また、標準機能制御部351は、実行したコピーやFAXなどをジョブとして管理し、そのジョブの実行結果の記録をジョブ実行履歴制御部357に依頼する。ジョブ実行履歴制御部357は、ジョブの実行結果を履歴としてストレージに残すため、ストレージ制御部356に履歴の記録を依頼する。
タイマー管理部359は、RTC315から現在時刻情報を取得し、規定の時刻が経過したことを検知し、アプリケーション管理部352に通知する。アプリケーション管理部352は、タイマー管理部359から通知を受け、アプリケーションのタイマー処理の実行をアプリケーション実行制御部355に依頼する。
ここで、OS、VM、アプリケーションの関係について詳細に説明する。図4は、MFPにおけるソフトウェアの階層構造を示す図である。
オペレーティングシステムであるOS401上では、プリンタやFAX、スキャナと言った画像処理ユニットを制御するためのネイティブプログラム410が動作する。また、オペレーティングシステムであるOS401上では、拡張アプリケーション440の実行環境である仮想マシン(Virtual Machine:VM)430が動作する。VM430は、拡張アプリケーション440を制御するプログラムを理解し実行するモジュールである。拡張アプリケーション440は、必ずVM430上で動作する。VM430で動作するプログラムは、CPU301で動作する命令とは異なり、VM430専用の命令で動作する。この命令をバイトコードと呼ぶ。一方でCPU専用命令をネイティブコードと呼ぶ。VMがこのバイトコードを逐次解釈し処理することで、CPU301上ではネイティブコードと、VMのバイトコードが動作する。VMには、バイトコードをそのまま逐次解釈処理するタイプと、バイトコードをネイティブコードに変換して実行するタイプがある。本実施例のVM430は前者のタイプであるが、後者のタイプであってもよい。一般的にCPUの種別が異なると、CPUで動作する命令に互換性が無い様に、VMが異なるとVMで動作する命令も互換性が無い。本実施例では、拡張アプリケーションはLua言語で構成されていることを前提とするが、他の言語でも構わない。Lua言語は、Lua言語で記載されたスクリプトをLua言語専用のバイトコードに変換し、Lua言語専用のVM430上で実行する。もちろんLua言語のバイトコードは、CPU301が直接実行可能な命令コードとは異なるため、Lua言語のバイトコードをCPU301で直接実行できない。このLua言語のVM430は、Lua言語のバイトコードを逐次解釈実行するソフトウェアモジュールとして、CPU301の命令コードで構成されている。もちろん、Lua言語のバイトコードを解釈実行する専用のハードウェアとして構成していてもよい。
ネイティブプログラム410内には、プリンタやFAX、スキャナと言った画像処理ユニットを制御するためのネイティブスレッド414と、VM430を動かすためのVMスレッド415がある。VMスレッドはVM430の数に対応する数存在する。ここでは、VMスレッドA-1(411)、VMスレッドA-2(412),VMスレッドB-1(413)の3つのスレッドが生成されている。
VMシステムサービス420は、各拡張アプリケーション440から共通利用されるユーティリティライブラリである。拡張アプリケーション440からVMシステムサービス420の機能を呼び出することで、拡張アプリケーション440の開発スピードを加速することができる。また、VMシステムサービス420は、MFP0203の各モジュールへアクセスすることができる。VMシステムサービス420には、VMとして最低限動作させる標準VMシステムサービス421と、MFP0203の各モジュールにアクセスや、OSの機能を提供する拡張VMシステムサービス422がある。標準VMシステムサービス421は、拡張アプリケーション440をロードする機能も含む。VMシステムサービス420は、VM430が拡張アプリケーション440内のバイトコードで指示されているAPIを実行することで、APIに関連づけられているVMシステムサービス420が呼び出される。拡張VMシステムサービス422には、操作部312の画面に任意の描画を行う描画APIや、MFP0203のコピーやスキャンなどの任意のジョブの実行を依頼するジョブ制御APIが提供されている。
VM430は、拡張アプリケーション440を実行する。VM430は、拡張アプリケーション440のスレッド毎に生成される。この図では拡張アプリケーションA441で2つのスレッドを動かすためのVM A-1(431)と、VM A-2(432)を生成している。また、この図では、拡張アプリケーションB(442)で1つのスレッドを動かすためのVM B-1を生成している。
また、MFP0203の操作部312に表示されるメインメニュー画面には、拡張アプリケーション440ごとのアイコンが表示される。このアイコンをユーザが選択したことを、操作部312を通じて操作部I/F306が検知すると、操作部I/F306はその旨をCPU301に送信する。その旨を受け取ったCPU301はユーザによって選択された拡張アプリケーション440を起動する。
以降の説明において、拡張アプリケーション440をMFP0203上で動かすこの仕組み(VMシステムサービス420、VM430)を、アプリケーションフレームワークと記す。
<クライアント端末>
本システムに登場する一般的なクライアント端末を代表して、利用者0202が利用するクライアント端末0240について説明する。なお、ここで説明する構成をシステム管理者0102、テナントA管理者0103、テナントB管理者0104、テナントC管理者0105、システム開発者0201等が用いるクライアント端末に適用してもよい。図5(A)はクライアント端末のハードウェア構成を示す図である。
クライアント端末0240は、オーサリングシステム0101にアクセスする外部端末(情報処理端末)である。クライアント端末0240は、コントローラユニット500と、操作部510、表示部512とを備える。コントローラユニット500は、システムバス509によって各ハードウェアと接続され、情報をやり取りしている。コントローラユニット500は、ROM506あるいはHDD505に記録されているOSあるいはWebブラウザのようなプログラムをRAM503に展開する。展開されたプログラムはCPU502によって逐次処理される。操作部510は、ユーザの操作を受け付ける受付部である。操作部510は、操作部IF501に接続されており、操作部510で受け付けたユーザ操作情報は操作部IF501を通ってCPU502に通知される。この操作情報は、CPU502上で動作するプログラムによって処理される。これによってユーザの操作が処理され、操作結果が表示部IF504に接続されている表示部512に表示され、あるいはネットワークIF507に接続されているネットワークに通知される。
本実施例では、このクライアント端末0240上でWebブラウザを実行し、そのWebブラウザで図1に示すオーサリングシステム0101にアクセスする。このクライアント端末0240は一般的なPCでも良いし、スマートフォンのような携帯端末でも良い。
次に、クライアント端末0240がWebブラウザ上で、ディスクリプションエディタを実行するケースについて説明する。図6は、ディスクリプションエディタを表示しているWebブラウザのブロック図である。
Webブラウザ601は、Webサーバに接続するためのソフトウェアであり、ウェブページを表示したり、プログラムを実行したりすることができる。Webブラウザ601は、Webブラウザ自体を動かすためのネイティブプログラムであるWebブラウザネイティブブプログラム602上においてJavaScript VM603を実行可能である。JavaScript VM603は、Webブラウザ上でJavaScriptを動かすためのプログラムである。
ディスクリプションエディタ604は、JavaScriptで構成されたプログラムであり、図2で紹介したディスクリプションエディタ0207の一例である。ディスクリプションエディタ604は、JavaScript VM 603 上で実行される。ディスクリプションエディタ604は、アプリケーションの編集環境を提供するプログラムである。
また、ディスクリプションエディタ604は、Application Framework Emulator(アプリケーションフレームワークエミュレータ605)として機能する。アプリケーションフレームワークエミュレータ605は、ブラウザ上でJavaScriptと異なる言語のプログラムを実行するためのアプリケーションフレームワークのエミュレーションを実行する。アプリケーションフレームワークエミュレータ605は、図2で紹介したフレームワークエミュレータ0208の一例である。本実施例において、アプリケーションフレームワークエミュレータ605は、MFP0203上で実行されるアプリケーションの言語と同言語の実行環境についてエミュレーションをおこなう。また、アプリケーションフレームワークエミュレータ605は、VMシステムサービスエミュレータ606と、VMエミュレータ607とを含む。これらは、図2のVM430、VMシステムサービス420の動作をJavaScript上でエミュレートするものであり、JavaScriptで構成されるプログラムである。
再生アプリケーション608は、ユーザによってカスタマイズされたディスクリプションに基づき動作するアプリケーション(再生プログラム)である。再生アプリケーション608は、MFP0203のアプリケーションフレームワーク上で実行されるアプリケーションと同様に構成されている。図6では、再生アプリケーション608がアプリケーションフレームワークエミュレータ605上で実行される様子を示している。再生アプリケーション608内には、VMシステムサービスからのカスタマイズ可能な情報問い合わせの処理を行うカスタマイズ可能な情報制御610が含まれる。また、再生アプリケーション608内には、カスタマイズ可能な情報の定義611と、与えられたディスクリプションを再生するディスクリプション再生制御609が含まれる。
ディスクリプション612はユーザが編集したカスタマイズ情報を、再生アプリケーションで再生可能な形式で保持するデータである。ディスクリプションエディタ604が提供する編集画面に対してユーザが編集内容を指示(編集指示)すると、ディスクリプションエディタ604によってディスクリプション612が生成される。ディスクリプションエディタ604は、アプリケーションフレームワークエミュレータ605上で動作する再生アプリケーション608において生成されたディスクリプション612を再生する。これにより、カスタマイズされたアプリケーションの動作確認画面をWebブラウザ上でユーザに提供する。
本実施例では、ディスクリプションエディタ604を構成するプログラム言語としてJavaScriptを利用しているが、他のWebブラウザ上で直接実行可能なコード、例えばWebAssemblyで構成してもよい。
また、ディスクリプションエディタ604で実行する再生アプリケーションは、MFP0203で実行される再生アプリケーションと完全に同一でなくてもよい。例えば、再生アプリケーションのカスタマイズに直接関係するディスクリプション再生制御部分だけを切り出した動作確認用アプリケーションをロードする構成であってもよい。
次に、ディスクリプションエディタ604の詳細について説明する。図5(B)はクライアント端末が実行するディスクリプションエディタのソフトウェア構成を示す図である。
ディスクリプションエディタ604は、Webブラウザが所定のURLにアクセスしてサーバからダウンロードし、Webブラウザ内で実行されるプログラムであり、JavaScriptで記述される。ディスクリプションエディタ604は、全体制御部551、
画面構成部552、フレームワークエミュレータ制御部556、サーバ通信部557、ディスクリプション生成部555、カスタマイズ部品情報管理部553、カスタマイズ部品情報編集部554を備える。
全体制御部551は、このディスクリプションエディタ全体を制御する構成である。この全体制御部551が各ブロックと連携して動作することで、ディスクリプションエディタ604を制御する。画面構成部552は、このディスクリプションエディタ604の画面構成を制御する構成である。この画面構成部552は、図7で示す画面を構成する HTML element、css(画面情報)を更新する。また、ユーザの操作を受け付け、操作内容(編集操作)を全体制御部551に通知する。全体制御部551は、その操作通知を受けて適宜制御を行う。その操作通知がアプリケーション画面イメージの表示領域701に対する操作情報の場合、全体制御部551はフレームワークエミュレータ制御部556に操作情報を通知する。例えば、アプリケーション画面イメージの表示領域701をクリックした場合、アプリケーション実行画面の所定の場所がクリックされたことを示す情報がフレームワークエミュレータ制御部556に通知される。フレームワークエミュレータ制御部556は、カスタマイズしたディスクリプションを再生する再生アプリケーションをWeb上で実行するための構成である。再生アプリケーションは、MFP0203内のアプリケーションフレームワーク上で動作するように構成されているため、Webブラウザ上では直接実行することはできない。このフレームワークエミュレータは、MFP0203向けのアプリケーションをWeb上で実行するためのエミュレーションを行う。このフレームワークエミュレータ制御部556は、全体制御部551からの画面操作通知を受け、エミュレータ内で実行するアプリケーションに通知する。操作情報の通知を受けたアプリケーションは、操作に対する画面更新を行う。この画面更新は、アプリケーションフレームワーク内の画面描画APIによって実現されている。このAPIは、フレームワークエミュレータによって、Webブラウザ内の画像イメージレンダリングAPIに置き換えられ、アプリケーションの表示画面が図7のアプリケーション画面イメージの表示領域701に表示される。カスタマイズ部品情報編集部554は、再生アプリケーションからカスタマイズ可能な部品情報を取得し、その情報を元にディスクリプションエディタ604で利用可能なフォーマットに変換し保持する構成である。この部品情報を元に、画面構成部552は部品リスト702、カスタマイズ設定情報の表示領域706を構成する。カスタマイズ部品情報管理部553は、現在設定されているカスタマイズ部品の設定情報を管理する構成である。この情報を元に、画面構成部552はカスタマイズ設定情報の表示領域706を構成する。ディスクリプション生成部555は、カスタマイズ部品情報編集部554で保持されている現在の設定情報を元にディスクリプションを生成する構成である。このディスクリプションはフレームワークエミュレータ制御部556を通じて再生アプリケーションに通知する。これにより、再生アプリケーションはディスクリプションを再生し、図6のアプリケーション画面イメージの表示領域701が更新される。サーバ通信部557は、サーバとの通信の制御を行う。サーバとの通信には、カスタマイズ部品情報編集部554で保持している部品設定情報をサーバに保存するための通信と、フレームワークエミュレータ制御部556で実行するための、再生アプリケーションのダウンロードが含まれる。これにより、再生アプリケーションのカスタマイズ可能な情報に増減や、動作に変更があっても、ディスクリプションエディタ604の変更なしに、再生アプリケーションに合わせた編集機能を提供できる。
<ディスクリプションの編集>
まず、カスタムアプリケーションを作成するためのディスクリプションエディタの実行画面について説明する。図7(A)は、ディスクリプションエディタの画面を示す図である。ユーザがWebブラウザでオーサリングシステム0101にアクセスし、アプリケーションのカスタマイズを開始すると、Webブラウザ内に画面700が表示される。画面700はサーバからダウンロードしたHTML、 JavaScript、 css によって構成されていて、Webブラウザがそれらを解釈し、画面をレンダリングした結果が表示される。本実施例では、顧客の要望を受け、Copyの実行ボタンを選択しやすくしたカスタムアプリケーションを作成する様子を例に説明する。画面700に複数のアイテム(オブジェクト)が配置されており、アプリケーションの編集環境をユーザに提供する。画面700の主要な構成を次に説明する。
表示領域701は、ユーザによってカスタマイズされた内容が反映されたアプリケーション(変種中のアプリケーション)の実行イメージを表示するためのイメージ表示領域である。本実施例では、この領域を HTML の canvas element によって構成した例を用いて説明するが、この領域を他のレンダリング可能な HTML element を使って構成しても良い。このような構成により、ユーザは、表示領域701を見て所望のカスタマイズが行えているか確認しながらカスタマイズを行うことができる。
部品リスト702は、カスタマイズ可能(追加可能)な表示部品のリストを表示するプルダウン形式の表示オブジェクトである。ユーザは、この部品リスト702から所望の部品を選択・追加することで、アプリケーションに対して部品を追加するカスタマイズをおこなうことができる。編集可能な部品としては、例えば、機能を紐づけ可能なボタン、タイトル情報、メッセージ情報等があげられる。
部品の追加した結果は表示領域701に即座に反映されるため、ユーザはカスタマイズ状況を容易に確認することができる。
表示領域706は、現在設定されている部品と、その部品に設定されている情報を表示するカスタマイズ設定情報表示領域である。図7(A)では、タイトル部品703、メッセージ部品704、ボタン部品705が設定されている様子が表示されている。ユーザは、表示領域706に表示されている部品の情報を編集することで、部品のカスタマイズをおこなうことができる。例えば、タイトル部品703に表示されている「カスタムアプリケーション」文字列を「テストアプリケーション」と編集したとする。すると、表示領域701においてその編集が反映され、「カスタムアプリケーション」と記載された箇所が「テストアプリケーション」に更新される。また、部品のパラメータを編集することで、部品のサイズやレイアウトを変更することも可能である。
次に、ディスクリプションエディタの実行フローについて説明する。図8は、ディスクリプションエディタのソフトウェアモジュール間のシーケンスを示す図である。各処理は、コントローラユニット500によって実現される。詳細には、WEBブラウザ601のプログラムをROM506等から取得してRAM503に展開したCPU502が、JavaScript VM603を介してディスクリプションエディタ604を実行することで、各処理が実現される。
ディスクリプションエディタ604の実行フローでは、はじめに全体制御部551が、画面構成部552に画面構成要求する(S800)。画面構成部552は、図7(A)で示すような編集画面の構成をおこなう。この時、部品リスト702、カスタマイズ設定情報の表示領域706はカスタマイズ可能な部品情報が不定のため、空の状態で構成される。次に全体制御部551は、サーバ通信部557に再生アプリケーションのダウンロードを要求する(S801)。サーバ通信部557は、この要求を受けてサーバから再生アプリケーションをダウンロードする。サーバ通信部557は、ダウンロードした再生アプリケーションを全体制御部551に通知する(S802)。全体制御部551はフレームワークエミュレータ制御部556に、再生アプリケーションの実行を要求する(S803)。フレームワークエミュレータ制御部556は、要求された再生アプリケーションを実行する。続いて、全体制御部551はフレームワークエミュレータ制御部556に、カスタマイズ可能な部品情報を要求する(S804)。フレームワークエミュレータ制御部556は、この要求を受け再生アプリケーションにカスタマイズ可能な部品情報を要求し、取得できたカスタマイズ可能な部品情報を全体制御部551に返す(S805)。全体制御部551は、取得したカスタマイズ可能な部品情報をカスタマイズ部品情報管理部553に通知する(S806)。カスタマイズ部品情報管理部553は、通知された情報を元に、ディスクリプションエディタで扱うためのデータフォーマットに変換する。次に全体制御部551は、画面構成部552に画面更新を要求する(S808)。ここではカスタマイズ可能な部品情報が確定しているため、部品リスト702、カスタマイズ設定情報の表示領域706に情報が反映され、ユーザがカスタマイズ可能な状態になる。次にユーザが部品リスト702から部品を追加する(S808)。画面構成部552は、この変更通知を受け、全体制御部551にユーザ操作情報を通知する(S809)。全体制御部551は、設定値が変更された事をカスタマイズ部品情報編集部に通知する(S810)。カスタマイズ部品情報編集部は、設定された値を確認し現在の設定値を全体制御部551に通知する(S811)。全体制御部551は、現在の設定値からディスクリプションを生成するようにディスクリプション生成部555に依頼する(S812)。ディスクリプション生成部555は、現在の設定値に対応するディスクリプションを生成して、全体制御部551に通知する(S813)。全体制御部551は、フレームワークエミュレータ制御部556にディスクリプションを通知する(S814)。フレームワークエミュレータ制御部556は、ディスクリプションを再生アプリケーションで再生する、これにより、アプリケーション画面イメージの表示領域701が更新される。最後に、全体制御部551は、サーバ通信部557に、編集されたカスタマイズ部品設定情報の保存を要求する(S815)。これを受け、サーバ通信部557は、サーバにカスタマイズ部品設定情報の保存を要求する。これによって、ユーザが設定したアプリケーションのカスタマイズ情報がサーバに保存される。次回にユーザがアプリケーションのカスタマイズを行う場合、この情報がロードされ、ユーザが編集した情報が反映された状態からカスタマイズを行うことが出来る。
次に、部品情報とディスクリプションについて説明する。図13は、図8のS804からS805で取得されるカスタマイズ可能な部品情報の定義611の一例である。この情報は、再生アプリケーション608中に保持される情報であり、再生アプリケーション608のバージョンによって内容が異なっていてもよい。ディスクリプションエディタ604は、再生アプリケーションリソース0206にアクセスすることで、再生アプリケーション608のバージョンを更新することができる。再生アプリケーション608とディスクリプション612のバージョンが異なる(対応していない)とエラーの原因となりえる。しかしながら、本実施例では、ディスクリプション612の基となる定義611を再生アプリケーション608から取得する仕組みである。そのため、再生アプリケーション608のバージョンとディスクリプション612のバージョンが対応していないといった事態の発生を抑制できる。
ディスクリプションエディタ604は、アプリケーションのカスタマイズの実行時、再生アプリケーション608に問い合わせを行い、この定義情報を取得する。なお、本実施例では、Webブラウザとの親和性の高いJSONフォーマットで定義611を表現しているが、他のフォーマットを利用しても良い。カスタマイズ可能な部品情報としては、GUI部品情報1301とジョブ部品情報1302が挙げられる。
GUI部品情報1301は、その再生アプリケーションでカスタマイズ可能なGUI部品の情報を示している。GUI部品情報1301が備える情報として、情報群1303と情報群1304が挙げられる。
情報群1303は、タイトルのGUI部品に関する情報群であり、部品ID1305、localize1306、attrib1307、localize1309、data_type1310を備える情報群である。GUI部品情報は、部品を識別する部品ID1305、部品名を示すlocalize1306、部品の設定情報を示すattrib1307を備える。部品ID1305は、部品の識別子であり、これは全ての部品でユニークな文字列が与えられる。この文字列は、ディスクリプションエディタ604と、再生アプリケーション内で利用され、GUI上には表示されない情報である。部品名のlocalize1306は、図7(A)の部品リスト702に表示される情報である。部品名の情報であるlocalize1306は、各言語向けの部品名を保持しており、Webブラウザの言語設定に応じて表示される。部品の設定情報であるattrib1307は、その部品に設定すべき項目情報を含む。情報群1303はタイトルのGUI部品についての情報群であるため、attrib1307は項目情報として、タイトル名の設定情報を備える。タイトルの設定情報としては、設定情報を識別する設定ID1308、設定情報名を示すlocalize1309、設定情報の設定値種別を示すdata_type1310が挙げられる。設定ID1308は、設定の識別子であり、情報群1303内においてユニークな文字列が与えられる。なお、異なる情報群、例えば情報群1304においては同じ文字列を利用してもよい。
設定ID1308の文字列は、ディスクリプションエディタ604と、再生アプリケーション608内で利用され、GUI上には表示されない情報である。設定名のlocalize1306は、カスタマイズ設定情の表示領域706内の各部品の設定情報のタイトル部品703に表示される情報である。部品名の情報であるlocalize1309は、各言語向けの設定名を保持しており、Webブラウザの言語設定に応じて表示される情報である。設定値種別data_type1310は、この設定値に設定可能なデータ種別を示している。ここでは“string”が設定されている。この“string”は、任意の文字列を設定可能なことを示している。このdata_typeは、GUI部品の表示位置情報を示す“position”1311を含む。このdata_typeは、ボタンが押下された時に別のパネルに移動する“change_panel”1312を含む。このdata_typeは、コピージョブの部数を入力する”int_100”1315、決められた項目内からデータを選択する”select”1316を含む。この設定値種別data_type1310は、ディスクリプションエディタ604と再生アプリケーション608間でどのような種別をサポートするかを事前に決定しておく情報である。設定情報は、部品によって複数の情報を持つことがある。例えば、情報群1303が持つ設定情報を1つだが、情報群1304が持つ設定情報は3つである。
ジョブ部品情報1302は、GUI部品情報1301と同様の情報構造となっている。この例では、コピージョブについて、部数、カラーモードの設定値を示す情報を保持している。ジョブを識別するジョブ識別ID1313である。“attrib”1314は、そのジョブのカスタマイズ可能なパラメータ情報を示す。この例では、部数と、カラーモードがカスタマイズ可能なパラメータである。“data_range”1317は、カラーモードの設定可能な候補を示す情報である。候補の情報は、候補ID1318と、候補名を示すlocalize1319を備える。
画面構成部552は、以上で説明した情報を元に、どのようにカスタマイズ可能な情報をユーザに設定させるかを判断し、それに適した設定画面を構築する。
次に、図13の定義611に基づき画面を構築したディスクリプションエディタ604によって生成されるディスクリプションの構造について説明する。図11はディスクリプションを示す図である。図11は、図7(A)でカスタマイズされたアプリケーション設定情報に対応するディスクリプションの例を示している。すなわち、Copy実行確認画面を表示し、OK押下時にコピージョブを実行するアプリケーションに対応するディスクリプションを示している。本実施例では、ディスクリプションの内容についてWebブラウザとの親和性の高いJSONフォーマット(JSON形式)で表記する。ディスクリプションのフォーマットとして他のフォーマットを利用しても良い。
ディスクリプションは、大きく分けてパネル情報1101、1102から構成されている。パネル情報1101には、部品の情報および部品毎のカスタマイズ情報が格納されている。部品の情報としては、タイトル部品情報1103、メッセージ部品情報1109、OKボタン部品情報1110、キャンセルボタン部品情報1111が含まれる。各部品のカスタマイズ情報としては、部品ID情報1104、部品設定情報1105、部品パラメータ情報1106、部品パラメータデータタイプ1107、部品パラメータデータ1108が含まれる。部品ID情報1104は、そのカスタマイズ情報が何の部品の情報なのかを示す識別情報である。この例の場合、 “title”部品のカスタマイズ情報であることを示している。部品設定情報1105は、その部品の設定情報を示す。部品パラメータ情報1106は、部品のパラメータのカスタマイズ情報を示す。部品パラメータデータタイプ1107は、部品パラメータのデータの型を示す。部品パラメータデータ1108は、その部品パラメータの設定値を示す。data_typeが“string”の場合、ローカライズされた文字列の情報が指定される。
したがって、タイトル部品情報1103には、”title”部品に、”title”パラメータがあり、そのパラメータの設定値はローカライズされた文字列“カスタムアプリケーション”が設定されていることがわかる。メッセージ部品情報1109、OKボタン部品情報1110、キャンセルボタン部品情報1111についても、同様に各カスタマイズ情報が設定されている。
パネル情報1102はジョブを実行するための情報が格納されている。ジョブ実行部品情報1112には、ジョブ実行を行うための部品として”execute_job”が指定されている。このジョブ実行部品情報1112についての情報として、何のジョブを実行するのかを示すジョブ識別ID1114と、そのジョブのジョブパラメータ1115と、がパラメータ設定値として含まれている。この例はコピーを実行するアプリケーションであるため、ジョブ識別ID1114には”copy”が指定されている。ジョブパラメータ1115には、そのジョブを実行する際のパラメータを登録することができる。ここでは、部数情報1116と、カラー1117が登録されている。
以上の説明で例に挙げたディスクリプションは、例えば再生アプリケーション608のディスクリプション再生制御609によって読み込まれる。そして、再生アプリケーションは、ディスクリプションに応じた画面を構成し、ユーザ操作に応じて画面遷移やジョブの実行制御を行う。
<フレームワークエミュレータ>
次に、フレームワークエミュレータ制御部556の詳細について説明する。図14は、フレームワークエミュレータ制御部556のソフトウェアブロック構成を示す図である。フレームワークエミュレータ制御部556は、MFP0203向けのアプリケーションをWeb上で動作確認するためのエミュレーションプログラムある。フレームワークエミュレータ制御部556は、図2に示すVMシステムサービス420と、VM430をWebブラウザ上で再現することで上述の機能を実現する。
VMシステムサービスエミュレータ部1401は、VMシステムサービス420を代替する構成であり、MFP0203向けのアプリケーションとWebブラウザの環境を結びつける制御を行う。VMシステムサービスエミュレータ部1401は、描画APIエミュレータ部1402、ジョブ制御APIエミュレータ部1403、ディスクリプション制御部1404、ユーザ操作制御部1405、カスタマイズ可能な部品情報制御部1406を備える。
描画APIエミュレータ部1402は、アプリケーションが画面の描画に利用しているAPIを、Webブラウザ内の画像イメージレンダリングAPIに置き換える処理を行う構成である。ジョブ制御APIエミュレータ部1403は、画像形装置のコピーやスキャンなどのジョブ制御のエミュレーションを実行する構成である。なお、ジョブ制御APIエミュレータ部1403は、APIの振る舞いのエミュレーションを実行するだけであり、実際にはジョブは実行されない。ディスクリプション制御部1404は、ディスクリプション生成部555で生成されたディスクリプションを受信しアプリケーションに通知する構成である。アプリケーションはこの通知を受け、ディスクリプションを再生する。ユーザ操作制御部1405は、全体制御部551からの画面操作情報通知を受け、アプリケーションに通知する構成である。カスタマイズ可能な部品情報制御部1406は、アプリケーションから通知されるカスタマイズ可能な部品情報を全体制御部551に通知する構成である。VMエミュレータ部1407は、アプリケーションを解釈し実行する構成である。
次に、上述構成を前提に、フレームワークエミュレータ制御部556に関する詳細な処理を説明する。図15は、図8の全体制御部551とエミュレータ制御部556間の処理におけるエミュレータ制御部内の処理を示すシーケンス図である。各処理は、コントローラユニット500によって実現される。詳細には、WEBブラウザ601のプログラムをROM506等から取得してRAM503に展開したCPU502が、JavaScript VM603を介してディスクリプションエディタ604を実行することで、各処理が実現される。
全体制御部551からカスタマイズ可能な部品情報要求が来ると、カスタマイズ可能な部品情報制御部1406がこれを受け付ける(S1501)。この処理は図8のS804に相当する処理である。
カスタマイズ可能な部品情報制御部1406は、VMエミュレータ部1407内で実行中のアプリケーションに対して、カスタマイズ可能な部品情報(カスタマイズ可能な情報の定義611)を要求する(S1502)。実行中のアプリケーションは、この取得要求を受けつけると、カスタマイズ可能な部品情報の定義611をレスポンスする(S1503)。
カスタマイズ可能な部品情報制御部1406は、アプリケーションから取得したカスタマイズ可能な部品情報の定義611を全体制御部551に通知する。
その後、全体制御部551からのディスクリプション通知が送信されると、ディスクリプション制御部1404がこれを受けつける。この処理は、図8のS814に相当する処理である。ディスクリプション制御部1404は、VMエミュレータ部1407内で実行中のアプリケーションに、ディスクリプションを通知する(S1506)。
この通知を受けた実行中のアプリケーションは、そのディスクリプションを読みとり、ディスクリプションに設定されている画面を表示するため、画面描画APIを実行する。このAPIは描画APIエミュレータ部1402で実行され、Webブラウザ内の描画APIに置き換えられる。
その後、全体制御部551からの操作情報通知が送信されると、ユーザ操作制御部1405がこれを受けつける(S1508)。この処理は、図8のS809の相当する処理である。
ユーザ操作制御部1405は、VMエミュレータ部1407内で実行中のアプリケーションに、操作情報を通知する(S1509)。この通知を受けた実行中のアプリケーションは、そのユーザ操作に応じた処理を実行する。受け付けたユーザ操作が画面更新を必要とする操作(例えば画面遷移指示等)であった場合、画面描画の通知が描画APIエミュレータ部1402に通知され、画面描画APIが実行される(S1510)。受け付けたユーザ操作が、ジョブを投入する操作であった場合、ジョブ投入通知がジョブ制御APIエミュレータ部1403に通知され、ジョブ投入APIが実行される(S1511)。
以上で説明したように、全体制御部551とエミュレータ制御部556の処理によって、ディスクリプションエディタ604とアプリケーション間で各処理が可能となる。各処理とはカスタマイズ可能な情報の取得、変更したディスクリプションの通知、変更されたディスクリプションの再生と、再生時のアプリケーションの動作確認である。
<描画API>
上述したように、ディスクリプションエディタ604は、Webブラウザ上でアプリケーションを実行し、実行内容を表示領域701に表示することで、アプリケーションを編集中のユーザに動作確認環境を提供する。表示領域701は描画APIエミュレータ部1402によって描画される。文字列描画APIは、指定された文字列を指定の属性(色、サイズ等)でレンダリングする役割を持つプログラムである。描画APIエミュレータ部1402は、Webブラウザ上でアプリケーションの画面描画のエミュレーションを実行する。そのため、表示領域701におけるアプリケーション画面の再現精度は、描画APIエミュレータ部1402の処理の仕方に依存する。
描画APIエミュレータ部1402の処理に仕方としては以下の三つのやり方が挙げられる。
1つ目のやり方は、ブラウザが提供するフォントとブラウザが提供するレンダリング手法で描画するやり方である。このやり方において、描画APIエミュレータ部1402は、JavaScriptが提供する文字列描画APIを利用する。このやり方は、JavaScriptが提供する文字列描画APIそのままを実行すればよいでの、描画に掛かる時間が短いというメリットがある。一方で、ディスクリプションエディタ604で表示する画面の見た目と、MFP0203で表示する画面の見た目が異なるといった事態を招くデメリットがある。これは、レンダリングに利用されるフォントデータやレンダリング手法がMFP0203で用いられるフォントデータやレンダリング手法とは異なる点に起因している。また、利用するWebブラウザによってもフォントデータやレンダリング手法は変化し得るため、環境に依存するやり方といえる。
2つ目のやり方は、MFP0203が利用するフォントを、MFP0203と同じレンダリング手法で描画するやり方である。このやり方は、MFP0203で文字列の描画結果に近くできるというメリットがある。しかしながら、MFP0203で使用しているレンダリング手法を、JavaScript上でエミュレートする必要があるため、描画に掛かる時間が長くなるといったデメリットがある。
3つ目のやり方は、MFP0203が利用するフォントを、ブラウザが提供するレンダリング手法で描画するやり方である。このやり方は、1つ目の方法と2つ目の方法の間の特性を持つ。
本実施例では、上述した各やり方の特性を鑑み、文字列描画処理に3つのモードを設けて、ユーザが切り替えられるようにする。すなわち、ブラウザが提供するフォントとブラウザが提供するレンダリング手法で描画する方法を第1のモードとして提供する。MFP0203が利用するフォントを、ブラウザが提供するレンダリング手法で描画する方法を第2のモードとして提供する。MFP0203が利用するフォントを、MFP0203と同じレンダリング手法で描画する第3のモードとして提供する。
このような構成であれば、ディスクリプションエディタ604の通常操作時は動作の軽い第1のモードを使用して簡易的な確認を行うことができる。また、最終的な動作確認の際には、第3のモードを利用して文字列のはみ出しが無いか等、正確な確認をすることができる。すなわち、本実施例によれば、状況に応じて最適な描画方法を選択することができるようになる。
上述した内容を実現するため、文字列描画処理は、図16に示すフローチャートの処理を行う。図16は、アプリケーションフレームワークエミュレータの文字列描画処理のフローを示す図である。なお、図16のおける各処理は、コントローラユニット500によって実現される。詳細には、WEBブラウザ601のプログラムをROM506等から取得してRAM503に展開したCPU502が、JavaScript VM603を介してディスクリプションエディタ604を実行することで、各処理が実現される。
描画APIエミュレータ部1402は、S1601において、現在の文字列描画モードを確認する。描画APIエミュレータ部1402は、現在の文字列描画モードが第1のモードであればS1602に処理を進める。描画APIエミュレータ部1402は、現在の文字列描画モードが第2のモードであればS1603に処理を進める。描画APIエミュレータ部1402は、現在の文字列描画モードが第3のモードであればS1604に処理を進める。S1602において、描画APIエミュレータ部1402は、ブラウザが提供するフォントとレンダリング手法を利用して画面を描画する。S1603において、描画APIエミュレータ部1402は、MFP0203が利用するフォントをブラウザが提供するレンダリング手法で描画する。S1604において、描画APIエミュレータ部1402は、MFP0203が利用するフォントを、MFP0203と同じレンダリング手法で描画する。
図示しないが、画面700に専用のボタンやスイッチ等を配置することで、文字列描画モードを任意のタイミングで変更することができる。
<カスタムアプリケーション>
図9のS912において触れたカスタムアプリケーションについて詳細を説明する。オーサリングシステム0101に登録されたディスクリプションは、パッケージングされ(S915)、カスタムアプリケーションとしてMFP0203に提供され(S911)、インストールされる(S912)。カスタムアプリケーションがインストールされると、MFP0203において再生アプリケーションが実行され、スクリプトによってディスクリプションが読み込まれ、ディスクリプションに指定されている情報が再生される。図7(B)で示すように実行画面を表示する。図7(B)は、MFPにおけるカスタムアプリケーションの実行画面を示す図である。この実行画面750は、ディスクリプションの編集時に表示領域701に表示されたものと同一であり、正常に動作していることがわかる。以下では、カスタムアプリケーションのインストールに関する処理について詳細に説明する。
オーサリングシステム0101がMFP0203に提供するインストールパッケージの構造について説明する。図10はインストールパッケージのデータ構造を示す図である。
インストールパッケージ1000は、署名付きディスクリプション1052と署名付きアプリケーション1001を含むパッケージデータである。
署名付きアプリケーション1001は、スクリプト1004とリソース1005とmeta情報1006からなる再生アプリケーション1002と、アプリケーション署名1003を備えている。本実施例では、ディスクリプションエディタ604が保持している再生アプリケーションと同一のものが利用される。
一方の署名付きディスクリプション1052は、ディスクリプション1053と、ディスクリプションmeta情報1054と、ディスクリプション署名1055によって構成される。ディスクリプション1053は、ディスクリプションエディタによって生成されたものであり、ユーザがカスタマイズしたアプリケーションの振る舞いを定義するデータである。ディスクリプション1053の詳細については、図11を用いて説明した通りである。ディスクリプションmeta情報1054は、カスタマイズアプリケーションの識別子(記述識別子)やバージョン情報、アプリケーション名を示す情報である。ディスクリプション署名1055は、ディスクリプション1053とディスクリプションmeta情報1054の完全性を保証するための署名データである。このディスクリプション署名1055は、アプリケーション署名1003とは異なる署名鍵を利用して生成される。この署名鍵はオーサリングシステム0101に保持されており、ディスクリプション署名付与0211によって署名データであるディスクリプション署名1055が生成される。
上述したインストールパッケージ1000をMFP0203にインストールする際の詳細な処理について説明する。図12は、MFPへカスタムアプリケーションをインストールした後にMFPのストレージで保持されるアプリケーション構造と、対応するインストールパッケージを示す図である。図12の左側がインストールパッケージ1000であり、図の右側がインストール済みアプリケーション1200である。インストールパッケージ1000の構成は上述した通りである。これに対し、インストール済みアプリケーション1200は、スクリプト1201、リソース1202、ディスクリプション1203、meta情報1204、および、第2のmeta情報1205から構成されている。MFP0203によって実行されるアプリケーションインストール処理では、インストールパッケージ1000内の各データが読み出され、MFP0203のストレージ上において再構成される。具体的には、インストールパッケージ内のスクリプト1004がスクリプト1201として配置される。インストールパッケージ内のリソース1005が、インストール後のリソース1202として配置される。また、インストールパッケージ内のディスクリプション1053が、インストール後のディスクリプション1203として配置される。
加えて、インストールされたアプリケーションを一意に識別するため情報(識別子)としてmeta情報1204が格納される。すなわち、meta情報1204は、MFP0203にインストールされた他のアプリケーションと区別するために用いられる情報である。あるいは、meta情報1204は、アプリケーションのバージョンアップがあった場合にバージョンアップ対象のアプリケーションを特定するのに用いられる情報である。
<備考>
以上で説明したように、オーサリングシステム0101は、アプリケーションを容易に編集・配信できる環境を提供する。これにより、サービスマンや技術営業等の人員がカスタムアプリケーションを作成することができるようになるため、顧客が所望するアプリケーションを迅速に提供することが可能となる。
また、本実施例では、再生アプリケーション608から定義611を取得し、ディスクリプションエディタ604に利用する。そのため、定義611に基づくディスクリプション612のバージョンとディスクリプション612を再生する再生アプリケーションのバージョンが対応していないといった事態の発生を抑制することができる。
また、本実施例では、ディスクリプションエディタ604において、描画APIエミュレータ部1402のモードを変更することができる。これにより、状況に応じて最適な描画方法でディスクリプションエディタ604を利用することができる。
(変形例)
上述実施例では、カスタマイズ可能な情報の定義611の一例として、コピー機能に関する定義を用いる例を説明した。変形例では、カスタマイズ可能な情報の定義611の一例としてScanToUSB(原稿画像をスキャンしてUSBにデータを格納するジョブ)に関する定義を用いる例を説明する。
図17は、ScanToUSB(原稿画像をスキャンしてUSBにデータを格納するジョブ)のカスタマイズ可能な情報を示す定義611の一例である。情報1701、情報1702は、サポートする原稿サイズ情報を定義している。ここで注目すべきは 情報1703、情報1704である。MFP0203は卓上などに設置できるコンパクトなタイプと、オフィスのOAコーナーなどに置かれている大きなタイプがある。大きなタイプではスキャン可能な原稿サイズがA3などの原稿をスキャンできるが、コンパクトなタイプだと、A3などの原稿はスキャンできないことがある。このように、アプリケーションを実行するMFP0203によって、対応可能な値域が異なる場合、ユーザが誤ってパラメータを設定してしまう可能性がある。これを避けるため、そのパラメータが実行環境に依存することをディスクリプションエディタ604に通知する。それを実現するのが、情報1703,情報1704の環境依存情報である。情報1703は、A3の原稿サイズが環境依存であることを示しており、情報1704は、A4の原稿サイズが環境依存ではないことを示している。なお、この環境依存情報そのものがないパラメータは、環境依存がないことを示す。
こうした環境依存情報は、次のようにして用いられる。図18は、画面構成部552が特定のHTML element を生成する際の処理のフローを示す図である。このHTML elementは、カスタマイズ可能な項目に設定可能なパラメータを表示する画面の画面情報である。なお、図18のおける各処理は、コントローラユニット500によって実現される。詳細には、WEBブラウザ601のプログラムをROM506等から取得してRAM503に展開したCPU502が、JavaScript VM603を介してディスクリプションエディタ604を実行することで、各処理が実現される。
まずS1801において、画面構成部552は、表示する画面に含まれるパラメータの環境依存情報を確認する。画面構成部552は、環境依存が無ければS1802に処理を進め、環境依存情報があれば、S1803に処理を進める。S1802において、画面構成部552は、環境依存無く利用できるパラメータであるため、強調表示のない通常表示のための HTML element を生成する。S1803において、画面構成部552は、環境依存があるパラメータであることをユーザに知らせるため、強調表示するための HTML elementを生成する。
<備考>
以上で説明したように、変形例では、定義611において、環境依存情報を取り扱う。これにより、インストール先として多様な構成の機種が想定される場合であっても適切に動作可能なカスタムアプリケーションを提供することができる。
(他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。また、実施例中においてHDDとして説明したストレージをSSD等の半導体ストレージに置き換えてもよい。本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形が可能であり、それらを本発明の範囲から除外するものではない。カスタマイズ可能な情報の定義611として、その他のスキャン機能(Eメールで送信する機能、ネットワークストレージに格納する機能等)、FAX機能、プリント機能、本体設定機能などの定義情報を用いてもよい。また、ディスクリプションエディタ604で利用する定義を、複数の候補の中から利用者が指定できるようにしてもよい。
また、上記実施例では、再生アプリケーションリソース0206において、バージョンに応じて複数の再生アプリケーションを管理する例を説明した。しかしながら、再生アプリケーションリソース0206はバージョンではなく他の区分方法で複数の再生アプリケーションを管理してもよい。例えば、プリント機能用の再生アプリケーションと、スキャン機能用の再生アプリケーションを別々に管理してもよい。そして、ディスクリプションエディタ604は、利用者がカスタマイズを希望する機能に応じて対応する機能別の再生アプリケーションを取得し、定義611を取り出せばよい。このとき、プリント機能用の再生アプリケーションからはプリント機能用の定義が取り出され、スキャン機能用の再生アプリケーションからはスキャン機能用の定義が取り出される。
なお、実施例中に登場する略称は次の意味である。
APIとは、Application Programming Interfaceのことである。
ASICとは、Application Specific Integrated Circuitのことである。
CPUとは、Central Processing Unitである。
CSSとは、Cascading Style Sheetsのことである。
FAXとは、Facsimileのことである。
GUIとは、Graphical User Interfaceのことである。
HDDとは、Hard Disk Driveのことである。
HTMLとは、Hyper Text Markup Languageのことである。
HTTPとは、HyperText Transfer Protocolのことである。
IEEEとは、Institute of Electrical and Electronics Engineersのことである。
JSONとは、JavaScript Object Notationのことである。
LANとは、Local Area Networkのことである。
MFPとは、Multi Function Peripheralのことである。
OSとは、Operating Systemのことである。
PCIとは、Peripheral Component Interconnecのことである。
PCとは、Personal Computerのことである。
RAMとは、Random‐Access Memoryのことである。
ROMとは、Read Only Memoryのことである。
RTCとは、Real-Time Clockのことである。
SSDとは、Solid State Driveのことである。
UIとは、User Interfaceのことである。
URLとは、Uniform Resource Locator.のことである。
USBとは、Universal Serial Busのことである。
VMとは、Virtual Machineのことである。
0101 オーサリングシステム(情報処理システム)
0220 サーバ装置(情報処理装置)
0203 MFP(画像処理装置)
0240 クライアント端末(情報処理端末)
0207 ディスクリプションエディタ(編集プログラム)
608 再生アプリケーション
611 カスタマイズ可能な情報の定義(定義情報)
612 ディスクリプション(記述ファイル)

Claims (18)

  1. 動作手順が定義された記述ファイルを再生する再生アプリケーションと記述ファイルの組み合わせ情報を画像処理装置で実行する組み合わせアプリケーションとして提供する情報処理システムであって、
    再生アプリケーションから定義情報を取得する手段と、
    前記定義情報に基づき画面情報を出力する手段と、
    前記画面情報に対応する編集指示を受け付ける手段と、
    前記編集指示に基づいて、前記再生アプリケーションに対応する記述ファイルを生成する手段と、
    を有することを特徴とする情報処理システム。
  2. 前記組み合わせアプリケーションは、前記再生アプリケーションと前記記述ファイルを含むパッケージデータに基づいて前記画像処理装置にインストールされることを特徴とする請求項1に記載の情報処理システム。
  3. 前記取得する手段と、前記出力する手段と、前記受け付ける手段と、前記生成する手段と、は情報処理端末のウェブブラウザ上で実行されるプログラムによって提供されることを特徴とする請求項1または2に記載の情報処理システム。
  4. 前記画面情報は、編集中のアプリケーションの動作確認をおこなうための情報を含むことを特徴とする請求項1乃至3のいずれか一項に記載の情報処理システム。
  5. 前記画面情報は、編集中のアプリケーションに追加可能な部品情報を含むことを特徴とする請求項1乃至4のいずれか1項に記載の情報処理システム。
  6. 前記画面情報は、編集中のアプリケーションに用いられる表示部品を編集するための情報を含むことを特徴とする請求項1乃至5のいずれか1項に記載の情報処理システム。
  7. 前記再生アプリケーションを用いて、前記生成された記述ファイルを再生する手段を有することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理システム。
  8. 前記再生アプリケーションはJavaScriptとは異なる言語に基づくプログラムであることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理システム。
  9. 前記異なる言語はLua言語であることを特徴とする請求項8に記載の情報処理システム。
  10. 前記記述ファイルはJSON形式で記述されたデータであることを特徴とする請求項1乃至9のいずれか1項に記載の情報処理システム。
  11. 前記パッケージデータは、前記再生アプリケーションのバージョン情報を含むことを特徴とする請求項2に記載の情報処理システム。
  12. 前記動作確認をおこなうための情報の描画モードを変更する手段を有することを特徴とする請求項4に記載の情報処理システム。
  13. 前記定義情報は、環境依存情報を含むことを特徴とする請求項1乃至12のいずれか1項に記載の情報処理システム。
  14. 前記画像処理装置はシートに画像を形成する画像形成部を備えることを特徴とする請求項1乃至13のいずれか1項に記載の情報処理システム。
  15. 前記画像処理装置は原稿から画像を読み取る画像読取部を備えることを特徴とする請求項1乃至14のいずれか1項に記載の情報処理システム。
  16. 前記画像処理装置と通信するサーバ装置と、前記サーバ装置と通信する情報処理装置と、を有することを特徴とする請求項1乃至15のいずれか1項に記載の情報処理システム。
  17. 動作手順が定義された記述ファイルを再生する再生アプリケーションと記述ファイルの組み合わせ情報を画像処理装置で実行する組み合わせアプリケーションの編集をおこなう情報処理装置であって、
    再生アプリケーションから定義情報を取得する手段と、
    前記定義情報に基づき画面情報を出力する手段と、
    前記画面情報に対応する編集指示を受け付ける手段と、
    前記編集指示に基づいて、前記再生アプリケーションに対応する記述ファイルを生成する手段と、
    を有することを特徴とする情報処理装置。
  18. 動作手順が定義された記述ファイルを再生する再生アプリケーションと記述ファイルの組み合わせ情報を画像処理装置で実行する組み合わせアプリケーションの編集をおこなう情報処理装置が実行するプログラムであって、
    再生アプリケーションから定義情報を取得する工程と、
    前記定義情報に基づき画面情報を出力する工程と、
    前記画面情報に対応する編集指示を受け付ける工程と、
    前記編集指示に基づいて、前記再生アプリケーションに対応する記述ファイルを生成する工程と、
    を実行することを特徴とするプログラム。
JP2021114971A 2021-07-12 2021-07-12 情報処理システム、情報処理方法、プログラム Pending JP2023011236A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021114971A JP2023011236A (ja) 2021-07-12 2021-07-12 情報処理システム、情報処理方法、プログラム
CN202210847075.8A CN115617413A (zh) 2021-07-12 2022-07-07 基于编辑指令生成与再生应用对应的描述文件的信息处理***和装置
US17/862,116 US20230020062A1 (en) 2021-07-12 2022-07-11 Information processing system and apparatus to generate description file corresponding to reproduction application based on edit instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021114971A JP2023011236A (ja) 2021-07-12 2021-07-12 情報処理システム、情報処理方法、プログラム

Publications (1)

Publication Number Publication Date
JP2023011236A true JP2023011236A (ja) 2023-01-24

Family

ID=84856607

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021114971A Pending JP2023011236A (ja) 2021-07-12 2021-07-12 情報処理システム、情報処理方法、プログラム

Country Status (3)

Country Link
US (1) US20230020062A1 (ja)
JP (1) JP2023011236A (ja)
CN (1) CN115617413A (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076763B1 (en) * 2000-04-24 2006-07-11 Degroote David Glenn Live component system
US7865528B2 (en) * 2001-01-09 2011-01-04 Nextair Corporation Software, devices and methods facilitating execution of server-side applications at mobile devices
JP2003108373A (ja) * 2001-09-28 2003-04-11 Toshiba Corp 汎用型ソフトウェア開発支援システム、汎用型ソフトウェア開発支援プログラム、およびそのシステムで用いられるソフトウェア部品
US7784047B2 (en) * 2003-04-15 2010-08-24 Bea Systems, Inc. Common management model for distributed server network
KR20090017351A (ko) * 2007-08-14 2009-02-18 (주)씨디네트웍스 프로그램 제어장치, 프로그램 제어방법 및 그 기록 매체

Also Published As

Publication number Publication date
US20230020062A1 (en) 2023-01-19
CN115617413A (zh) 2023-01-17

Similar Documents

Publication Publication Date Title
US7533381B2 (en) Image forming apparatus and method for operating image forming apparatus by using remote application
US8719711B2 (en) Image forming apparatus, display screen customizing method and computer-readable storage medium
US8392523B2 (en) Image forming apparatus for determining the availability of application program interfaces
JP7110636B2 (ja) 情報処理システム、情報処理装置、及び情報処理方法
US20080141148A1 (en) Image forming device and display control method
CN103237143B (zh) 信息处理装置、动作控制***和动作控制方法
JP5458708B2 (ja) 画像処理装置、表示制御方法、及び表示制御プログラム
US20110093813A1 (en) Image forming apparatus and program controlling method
JP2004185595A (ja) 情報処理装置およびそのプログラム
JP2005293407A (ja) 情報処理装置、入力操作簡略化方法、及びプログラム
US9606761B2 (en) Information processing apparatus for controlling an output process and method for the same
JP4198551B2 (ja) 画像形成装置およびプログラム実行方法
JP2004185593A (ja) 画像形成装置およびアプリケーション実行方法
JP2002251261A (ja) 画像出力装置および情報処理装置およびデータ処理方法および記憶媒体
JP7472177B2 (ja) 画像形成装置およびその制御方法
JP2023011236A (ja) 情報処理システム、情報処理方法、プログラム
JP2006107301A (ja) 拡張制御装置
US11436299B2 (en) Information processing system, server apparatus, and information processing method
JP2009223577A (ja) ユーザインタフェースエミュレート装置及びユーザインタフェースエミュレートプログラム
JP2023007730A (ja) 情報処理システム、情報処理方法、プログラム
JP2023020028A (ja) 情報処理システム、情報処理装置、プログラム
JP4542180B2 (ja) 画像形成装置、プログラム、及び記録媒体
JP2023033949A (ja) 情報処理システム、情報処理方法、プログラム
JP2009110542A (ja) 画像処理装置およびその制御方法
JP2008198097A (ja) 情報処理装置、制御装置、スクリプト処理方法、記憶媒体、プログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20231213

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240610