JP6440100B2 - 電子機器 - Google Patents

電子機器 Download PDF

Info

Publication number
JP6440100B2
JP6440100B2 JP2016072703A JP2016072703A JP6440100B2 JP 6440100 B2 JP6440100 B2 JP 6440100B2 JP 2016072703 A JP2016072703 A JP 2016072703A JP 2016072703 A JP2016072703 A JP 2016072703A JP 6440100 B2 JP6440100 B2 JP 6440100B2
Authority
JP
Japan
Prior art keywords
add
mfp
application
java
call
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.)
Expired - Fee Related
Application number
JP2016072703A
Other languages
English (en)
Other versions
JP2017182688A (ja
Inventor
真也 神田
真也 神田
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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions 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 Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2016072703A priority Critical patent/JP6440100B2/ja
Priority to US15/454,382 priority patent/US10268488B2/en
Publication of JP2017182688A publication Critical patent/JP2017182688A/ja
Application granted granted Critical
Publication of JP6440100B2 publication Critical patent/JP6440100B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Stored Programmes (AREA)

Description

本発明は、第1のプログラミング言語で構成されている第1プログラミング部分によって、第1のプログラミング言語とは異なる第2のプログラミング言語で構成されている第2プログラミング部分を呼び出すことができる電子機器に関する。
従来、Java(登録商標)言語で構成されているアプリケーション(以下「Javaアプリケーション」という。)をインストール可能な電子機器が知られている(例えば、特許文献1参照。)。
Javaアプリケーションは、Javaの仮想環境で動作するので、使用可能なAPI(Application Program Interface)や、使用可能なメモリーの容量などの制御が容易である。そのため、電子機器は、Javaアプリケーションがインストールされても、Javaアプリケーションによって電子機器の製造者の想定外の動作が実行される可能性が低く、セキュリティー上の問題が発生する可能性が低い。
しかしながら、Javaの仮想環境の処理が高負荷であるので、Java言語で構成されているプログラムの処理は、低速になる場合がある。そのため、Javaには、C++などのOS(Operating System)上でそのまま動作するネイティブ言語で構成されているプログラム(以下「ネイティブプログラム」という。)を相互に呼び出すことができるJNI(Java Native Interface)という仕組みが提供されていて、処理の高速化のためや、ネイティブ言語で構成されているライブラリーを呼び出すために利用されている。
しかしながら、ネイティブ言語は、OSが提供している機能を自由に利用することができる。そのため、ネイティブプログラムは、例えば、電子機器における任意のファイルに対して読み出しおよび書き込みが可能である。したがって、電子機器は、電子機器の製造者の想定外の動作がネイティブプログラムによって実行される可能性が高くなり、セキュリティー上の問題が発生する可能性が高くなる。
特許文献1に記載された電子機器は、Javaアプリケーションの処理が開始されてJavaアプリケーションがネイティブプログラムを呼び出す場合にJavaアプリケーションの認証を実行し、この認証が成功したときに、Javaアプリケーションによるネイティブプログラムの呼び出しを許可する。特許文献1に記載された電子機器は、この認証をJavaアプリケーションが保持しているデジタル署名によって行うので、電子機器の製造者の想定外の動作をネイティブプログラムによって実行しないJavaアプリケーションのみに適切なデジタル署名を付与することによって、セキュリティー上の問題が発生する可能性を低下させることができる。
特開2015−011518号公報
しかしながら、従来の電子機器においては、Javaアプリケーション毎に認証が必要であるので、Javaアプリケーションの作成の労力が大きいという問題がある。
そこで、本発明は、アプリケーションの作成を容易化することができる電子機器を提供することを目的とする。
本発明の電子機器は、第1のプログラミング言語で構成されている第1プログラミング部分と、前記第1のプログラミング言語とは異なる第2のプログラミング言語で構成されていて前記第1プログラミング部分によって呼び出される第2プログラミング部分とを備えるアドオンと、前記アドオンを利用するアプリケーションとをインストール可能な電子機器であって、前記第1プログラミング部分による前記第2プログラミング部分の呼び出しが許可されているか否かを、前記アドオンに関連付けられている認証情報に基づいて判断し、前記呼び出しが許可されていると判断した場合に前記呼び出しの権限を前記アドオンに付与することを特徴とする。
この構成により、本発明の電子機器は、アドオンにおける第1プログラミング部分による第2プログラミング部分の呼び出しが許可されていると認証情報に基づいて判断した場合に呼び出しの権限をアドオンに付与し、このアドオンをアプリケーションが利用するので、アプリケーション毎に認証情報に関連付けられる必要がなく、アプリケーションの作成を容易化することができる。
本発明の電子機器は、前記アドオンの実行後も前記権限を維持しても良い。
この構成により、本発明の電子機器は、第1プログラミング部分による第2プログラミング部分の呼び出しの権限をアドオンの実行後も維持するので、アドオンの実行の度に認証情報に基づいて判断する必要がなく、第1プログラミング部分によって第2プログラミング部分を高速に呼び出すことができる。
本発明の電子機器は、前記呼び出しが許可されているか否かを前記アドオンのインストール時に判断しても良い。
この構成により、本発明の電子機器は、第1プログラミング部分による第2プログラミング部分の呼び出しが許可されているか否かを、アドオンの実行時ではなく、アドオンのインストール時に判断するので、アドオンを高速に実行することができる。
本発明の電子機器は、前記認証情報と、前記アドオンの少なくとも一部から特定の計算アルゴリズムに基づいて作成された情報とが一致する場合に、前記呼び出しが許可されていると判断しても良い。
この構成により、本発明の電子機器は、アドオン毎に認証情報が異なる可能性が高いので、特定のアドオンに正当に関連付けられている認証情報が他のアドオンに不正に流用されることを防止することができ、セキュリティー性能を向上することができる。
本発明の電子機器は、前記権限を不揮発性の記憶デバイスに記憶しても良い。
この構成により、本発明の電子機器は、第1プログラミング部分による第2プログラミング部分の呼び出しが許可されているか否かを電子機器の起動の度に判断する必要がないので、処理負担を軽減することができる。
本発明の電子機器は、アプリケーションの作成を容易化することができる。
本発明の第1の実施の形態に係るMFPのブロック図である。 図1に示すMFPのソフトウェア構成を示す図である。 図1に示すアドオンの作成のシーケンス図である。 アドオンがインストールされる場合の図1に示すMFPの動作のフローチャートである。 アドオンがインストールされる場合の図1に示すMFPのソフトウェア構成を示す図である。 Javaが提供している機能と、OSが提供している機能とのうちJavaが提供している機能のみをアプリケーションが利用する場合の図1に示すMFPのソフトウェア構成を示す図である。 OSが提供している機能をプラットフォーム側アプリケーション経由でアプリケーションが利用する場合の図1に示すMFPのソフトウェア構成を示す図である。 OSが提供している機能をアドオン経由でアプリケーションが利用する場合の図1に示すMFPの動作のフローチャートである。 OSが提供している機能をアドオン経由でアプリケーションが利用する場合の図1に示すMFPのソフトウェア構成を示す図である。 本発明の第2の実施の形態に係るMFPのブロック図である。 図10に示すアドオンの作成のシーケンス図である。 アドオンがインストールされる場合の図10に示すMFPの動作のフローチャートである。
以下、本発明の実施の形態について、図面を用いて説明する。
(第1の実施の形態)
まず、本発明の第1の実施の形態に係る電子機器としてのMFP(Multifunction Peripheral)の構成について説明する。
図1は、本実施の形態に係るMFP10のブロック図である。
図1に示すように、MFP10は、種々の操作が入力されるボタンなどの入力デバイスである操作部11と、種々の情報を表示するLCD(Liquid Crystal Display)などの表示デバイスである表示部12と、用紙などの記録媒体に印刷を実行する印刷デバイスであるプリンター13と、原稿から画像を読み取る読取デバイスであるスキャナー14と、図示していない外部のファクシミリ装置と公衆電話回線などの通信回線経由でファックス通信を行うファックスデバイスであるファックス通信部15と、LAN(Local Area Network)、インターネットなどのネットワーク経由で外部の装置と通信を行うネットワーク通信デバイスであるネットワーク通信部16と、各種の情報を記憶する半導体メモリー、HDD(Hard Disk Drive)などの不揮発性の記憶デバイスである記憶部17と、MFP10全体を制御する制御部18とを備えている。
図2は、MFP10のソフトウェア構成を示す図である。
図1および図2に示すように、記憶部17は、OS(Operating System)17aと、OS17a上で動作するJavaプラットフォーム17bとを記憶している。Javaプラットフォーム17bは、OS17a上で動作するJava VM(Virtual Machine)17cと、Java VM17c上で動作するOSGi(Open Service Gateway initiative) Frame Work17dと、OSGi Frame Work17d上で動作するJavaアプリケーションである少なくとも1つのプラットフォーム側アプリケーション17eとを含んでいる。
記憶部17は、OSGi Frame Work17d上で動作するJavaアプリケーションである少なくとも1つのアプリケーション17fを記憶可能である。アプリケーション17fは、MFP10の製造段階でMFP10にインストールされていても良いし、SDカード、USB(Universal Serial Bus)メモリーなどの外部の記憶媒体からMFP10に追加でインストールされても良いし、ネットワーク上からMFP10に追加でインストールされても良い。
記憶部17は、OSGi Frame Work17d上で動作して少なくとも1つのアプリケーション17fによって利用される少なくとも1つのアドオン17gを記憶可能である。アドオン17gは、第1のプログラミング言語としてのJava言語で構成されている第1プログラミング部分としてのJava部分17hと、Java言語とは異なる第2のプログラミング言語としてのネイティブ言語で構成されていてJava部分17hによって呼び出される第2プログラミング部分としてのネイティブ部分17iとを備える。なお、図2においては、ネイティブ部分17iを、「library.so」と示している。アドオン17gは、MFP10の製造段階でMFP10にインストールされていても良いし、SDカード、USBメモリーなどの外部の記憶媒体からMFP10に追加でインストールされても良いし、ネットワーク上からMFP10に追加でインストールされても良い。
記憶部17は、アドオン17gが認証されたことを示す認証情報17jをアドオン17g毎に記憶可能である。
記憶部17は、Java部分17hによるネイティブ部分17iの呼び出しが許可されているか否かの判断に使用される判断用計算アルゴリズム17kを記憶している。
制御部18は、例えば、CPU(Central Processing Unit)と、プログラムおよび各種のデータを記憶しているROM(Read Only Memory)と、CPUの作業領域として用いられるRAM(Random Access Memory)とを備えている。CPUは、記憶部17またはROMに記憶されているプログラムを実行する。
なお、Java言語は、ネイティブ言語と比較して、機能の制限をかけることが容易である。一方、ネイティブ言語は、Java言語と比較して、高速に処理されることができる。
アプリケーション17fは、プリント、コピー、ファックス、スキャンなど、MFP10の主たる機能を構成する図示していないプログラム(以下「主機能プログラム」という。)と、主機能プログラムの設定情報、秘密情報など、主機能プログラムが有する情報と、MFP10のハードウェアとの保護のために、これらの利用の少なくとも一部がJavaプラットフォーム17bによって制限される場合がある。
以下においては、ネイティブ言語がC++であるものとして説明する。
次に、アドオン17gの作成について説明する。
図3は、アドオン17gの作成のシーケンス図である。
図3に示すように、アドオン17gの開発者(以下「アドオン開発者」という。)20は、MFP10にネイティブで実行させたい部分をC++で実装し、ライブラリーとして「.so形式」のファイル(以下「library.so」とする。)を作成する(S101)。
次いで、アドオン開発者20は、S101において作成したlibrary.so、すなわち、ネイティブ部分17iと、このlibrary.soをロードする命令を含むJava部分17hとを含むアドオン17gを作成する(S102)。
次いで、アドオン開発者20は、S102において作成したアドオン17gの認証をMFP10の製造者(以下「MFP製造者」という。)30に依頼する(S103)。
MFP製造者30は、S103における依頼に応じて、認証を依頼されたアドオン17g、特に、このアドオン17gに含まれるlibrary.soを検証する(S104)。
MFP製造者30は、S104における検証において問題ないと判断すると、library.soから特定の計算アルゴリズムに基づいて認証情報17jを作成し(S105)、認証情報17jをアドオン開発者20に送信する(S106)。ここで、この計算アルゴリズムは、判断用計算アルゴリズム17kと同一内容のものである。
次に、アプリケーション17fの作成について説明する。
アプリケーション17fの開発者(以下「アプリ開発者」という。)は、S102において作成されたアドオン17gを利用するアプリケーション17fを作成する。
次に、MFP10の動作について説明する。
MFP10は、アプリ開発者によって作成されたアプリケーション17fがインストールされる。また、MFP10は、アドオン開発者によって作成されたアドオン17gがインストールされるとともに、このアドオン17gに関連付けられてMFP製造者によって作成された認証情報17jが記憶部17に記憶させられる。
まず、アドオン17gがインストールされる場合のMFP10の動作について説明する。
なお、以下においては、プラットフォーム側アプリケーション17eの動作として記載しているが、実際には、制御部18がプラットフォーム側アプリケーション17eを実行することによって実現される機能の動作である。
図4は、アドオン17gがインストールされる場合のMFP10の動作のフローチャートである。図5は、アドオン17gがインストールされる場合のMFP10のソフトウェア構成を示す図である。
図4および図5に示すように、プラットフォーム側アプリケーション17eは、インストールされたアドオン17gにネイティブ部分17iとしてのlibrary.soが存在するか否かを判断する(S131)。
プラットフォーム側アプリケーション17eは、library.soが存在するとS131において判断すると、アドオン17gに関連付けられている認証情報17jが存在するか否かを判断する(S132)。
プラットフォーム側アプリケーション17eは、認証情報17jが存在するとS132において判断すると、この認証情報17jが正当なものであるか否か、すなわち、Java部分17hによるネイティブ部分17iの呼び出しが許可されているか否かを判断する(S133)。ここで、プラットフォーム側アプリケーション17eは、インストールされたアドオン17gのlibrary.soから判断用計算アルゴリズム17kに基づいて作成した情報と、このアドオン17gに関連付けられている認証情報17jとが一致する場合に、認証情報17jが正当なものであると判断する。
プラットフォーム側アプリケーション17eは、認証情報17jが正当なものである、すなわち、Java部分17hによるネイティブ部分17iの呼び出しが許可されているとS133において判断すると、インストールされたアドオン17gに対して、Java部分17hによるネイティブ部分17iの呼び出しの権限、すなわち、ネイティブ部分17iとしてのlibrary.soをJavaの実行環境にロードする権限を付与する(S134)。
プラットフォーム側アプリケーション17eは、library.soが存在しないとS131において判断するか、認証情報17jが存在しないとS132において判断するか、認証情報17jが正当なものではないとS133において判断するか、S134の処理を実行すると、図4に示す動作を終了する。
次に、アプリケーション17fが実行される場合のMFP10の動作について説明する。
まず、Javaが提供している機能と、OS17aが提供している機能とのうちJavaが提供している機能のみをアプリケーション17fが利用する場合のMFP10の動作について説明する。
なお、Javaは、記憶部17にアクセスする機能、プリンター13によって印刷するときに図示していないステープラーによってステープルを実行する機能など、OS17aが提供している少なくとも一部の機能を提供していない。
図6は、Javaが提供している機能と、OS17aが提供している機能とのうちJavaが提供している機能のみをアプリケーション17fが利用する場合のMFP10のソフトウェア構成を示す図である。
図6に示すように、アプリケーション17fは、Javaが提供している機能と、OS17aが提供している機能とのうちJavaが提供している機能のみを利用する。
次に、OS17aが提供している機能をプラットフォーム側アプリケーション17e経由でアプリケーション17fが利用する場合のMFP10の動作について説明する。
図7は、OS17aが提供している機能をプラットフォーム側アプリケーション17e経由でアプリケーション17fが利用する場合のMFP10のソフトウェア構成を示す図である。
図7に示すように、アプリケーション17fは、OS17aが提供している機能をプラットフォーム側アプリケーション17e経由で利用する。プラットフォーム側アプリケーション17eは、OS17aとの通信にJNIを利用する。アプリケーション17fは、Javaが提供している機能もプラットフォーム側アプリケーション17e経由で利用可能である。
次に、OS17aが提供している機能をアドオン17g経由でアプリケーション17fが利用する場合のMFP10の動作について説明する。
図8は、OS17aが提供している機能をアドオン17g経由でアプリケーション17fが利用する場合のMFP10の動作のフローチャートである。図9は、OS17aが提供している機能をアドオン17g経由でアプリケーション17fが利用する場合のMFP10のソフトウェア構成を示す図である。
図8に示すように、Javaプラットフォーム17bは、Java部分17hによるネイティブ部分17iの呼び出しの権限、すなわち、ネイティブ部分17iとしてのlibrary.soをJavaの実行環境にロードする権限がアドオン17gに付与されているか否かを判断する(S161)。
Javaプラットフォーム17bは、Java部分17hによるネイティブ部分17iの呼び出しの権限がアドオン17gに付与されているとS161において判断すると、アドオン17gにJNIの利用を許可して(S162)、図8に示す動作を終了する。したがって、アドオン17gは、Java部分17hによってネイティブ部分17iを呼び出す、すなわち、ネイティブ部分17iとしてのlibrary.soをJavaの実行環境にロードすることができる。その結果、アプリケーション17fは、OS17aが提供している機能を図9に示すようにアドオン17g経由で利用可能である。アドオン17gは、OS17aとの通信にJNIを利用する。アプリケーション17fは、Javaが提供している機能もアドオン17g経由で利用可能である。
Javaプラットフォーム17bは、Java部分17hによるネイティブ部分17iの呼び出しの権限がアドオン17gに付与されていないとS161において判断すると、アドオン17gにJNIの利用を許可せずに、図8に示す動作を終了する。
以上に説明したように、MFP10は、アドオン17gにおけるJava部分17hによるネイティブ部分17iの呼び出しが許可されていると認証情報17jに基づいて判断した場合(S133でYES)に呼び出しの権限をアドオン17gに付与し(S134)、このアドオン17gをアプリケーション17fが利用するので、アプリケーション17f毎に認証情報に関連付けられる必要がなく、アプリケーション17fの作成を容易化することができる。
アプリケーション17fにおけるJava部分によるネイティブ部分の呼び出しの権限をアプリケーション17fに付与する構成の場合、Java部分によるネイティブ部分の呼び出しの権限をアプリケーション17fに付与した後、このアプリケーション17fと同一の識別情報(例えばファイル名)を備えた別のアプリケーション(以下「別アプリ」と言う。)がインストールされたときに、別アプリにおけるJava部分によるネイティブ部分の呼び出しを誤って許可する可能性がある。しかしながら、MFP10は、アドオン17gにおけるJava部分17hによるネイティブ部分17iの呼び出しの権限をアドオン17gに付与するので、アプリケーション17fにおけるJava部分によるネイティブ部分の呼び出しをアプリケーション17fに付与する構成と比較して、不正なアプリケーション17fに対するセキュリティー性能を向上することができる。
MFP10は、Java部分17hによるネイティブ部分17iの呼び出しの権限をアドオン17gの実行後も維持するので、アドオン17gの実行の度に認証情報17jに基づいて判断する必要がなく、Java部分17hによってネイティブ部分17iを高速に呼び出すことができる。
MFP10は、Java部分17hによるネイティブ部分17iの呼び出しが許可されているか否かを、アドオン17gの実行時ではなく、アドオン17gのインストール時に判断するので、アドオン17gを高速に実行することができる。しかしながら、MFP10は、Java部分17hによるネイティブ部分17iの呼び出しが許可されているか否かを、アドオン17gのインストール時ではなく、アドオン17gの最初の実行時に判断する構成でも良い。
MFP10は、認証情報17jと、アドオン17gのネイティブ部分17iから判断用計算アルゴリズム17kに基づいて作成された情報とが一致する場合に、Java部分17hによるネイティブ部分17iの呼び出しが許可されていると判断する。したがって、MFP10は、アドオン17g毎に認証情報17jが異なる可能性が高いので、特定のアドオン17gに正当に関連付けられている認証情報17jが他のアドオン17gに不正に流用されることを防止することができ、セキュリティー性能を向上することができる。
MFP10は、Java部分17hによるネイティブ部分17iの呼び出しの権限を不揮発性の記憶部17に記憶することによって、Java部分17hによるネイティブ部分17iの呼び出しが許可されているか否かをMFP10の起動の度に判断する必要がないので、処理負担を軽減することができる。しかしながら、MFP10は、Java部分17hによるネイティブ部分17iの呼び出しの権限を制御部18のRAMに記憶して、Java部分17hによるネイティブ部分17iの呼び出しが許可されているか否かをMFP10の起動の度に判断する構成でも良い。
なお、認証情報17jは、本実施の形態においてアドオン17gに関連付けられて、アドオン17gとは別ファイルとして存在している。しかしながら、認証情報17jは、アドオン17gのうち、ネイティブ部分17i以外の部分に含まれていても良い。
MFP製造者30は、本実施の形態においてlibrary.soを含むアドオン17g全体を検証する。しかしながら、MFP製造者30は、library.soのみを検証しても良い。MFP製造者30がlibrary.soのみを検証する場合、アドオン開発者20からMFP製造者30へはアドオン17gのうちlibrary.soのみが送信されれば良い。
(第2の実施の形態)
まず、本発明の第2の実施の形態に係る電子機器としてのMFPの構成について説明する。
図10は、本実施の形態に係るMFP210のブロック図である。
図10に示すMFP210の構成は、以下に述べる構成を除いて、第1の実施の形態に係るMFP10(図1参照。)の構成と同様である。
MFP210は、アドオン17g(図1参照。)ではなく、アドオン217aを備えている。アドオン217aは、Java部分17hと、ネイティブ言語で構成されていてJava部分17gによって呼び出される第2プログラミング部分としてのネイティブ部分217bとを備えている。MFP210は、アドオン17g毎に関連付けられている認証情報17j(図1参照。)を備えておらず、ネイティブ部分217bに認証情報217cを含んでいる。
MFP210は、判断用計算アルゴリズム17k(図1参照。)を備えておらず、Java部分17gによるネイティブ部分217bの呼び出しが許可されているか否かの判断に使用される判断用情報217dを備えている。
次に、アドオン217aの作成について説明する。
図11は、アドオン217aの作成のシーケンス図である。
図11に示すように、アドオン開発者20は、MFP210にネイティブで実行させたい部分をC++で実装し、ライブラリーとしてlibrary.soを作成する(S301)。
次いで、アドオン開発者20は、S301において作成したlibrary.soの認証をMFP製造者30に依頼する(S302)。
MFP製造者30は、S302における依頼に応じて、library.soを検証する(S303)。
MFP製造者30は、S303における検証において問題ないと判断すると、library.soに認証情報217cを埋め込み(S304)、認証情報217cを埋め込んだlibrary.soをアドオン開発者20に返す(S305)。
アドオン開発者20は、S305において返されたlibrary.so、すなわち、ネイティブ部分217bと、このlibrary.soをロードする命令を含むJava部分17hとを含むアドオン217aを作成する(S306)。
次に、MFP210の動作について説明する。
MFP210は、アプリ開発者によって作成されたアプリケーション17fがインストールされる。また、MFP210は、アドオン開発者によって作成されたアドオン217aがインストールされる。
まず、アドオン217aがインストールされる場合のMFP210の動作について説明する。
なお、以下においては、プラットフォーム側アプリケーション17eの動作として記載しているが、実際には、制御部18がプラットフォーム側アプリケーション17eを実行することによって実現される機能の動作である。
図12は、アドオン217aがインストールされる場合のMFP210の動作のフローチャートである。
図12に示すように、プラットフォーム側アプリケーション17eは、インストールされたアドオン217aにネイティブ部分217bとしてのlibrary.soが存在するか否かを判断する(S331)。
プラットフォーム側アプリケーション17eは、library.soが存在するとS331において判断すると、このlibrary.soに認証情報217cが埋め込まれているか否かを判断する(S332)。
プラットフォーム側アプリケーション17eは、認証情報217cが埋め込まれているとS332において判断すると、埋め込まれている認証情報217cが正当なものであるか否か、すなわち、Java部分17gによるネイティブ部分217bの呼び出しが許可されているか否かを判断する(S333)。ここで、プラットフォーム側アプリケーション17eは、インストールされたアドオン217aのlibrary.soに埋め込まれている認証情報217cと、判断用情報217dとが一致する場合に、認証情報217cが正当なものであると判断する。
プラットフォーム側アプリケーション17eは、埋め込まれている認証情報217cが正当なものである、すなわち、Java部分17gによるネイティブ部分217bの呼び出しが許可されているとS333において判断すると、インストールされたアドオン217aに対して、Java部分17gによるネイティブ部分217bの呼び出しの権限、すなわち、ネイティブ部分217bとしてのlibrary.soをJavaの実行環境にロードする権限を付与する(S334)。
プラットフォーム側アプリケーション17eは、library.soが存在しないとS331において判断するか、認証情報217cが埋め込まれていないとS332において判断するか、埋め込まれている認証情報217cが正当なものではないとS333において判断するか、S334の処理を実行すると、図12に示す動作を終了する。
なお、アプリケーション17fが実行される場合のMFP210の動作については、第1の実施の形態と同様である。
以上に説明したように、MFP210は、アドオン217aにおけるJava部分17hによるネイティブ部分217bの呼び出しが許可されていると認証情報217cに基づいて判断した場合(S333でYES)に呼び出しの権限をアドオン217aに付与し(S334)、このアドオン217aをアプリケーション17fが利用するので、アプリケーション17f毎に認証情報に関連付けられる必要がなく、アプリケーション17fの作成を容易化することができる。
MFP210は、Java部分17hによるネイティブ部分217bの呼び出しの権限をアドオン217aの実行後も維持するので、アドオン217aの実行の度に認証情報217cに基づいて判断する必要がなく、Java部分17hによってネイティブ部分217bを高速に呼び出すことができる。
MFP210は、Java部分17hによるネイティブ部分217bの呼び出しが許可されているか否かを、アドオン217aの実行時ではなく、アドオン217aのインストール時に判断するので、アドオン217aを高速に実行することができる。しかしながら、MFP210は、Java部分17hによるネイティブ部分217bの呼び出しが許可されているか否かを、アドオン217aのインストール時ではなく、アドオン217aの最初の実行時に判断する構成でも良い。
MFP210は、Java部分17hによるネイティブ部分217bの呼び出しの権限を不揮発性の記憶部17に記憶することによって、Java部分17hによるネイティブ部分217bの呼び出しが許可されているか否かをMFP210の起動の度に判断する必要がないので、処理負担を軽減することができる。しかしながら、MFP210は、Java部分17hによるネイティブ部分217bの呼び出しの権限を制御部18のRAMに記憶して、Java部分17hによるネイティブ部分217bの呼び出しが許可されているか否かをMFP210の起動の度に判断する構成でも良い。
なお、認証情報217cは、本実施の形態においてネイティブ部分217bに埋め込まれている。しかしながら、認証情報217cは、アドオン217aのうち、ネイティブ部分217b以外の部分に含まれていても良い。また、認証情報217cは、アドオン217aに関連付けられて、アドオン217aとは別ファイルとして存在しても良い。
MFP製造者30は、本実施の形態においてlibrary.soを検証する。しかしながら、MFP製造者30は、library.soを含むアドオン全体を検証しても良い。
本発明の電子機器は、上述の各実施の形態においてMFPであるが、プリンター専用機、コピー専用機、ファックス専用機、スキャナー専用機など、MFP以外の画像形成装置でも良いし、PC(Personal Computer)など、画像形成装置以外の電子機器でも良い。
10 MFP(電子機器)
17 記憶部(不揮発性の記憶デバイス)
17f アプリケーション
17g アドオン
17h Java部分(第1プログラミング部分)
17i ネイティブ部分(第2プログラミング部分)
17j 認証情報
17k 判断用計算アルゴリズム(特定の計算アルゴリズム)
210 MFP(電子機器)
217a アドオン
217b ネイティブ部分(第2プログラミング部分)
217c 認証情報

Claims (5)

  1. 第1のプログラミング言語で構成されている第1プログラミング部分と、
    前記第1のプログラミング言語とは異なる第2のプログラミング言語で構成されていて前記第1プログラミング部分によって呼び出される第2プログラミング部分と
    を備えるアドオンと、
    前記アドオンを利用するアプリケーションと
    をインストール可能な電子機器であって、
    前記アドオンは、少なくとも前記第2プログラミング部分が認証されたことを示す認証情報が関連付けられており、
    前記電子機器は、
    前記第1プログラミング部分による前記第2プログラミング部分の呼び出しの権限を前記アドオンに付与する権限付与手段と、
    前記呼び出しを許可する呼び出し許可手段と
    を備え、
    前記権限付与手段は、前記アドオンに関連付けられている前記認証情報が正当なものである場合に前記呼び出しが許可されていると判断するとともに、前記アドオンに関連付けられている前記認証情報が正当なものではない場合に前記呼び出しが許可されていないと判断し、前記呼び出しが許可されていると判断した場合に前権限を前記アドオンに付与し、
    前記呼び出し許可手段は、前記アプリケーションが実行される場合に、前記権限が前記アドオンに付与されているとき、前記呼び出しを許可することを特徴とする電子機器。
  2. 前記アプリケーションの実行前に前記アドオンに付与された前記権限を前記アドオンの実行後維持することを特徴とする請求項1に記載の電子機器。
  3. 前記権限付与手段は、前記呼び出しが許可されているか否かを前記アドオンのインストール時に判断することを特徴とする請求項1または請求項2に記載の電子機器。
  4. 前記権限付与手段は、前記認証情報と、前記アドオンの少なくとも一部から特定の計算アルゴリズムに基づいて作成された情報とが一致する場合に、前記呼び出しが許可されていると判断することを特徴とする請求項1から請求項3までの何れかに記載の電子機器。
  5. 前記権限を不揮発性の記憶デバイスに記憶することを特徴とする請求項1から請求項4までの何れかに記載の電子機器。
JP2016072703A 2016-03-31 2016-03-31 電子機器 Expired - Fee Related JP6440100B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016072703A JP6440100B2 (ja) 2016-03-31 2016-03-31 電子機器
US15/454,382 US10268488B2 (en) 2016-03-31 2017-03-09 Image forming apparatus capable of easy application creation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016072703A JP6440100B2 (ja) 2016-03-31 2016-03-31 電子機器

Publications (2)

Publication Number Publication Date
JP2017182688A JP2017182688A (ja) 2017-10-05
JP6440100B2 true JP6440100B2 (ja) 2018-12-19

Family

ID=59961000

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016072703A Expired - Fee Related JP6440100B2 (ja) 2016-03-31 2016-03-31 電子機器

Country Status (2)

Country Link
US (1) US10268488B2 (ja)
JP (1) JP6440100B2 (ja)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314429B1 (en) * 1997-10-08 2001-11-06 Mitel Corporation Bi-directional conversion library
US6263498B1 (en) * 1998-12-03 2001-07-17 International Business Machines Corporation Method and apparatus for enabling server side distributed object modification
US7415270B2 (en) * 2002-02-15 2008-08-19 Telefonaktiebolaget L M Ericsson (Publ) Middleware services layer for platform system for mobile terminals
US7149510B2 (en) * 2002-09-23 2006-12-12 Telefonaktiebolaget Lm Ericsson (Publ) Security access manager in middleware
JP2004171500A (ja) * 2002-11-15 2004-06-17 Atsuhiro Miura ソフトウェアプログラムの不正使用防止法
EP1564957B1 (en) * 2004-02-11 2007-08-22 Sony Ericsson Mobile Communications AB Method and apparatus for providing dynamic security management
US7984002B2 (en) * 2005-04-29 2011-07-19 Charles River Analytics, Inc. Automatic source code generation for computing probabilities of variables in belief networks
JP5575071B2 (ja) * 2011-08-26 2014-08-20 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
JP2013077297A (ja) * 2011-09-15 2013-04-25 Canon Inc 情報処理装置およびその制御方法
KR101430240B1 (ko) * 2011-12-19 2014-08-19 주식회사 케이티 어플리케이션 서명 장치 및 방법
JP5978748B2 (ja) * 2012-05-10 2016-08-24 富士通株式会社 添付情報付き電子メールによる不正メールの検知方法,その検知プログラム及びその検知装置
US8782744B1 (en) * 2012-06-15 2014-07-15 Amazon Technologies, Inc. Managing API authorization
JP5866316B2 (ja) 2013-06-28 2016-02-17 京セラドキュメントソリューションズ株式会社 アプリケーション実行時間短縮方法
JP6008897B2 (ja) * 2014-06-13 2016-10-19 キヤノン株式会社 装置、方法、及びプログラム

Also Published As

Publication number Publication date
US20170286138A1 (en) 2017-10-05
US10268488B2 (en) 2019-04-23
JP2017182688A (ja) 2017-10-05

Similar Documents

Publication Publication Date Title
US8601280B2 (en) Application executing apparatus and application execution method
JP4933886B2 (ja) 装置、アクセス制御方法、アクセス制御プログラム及び記録媒体
JP2007328770A (ja) 情報処理装置、アクセス制御方法、アクセス制御プログラム、記録媒体、及び画像形成装置
JP2006092018A (ja) 命令処理装置の認証システム、画像形成装置、認証制御方法及び認証制御プログラム
JP5423746B2 (ja) 画像処理装置、アクセス制御方法およびプログラム
JP5268694B2 (ja) ライセンス管理システム、画像形成装置およびライセンス管理方法
JP2008226121A (ja) 情報処理装置、プログラムおよび記録媒体
JP6084066B2 (ja) 画像形成装置及びその制御方法、並びにプログラム
WO2020110991A1 (ja) サポートプログラム、情報処理装置、および印刷方法
JP6216231B2 (ja) 情報処理装置、その制御方法、及びプログラム
JP2019114028A (ja) アプリ開発用環境プログラムおよび装置
US20210152709A1 (en) Image processing apparatus, control method thereof, and storage medium
JP5052367B2 (ja) 画像処理装置、認証パッケージインストール方法、認証パッケージインストールプログラム、及び記録媒体
JP6440099B2 (ja) 電子機器
JP4787594B2 (ja) 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体
JP6440100B2 (ja) 電子機器
KR102278901B1 (ko) 화상 형성 장치, 그 제어 방법, 및 기억 매체
US11330129B2 (en) Image forming system, image forming apparatus, and storing medium storing application control program
JP4183564B2 (ja) 情報処理システム、情報処理装置及びコンピュータプログラム
US20220253521A1 (en) Image forming apparatus capable of executing application programs, control method therefor, and storage medium
US11995189B2 (en) Image forming apparatus, firmware manipulation prevention method, and computer-readable non-transitory recording medium containing manipulation prevention program
US10484564B2 (en) Image forming apparatus and method for controlling the same comprising a storage medium that indicates whether the image forming apparatus is in a setting of checking a signature when an application is installed
JP5267615B2 (ja) 装置、アクセス制御方法、アクセス制御プログラム及び記録媒体
JP2020092298A (ja) 画像形成装置
JP4827395B2 (ja) 情報処理装置およびデータ管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181018

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181029

R150 Certificate of patent or registration of utility model

Ref document number: 6440100

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181111

LAPS Cancellation because of no payment of annual fees