IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 京セラドキュメントソリューションズ株式会社の特許一覧

<>
  • 特許-電子機器およびプログラム 図1
  • 特許-電子機器およびプログラム 図2
  • 特許-電子機器およびプログラム 図3
  • 特許-電子機器およびプログラム 図4
  • 特許-電子機器およびプログラム 図5
  • 特許-電子機器およびプログラム 図6
  • 特許-電子機器およびプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-29
(45)【発行日】2024-06-06
(54)【発明の名称】電子機器およびプログラム
(51)【国際特許分類】
   G06F 9/445 20180101AFI20240530BHJP
   H04N 1/00 20060101ALI20240530BHJP
【FI】
G06F9/445 120
H04N1/00 C
【請求項の数】 5
(21)【出願番号】P 2020034187
(22)【出願日】2020-02-28
(65)【公開番号】P2021135959
(43)【公開日】2021-09-13
【審査請求日】2023-01-30
(73)【特許権者】
【識別番号】000006150
【氏名又は名称】京セラドキュメントソリューションズ株式会社
(74)【代理人】
【識別番号】100140796
【弁理士】
【氏名又は名称】原口 貴志
(72)【発明者】
【氏名】華山 達也
【審査官】久々宇 篤志
(56)【参考文献】
【文献】国際公開第2015/182303(WO,A1)
【文献】特開2014-194781(JP,A)
【文献】Tae Yeon Kim ほか,Inside Android Androidのなかみ,第1版,パーソナルメディア株式会社,2014年,頁61、152~153、169~173,ISBN: 978-4-89362-288-4
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
記憶デバイスと、
メモリーと
を備える電子機器であって、
前記電子機器の標準の機能以外の機能を実現するアプリケーションである拡張アプリの管理を実行する拡張アプリ管理部と、
前記拡張アプリのプラットフォームである拡張アプリプラットフォームと
を備え、
前記拡張アプリ管理部は、前記拡張アプリが使用可能なAPIである拡張アプリAPI用のプログラムである拡張アプリAPI用プログラムの動的な追加のための、前記記憶デバイス上の領域である動的追加用領域に、前記拡張アプリAPI用プログラムを記憶し、
前記拡張アプリプラットフォームは、前記動的追加用領域上の前記拡張アプリAPI用プログラムを使用して前記拡張アプリAPIを前記メモリー上にロードし、
前記拡張アプリプラットフォームは、前記拡張アプリによって前記拡張アプリAPIが呼び出された場合に、前記拡張アプリAPIを前記メモリー上にロードすることを特徴とする電子機器。
【請求項2】
前記拡張アプリプラットフォームは、前記拡張アプリによる呼び出しによってロードされた前記拡張アプリAPIを、この拡張アプリが停止される場合に前記メモリーから削除することを特徴とする請求項1に記載の電子機器。
【請求項3】
前記拡張アプリ管理部は、前記拡張アプリのインストール用のファイルを使用して前記拡張アプリをインストールし、
前記ファイルは、前記拡張アプリAPI用プログラムを含み、
前記拡張アプリ管理部は、前記拡張アプリをインストールする場合に、前記ファイル内の前記拡張アプリAPI用プログラムを前記動的追加用領域に記憶することを特徴とする請求項1または請求項2に記載の電子機器。
【請求項4】
記憶デバイスと、
メモリーと
を備える電子機器に、
前記電子機器の標準の機能以外の機能を実現するアプリケーションである拡張アプリの管理を実行する拡張アプリ管理部と、
前記拡張アプリのプラットフォームである拡張アプリプラットフォームと
を実現させ、
前記拡張アプリ管理部は、前記拡張アプリが使用可能なAPIである拡張アプリAPI用のプログラムである拡張アプリAPI用プログラムの動的な追加のための、前記記憶デバイス上の領域である動的追加用領域に、前記拡張アプリAPI用プログラムを記憶し、
前記拡張アプリプラットフォームは、前記動的追加用領域上の前記拡張アプリAPI用プログラムを使用して前記拡張アプリAPIを前記メモリー上にロードし、
前記拡張アプリプラットフォームは、前記拡張アプリによって前記拡張アプリAPIが呼び出された場合に、前記拡張アプリAPIを前記メモリー上にロードすることを特徴とするプログラム。
【請求項5】
前記拡張アプリプラットフォームは、前記拡張アプリによる呼び出しによってロードされた前記拡張アプリAPIを、この拡張アプリが停止される場合に前記メモリーから削除することを特徴とする請求項4に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、標準の機能以外の機能を実現するアプリケーションである拡張アプリを動作させることができる電子機器およびプログラムに関する。
【背景技術】
【0002】
従来の電子機器として、画像形成装置の標準の機能を実現するアプリケーションである標準アプリと、画像形成装置の標準の機能以外の機能を実現するアプリケーションである拡張アプリと、標準アプリを利用せずに画像形成装置の標準の機能の拡張の機能を拡張アプリに提供する拡張機能サービスとを備える画像形成装置が知られている(特許文献1参照。)。拡張アプリは、拡張アプリのプラットフォーム上で動作する。拡張アプリのプラットフォームは、拡張アプリが使用可能なAPI(Application Program Interface)を提供する。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2015/182303号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の画像形成装置においては、拡張アプリが使用可能なAPIが画像形成装置のファームウェアに含まれるので、新たなファームウェアが提供されるまで、新たなAPIが提供されず、拡張アプリが使用可能なAPIの提供が遅くなるという問題がある。
【0005】
そこで、本発明は、拡張アプリが使用可能なAPIの提供の速度を向上することができる電子機器およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の電子機器は、記憶デバイスと、メモリーとを備える電子機器であって、前記電子機器の標準の機能以外の機能を実現するアプリケーションである拡張アプリの管理を実行する拡張アプリ管理部と、前記拡張アプリのプラットフォームである拡張アプリプラットフォームとを備え、前記拡張アプリ管理部は、前記拡張アプリが使用可能なAPIである拡張アプリAPI用のプログラムである拡張アプリAPI用プログラムの動的な追加のための、前記記憶デバイス上の領域である動的追加用領域に、前記拡張アプリAPI用プログラムを記憶し、前記拡張アプリプラットフォームは、前記動的追加用領域上の前記拡張アプリAPI用プログラムを使用して前記拡張アプリAPIを前記メモリー上にロードすることを特徴とする。
【0007】
この構成により、本発明の電子機器は、拡張アプリが使用可能なAPIである拡張アプリAPI用のプログラムである拡張アプリAPI用プログラムを動的追加用領域に記憶し、動的追加用領域上の拡張アプリAPI用プログラムを使用して拡張アプリAPIをメモリー上にロードするので、拡張アプリAPIが画像形成装置のファームウェアとは別に提供されることができ、その結果、拡張アプリAPIの提供の速度を向上することができる。
【0008】
本発明の電子機器において、前記拡張アプリ管理部は、前記拡張アプリのインストール用のファイルを使用して前記拡張アプリをインストールし、前記ファイルは、前記拡張アプリAPI用プログラムを含み、前記拡張アプリ管理部は、前記拡張アプリをインストールする場合に、前記ファイル内の前記拡張アプリAPI用プログラムを前記動的追加用領域に記憶しても良い。
【0009】
この構成により、本発明の電子機器は、拡張アプリのインストール用のファイル内に拡張アプリAPI用プログラムを含み、拡張アプリをインストールする場合に、拡張アプリのインストール用のファイル内の拡張アプリAPI用プログラムを動的追加用領域に記憶するので、使用されない拡張アプリAPIがメモリー上にロードされる可能性を低減することができ、その結果、メモリーの記憶領域を浪費する可能性を低減することができる。
【0010】
本発明の電子機器において、前記拡張アプリプラットフォームは、前記拡張アプリによって前記拡張アプリAPIが呼び出された場合に、前記拡張アプリAPIを前記メモリー上にロードしても良い。
【0011】
この構成により、本発明の電子機器は、拡張アプリによって拡張アプリAPIが呼び出された場合に、拡張アプリAPIをメモリー上にロードするので、使用されない拡張アプリAPIがメモリー上にロードされる可能性を低減することができ、その結果、メモリーの記憶領域を浪費する可能性を低減することができる。
【0012】
本発明の電子機器において、前記拡張アプリプラットフォームは、前記拡張アプリによる呼び出しによってロードされた前記拡張アプリAPIを、この拡張アプリが停止される場合に前記メモリーから削除しても良い。
【0013】
この構成により、本発明の電子機器は、拡張アプリによる呼び出しによってロードされた拡張アプリAPIを、この拡張アプリが停止される場合にメモリーから削除するので、使用されない拡張アプリAPIがメモリー上に残る可能性を低減することができ、その結果、メモリーの記憶領域を浪費する可能性を低減することができる。
【0014】
本発明のプログラムは、記憶デバイスと、メモリーとを備える電子機器に、前記電子機器の標準の機能以外の機能を実現するアプリケーションである拡張アプリの管理を実行する拡張アプリ管理部と、前記拡張アプリのプラットフォームである拡張アプリプラットフォームとを実現させ、前記拡張アプリ管理部は、前記拡張アプリが使用可能なAPIである拡張アプリAPI用のプログラムである拡張アプリAPI用プログラムの動的な追加のための、前記記憶デバイス上の領域である動的追加用領域に、前記拡張アプリAPI用プログラムを記憶し、前記拡張アプリプラットフォームは、前記動的追加用領域上の前記拡張アプリAPI用プログラムを使用して前記拡張アプリAPIを前記メモリー上にロードすることを特徴とする。
【0015】
この構成により、本発明のプログラムを実行する電子機器は、拡張アプリが使用可能なAPIである拡張アプリAPI用のプログラムである拡張アプリAPI用プログラムを動的追加用領域に記憶し、動的追加用領域上の拡張アプリAPI用プログラムを使用して拡張アプリAPIをメモリー上にロードするので、拡張アプリAPIが画像形成装置のファームウェアとは別に提供されることができ、その結果、拡張アプリAPIの提供の速度を向上することができる。
【発明の効果】
【0016】
本発明の電子機器およびプログラムは、拡張アプリが使用可能なAPIの提供の速度を向上することができる。
【図面の簡単な説明】
【0017】
図1】本発明の一実施の形態に係る画像形成装置のハードウェアのブロック図である。
図2図1に示す画像形成装置の制御構成のブロック図である。
図3図2に示す拡張アプリのプラットフォームである拡張アプリプラットフォームのブロック図である。
図4図2に示す拡張アプリのインストール用のPKGファイルを生成する場合のコンピューターの動作のフローチャートである。
図5】拡張アプリをインストールする場合の図1に示す画像形成装置の動作のフローチャートである。
図6】拡張アプリAPI用ソースを使用して拡張アプリAPIをロードする場合の図1に示す画像形成装置の動作のフローチャートである。
図7】拡張アプリが停止される場合の図1に示す画像形成装置の動作のフローチャートである。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態について、図面を用いて説明する。
【0019】
まず、本発明の一実施の形態に係る電子機器としての画像形成装置の構成について説明する。
【0020】
図1は、本実施の形態に係る画像形成装置10のハードウェアのブロック図である。
【0021】
図1に示すように、画像形成装置10は、種々の操作が入力される例えばボタンなどの操作デバイスである操作部11と、種々の情報を表示する例えばLCD(Liquid Crystal Display)などの表示デバイスである表示部12と、画像データに対して例えば、拡大、縮小、濃度調整、階調調整、画像改善などの各種の画像処理を実行する例えばGPU(Graphics Processing Unit)などの画像処理デバイスである画像処理部13と、用紙などの記録媒体に画像を印刷する印刷デバイスであるプリンター14と、原稿から画像を読み取る読取デバイスであるスキャナー15と、LAN(Local Area Network)、インターネットなどのネットワーク経由で、または、ネットワークを介さずに有線または無線によって直接に、外部の装置と通信を行う通信デバイスであるネットワーク通信部16と、図示していない外部のファクシミリ装置と公衆電話回線などの通信回線経由でファックス通信を行うファックスデバイスであるファックス通信部17と、各種の情報を記憶する例えば半導体メモリー、HDD(Hard Disk Drive)などの不揮発性の記憶デバイスである記憶部18と、画像形成装置10全体を制御する制御部19とを備えているMFP(Multifunction Peripheral)である。
【0022】
記憶部18は、画像形成装置10の各ハードウェアを制御するための例えばLinux(登録商標)などの汎用OS(Operating System)用のプログラム(以下「汎用OS用プログラム」という。)18aを記憶している。
【0023】
記憶部18は、画像形成装置10のファームウェア18bを記憶している。
【0024】
記憶部18は、画像形成装置10の標準の機能以外の機能を実現するアプリケーションである拡張アプリ用のプログラム(以下「拡張アプリ用プログラム」という。)18cを記憶している。記憶部18は、拡張アプリ毎に拡張アプリ用プログラムを記憶可能である。
【0025】
記憶部18は、画像形成装置10の標準の機能を実現するアプリケーションである標準アプリを利用せずに汎用OSを利用するサービスを拡張アプリに提供する拡張サービス用のプログラム(以下「拡張サービス用プログラム」という。)18dを記憶している。記憶部18は、拡張サービス毎に拡張サービス用プログラムを記憶可能である。
【0026】
制御部19は、例えば、CPU(Central Processing Unit)19aと、プログラムおよび各種のデータを記憶しているROM(Read Only Memory)19bと、CPU19aの作業領域として用いられるメモリーとしてのRAM(Random Access Memory)19cとを備えている。CPU19aは、記憶部18またはROM19bに記憶されているプログラムを実行する。
【0027】
制御部19は、記憶部18またはROM19bに記憶されているプログラムを実行することによって、図2に示す制御構成を実現する。
【0028】
図2は、画像形成装置10の制御構成のブロック図である。
【0029】
図2に示すように、制御部19は、汎用OS用プログラム18a(図1参照。)を実行することによって、汎用OS110を実現する。
【0030】
制御部19は、汎用OS110上で動作して、画像処理に関するサービスを提供する画像処理サービス121と、汎用OS110上で動作して、ネットワーク経由の通信に関するサービスを提供するネットワーク通信サービス122と、汎用OS110上で動作して、画像形成装置10の各ハードウェアを操作するサービスを提供するデバイス操作サービス123とを、ファームウェア18b(図1参照。)を実行することによって実現する。画像処理サービス121、ネットワーク通信サービス122およびデバイス操作サービス123は、それぞれ、汎用OS110を介して画像形成装置10の各ハードウェアを制御する。
【0031】
画像処理サービス121は、例えば、スキャナー15で解像度や色などを設定して原稿から読み取った画像データを記憶部18に記憶し、記憶部18に記憶されている画像データを画像処理部13に画像処理させるサービスを提供しても良い。画像処理サービス121は、プリンター14で印刷する画像データをファイルに基づいて描画するサービスを提供しても良い。画像処理サービス121は、拡張アプリから取得した画像データ、スキャナー15によって原稿から読み取った画像データ、または、記憶部18に記憶されている画像データに対して、拡大、縮小、回転、色変換、ノイズ除去、フォーマット変換、文字認識、透かし認識などの画像処理を実行するサービスを提供しても良い。
【0032】
ネットワーク通信サービス122は、TCP/IPやUDPなどの各種のプロトコルを用いてネットワーク通信部16経由でファイルの送受信、ストリーミング、認証データの送受信を実行するサービスを提供しても良い。例えば、ネットワーク通信サービス122は、スキャナー15によって原稿から読み取った画像データや、記憶部18に記憶されているファイルを送受信することも可能である。なお、ネットワーク通信サービス122は、ファックス通信部17によってファクシミリ送受信した画像データの送受信、ICカードや生体認証によってユーザーを認証するユーザー認証部が画像形成装置10に存在する場合にはユーザー認証部によるユーザー認証の結果の送受信、画像形成装置10にカメラが存在する場合にはカメラによって生成された映像データの送受信などを行うことも可能である。また、ネットワーク通信サービス122は、画像形成装置10の各部の状態、各部の機能の呼び出しの結果などについても、送受信可能である。
【0033】
デバイス操作サービス123は、表示部12への描画、プリンター14の駆動、ファックス通信部17の制御、ユーザー認証、画像形成装置10の各ハードウェアのステータスの取得などの処理を実行するサービスを提供しても良い。デバイス操作サービス123は、例えば、スキャナー15によって原稿から読み取った画像データを記憶部18に記憶するサービスを提供しても良いし、表示部12に表示されるブラウザー上に画像を描画するサービスを提供しても良いし、画像データをプリンター14に送信して画像形成させるサービスを提供しても良いし、記憶部18に記憶されている画像データをファックス通信部17によってファクシミリ送信させるサービスを提供しても良い。デバイス操作サービス123は、例えばフィニッシャーなどのオプション機器が画像形成装置10に存在する場合には例えば製本やステープルなどの処理をオプション機器に実行させるサービスを提供しても良いし、ICカードや生体認証によってユーザーを認証するユーザー認証部が画像形成装置10に存在する場合にはユーザー認証部にユーザー認証を実行させるサービスを提供しても良いし、画像形成装置10にカメラが存在する場合にはカメラに映像データの生成を実行させたり、カメラによって生成された映像データに基づいた視線検出などの各機能を呼び出したりするサービスを提供しても良い。デバイス操作サービス123は、例えばプリンター14の搬送部のモーターの一つを駆動させるといった、画像形成装置10の各ハードウェアの詳細な制御を実行するサービスを提供しても良い。デバイス操作サービス123は、画像形成装置10の各部の状態を取得するサービスを提供しても良い。
【0034】
制御部19は、画像処理サービス121、ネットワーク通信サービス122およびデバイス操作サービス123を呼び出すためのインターフェイスを提供するプラットフォームサービスIF部130を、ファームウェア18bを実行することによって実現する。
【0035】
制御部19は、ファームウェア18bを実行することによって標準アプリを実現する。標準アプリは、プラットフォームサービスIF部130上で動作して、画像形成装置10の各ハードウェアを利用する。例えば、制御部19は、操作部11に入力された指示に応じてスキャナー15によって原稿から画像を読み取って、読み取った画像をプリンター14によって印刷するコピーを実現する標準アプリであるコピーアプリ141と、ネットワーク通信部16によって受信した、例えばPDL(Page Description Language)で記述されたデータなどのデータに基づいた画像をプリンター14によって印刷する標準アプリであるプリンターアプリ142と、操作部11に入力された指示に応じてスキャナー15によって原稿から画像を読み取って、読み取った画像をファックス通信部17によって送信する標準アプリであるFAXアプリ143と、操作部11に入力された指示に応じてスキャナー15によって原稿から画像を読み取って、読み取った画像をネットワーク通信部16によって送信する標準アプリである送信アプリ144とを実現する。プリンターアプリ142は、操作部11に入力された指示に応じて記憶部18に記憶されているファイルに基づいた画像をプリンター14によって印刷しても良い。FAXアプリ143は、ネットワーク通信部16によって受信したファイルに基づいた画像をファックス通信部17によって送信したり、ファックス通信部17によって受信した画像をプリンター14によって印刷したり、ファックス通信部17によって受信した画像を記憶部18に記憶したりしても良い。
【0036】
制御部19は、プラットフォームサービスIF部130を介さずに汎用OS110を利用するサービスを提供する汎用OSサービス基盤150を、ファームウェア18bを実行することによって実現する。汎用OSサービス基盤150は、例えば、汎用OS110上にデバイスドライバーやスクリプトなどの制御プログラムをインストールするなど、汎用OS110に機能を追加するサービスを提供しても良い。
【0037】
制御部19は、拡張アプリ側からプラットフォームサービスIF部130を利用するためのインターフェイスを提供する拡張アプリサービスIF部160を、ファームウェア18bを実行することによって実現する。
【0038】
制御部19は、標準アプリを利用して画像形成装置10の標準の機能を拡張アプリに提供するサービスである標準機能サービス170を、ファームウェア18bを実行することによって実現する。標準機能サービス170は、拡張アプリサービスIF部160を介して標準アプリを利用する。例えば、拡張アプリは、標準機能サービス170を利用することによって、コピーアプリ141によるコピーの開始の画面を表示部12に表示することができる。また、拡張アプリは、標準機能サービス170を利用することによって、拡張アプリ自身が取得したり、操作部11を介して指定されたりした各種ジョブデータやファイルなどをプリンターアプリ142に印刷させることができる。また、拡張アプリは、標準機能サービス170を利用することによって、FAXアプリ143によって受信されたファクシミリの画像データのうち、操作部11を介して指定された画像データを取得したり、操作部11を介して指定されたファイルなどをFAXアプリ143に送信させたりすることができる。
【0039】
制御部19は、画像形成装置10の標準の機能以外の機能を提供するサービスである拡張サービスを、拡張サービス用プログラム(図1参照。)を実行することによって実現する。例えば、制御部19は、標準アプリを利用せずにプラットフォームサービスIF部130を利用したり、汎用OSサービス基盤150を利用して汎用OS110を利用したりするサービスを拡張アプリに提供する拡張サービスである拡張機能サービス181と、プラットフォームサービスIF部130を利用せずに汎用OSサービス基盤150を利用して汎用OS110を利用するサービスを拡張アプリに提供する拡張サービスであるバックエンドサービス182とを実現する。拡張機能サービス181は、拡張アプリサービスIF部160を介してプラットフォームサービスIF部130を利用する。制御部19は、拡張機能サービス181以外にも、少なくとも1つの拡張機能サービスを実現可能である。制御部19は、バックエンドサービス182以外にも、少なくとも1つのバックエンドサービスを実現可能である。
【0040】
拡張機能サービスは、画像形成装置10の標準の機能の拡張の機能を拡張アプリに提供するサービスである。
【0041】
バックエンドサービスは、バックエンドで稼働するサービスである。バックエンドサービスは、画像形成装置10の標準の機能以外の機能のうち、画像形成装置10の標準の機能の拡張の機能以外の機能を提供するサービスである。バックエンドサービスとしては、例えば、画像形成装置10を監視する機能を提供するサービス、複数の画像形成装置から構成されるシステム全体を監視する機能を提供するサービス、特定のサーバーを監視する機能を提供するサービス、画像形成装置10の印刷枚数を示すカウンターなどの情報を画像形成装置10から収集して、収集した情報を人間が理解することができる形式の情報に変換する機能を提供するサービス、画像形成装置10から出力される情報の形式を旧型のインターフェイスの形式から新型のインターフェイスの形式に変換する機能を提供するサービスが存在する。
【0042】
制御部19は、拡張サービスの起動、開始および停止など、拡張サービスの管理を実行する拡張サービス管理部190を、ファームウェア18bを実行することによって実現する。拡張サービス管理部190は、拡張サービスおよび汎用OSサービス基盤150の状態を監視する。
【0043】
制御部19は、拡張アプリの起動、開始および停止など、拡張アプリの管理を実行する拡張アプリ管理部200を、ファームウェア18bを実行することによって実現する。
【0044】
制御部19は、拡張アプリ用プログラム18c(図1参照。)を実行することによって、拡張アプリ210を実現する。なお、制御部19は、拡張アプリ210以外にも、少なくとも1つの拡張アプリを実現することが可能である。拡張アプリは、ユーザーが直接的に利用するアプリケーションであり、ユーザーインターフェイスを備えている。利用者は、拡張アプリのユーザーインターフェイスを操作することによって、この拡張アプリが提供する機能を利用することができる。例えば、拡張アプリとしては、OCR(Optical Character Recognition)、監視カメラアプリ、ウォーターマーク作成、請求書作成、社員名簿管理、伝票管理、契約書管理、名刺管理、PDF作成、帳簿管理、グループ管理などの実用アプリでも良いし、汎用OS110上のデバイスドライバーやファームウェアなどの追加変更を行うインストーラーアプリや、その他の管理アプリなどでも良い。拡張アプリは、標準機能サービス170を呼び出して標準アプリを利用して汎用OS110を利用したり、拡張サービスを呼び出して標準アプリを利用せずに汎用OS110を利用したり、汎用OSサービス基盤150を直接呼び出して汎用OS110を利用したりすることが可能である。
【0045】
図3は、図2に示す拡張アプリのプラットフォーム(以下「拡張アプリプラットフォーム」という。)220のブロック図である。
【0046】
拡張アプリは、拡張アプリプラットフォーム220上で動作する。拡張アプリ管理部200は、拡張アプリプラットフォーム220の一部である。
【0047】
拡張アプリは、Java(登録商標)を使用したWebアプリケーションである。拡張アプリは、バックエンドであるサーバー側で動作するJavaプログラムと、フロントエンドであるブラウザーでUI表示するためのWebリソースとを含んでいる。
【0048】
拡張アプリプラットフォーム220は、拡張アプリがバックエンドおよびフロントエンドのそれぞれで使用可能なAPIである拡張アプリAPI221を提供可能である。拡張アプリプラットフォーム220は、拡張アプリAPI221以外にも、少なくとも1つの拡張アプリAPIを提供可能である。拡張アプリAPIは、JavaプログラムおよびWebリソースを含んでいる。
【0049】
拡張アプリAPI用のJavaプログラムおよびWebリソース(以下「拡張アプリAPI用ソース」という。)は、少なくとも一部の拡張アプリAPIに関しては、拡張アプリ用プログラムとともに提供される。制御部19は、ファームウェア18bを実行することによって、少なくとも一部の拡張アプリAPIを除く拡張アプリプラットフォーム220を実現する。
【0050】
次に、拡張アプリのインストール用のPKGファイルの生成方法について説明する。
【0051】
拡張アプリ用プログラムの開発者は、図示していないPC(Personal Computer)などのコンピューターを利用して、拡張アプリのインストール用のPKGファイルを生成することが可能である。拡張アプリのインストール用のPKGファイルの生成は、画像形成装置10の製造業者からリリースされるSDK(Software Development Kit)を利用して実行される。SDKには、様々な拡張アプリAPIの拡張アプリAPI用ソースが保存されている。
【0052】
図4は、拡張アプリのインストール用のPKGファイルを生成する場合のコンピューターの動作のフローチャートである。
【0053】
拡張アプリ用プログラムの開発者は、拡張アプリのインストール用のPKGファイルの生成をコンピューターに指示することができる。この指示においては、対象の拡張アプリ用プログラムによって使用される拡張アプリAPIの拡張アプリAPI用ソースの識別情報が指定される。コンピューターは、拡張アプリのインストール用のPKGファイルの生成が指示されると、SDKを実行することによって、図4に示す動作を実行する。
【0054】
図4に示すように、コンピューターは、対象の拡張アプリ用プログラムのJARファイルを生成する(S401)。このJARファイルは、対象の拡張アプリのJavaプログラムおよびWebリソースを含む実行ファイルである。
【0055】
コンピューターは、S401の処理の後、S401において生成したJARファイルがどのようなファイルであるかを示すマニフェストファイルを生成する(S402)。
【0056】
次いで、コンピューターは、拡張アプリのインストール用のPKGファイルの生成の指示において指定されていた、拡張アプリAPI用ソースの識別情報を示すヘッダーファイルを生成する(S403)。ヘッダーファイルは、特定の暗号キーによって暗号化される。
【0057】
コンピューターは、S403の処理の後、S401において生成したJARファイルと、S402において生成したマニフェストファイルと、S403において生成したヘッダーファイルとを梱包したPKGファイルを生成する(S404)。
【0058】
次いで、コンピューターは、拡張アプリのインストール用のPKGファイルの生成の指示において識別情報が指定されていた拡張アプリAPI用ソースを、S404において生成したPKGファイルの内部に追加して(S405)、図4に示す動作を終了する。
【0059】
次に、拡張アプリをインストールする場合の画像形成装置10の動作について説明する。
【0060】
図5は、拡張アプリをインストールする場合の画像形成装置10の動作のフローチャートである
【0061】
画像形成装置10の制御部19は、図4に示す動作によって生成されたPKGファイルを使用して拡張アプリをインストールすることが指示されると、図5に示す動作を実行する。
【0062】
図5に示すように、拡張アプリ管理部200は、対象のPKGファイルに含まれるヘッダーファイルを解析することによって、対象のPKGファイルが不正なファイルではないか否かを判断する(S421)。例えば、拡張アプリ管理部200は、画像形成装置10の製造業者が認めていない情報がヘッダーファイルに含まれる場合や、画像形成装置10の製造業者が指定している情報がヘッダーファイルに含まれない場合に、対象のPKGファイルが不正なファイルであると判断する。また、拡張アプリ管理部200は、ヘッダーファイルに含まれる識別情報によって特定される拡張アプリAPI用ソース以外の拡張アプリAPI用ソースが対象のPKGファイルに含まれている場合に、対象のPKGファイルが不正なファイルであると判断する。なお、拡張アプリ管理部200は、ヘッダーファイルの復号キーを備えている。
【0063】
拡張アプリ管理部200は、対象のPKGファイルが不正なファイルであるとS421において判断すると、対象のPKGファイルを使用した拡張アプリのインストールを中止して(S422)、図5に示す動作を終了する。
【0064】
拡張アプリ管理部200は、対象のPKGファイルが不正なファイルではないとS421において判断すると、対象のPKGファイルに含まれるJARファイルを記憶部18に記憶する(S423)。すなわち、拡張アプリ管理部200は、拡張アプリをインストールする。
【0065】
拡張アプリ管理部200は、S423の処理の後、対象のPKGファイルに含まれるマニフェストファイルを記憶部18に記憶する(S424)。
【0066】
次いで、拡張アプリ管理部200は、対象のPKGファイルに含まれる拡張アプリAPI用ソースを、拡張アプリAPI用ソースの動的な追加のための記憶部18上の特定の領域である動的追加用領域としての特定のフォルダー(以下「動的追加用フォルダー」という。)に記憶する(S425)。ここで、動的追加用フォルダーは、例えば“[dynamic_context]/[public_context]”というURI(Uniform Resource Identifier)で表されるフォルダーである。
【0067】
拡張アプリ管理部200は、S425の処理の後、S425において記憶した拡張アプリAPI用ソースが動的に追加されたものであることを示すコンテキスト(以下「動的追加判断用コンテキスト」という。)を動的追加用フォルダーに追加する(S426)。
【0068】
拡張アプリ管理部200は、S426の処理の後、S425において記憶した拡張アプリAPI用ソースが、拡張アプリから使用可能なインターフェイスを定義している公開用ソースと、拡張アプリから使用可能なインターフェイスを定義しておらず、公開用ソースの実装を担う非公開用ソースとのいずれであるかを示すコンテキスト(以下「公開非公開判断用コンテキスト」という。)を動的追加用フォルダーに追加して(S427)、図5に示す動作を終了する。
【0069】
次に、拡張アプリAPI用ソースを使用して拡張アプリAPIをロードする場合の画像形成装置10の動作について説明する。
【0070】
図6は、拡張アプリAPI用ソースを使用して拡張アプリAPIをロードする場合の画像形成装置10の動作のフローチャートである。
【0071】
図5に示す動作によってインストールされた拡張アプリには、図5に示す動作によって記憶部18に記憶された拡張アプリAPI用ソースのURIが記憶されている。このURIは、例えば、“[dynamic_context]/[public_context]/[リソース名]”である。ここで、リソース名は、対象の拡張アプリAPI用ソースの名称である。図5に示す動作によってインストールされた拡張アプリが実行されると、この拡張アプリは、拡張アプリAPIを呼び出す場合に、この拡張アプリAPIの拡張アプリAPI用ソースのURIを拡張アプリプラットフォーム220に対して指定する。拡張アプリプラットフォーム220は、拡張アプリによって拡張アプリAPI用ソースのURIが指定されると、図6に示す動作を実行する。
【0072】
図6に示すように、拡張アプリプラットフォーム220は、拡張アプリによってURIが指定された拡張アプリAPI用ソース(以下「対象拡張アプリAPI用ソース」という。)が動的に追加されたものであるか否かを、動的追加用フォルダー上の動的追加判断用コンテキストに基づいて判断する(S431)。
【0073】
拡張アプリプラットフォーム220は、対象拡張アプリAPI用ソースが動的に追加されたものではないとS431において判断すると、対象拡張アプリAPI用ソースが動的に追加されたものではないことを示すエラーを拡張アプリに返答して(S432)、図6に示す動作を終了する。したがって、拡張アプリは、対象拡張アプリAPI用ソースが動的に追加されたものではない場合の特定の動作を実行することができる。
【0074】
拡張アプリプラットフォーム220は、対象拡張アプリAPI用ソースが動的に追加されたものであるとS431において判断すると、対象拡張アプリAPI用ソースが公開用ソースおよび非公開用ソースのいずれであるかを、動的追加用フォルダー上の公開非公開判断用コンテキストに基づいて判断する(S433)。
【0075】
拡張アプリプラットフォーム220は、対象拡張アプリAPI用ソースが非公開用ソースであるとS433において判断すると、対象拡張アプリAPI用ソースが非公開用ソースであることを示すエラーを拡張アプリに返答して(S434)、図6に示す動作を終了する。したがって、拡張アプリは、対象拡張アプリAPI用ソースが非公開用ソースである場合の特定の動作を実行することができる。
【0076】
拡張アプリプラットフォーム220は、対象拡張アプリAPI用ソースが公開用ソースであるとS433において判断すると、対象拡張アプリAPI用ソースを使用して拡張アプリAPIをRAM19c上にロードする(S435)。したがって、拡張アプリは、S435においてロードされた拡張アプリAPIを使用することができる。
【0077】
拡張アプリプラットフォーム220は、S435の処理が終了すると、図6に示す動作を終了する。
【0078】
次に、拡張アプリが停止される場合の画像形成装置10の動作について説明する。
【0079】
図7は、拡張アプリが停止される場合の画像形成装置10の動作のフローチャートである。
【0080】
図7に示すように、拡張アプリプラットフォーム220は、停止される拡張アプリによる呼び出しによってロードされた拡張アプリAPIを特定する(S441)。
【0081】
次いで、拡張アプリプラットフォーム220は、S441において特定した拡張アプリAPIをRAM19cから削除して(S442)、図7に示す動作を終了する。
【0082】
以上に説明したように、画像形成装置10は、拡張アプリAPI用のプログラムである拡張アプリAPI用プログラムとしての拡張アプリAPI用ソースを動的追加用領域に記憶し(S425)、動的追加用領域上の拡張アプリAPI用ソースを使用して拡張アプリAPIをRAM19c上にロードする(S435)ので、拡張アプリAPIが画像形成装置10のファームウェア18bとは別に提供されることができ、その結果、拡張アプリAPIの提供の速度を向上することができる。
【0083】
画像形成装置10は、拡張アプリのインストール用のPKGファイル内に拡張アプリAPI用ソースを含み、拡張アプリをインストールする(S423)場合に、拡張アプリのインストール用のPKGファイル内の拡張アプリAPI用ソースを動的追加用領域に記憶する(S425)ので、使用されない拡張アプリAPIがRAM19c上にロードされる可能性を低減することができ、その結果、RAM19cの記憶領域を浪費する可能性を低減することができる。
【0084】
画像形成装置10は、拡張アプリによって拡張アプリAPIが呼び出された場合に、拡張アプリAPIをRAM19c上にロードする(S435)ので、使用されない拡張アプリAPIがRAM19c上にロードされる可能性を低減することができ、その結果、RAM19cの記憶領域を浪費する可能性を低減することができる。
【0085】
画像形成装置10は、拡張アプリによる呼び出しによってロードされた拡張アプリAPIを、この拡張アプリが停止される場合にRAM19cから削除する(S442)ので、使用されない拡張アプリAPIがRAM19c上に残る可能性を低減することができ、その結果、RAM19cの記憶領域を浪費する可能性を低減することができる。
【0086】
画像形成装置10は、拡張アプリAPI用ソースが動的に追加されたものであるか否かを判断し(S431)、動的に追加された拡張アプリAPI用ソースのみを使用して拡張アプリAPIをRAM19c上にロードする(S435)ので、不正な拡張アプリAPIがロードされる可能性を低減することができる。
【0087】
画像形成装置10は、拡張アプリAPI用ソースが公開用ソースおよび非公開用ソースのいずれであるかを判断し(S433)、公開用ソースである拡張アプリAPI用ソースのみを使用して拡張アプリAPIをRAM19c上にロードする(S435)ので、非公開用ソースが不正にロードされる可能性を低減することができる。
【0088】
本実施の形態におけるいずれかの複数のプログラムは、1つのプログラムとして構成されても良い。
【0089】
本発明の電子機器は、本実施の形態において画像形成装置であるが、例えばPC(Personal Computer)など、画像形成装置以外の電子機器でも良い。
【符号の説明】
【0090】
10 画像形成装置(電子機器)
18 記憶部(記憶デバイス)
18b ファームウェア(プログラム)
19c RAM(メモリー)
200 拡張アプリ管理部
210 拡張アプリ
220 拡張アプリプラットフォーム
221 拡張アプリAPI
図1
図2
図3
図4
図5
図6
図7