JP2008041057A - 画像処理装置、画像形成装置、プログラム管理方法及びプログラムを管理する管理プログラム - Google Patents

画像処理装置、画像形成装置、プログラム管理方法及びプログラムを管理する管理プログラム Download PDF

Info

Publication number
JP2008041057A
JP2008041057A JP2006218426A JP2006218426A JP2008041057A JP 2008041057 A JP2008041057 A JP 2008041057A JP 2006218426 A JP2006218426 A JP 2006218426A JP 2006218426 A JP2006218426 A JP 2006218426A JP 2008041057 A JP2008041057 A JP 2008041057A
Authority
JP
Japan
Prior art keywords
program
hierarchical structure
information
function
image processing
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
JP2006218426A
Other languages
English (en)
Inventor
Satoru Sugishita
悟 杉下
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2006218426A priority Critical patent/JP2008041057A/ja
Priority to US11/828,051 priority patent/US20080040392A1/en
Publication of JP2008041057A publication Critical patent/JP2008041057A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/62Uninstallation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】複数のプログラムが有する依存関係を階層化し、階層化した結果に従ってプログラムの動作を管理する画像処理装置、画像形成装置、プログラム管理方法及びプログラムを管理する管理プログラムを提供する。
【解決手段】画像処理装置10は、依存関係を有する複数のプログラム31と、プログラム31間の依存関係を示す依存情報データ32とが格納された画像処理装置10であって、依存情報データ32に基づいて、複数のプログラム31間の依存関係が階層化された階層構造情報を生成する構成管理手段71と、前記階層構造情報が格納される階層構造情報テーブル80と、階層構造情報テーブル80を用いて、プログラム31の起動、終了、インストール、及びアンインストールの少なくともいずれかを行う動作管理手段72とを有することを特徴とする。
【選択図】図6

Description

本発明は、画像処理装置、画像形成装置、プログラム管理方法及びプログラムを管理する管理プログラムに関するものである。
現在のデジタル複合機(MFP:Multi-Function Peripheral)は、CPU(Central Processing Unit)の性能向上、メモリの大容量化、通信技術の高速化及びデジタル画像技術の高度化等、MFP(以下、「画像処理装置」と言う。)に関連する技術の進化に伴い、単にデジタル複写機としての機能だけでなく、ファクシミリ、プリンタ及びスキャナ機能等の様々な機能を搭載し、利用者の環境において様々な場面で利用されている。
そのため、利用者から用途に合わせた機能拡張を要求されることも多く、製造者(メーカー)側では、機能拡張を迅速に行うため、機能の拡張性や導入の柔軟性に優れた画像処理装置を設計しなければならない。
これらの点を鑑み提案された方法に、拡張機能のプログラムを蓄積したダウンロードサーバから、拡張したい機能を選択し、該当するプログラム及び認証情報をダウンロード(画像処理装置側に転送)することで、ダウンロードした認証情報に基づいて、プログラムを実行する方法等がある(例えば、特許文献1を参照。)。
特開2002―152458号公報
しかしながら、特開2002―152458号公報による方法では、開発された拡張機能を迅速に導入する点で効果はあるが、機能の拡張性、機能を導入する際の柔軟性及び製品の性能品質に関して、下に挙げる問題点が解決されていない。
現在の画像処理装置では、導入した全ての拡張機能の仕様をシステムの中心に位置するプログラムが管理しており、この管理プログラムが、全ての拡張機能のプログラム構成を把握し、拡張機能の動作を管理する一極集中型の構造となっている。
そのため、拡張性の点においては、新規開発された拡張機能を導入する場合、管理プログラムのプログラムコードをその都度変更する必要があり拡張性がない。
また、柔軟性の点においては、画像処理装置を熟知した開発者が拡張機能を開発するとは限らず、サードベンダーを含め自社以外の製造者(メーカー)が、拡張機能のプログラムを提供することも考えられ、拡張機能のプログラムとプログラム管理部との依存性が高いため、機能拡張を導入するのが難しく柔軟性がない。
また、プラットフォームの異なる複数の画像処理装置に対して、同様の理由で機能の移植が難しく柔軟性がない。
その他、一極集中型の構造では、多数の拡張機能が導入された状態において、拡張機能の起動や終了及び追加や削除等の管理が複雑となり、各機能を制御するのが困難であり、管理が複雑になれば処理性能にも影響を及ぼす可能性がある。
このように、拡張機能のプログラムとプログラム管理部との依存性が高いことから、機能の拡張性、機能を導入する際の柔軟性及び製品の性能品質の低下が挙げられる。
本発明は、上記従来技術の問題点を鑑み、複数のプログラムが有する依存関係を階層化し、階層化した結果に従ってプログラムの動作を管理する画像処理装置、画像形成装置、プログラム管理方法及びプログラムを管理する管理プログラムを提供することを目的とする。
上記目的を達成するため、本発明の画像処理装置は、依存関係を有する複数のプログラムと、前記プログラム間の依存関係を示す依存情報データとが格納された画像処理装置であって、前記依存情報データに基づいて、前記複数のプログラム間の依存関係が階層化された階層構造情報を生成する構成管理手段と、前記階層構造情報が格納される階層構造情報テーブルと、前記階層構造情報テーブルを用いて、前記プログラムの起動、終了、インストール、及びアンインストールの少なくともいずれかを行う動作管理手段とを有することを特徴とする。
これによって、画像処理装置は、複数のプログラムが有する依存関係を、依存情報データに基づいて階層化し、階層化した情報である階層構造情報を階層構造情報テーブルへ格納し(階層構造情報を生成し)、階層構造情報に従って、拡張機能のプログラムを動作させ、起動と終了を行うため、拡張機能のプログラムとプログラムを管理する機能部との依存性が低く、拡張機能の管理を容易にすることができる。
よって、機能の拡張性、機能を導入する際の柔軟性及び製品の性能品質が高いシステムを実現することができる。
上記目的を達成するため、本発明の画像処理装置は、前記動作管理手段により、所定のプログラムが起動した場合に、前記構成管理手段に対して、前記階層構造情報の取得を要求し、取得した前記階層構造情報に基づいて、前記所定のプログラムが使用するプログラムを起動することを特徴とする。
これによって、画像処理装置は、取得した階層構造情報に基づいて、依存関係(使用/被使用)にある拡張機能のプログラムを起動することができる。
上記目的を達成するため、本発明の画像処理装置は、前記動作管理手段により、所定のプログラムを終了する場合に、前記構成管理手段に対して、前記階層構造情報の取得を要求し、取得した前記階層構造情報に基づいて、前記所定のプログラムが使用するプログラムに終了を要求することを特徴とする。
これによって、画像処理装置は、取得した階層構造情報に基づいて、依存関係(使用/被使用)にある拡張機能のプログラムを終了することができる。
上記目的を達成するため、本発明の画像処理装置は、前記動作管理手段により、前記プログラムをインストール又はアンインストールする場合に、前記構成管理手段に対して、インストール又はアンインストールを行うように要求することを特徴とする。
これによって、画像処理装置は、インストール又はアンインストールする場合、プログラムの動作を管理する処理においてインストール又はアンインストールを指示すること実行するため、拡張機能のプログラム構成を把握しなくてもプログラムの動作を管理することができる。
上記目的を達成するため、本発明の画像処理装置は、前記構成管理手段により、前記プログラムをインストール又はアンインストールした場合に、前記階層構造情報テーブルを更新することを特徴とする。
これによって、画像処理装置は、インストール又はアンインストールする場合、前記階層構造情報テーブルの階層構造情報を自動的に更新するため、インストールされた最新のプログラム構成に関する情報を管理することができる。
上記目的を達成するため、本発明の画像処理装置は、前記構成管理手段により、前記階層構造情報の取得を要求された場合に、前記階層構造情報テーブルに基づいて、前記階層構造情報を返答することを特徴とする。
これによって、画像処理装置は、階層構造情報の取得要求に対して階層構造情報を返答するため、最新の階層構造に関する情報を取得することができる。
上記目的を達成するため、本発明の画像処理装置は、前記プログラムに関する情報を表示画面に表示する表示手段と、前記プログラムに関する情報を閲覧できる利用者か否かを認証する認証手段とを有し、前記表示手段により、前記認証手段により認証に成功した場合に、前記プログラムに関する情報を表示することを特徴とする。
これによって、画像処理装置は、拡張機能のプログラムに関する情報を、閲覧可能な利用者に対して表示画面へ情報を表示するため、閲覧する利用者を制限し、インストールされた拡張機能のプログラムに関する情報を開示することができる。
上記目的を達成するため、本発明の画像処理装置は、前記認証手段により、認証した利用者毎に、前記プログラムに関する情報のうち、参照できる範囲を示す参照権限を決定することを特徴とする。
これによって、画像処理装置は、利用者毎に、拡張機能のプログラムに関する情報の参照可能範囲を示す権限を決定するため、閲覧可能な利用者毎に、拡張機能のプログラムに関する情報の閲覧範囲を制限することができる。
上記目的を達成するため、本発明の画像処理装置は、前記表示手段により、前記参照権限に基づいて制限した範囲内の前記プログラムに関する情報を表示することを特徴とする。
これによって、画像処理装置は、利用者毎の権限に基づいて、制限された範囲の拡張機能のプログラムに関する情報を表示画面へ表示するため、制限された範囲の拡張機能のプログラムに関する情報を開示することができる。
上記目的を達成するため、本発明の画像形成装置は、請求項1から9を有する該画像処理装置を備えたことを特徴とする。
これによって、画像形成装置は、上記説明に挙げた課題を解決するための手段を有する画像処理装置を備えているため、該画像処理装置と同様の作用効果を実現することができる。
上記目的を達成するため、本発明のプログラム管理方法は、依存関係を有する複数のプログラムと、前記プログラム間の依存関係を示す依存情報データとが格納された画像処理装置におけるプログラム管理方法であって、前記依存情報データに基づいて、前記複数のプログラム間の依存関係が階層化された階層構造情報を生成する構成管理手順と、前記階層構造情報が格納される階層構造情報テーブルと、前記階層構造情報テーブルを用いて、前記プログラムの起動、終了、インストール、及びアンインストールの少なくともいずれかを行う動作管理手順とを有することを特徴とする。
これによって、プログラム管理方法は、複数のプログラムが有する依存関係を、依存情報データに基づいて階層化し、階層化した情報である階層構造情報を階層構造情報テーブルへ格納し(階層構造情報を生成し)、階層構造情報に従って、拡張機能のプログラムを動作させ、起動と終了を行うため、拡張機能のプログラムとプログラムを管理する機能部との依存性が低く、拡張機能の管理を容易にすることができる。
よって、機能の拡張性、機能を導入する際の柔軟性及び製品の性能品質が高いシステムを実現するように拡張機能のプログラムを管理することができる。
また、上記目的を達成するため、本発明の管理プログラムは、依存関係を有する複数のプログラムと、前記プログラム間の依存関係を示す依存情報データとが格納された画像処理装置におけるプログラムを管理する管理プログラムであって、コンピュータを、前記依存情報データに基づいて、前記複数のプログラム間の依存関係が階層化された階層構造情報を生成する構成管理手段と、前記階層構造情報が格納される階層構造情報テーブルと、前記階層構造情報テーブルを用いて、前記プログラムの起動、終了、インストール、及びアンインストールの少なくともいずれかを行う動作管理手段として機能させる。
これによって、管理プログラムは、コンピュータにおいて、複数のプログラムが有する依存関係を、依存情報データに基づいて階層化し、階層化した情報である階層構造情報を階層構造情報テーブルへ格納し(階層構造情報を生成し)、階層構造情報に従って、拡張機能のプログラムを動作させ、起動と終了を行うため、拡張機能のプログラムとプログラムを管理する機能部との依存性が低く、拡張機能の管理を容易にすることができる。
よって、コンピュータにおいて、機能の拡張性、機能を導入する際の柔軟性及び製品の性能品質が高いシステムを実現するように拡張機能のプログラムを管理する管理プログラムを機能させることができる。
本発明によれば、依存情報データに基づいて、複数のプログラムが有する依存関係を、依存情報データに基づいて階層化し、階層化した情報である階層構造情報を階層構造情報テーブルに格納し(階層構造情報を生成し)、階層構造情報に従って、拡張機能のプログラムの動作を管理する画像処理装置、画像形成装置、プログラム管理方法及びプログラムを管理する管理プログラムを提供することができる。
また、本発明によれば、複数のプログラムが有する依存関係を、依存情報データに基づいて階層化し、階層化した情報である階層構造情報を階層構造情報テーブルに格納し、(階層構造情報を生成し)、階層構造情報に従って、拡張機能のプログラムを動作させ、起動と終了を行うため、拡張機能のプログラムとプログラムを管理する機能部との依存性が低く、拡張機能の管理を容易にすることができる。
また、拡張機能のプログラム管理方法が単純化したことにより、多くの機能が拡張された場合において、プログラム管理を行う処理の負荷を軽減することができる。
よって、機能の拡張性、機能を導入する際の柔軟性及び製品の性能品質が高いシステムを実現することができる。
以下、本発明の好適な実施の形態について、図面を用いて詳細に説明する。
図1は、本発明の実施例1に係る画像処理装置のハードウェア構成例を示すブロック図である。
図1に示すように、画像処理装置10は、入力部11、表示部12、補助記憶部13、ネットワークI/F14、外部記憶装置I/F15、外部入力装置I/F16、主記憶部17、制御部18を備えている。
入力部11は、操作部と呼ばれ、テンキー、各種ファンクションキー、スタート/ストップキー等を備え、画像処理機能の各種条件設定の入力(例えば、テンキーによる「解像度設定」、「変倍の倍率設定」等。)や機能実行を指示する入力(例えば、スタートキーによる「変倍の実行」。)を各キーにより受け付ける。本実施例において入力部11は、後に説明する利用者認証を行う際に、利用者の識別コードやパスワード等を入力により受け付ける。
表示部12は、液晶表示機器を備え、ジョブに関する情報(例えば、「画像処理中のジョブ名」。)、並びに画像処理装置10の駆動条件(例えば、「設定された解像度値」、「設定された倍率」。)、装置状態(例えば、「ジョブ待ちの状態」、「ジョブ処理中の状態」。)等の各種情報を表示する。また、表示部12がタッチパネル機能を有している場合には、タッチパネル上からタッチペン等を用いてタッチ入力を行うことができ、パネル上に表示された機能ボタンを選択することで、入力部11が行う機能と同様の操作が行える。本実施例において表示部12は、後に説明するインストールされた拡張機能に関する情報を利用者が閲覧する際に表示画面へ表示する。
補助記憶部13は、画像処理装置10が取り扱うデータ(例えば、「画像データ」)の格納先であるHD(Hard Disk)等の記憶装置である。本実施例において補助記憶部13は、拡張機能のプログラム及び関連するデータを格納する。
ネットワークI/F14は、LAN(Local Area Network)、公衆回線及び無線回線等のネットワーク上の通信機器と画像処理装置10との間で、データを双方向通信するためのハードウェアインタフェースである。本実施例においてネットワークI/F14は、インストールする拡張機能のプログラム及び関連データ等を、管理サーバ等からダウンロードする際のネットワークインタフェースとして使用される。
外部記憶装置I/F15は、メモリカード等の外部記憶装置と画像処理装置10との間で、データを伝送するためのハードウェアインタフェースである。また、外部記憶装置には、メモリカードの他、FD(floppy disk)、MO(Magneto-Optical disk)、CD(Compact Disc)、DVD(Digital Versatile Disk)等の記録メディアドライブも含まれる。本実施例において外部記憶装置I/F15は、メモリカードや記録メディア内に格納された拡張機能のプログラム及び関連するデータ等を伝送する際のデータインタフェースとして使用される。
外部入力装置I/F16は、スキャナやデジタルカメラ等の画像読み取り装置と画像処理装置10との間で、データを伝送するためのハードウェアインタフェースである。本実施例において外部入力装置I/F16は、画像処理を行う画像データを入力する(画像を読み取る)。
主記憶部17は、ROM(Read Only Memory)、RAM(Random Access Memory)から構成される記憶回路である。本実施例において主記憶部17は、画像処理装置10を制御する基本ソフト(以下、「OS:Operating System」と言う。)及び画像処理装置10が起動した際に機能提供される基本機能(例えば、「画像入力機能」、「画像加工機能」、「画像出力機能」。)のプログラム及び関連データがROMに格納されており、CPU(Central Processing Unit)により、ROMに格納されたプログラムやデータがRAMへ展開(ロード)される。
制御部18は、コントローラ部と呼ばれ、CPUを備えた制御回路である。本実施例において、制御部18は、画像処理装置10に電源が投入された後、ROMに格納されたプログラム及びデータを必要に応じてRAMへ展開(ロード)し、展開(ロード)したプログラムを実行することで、電源投入後OSが起動し、起動したOS上で基本機能をアプリケーションとして動作させている。また、制御部18は、拡張機能がインストールされている場合、補助記憶部13に格納された拡張機能のプログラム及び関連データを、基本機能のプログラム同様に、起動したOS上で拡張機能をプラグインソフトウェアとして動作させている。
上述した各ハードウェアは、信号の伝送路であるバス及び接続ケーブルによって接続されている。よって、制御部18は、周辺の入力部11、表示部12、補助記憶部13、ネットワークI/F14、外部記憶装置I/F15、外部入力装置I/F16、主記憶部17へ、制御命令信号を伝送し、それに対して、入力部11、表示部12、補助記憶部13、ネットワークI/F14、外部記憶装置I/F15、外部入力装置I/F16、主記憶部17からは、制御命令に従って各装置で処理されたデータ信号が制御部18へ伝送される。
よって、制御部18は、画像処理装置10全体の動作を制御することができる。
このように、画像処理装置10は、インストールする拡張機能のプログラム及び関連データがネットワーク上の管理サーバに格納されている場合、ネットワークI/F114を介して取得し、又、メモリカード、記録メディアに格納されている場合、外部記憶装置I/F15を介して取得し、取得したプログラム及びデータをインストールする(補助記憶部13へ格納する)ことができる。
また、制御部18が、インストールされた拡張機能のプログラムや関連データを、補助記憶部13から主記憶部17のRAMへ展開(ロード)し、展開したプログラムを実行することで基本機能の機能拡張を実現している。
次に、画像処理装置10に対して拡張する機能がどのように開発提供されているのかについて、図2を用いて説明する。
図2は、本発明の実施例1に係るフレームワークを用いた拡張機能の開発作業の例を示す図である。
まず、画像処理装置10が有する機能構成40は、大きく分けて基本機能41と拡張機能42から構成されている。
図2に示すように、基本機能41は、画像データを入力する「画像入力機能」、入力した画像データを加工する「画像加工機能」、加工した画像データを出力する「画像出力機能」であり、入力データに対して画像処理を行い、処理した画像データを出力する上で必要な機能で構成されている。
拡張機能42は、先に説明した基本機能41を拡張する機能で構成されている。
よって、基本機能41は、画像処理装置10における機能アプリケーションであり、拡張機能42は、機能アプリケーションのプラグインソフトウェアという関係を持っている。
この拡張機能42のプラグインソフトウェアは、図2に示すプラグインソフトウェアを開発する開発環境(例えば、「コンパイラ」、「デバッガ」。)が整備されたPC(Personal Computer)20によって、プラグインソフトウェアの雛形である拡張機能用フレームワーク21を基に開発される。
拡張機能用フレームワーク21には、画像処理装置10が採用しているアーキテクチャやプラットフォームの仕様にあわせてプログラムの動作を制御する(動作規則に従ってプログラムの動作を制御する)汎用的な機能(以下、「動作制御機能」と言う。)が予めプログラム化された状態でまとめて提供されている。
そのため、拡張機能42のプラグインソフトウェアの開発作業の中で、画像処理装置10のアーキテクチャやプラットフォームの仕様に影響されることがなく、開発者は、画像処理装置10に対応した拡張機能用フレームワーク21を基に、設計した拡張機能部のみをプログラムコード化し、プラグインソフトウェアを開発すれば良い。
このようにして開発された拡張機能42のプラグインソフトウェアは、図2に示すような「機種情報33」、「仕向け情報34」及び「ファームウェア情報35」のデータ識別用のヘッダファイルと「更新用データ(プログラム)31」、「プログラム名称36」及び「バージョン情報37」の更新データで構成されており、拡張機能単位でパッケージ化し、拡張機能パッケージ30として管理サーバ又はメモリカード、記録メディア等に格納され、画像処理装置10へ提供される。
よって、拡張機能用フレームワーク21を基に拡張機能42のプラグインソフトウェアを開発し、画像処理装置10へ提供する方法は、サードベンダーを含めた自社以外の製造者(メーカー)により開発されたソフトウェアや将来開発する新規拡張機能42のプラグインソフトウェアにおいても、低コスト且つ迅速な対応による機能拡張が可能となり、柔軟性の高いシステムを実現できる。
また、アーキテクチャやプラットフォームの異なる画像処理装置10同士の機能移植も、移植する画像処理装置10に対応した拡張機能用フレームワーク21を基に、拡張機能部を移植するだけで良いため効率よく行うことができる。
次に、拡張機能パッケージ30がどのようなプログラムとデータで構成され、画像処理装置10内においてインストール後どのように管理されるかについて、図3を用いて説明する。
図3は、本発明の実施例1に係る拡張機能パッケージ30がインストール後に階層構造化された例を示す図である。
まず、図3に示すように、拡張機能-1パッケージ30a及び拡張機能-2パッケージ30bは、基本アプリケーションを機能拡張するためのプログラム31(プログラムA〜E)、プログラムの依存関係を示す依存情報データ32で構成されている。
ここで言う「プログラムの依存関係」とは、例えば、プログラムAとプログラムBにおいて、「プログラムBがプログラムAを使用する」や「プログラムAはプログラムBに使用される」、また「プログラムBがプログラムAを呼び出す」や「プログラムAはプログラムBに呼び出される」等のような2つ以上のプログラム間において、あるプログラムの動作が他のプログラムによって規定され、条件付けられている関係のことを言い、依存情報データ32は、このようなプログラム間の依存関係の情報によって構成されている。
次に、拡張機能-1パッケージ30a及び拡張機能-2パッケージ30bは、画像処理装置10へインストールした後、図3に示すように階層構造50によってプログラム構成が管理される。
例えば、拡張機能-1パッケージ30aの場合には、依存情報データ32に示された依存関係(A→B→C)に基づいて、最上位の階層(1)にプログラムA、最上位の階層から1つ下の階層(2)にプログラムB、最上位の階層から2つ下の階層(3)にプログラムCとなるようにプログラムA、B及びCが有する依存関係を階層化する。
また、拡張機能-2パッケージ30bの場合は、依存情報データ32に示された依存関係(D→B→C,D→E)に基づいて、最上位の階層(1)にプログラムD、最上位の階層から1つ下の階層(2)にプログラムBとプログラムE、最上位の階層から2つ下の階層(3)にプログラムCとなるようにプログラムB、C、D及びEが有する依存関係を階層化する。
このように、画像処理装置10にインストールされた拡張機能-1パッケージ30aと拡張機能-2パッケージ30bにおける複数のプログラム間の依存関係を階層化(階層(1)、(2)、(3))することによって、パッケージ内のプログラム構成を管理することができる。
例えば、図3に示すように、拡張機能-1パッケージ30aをインストールした場合では、最上位の階層(1)にプログラムA、最上位から1つ下の階層(2)にプログラムB、最上位から2つ下の階層(3)にプログラムCのようにプログラムを管理する。
また、拡張機能-2パッケージ30bをインストールした場合では、最上位の階層(1)にプログラムD、最上位から1つ下の階層(2)にプログラムBとプログラムE、最上位から2つ下の階層(3)にプログラムCのようにプログラムを管理する。
次に、階層化された依存関係によりプログラムが、画像処理装置10においてどのように動作するのかについて、図4を用いて説明する。
図4は、本発明の実施例1に係る拡張機能42のプログラム31の動作例を示す図である。
拡張機能用フレームワーク21を基に開発されたプログラムには、プログラム自身の動作を制御する動作制御機能が含まれている。
例えば、拡張機能-1パッケージ30aのプログラムを起動した場合、まず、最上位の階層に位置するプログラムAが起動されると、プログラムAは、階層構造50に基づいてプログラムA自身が使用する(1つ下の階層に位置する)プログラムBを起動する。次に、プログラムBは、プログラムB自身が使用する(1つ下の階層に位置する)プログラムCを起動する。
プログラムCは、プログラムC自身が使用する(次に起動する)プログラムがないため、自分が起動完了した旨を1つ上の階層に位置するプログラムBへ通知する。プログラムBは、プログラムCからの起動完了通知を受け取り、その後、自分が起動完了した旨を1つ上の階層に位置するプログラムAへ通知する。最後に、プログラムAは、プログラムBからの起動完了通知を受け取り、自分が起動完了した旨をプログラムの管理先へ通知する。
この通知によって、拡張機能-1パッケージ30aのプログラムが全て起動完了したこととなる。
また、拡張機能-2パッケージ30bのプログラムを起動した場合、まず、最上位の階層に位置するプログラムDが起動されると、プログラムDは、階層構造50に基づいてプログラムD自身が使用する(1つ下の階層に位置する)プログラムB及びプログラムEを起動する。プログラムBは、プログラムB自身が使用する(1つ下の階層に位置する)プログラムCを起動する。
プログラムCは、プログラムC自身が使用する(次に起動する)プログラムがないため、自分が起動完了した旨を1つ上の階層に位置するプログラムBへ通知する。プログラムBは、プログラムCからの起動完了通知を受け取り、その後、自分が起動した旨を1つ上の階層に位置するプログラムDへ通知する。
また、プログラムEも、プログラムCと同様に、プログラムE自身が使用する(次に起動する)プログラムがないため、自分が起動完了した旨を1つ上の階層に位置するプログラムDへ通知する。最後に、プログラムDは、プログラムB及びプログラムDからの起動完了通知を受け取り、自分が起動完了した旨をプログラムの管理先へ通知する。
この通知によって、拡張機能-2パッケージ30bのプログラムが全て起動完了したこととなる。
動作制御機能は、プログラム間の依存関係(使用/被使用)が階層化された階層構造50の各階層(階層(1)、(2)、(3))に位置するプログラムが、階層構造50の情報に基づいて、上位の階層に位置するプログラムの起動及び終了の要求に従って動作することで、拡張機能42のプログラム31を動作制御する。
例えば、図4に示すように、拡張機能-1パッケージ30aの場合には、最上位の階層(1)に位置するプログラムAが起動すると、起動動作を継承し最上位から1つ下の階層(2)に位置するプログラムBが起動し、さらに起動動作を継承し最上位から2つ下の階層(3)に位置するプログラムCが起動する。
また、拡張機能-2パッケージ30bの場合には、最上位の階層(1)に位置するプログラムDが起動すると、起動動作を継承し最上位から1つ下の階層(2)に位置するプログラムB及びプログラムEが起動し、さらに起動動作を継承し最上位から2つ下の階層(3)に位置するプログラムCが起動する。
このように、拡張機能42のプログラム31は、階層構造50の情報に基づいて、依存関係を有する複数のプログラムの動作を制御することができる。
次に、図3及び図4において説明した拡張機能42のプログラム管理を、どのような機能部により実現しているかについて、図5を用いて説明する。
図5は、本発明の実施例1に係る主要機能部の構成例を示すブロック図である。
図5に示す主要機能部は、プログラム構成管理部61、拡張機能動作管理部62、認証部63から構成されている。
プログラム構成管理部61は、構成管理手段71を有し、拡張機能42のプログラム31の依存関係を階層化し、プログラム構成及び階層構造50の情報を階層毎に管理する。
拡張機能動作管理部62は、動作管理手段72を有し、拡張機能42のプログラム31の起動と終了、インストールとアンインストールを行い、インストールされた拡張機能42のプログラム31の動作を管理する。
また、拡張機能動作管理部62は、表示手段74を有し、インストールされた拡張機能42のプログラム31に関する階層構造50の情報を、画像処理装置10が有する表示部12の表示画面に表示する。
認証部63は、認証手段73を有し、インストールされた拡張機能42のプログラム31に関する階層構造50の情報を閲覧(参照)できる利用者か否かを認証する。
このように、画像処理装置10は、上記主要機能部により拡張機能42のプログラム31を管理している。
次に、図5において説明した各機能部が有する手段について、図6を用いて説明する。
図6は、本発明の実施例1に係る主要機能部が有する手段の構成例を示すブロック図である。
図6に示す主要機能部が有する手段は、構成管理手段71、動作管理手段72、認証手段73、表示手段74から構成されている。
まず、プログラム構成管理部61が有する構成管理手段71は、インストール又はアンインストールの要求に従って、拡張機能パッケージ30を画像処理装置10へインストール又はアンインストールを行う。
また、構成管理手段71は、インストールを行う際に、拡張機能42のプログラム31の依存関係を依存情報データ32に基づいて階層化する。階層化した結果(階層構造50の情報)は、プログラムの動作を管理する上で必要なため、階層構造50の情報をテーブル化し、階層構造情報テーブルとして補助記憶部13に保持する。
以下に、構成管理手段71が、階層構造情報テーブルに階層構造50の情報を格納する方法について、図7の階層構造情報テーブルのデータ構成例を示す図を用いて説明する。
階層構造情報テーブル80は、2行N列の形式を有し、1行目が起動されるプログラム(下位層)の情報81、2行目が起動するプログラム(上位層)の情報82が格納される。
構成管理手段71は、例えば、拡張機能-1パッケージ30aをインストールした場合、2行1列目の項目に、拡張機能を識別するデータであるパッケージ名の「拡張機能-1パッケージ(Package-1)」を格納し、同列の1行目の項目に、拡張機能-1パッケージ30aが起動する際に最初に起動される「プログラムAの情報」を格納する。
次に、2行2列目の項目に、起動するプログラムAの情報を格納し、1行2列目の項目に、プログラムAから起動される「プログラムBの情報」を格納する。
最後に、2行3列目の項目に、起動するプログラムBの情報を格納し、1行3列目の項目に、プログラムBから起動される「プログラムCの情報」を格納する。
階層構造情報テーブル80に格納するプログラムの情報81、82は、図7に示すように、インストールの際にプログラムを格納した補助記憶部13内のディレクトリ構造に従った格納場所を示す情報(例えば、「プログラムデータパス名」。)である。
例えば、プログラムAの情報は、補助記憶部13のドライブ名がDドライブだった場合、"D:\xxx/yyy/zzz/prog_a.dll"となる。
このように、構成管理手段71は、インストールの際に、プログラムの情報81、82(格納場所の情報)を階層構造情報テーブル80の各項目に格納することで、図7の矢印に示すような拡張機能42のプログラム31の依存関係(階層構造50の情報)を階層化する。
例えば、拡張機能-1パッケージ30aの場合には、「Package-1 → D:\xxx/yyy/zzz/prog_a.dll」、「prog_a.dll → D:\xxx/yyy/zzz/prog_b.dll」、「prog_b.dll → D:\xxx/yyy/zzz/prog_c.dll」の依存関係(階層構造50の情報)を階層化する。
よって、プログラム構成管理部61は、構成管理手段71により、インストールの際に、拡張機能パッケージ30のプログラムを補助記憶部13へ格納するとともに、依存情報データ32に基づいて、拡張機能42のプログラム31の依存関係を階層化した結果を階層構造情報テーブル80として保持することで、パッケージ単位で、拡張機能42のプログラム31を階層毎に管理することができる。
以下に、構成管理手段71が、インストール又はアンインストールの際に行う、階層構造情報テーブル80の更新について、図8の階層構造情報テーブル80の内容を更新する例を示す図を用いて説明する。
構成管理手段71は、例えば、画像処理装置10に対して、既に拡張機能-1パッケージ30aがインストールされている状態で、拡張機能-2パッケージ30bをインストールした場合、依存情報データ32に基づいて、拡張機能42のプログラム31の依存関係を階層化し、図8の中段に示す階層構造情報テーブル80の網掛け部のプログラムの情報81、82を追加する。
この時、拡張機能-2パッケージ30bのプログラムB及びプログラムCについては、既にインストールされた拡張機能-1パッケージ30aに含まれているプログラムであるため、2行2列目の項目にプログラムDを追加し、プログラムDがプログラムBを起動する依存関係を示すプログラム情報81を追加する。
また、インストールした拡張機能-1パッケージ30aをアンインストールした場合、インストールの際に更新した階層構造情報テーブル80から、拡張機能-1パッケージ30aに関するプログラムの情報81、82を削除する。
この時、拡張機能-1パッケージ30aのプログラムB及びプログラムCについては、後にインストールされた拡張機能-2パッケージ30bに含まれているプログラムDから起動されるプログラムであるため、削除を行わない(図8の下段に示す階層構造情報テーブル80の網掛け部)。
よって、プログラム構成管理部61は、構成管理手段71により、インストール又はアンインストールの際に、拡張機能パッケージ30のプログラムを追加又は削除するとともに、階層構造情報テーブル80内のプログラムの情報81、82も追加又は削除することで、拡張機能42のプログラム構成及び階層構造50の情報を管理することができる。
また、構成管理手段71は、階層構造情報テーブル80で管理する階層構造50の情報を取得要求された場合、要求に応じて階層構造50の情報を応答する。
よって、プログラム構成管理部61は、構成管理手段71により、他の機能部から階層構造50の情報を取得要求された場合、要求に応じて階層構造50の情報を応答することができる。
次に、拡張機能動作管理部62が有する動作管理手段72は、拡張機能42の起動指示を受け、階層構造情報テーブル80の階層構造50の情報に基づいて、起動する拡張機能42の最上位の階層に位置するプログラムを起動する。
そのため、動作管理手段72は、拡張機能42の起動指示を受けた場合、プログラム構成管理部61が有する構成管理手段71へ、階層構造情報テーブル80で管理する階層構造50の情報を取得要求し、構成管理手段71から返答された階層構造50の情報を取得する。
以下に、動作管理手段72による拡張機能パッケージ30の起動について、図7の下段に示すデータ構成例を用いて説明する。
動作管理手段72は、例えば、拡張機能-1パッケージ30aの起動指示を受けた場合、構成管理手段71から返答され取得した階層構造50の情報に対して、パッケージ名"Package-1"をキーに2行目の項目全ての情報を検索する。
その後、該当するパッケージ名"Package-1"に対して依存関係にある同列1行目の情報"D:\xxx/yyy/zzz/prog_a.dll"に従ってプログラムAを起動する。
このように、動作管理手段72は、拡張機能-1パッケージ30aの最上位の階層に位置するプログラムを起動する。
また、動作管理手段72は、プログラムが有する動作制御機能により、下位層から上位層へ伝達される各プログラムの起動完了通知に基づいて、最上位の階層に位置するプログラムから起動完了通知を受け取ることで、起動した拡張機能42が正常に起動したか否かを把握する。
プログラムの終了についても、起動と同様に、終了する拡張機能42の最上位の階層に位置するプログラムに対して終了を要求する。
よって、拡張機能動作管理部62は、動作管理手段72により、構成管理手段71から返答され取得した階層構造50の情報に基づいてプログラムの起動と終了を行い、インストールされた拡張機能42のプログラム31の動作を管理することができる。
このように、構成管理部71により、拡張機能42に関する情報を階層構造情報テーブル80により管理し、動作管理手段72により、階層構造情報テーブル80に基づいて、拡張機能42のプログラム31における起動と終了の動作を管理するため、従来のような、プログラム管理部のプログラムコードを変更する必要がなく、拡張機能42のプログラム31とプログラム管理部との依存性が低く、拡張機能の管理を容易にすることができる。
また、拡張機能42のプログラム管理方法が単純化したことにより、多くの機能が拡張された場合において、プログラム管理を行う処理の負荷を軽減することができる。
よって、画像処理装置10は、機能の拡張性、機能を導入する際の柔軟性及び製品の性能品質が高いシステムを実現することができる。
また、拡張機能動作管理部62が有する表示手段74は、インストールされた拡張機能42のプログラム31に関する階層構造50の情報の閲覧(参照)指示を受け、階層構造情報テーブル80の階層構造50の情報に基づいて、表示部12の表示画面に階層構造50の情報を表示する。
そのため、表示手段74は、拡張機能42のプログラム31に関する階層構造50の情報の閲覧(参照)指示を受けた場合、プログラム構成管理部61が有する構成管理手段71へ、階層構造情報テーブル80で管理する階層構造50の情報を取得要求し、構成管理手段71から返答された階層構造50の情報を取得する。
また、表示手段74は、認証部63で管理する参照権限(閲覧権限)に基づいて、表示する階層構造50の情報の範囲を制限する。
そのため、表示手段74は、次に説明する認証部63の認証手段73へ、閲覧(参照)しようとしている利用者の認証を要求し、認証結果として認証手段73から返答された利用者の参照権限(閲覧権限)の情報を取得する。
よって、拡張機能動作管理部62は、表示手段74により、構成管理手段71から返答され取得した階層構造50の情報に基づいて、インストールされた拡張機能42のプログラム31に関する階層構造50の情報を表示部12の表示画面に表示することができる。
また、認証結果として認証手段73から返答された利用者の参照権限(閲覧権限)の情報に基づいて、表示する階層構造50の情報の範囲を制限することができる。
次に、認証部63が有する認証手段73は、利用者に対する認証要求を受け、インストールされた拡張機能42のプログラム31に関する階層構造50の情報を閲覧(参照)できる利用者か否かを認証する。
認証手段73は、拡張機能動作管理部62が有する表示手段74から認証要求された場合、入力部11から入力された利用者の識別情報(例えば、「ユーザID」。)とパスワードに基づいて、インストールされた拡張機能42のプログラム31に関する階層構造50の情報を閲覧(参照)できる利用者か否かを認証する。
また、認証手段73は、認証登録された利用者に対して、利用者毎に、表示する階層構造50の情報の範囲を制限する参照権限(閲覧権限)を管理し、認証結果として、該当する利用者の参照権限(閲覧権限)を応答する。
よって、認証部63は、認証手段73により、インストールされた拡張機能42のプログラム31に関する階層構造50の情報を閲覧(参照)できる利用者か否かを認証することができる。
このように、画像処理装置10は、主要機能部が有する各手段により拡張機能42のプログラム31を管理している。
よって、画像処理装置10は、動作制御機能を有するプログラムを、階層構造50によって管理することで、従来のように、全てのプログラムを1箇所の管理部が集中管理する必要がなく、拡張機能42のプログラム31とプログラム管理部との依存性が低く、拡張機能42のプログラム管理を容易にすることができ、拡張性の高いシステムを実現することができる。
次に、拡張機能42のプログラム管理を実現する詳細な方法について図9から図20を用いて説明する。
また、以降に説明する拡張機能42のプログラム管理方法は、全て、プログラムにより実現されるものであり、図5で示したように、画像処理装置10が有する制御部18で実行される。
よって、コンピュータに読み取り可能な記録媒体であれば、本発明を構成するプログラムを格納することができる。
まず、図4で示した拡張機能42のプログラム31における動作制御機能の処理について、図9及び図10を用いて詳細説明する。
拡張機能動作管理部62は、拡張機能42の起動及び終了が指示された場合、動作管理手段72により、拡張機能42のプログラム31のうち、最上位の階層に位置するプログラムを起動及び終了する。
その結果、プログラム間の連鎖的な依存関係(階層構造50の情報)に従って、階層毎に動作を継承することにより、拡張機能パッケージ30の全てのプログラムが起動及び終了する。
よって、拡張機能42のプログラム31が有する動作制御機能は、プログラム間による連鎖的な起動及び終了動作を実現する機能である。
拡張機能42のプログラム31が有する動作制御機能は、プログラム起動機能として、「プログラム起動機能」、「プログラム起動完了通知受取機能」、「プログラム起動完了通知機能」を有し、また、プログラム終了機能として、「プログラム終了要求受取機能」、「プログラム終了要求機能」とを有している。
図9は、本発明の実施例1に係る拡張機能42のプログラム31が有するプログラム起動機能に関する処理を示すフローチャートである。
プログラム起動機能は、自らが起動を指示された(起動された)回数をカウントし、そのカウント値(初期値0)をRAMに保持する(S101)。
次に、保持したカウント値に基づいて、メインプロセスが起動済みか否かを判定する(S102)。
カウント値が2以上で、メインプロセスが起動済みの場合(S102がYESの場合)、起動した際に取得した階層構造50の情報に基づいて、1つ上の階層に位置するプログラムに対して起動完了通知を応答する(S109)。
また、カウント値が1で、メインプロセスが初めて起動される場合(S102がNOの場合)、プログラム構成管理部61の構成管理手段71へ、階層構造情報テーブル80が管理する階層構造50の情報の取得を要求し(S103)、要求に対して、構成管理手段71から階層構造50の情報の応答があるまで待つ(S104)。
構成管理手段71から応答があった場合(S104がYESの場合)、取得した階層構造50の情報に基づいて、次に起動するプログラムがあるか否かを判定する(S105)。
次に起動するプログラムがある場合(S105がYESの場合)、起動するプログラムの情報(プログラムデータパス)に基づいて、1つ下の階層に位置するプログラムを起動し(S106)、起動したプログラムから起動完了通知を受け取るまで待つ(S107)。
起動したプログラムから起動完了通知を受け取った場合(S107がYESの場合)又は次に起動するプログラムがない場合(S105がNOの場合)、自らが最下位の階層に位置するプログラムと判断し、メインプロセスが起動完了するまで待ち(S108)、起動完了した後(S108がYESの場合)に、階層構造50の情報に基づいて、1つ上の階層に位置するプログラムに対して起動完了通知を送信する(S109)。
このように、プログラム起動機能は、「プログラム起動機能(S103〜S106)」、「プログラム起動完了通知受取機能(S107)」、「プログラム起動完了通知機能(S108、S109)」の他に、異なる拡張機能42に共通して含まれるプログラムを考慮して、起動指示が来た際に、自らのメインプロセスが既に起動済みであることを判断し(自らが起動済みであれば、下位層に位置するプログラムも起動済みであることも判断)、起動完了通知のみを送信するようにしている。
図10は、本発明の実施例1に係る拡張機能42のプログラム31が有するプログラム終了機能に関する処理を示すフローチャートである。
プログラム終了機能は、1つ上の階層に位置するプログラムから終了要求を受け取るまで待ち(S201)、終了要求を受け取った場合(S201がYESの場合)、起動を指示された際にカウントし、RAMへ保持していた起動指示回数を示す値(カウント値)から1減算する。
次に、減算後の値に基づいて、起動中のメインプロセスを終了可能か否かを判定する(S203)。
減算後の値が1以上で、メインプロセスを終了可能でない場合(S203がNOの場合)、1つ上の階層に位置するプログラムから終了要求を受け取る待ち状態に戻る(S201へ戻る)。
また、減算後の値が1で、メインプロセスを終了可能な場合(S203がYESの場合)、プログラム構成管理部61の構成管理手段71へ、階層構造情報テーブル80が管理する階層構造50の情報の取得を要求し(S204)、要求に対して、構成管理手段71から階層構造50の情報の応答があるまで待つ(S205)。
構成管理手段71から応答があった場合(S205がYESの場合)、取得した階層構造50の情報に基づいて、次に終了要求するプログラムがあるか否かを判定する(S206)。
次に終了要求するプログラムがある場合(S206がYESの場合)、起動するプログラムの情報(プログラムデータパス)に基づいて、1つ下の階層に位置するプログラムに終了要求し(S207)、自らのメインプロセスを終了する(S208)。
また、次に終了要求するプログラムがない場合(S206がNOの場合)、自らが最下位の階層に位置するプログラムと判断し、自らのメインプロセスを終了する(S208)。
このように、プログラム終了機能は、「プログラム終了要求受取機能(S201)」、「プログラム終了要求機能(S204〜S207)」の他に、異なる拡張機能42に共通して含まれるプログラムを考慮して、終了要求を受け付けた際に、自らのメインプロセスが終了可能であることを判断し(他の拡張機能42がメインプロセスを使用していないことを判断)、メインプロセスを終了している。
次に、図5及び図6で示した画像処理装置10の主要機能部の処理について、図11から図14を用いて詳細説明する。
図11は、本発明の実施例1に係る拡張機能動作管理部62に関する処理を示すフローチャートである。
拡張機能動作管理部62が有する動作管理手段72は、画像処理装置10のシステムから動作要求を受け付けるまで待つ(S301)。この時、受け付ける動作要求の種類は、「起動」、「終了」、「インストール」、「アンインストール」又は「情報閲覧(情報参照)」である。
例えば、「起動」は、画像処理装置10に電源投入時、「終了」は、画像処理装置10のシステム終了前やアンインストール前等に要求される。
「インストール又はアンインストール」は、画像処理装置10の管理者が入力部11から指示した場合や管理サーバから指示された場合等、不定期に要求される。
「閲覧要求(参照要求)」も、「インストール又はアンインストール」と同様に、画像処理装置10の利用者が入力部11から指示した場合や管理サーバから指示された場合等、不定期に要求される。
動作管理手段72は、動作要求を受け付けた場合(S301がYESの場合)、要求された動作が「起動」、「終了」、「インストール」、「アンインストール」又は「情報閲覧(情報参照)」のうち、どの要求であるかを判定する(S302、S307、S311、S313、S315)。
要求された動作が「起動要求」の場合(S302がYESの場合)、プログラム構成管理部61の構成管理手段71へ、階層構造情報テーブル80が管理する階層構造50の情報の取得を要求し(S303)、要求に対して、構成管理手段71から階層構造50の情報が返答されるまで待つ(S304)。
構成管理手段71から返答があった場合(S304がYESの場合)、取得した階層構造50の情報(プログラムデータパス)に基づいて、起動する拡張機能42の最上位の階層に位置するプログラムを起動し(S305)、起動したプログラムから起動完了通知を受け取るまで待つ(S306)。
起動したプログラムから起動完了通知を受け取った場合(S307がYESの場合)、起動した拡張機能42が起動完了したと判断し、その後、画像処理装置10のシステムから動作要求待ちの状態へ戻る(S301へ戻る)。
また、要求された動作が「終了要求」の場合(S302がNO且つS307がYESの場合)、プログラム構成管理部61の構成管理手段71へ、階層構造情報テーブル80が管理する階層構造50の情報の取得を要求し(S308)、要求に対して、構成管理手段71から階層構造50の情報の返答があるまで待つ(S309)。
構成管理手段71から返答があった場合(S309がYESの場合)、取得した階層構造50の情報(プログラムデータパス)に基づいて、終了する拡張機能42の最上位の階層に位置するプログラムに終了要求し(S310)、その後、画像処理装置10のシステムから動作要求待ちの状態へ戻る(S301へ戻る)。
また、要求された動作が「インストール要求」の場合(S307がNO且つS311がYESの場合)、プログラム構成管理部61の構成管理手段71へ、新規の拡張機能42をインストールするように要求し(S312)、その後、画像処理装置10のシステムから動作要求待ちの状態へ戻る(S301へ戻る)。
また、要求された動作が「アンインストール要求」の場合(S311がNO且つS313がYESの場合)、プログラム構成管理部61の構成管理手段71へ、インストールされた拡張機能42のうち、指定された機能をアンインストールするように要求する(S314)。
その後、画像処理装置10のシステムから動作要求待ちの状態へ戻る(S301へ戻る)。
また、要求された動作が「閲覧要求(参照)」の場合(S313がNO且つS315がYESの場合)、表示手段74による表示処理を行い(S316)、その後、画像処理装置10のシステムから動作要求待ちの状態へ戻る(S301へ戻る)。
また、要求された動作が、「起動」、「終了」、「インストール」、「アンインストール」、「閲覧(参照)」のうち該当するものがない場合(S315がNOの場合)、画像処理装置10のシステムから動作要求を受け付ける待ち状態に戻る(S301へ戻る)。
図12は、本発明の実施例1に係るプログラム構成管理部61に関する処理を示すフローチャートである。
プログラム構成管理部61が有する構成管理手段71は、拡張機能動作管理部62(動作管理手段72、表示手段74)又は拡張機能42の各プログラムから要求を受け付けるまで待つ(S401)。この時、受け付ける要求の内容は、「階層構造50の情報取得」、「インストール」、「アンインストール」である。
「階層構造50の情報取得」は、拡張機能動作管理部62及び拡張機能42の各プログラムから要求される。
「インストール又はアンインストール」は、拡張機能動作管理部62から要求される。
構成管理手段71は、動作要求を受け付けた場合(S401がYESの場合)、要求された内容が、「階層構造50の情報取得」、「インストール」又は「アンインストール」のうち、どの要求であるかを判定する(S402、S404、S407)。
要求された内容が「階層構造50の情報取得要求」の場合(S402がYESの場合)、階層構造情報テーブル80が管理する階層構造50の情報を、取得要求先(拡張機能動作管理部62又は拡張機能42の各プログラム)へ応答し(S403)、その後、拡張機能動作管理部62又は拡張機能42の各プログラムから要求を受け付ける待ち状態に戻る(S401へ戻る)。
また、要求された内容が「インストール要求」の場合(S402がNO且つS404がYESの場合)、インストールする拡張機能パッケージ30を、管理サーバ又はメモリカード、記録メディア等から取得し、パッケージを構成する拡張機能42のプログラム31及び依存情報データ32を補助記憶部13へ格納する(S405)。この時、階層構造情報テーブル80が管理する階層構造50の情報に基づいて、既にインストールされているプログラムに関しては補助記憶部13への格納を行わない。
次に、依存情報データ32に基づいて、新規拡張機能42のプログラム31に関する情報を追加し、階層構造情報テーブル80を更新する(S406)。この時、階層構造情報テーブル80が管理する階層構造50の情報に基づいて、既にインストールされているプログラムに関する情報は更新しない。
その後、拡張機能動作管理部62又は拡張機能42の各プログラムから要求を受け付ける待ち状態に戻る(S401へ戻る)。
また、要求された内容が「アンインストール要求」の場合(S404がNO且つS407がYESの場合)、依存情報データ32に基づいて、拡張機能42のプログラム31に関する情報を削除し、階層構造情報テーブル80を更新する(S408)。この時、階層構造情報テーブル80が管理する階層構造50の情報に基づいて、アンインストールする拡張機能42のプログラム31のうち、他の拡張機能42に使用されているプログラムに関する情報は削除しない。
次に、依存情報データ32に基づいて、拡張機能42のプログラム31を補助記憶部13から削除し、次に、依存情報データ32を削除する(S409)。この時、階層構造情報テーブル80が管理する階層構造50の情報に基づいて、アンインストールする拡張機能42のプログラム31のうち、他の拡張機能42に使用されているプログラムは削除しない。
その後、拡張機能動作管理部62又は拡張機能42の各プログラムから要求を受け付ける待ち状態に戻る(S401へ戻る)。
また、要求された動作が、「階層構造50の情報取得」、「インストール」、「アンインストール」のうち該当するものがない場合(S407がNOの場合)、拡張機能動作管理部62又は拡張機能42の各プログラムから要求を受け付ける待ち状態に戻る(S401へ戻る)。
図13は、本発明の実施例1に係る認証部63に関する処理を示すフローチャートである。
認証部63が有する認証手段73は、インストールされた拡張機能42のプログラム31に関する階層構造50の情報を閲覧(参照)できる利用者か否かを認証する認証要求を受け付けるまで待つ(S501)。この時、認証要求は、利用者の認証情報として、入力部11から入力された利用者の識別情報(例えば、「ユーザID」。)とパスワードを受け取る。
認証手段73は、認証要求(利用者の認証情報)を受け取った場合(S501がYESの場合)、認証情報に基づいて利用者の認証を判定し、利用者毎に設定された閲覧可能な情報の範囲を制限する参照権限(閲覧権限)を示す権限識別情報を応答する(S502)。
その後、階層構造50の情報を閲覧(参照)できる利用者か否かを認証する認証要求を受け付ける待ち状態に戻る(S501へ戻る)。
図14は、本発明の実施例1に係る表示処理を示すフローチャートである。
拡張機能動作管理部62が有する表示手段74は、認証部63が有する認証手段73へ、利用者の認証を要求し(S601)、要求に対して、認証手段73から権限識別情報が返答されるまで待つ(S602)。
表示手段74は、認証手段73から返答された場合(S602がYESの場合)、プログラム構成管理部61の構成管理手段71へ、階層構造情報テーブル80が管理する階層構造50の情報の取得を要求し(S603)、要求に対して、構成管理手段71から階層構造50の情報が返答されるまで待つ(S604)。
構成管理手段71から返答があった場合(S604がYESの場合)、取得した権限識別情報(参照権限(閲覧権限))に基づいて、取得した階層構造50の情報に対して、利用者の閲覧可能な情報の範囲を判定する(S605)。
利用者の参照権限(閲覧権限)が強い場合(S605が「権限が強い」の場合)、取得した全ての階層構造50の情報を表示画面に表示するため、必要な階層構造50の情報をシステムへ送信する(S606)。
また、利用者の参照権限(閲覧権限)が弱い場合(S605が「権限が弱い」の場合)、取得した階層構造50の情報のうち、拡張機能42のパッケージ名のみを表示画面に表示するため、必要な階層構造50の情報をシステムへ送信する(S607)。
次に、図9及び図10で示した動作制御機能を有するプログラムと、図11から図14で示した主要機能部の処理との関係性を明確にするため、画像処理装置10における拡張機能42の起動と終了及びインストールとアンインストールの流れについて、図15から図20を用いて説明する。
図15は、本発明の実施例1に係る拡張機能-1を起動する流れを示すシーケンス図である。
まず、画像処理装置10のシステムから拡張機能動作管理部62へ拡張機能-1を起動する指示が送られる(1−1)。
拡張機能動作管理部62は、動作管理手段72により、プログラム構成管理部61へ階層構造50の情報取得を要求する(1−2)。
プログラム構成管理部61は、構成管理手段71により、補助記憶部13に格納された階層構造情報テーブル80から階層構造50の情報を取得し(1−3)、拡張機能動作管理部62へ取得した階層構造50の情報を応答する(1−4)。
拡張機能動作管理部62は、返答された階層構造50の情報「Package-1 → D:\xxx/yyy/zzz/prog_a.dll」に基づいて、拡張機能-1の最上位の階層に位置するプログラムAを起動する(1−5)。
プログラムAは、動作制御機能により、プログラム構成管理部61へ階層構造50の情報取得を要求し(1−6)、プログラム構成管理部61は、構成管理手段71により、階層構造50の情報をプログラムAへ応答する(1−7)。
プログラムAは、プログラム起動機能により、返答された階層構造50の情報「prog_a.dll → D:\xxx/yyy/zzz/prog_b.dll」に基づいて、1つ下の階層に位置するプログラムBを起動する(1−8)。
プログラムBは、動作制御機能により、プログラム構成管理部61へ階層構造50の情報取得を要求し(1−9)、プログラム構成管理部61は、構成管理手段71により、階層構造50の情報をプログラムBへ応答する(1−10)。
プログラムBは、プログラム起動機能により、返答された階層構造50の情報「prog_b.dll → D:\xxx/yyy/zzz/prog_c.dll」に基づいて、1つ下の階層に位置するプログラムCを起動する(1−11)。
プログラムCは、動作制御機能により、プログラム構成管理部61へ階層構造50の情報取得を要求し(1−12)、プログラム構成管理部61は、構成管理手段71により、階層構造50の情報をプログラムCへ応答する(1−13)。
プログラムCは、プログラム起動機能により、返答された階層構造50の情報に基づいて、自らが最下位の階層に位置するプログラムであると判断し、自らのメインプロセスが起動した後、プログラム起動完了通知機能により、1つ上の階層に位置するプログラムBへ起動完了通知を送信する(1−14)。
プログラムBは、自らのメインプロセスが起動した後、プログラム起動完了通知受取機能により、プログラムCからの起動完了通知を受け取り、下位層のプログラムCが起動完了したことを確認した後、プログラム起動完了通知機能により、取得した階層構造50の情報に基づいて、1つ上の階層に位置するプログラムAへ起動完了通知を送信する(1−15)。
プログラムAは、自らのメインプロセスが起動した後、プログラム起動完了通知受取機能により、プログラムBからの起動完了通知を受け取り、下位層のプログラムB及びプログラムCが起動完了したことを確認した後、プログラム起動完了通知機能により、取得した階層構造50の情報に基づいて、自らを起動した拡張機能動作管理部62が有する動作管理手段72へ起動完了通知を送信する(1−16)。
図16は、本発明の実施例1に係る拡張機能-2を起動する流れを示すシーケンス図である。
まず、画像処理装置10のシステムから拡張機能動作管理部62へ拡張機能-2を起動する指示が送られる(2−1)。
拡張機能動作管理部62は、動作管理手段72により、プログラム構成管理部61へ階層構造50の情報取得を要求する(2−2)。
プログラム構成管理部61は、構成管理手段71により、補助記憶部13に格納された階層構造情報テーブル80から階層構造50の情報を取得し(2−3)、拡張機能動作管理部62へ取得した階層構造50の情報を応答する(2−4)。
拡張機能動作管理部62は、返答された階層構造50の情報「Package-2→ D:\xxx/yyy/zzz/prog_d.dll」に基づいて、拡張機能-2の最上位の階層に位置するプログラムDを起動する(2−5)。
プログラムDは、動作制御機能により、プログラム構成管理部61へ階層構造50の情報取得を要求し(2−6)、プログラム構成管理部61は、構成管理手段71により、階層構造50の情報をプログラムDへ応答する(2−7)。
プログラムDは、プログラム起動機能により、返答された階層構造50の情報「prog_d.dll → D:\xxx/yyy/zzz/prog_b.dll及びprog_d.dll → D:\xxx/yyy/zzz/prog_e.dll」に基づいて、1つ下の階層に位置するプログラムB及びプログラムEを起動する(2−8、2−9)。
プログラムBは、動作制御機能により、他の拡張機能42(拡張機能-1)によりメインプロセスが起動されていることを判断し、プログラム起動完了通知機能により、取得した階層構造50の情報に基づいて、1つ上の階層に位置するプログラムAへ起動完了通知を送信する(2−10)。
プログラムEは、動作制御機能により、プログラム構成管理部61へ階層構造50の情報取得を要求し(2−11)、プログラム構成管理部61は、構成管理手段71により、階層構造50の情報をプログラムEへ応答する(2−12)。
プログラムEは、プログラム起動機能により、返答された階層構造50の情報に基づいて、自らが最下位の階層に位置するプログラムであると判断し、自らのメインプロセスが起動した後、プログラム起動完了通知機能により、1つ上の階層に位置するプログラムAへ起動完了通知を送信する(2−13)。
プログラムDは、自らのメインプロセスが起動した後、プログラム起動完了通知受取機能により、プログラムB及びプログラムEからの起動完了通知を受け取り、下位層のプログラムB、プログラムC及びプログラムDが起動完了したことを確認した後、プログラム起動完了通知機能により、取得した階層構造50の情報に基づいて、自らを起動した拡張機能動作管理部62が有する動作管理手段72へ起動完了通知を送信する(2−14)。
また、図15及び図16は、拡張機能42が起動する流れが分かり易いように1つの拡張機能42が起動する流れを説明した。実際の画像処理装置10では、電源投入後、インストールされた拡張機能42に対して、同時に起動指示されることから、拡張機能動作管理部62において、取得した階層構造50の情報「Package-X → C:\xxx/yyy/zzz/prog_x.dll」に基づいて、各拡張機能42で最上位の階層に位置するプログラムを同時に起動する。その結果、階層構造50の情報に基づいて、階層毎にプログラムが起動する。
図17は、本発明の実施例1に係る拡張機能-1を終了する流れを示すシーケンス図である。
まず、画像処理装置10のシステムから拡張機能動作管理部62へ拡張機能-2を起動する指示が送られる(3−1)。
拡張機能動作管理部62は、動作管理手段72により、プログラム構成管理部61へ階層構造50の情報取得を要求する(3−2)。
プログラム構成管理部61は、構成管理手段71により、補助記憶部13に格納された階層構造情報テーブル80から階層構造50の情報を取得し(3−3)、拡張機能動作管理部62へ取得した階層構造50の情報を応答する(3−4)。
拡張機能動作管理部62は、返答された階層構造50の情報「Package-1→ D:\xxx/yyy/zzz/prog_a.dll」に基づいて、拡張機能-1の最上位の階層に位置するプログラムAに終了を要求する(3−5)。
プログラムAは、動作制御機能により、プログラム構成管理部61へ階層構造50の情報取得を要求し(3−6)、プログラム構成管理部61は、構成管理手段71により、階層構造50の情報をプログラムAへ応答する(3−7)。
プログラムAは、プログラム終了要求機能により、返答された階層構造50の情報「prog_a.dll → D:\xxx/yyy/zzz/prog_b.dll」に基づいて、1つ下の階層に位置するプログラムBに終了を要求する(3−8)。
プログラムBは、プログラム終了要求受取機能により、プログラムAからの終了要求を受け取るが、動作制御機能により、他の拡張機能42(拡張機能-2)によりメインプロセスが使用されていることを判断し、終了要求を拒絶する。
よって、プログラムB及びプログラムC等のように、他の拡張機能42によりメインプロセスが使用されているプログラムは、プログラム終了要求受取機能により、最後までメインプロセスを使用した拡張機能42からの終了要求を受け取り、終了する。
図18は、本発明の実施例1に係る拡張機能-1及び拡張機能-2をインストールする流れを示すシーケンス図である。
まず、拡張機能-1をインストールする場合、画像処理装置10のシステムから拡張機能動作管理部62へ拡張機能-1をインストールする指示が送られる(4−1)。
拡張機能動作管理部62は、動作管理手段72により、プログラム構成管理部61へ拡張機能-1のインストールを要求する(4−2)。
プログラム構成管理部61は、構成管理手段71により、インストールする拡張機能-1パッケージ30aを、管理サーバ又はメモリカード、記録メディア等から取得し、パッケージを構成する拡張機能42のプログラムA、プログラムB、プログラムC及び依存情報データ32を補助記憶部13へ格納する(4−3)。
次に、依存情報データ32に基づいて、階層構造情報テーブル80を更新(新規拡張機能42のプログラムA、プログラムB及びプログラムCに関する情報を追加)する(4−4)。
また、拡張機能-2をインストールする場合、画像処理装置10のシステムから拡張機能動作管理部62へ拡張機能-2をインストールする指示が送られる(4−5)。
拡張機能動作管理部62は、動作管理手段72により、プログラム構成管理部61へ拡張機能-2のインストールを要求する(4−6)。
プログラム構成管理部61は、構成管理手段71により、インストールする拡張機能-2パッケージ30bを、管理サーバ又はメモリカード、記録メディア等から取得し、パッケージを構成する拡張機能42のプログラムB及びプログラムCは、他の拡張機能42(拡張機能-1)をインストールした際に格納されているため、新規のプログラムD、プログラムE及び依存情報データ32を補助記憶部13へ格納する(4−7)。
次に、依存情報データ32に基づいて、他の拡張機能42(拡張機能-1)をインストールした際に格納されているプログラムB及びプログラムC以外のプログラムD及びプログラムEに関する情報を追加し、階層構造情報テーブル80を更新する(4−8)。
図19は、本発明の実施例1に係る拡張機能-1をアンインストールする流れを示すシーケンス図である。
まず、画像処理装置10のシステムから拡張機能動作管理部62へ拡張機能-1をアンインストールする指示が送られる(5−1)。
拡張機能動作管理部62は、動作管理手段72により、プログラム構成管理部61へ拡張機能-1のアンインストールを要求する(5−2)。
プログラム構成管理部61は、構成管理手段71により、依存情報データ32と階層構造情報テーブル80に基づいて、他の拡張機能42(拡張機能-2)が使用するプログラムB及びプログラムC以外のプログラムAに関する情報のみ削除し、階層構造情報テーブル80を更新する(5−3)。
次に、依存情報データ32と更新された階層構造情報テーブル80に基づいて、他の拡張機能42(拡張機能-2)が使用するプログラムB及びプログラムC以外のプログラムAを補助記憶部13から削除し、次に、依存情報データ32を削除する(5−4)。
図20は、本発明の実施例1に係る拡張機能-1及び拡張機能-2に関する階層構造50の情報を表示する流れを示すシーケンス図である。
まず、画像処理装置10のシステムから拡張機能動作管理部62へ、インストールされた拡張機能42に関する階層構造50の情報を閲覧する指示が送られる(6−1)。
拡張機能動作管理部62は、表示手段74により、認証部63へ閲覧する利用者の認証を要求する(6−2)。
認証部63は、認証手段73により、要求された利用者の認証情報に基づいて利用者の認証を判定し、利用者毎に設定された閲覧可能な情報の範囲を制限する参照権限(閲覧権限)を示す権限識別情報を応答する(6−3)。
次に、拡張機能動作管理部62は、表示手段74により、プログラム構成管理部61へ階層構造50の情報取得を要求する(6−4)。
プログラム構成管理部61は、構成管理手段71により、補助記憶部13に格納された階層構造情報テーブル80から階層構造50の情報を取得し(6−5)、拡張機能動作管理部62へ取得した階層構造50の情報を応答する(6−6)。
拡張機能動作管理部62は、表示手段74により、取得した権限識別情報(参照権限(閲覧権限))に基づいて、取得した階層構造50の情報に対して、利用者の閲覧可能な情報の範囲を判定し、表示画面に表示するために必要な階層構造50の情報をシステムへ送信する(6―7)。
以下に、図20で示した階層構造50の情報を表示する流れを実施した際に、表示部12に表示された例を、図21及び図22を用いて示す。
図21は、本発明の実施例1に係る拡張機能-1及び拡張機能-2に関する階層構造情報の表示例(利用者の権限が弱い場合)を示す図である。
図21に示すように、認証部63から返答された権限識別情報(参照権限(閲覧権限))が弱い利用者の場合は、インストールされた拡張機能42に対する階層構造50の情報のうち、パッケージ名92のみが表示部12の表示画面91に表示される。
また、図22は、本発明の実施例1に係る拡張機能-1及び拡張機能-2に関する階層構造情報の表示例(利用者の権限が強い場合)を示す図である。
図22に示すように、認証部63から返答された権限識別情報(参照権限(閲覧権限))が強い利用者の場合は、インストールされた拡張機能42に対する階層構造50の全ての情報92が表示部12の表示画面91に表示される。
最後に、本発明の変形例である画像形成装置について、図23を用いて説明する。
図23は、本発明の変形例に係るハードウェア構成例を示すブロック図。
図23に示すように、画像形成装置90は、図1に示した画像処理装置10が有するハードウェア構成に加え、印刷部19を備えている。
印刷部19は、プリンタエンジンと呼ばれ、画像処理(例えば、「フィルタ処理」、「解像度変換」、「カラーマッチング」、「γ補正」、「階調変換」等。)後に生成されたラスタイメージ(ビットマップイメージ)を用紙へ印刷する画像形成部と、用紙を画像形成部へ搬送する給紙搬送部と、印刷後の用紙を排紙する用紙排紙部とから構成される。
よって、印刷部19は、図2で示した基本機能41(「画像入力機能」、「画像加工機能」、「画像出力機能」)のうち、画像出力機能から受け取った画像データを用紙へ印刷する。
このように、画像形成装置90に代表される画像処理装置10を有する装置であれば、本発明を実施することができる。
以上のように、本発明の実施例1によれば、画像処理装置10は、連鎖的な依存関係を有する拡張機能42のプログラム31を、プログラム構成管理部61、拡張機能動作管理部62及び認証部63の各機能部により管理することで、本発明を実現している。
プログラム構成管理部61は、構成管理手段71を有し、拡張機能パッケージ30のインストール又はアンインストールを行い、インストールの際に、拡張機能42のプログラム31の依存関係を階層化し、階層化した情報である階層構造50の情報を階層構造情報テーブル80に格納することで、インストールされた拡張機能42のプログラム及び階層構造50の情報を管理する。
拡張機能動作管理部62は、動作管理手段72を有し、階層構造情報テーブル80が管理する階層構造50の情報に基づいて、拡張機能42の最上位の階層に位置するプログラムの起動と終了を行い、インストールされた拡張機能42のプログラム31の動作を管理する。
このように、画像処理装置10は、依存情報データ32に基づいて、依存関係を有するプログラムの依存関係を階層化し、階層化した情報である階層構造情報を階層構造情報テーブル80に格納し(階層構造情報を生成し)、階層構造50の情報に従って拡張機能42のプログラム31を動作させ、起動と終了を行うため、従来のように、全てのプログラムを1箇所の管理部が集中管理する必要がなく、拡張機能42のプログラム31とプログラムを管理する機能部との依存性が低く、拡張機能42の管理を容易にすることができる。
また、拡張機能42のプログラム管理方法が単純化したことにより、多くの機能が拡張された場合において、プログラム管理を行う処理の負荷を軽減することができる。
よって、機能の拡張性、機能を導入する際の柔軟性及び製品の性能品質が高いシステムを実現することができる。
また、拡張機能動作管理部62は、表示手段74を有し、インストールされた拡張機能42のプログラム31に関する階層構造50の情報を、画像処理装置10が有する表示部12の表示画面91に表示する。
認証部63は、認証手段73を有し、インストールされた拡張機能42のプログラム31に関する階層構造50の情報を閲覧(参照)できる利用者か否かを認証し、階層構造50の情報の閲覧範囲を、利用者毎に制限する。
このように、画像処理装置10は、インストールされた拡張機能42のプログラム31に関する階層構造50の情報を利用者毎に制限し、表示することができる。
実施例1に基づき本発明の説明を行ってきたが、上記実施例に挙げた階層構造情報テーブル80が管理する「プログラムデータパス名」は、階層構造50の情報のうちプログラムの格納先を示す一例であって、この要件に、本発明が限定されるものではない。
例えば、「プログラムデータパス名」の代わりに、プログラムが格納されているアドレス値でも良い。
また、上記実施例に挙げた新規拡張機能42を格納する補助記憶部13は、記憶装置の一例であって、この要件に、本発明が限定されるものではない。
例えば、補助記憶部13のハードディスクの代わりに、メモリカード等の不揮発性の半導体メモリでもよく、インストールする拡張機能42のパッケージ一式が格納できれば良い。
また、上記実施例に挙げた利用者IDとパスワード入力による認証方法は、利用者の認証方法の一例であって、この要件に、本発明が限定されるものではない。
例えば、画像処理装置10がICカードリーダーを備えている場合、ICカードによる利用者認証を行っても良い。その他、利用者の身体的な特徴(個人が特定可能な顔や指紋等)に基づいて利用者認証を行っても良い。
最後に、上記実施例1に挙げた形状に、その他の要素との組み合わせ等、ここで示した要件に、本発明が限定されるものではない。
これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
本発明の実施例1に係る画像処理装置のハードウェア構成例を示すブロック図である。 本発明の実施例1に係るフレームワークを用いた拡張機能の開発環境の例を示す図である。 本発明の実施例1に係る拡張機能パッケージがインストール後に階層構造化された例を示す図である。 本発明の実施例1に係る拡張機能のプログラムの動作例を示す図である。 本発明の実施例1に係る主要機能部の構成例を示すブロック図である。 本発明の実施例1に係る主要機能部が有する構成手段の例を示すブロック図である。 本発明の実施例1に係る階層構造情報テーブルのデータ構成例を示す図である。 本発明の実施例1に係るインストール又はアンインストールにおける階層構造情報テーブルの内容を更新する例を示す図である。 本発明の実施例1に係る拡張機能のプログラムが有するプログラム起動機能に関する処理を示すフローチャートである。 本発明の実施例1に係る拡張機能のプログラムが有するプログラム終了機能に関する処理を示すフローチャートである。 本発明の実施例1に係る拡張機能動作管理部に関する処理を示すフローチャートである。 本発明の実施例1に係るプログラム構成管理部に関する処理を示すフローチャートである。 本発明の実施例1に係る認証部に関する処理を示すフローチャートである。 本発明の実施例1に係る表示処理を示すフローチャートである。 本発明の実施例1に係る拡張機能-1を起動する流れを示すシーケンス図である。 本発明の実施例1に係る拡張機能-2を起動する流れを示すシーケンス図である。 本発明の実施例1に係る拡張機能-1を終了する流れを示すシーケンス図である。 本発明の実施例1に係る拡張機能-1及び拡張機能-2をインストールする流れを示すシーケンス図である。 本発明の実施例1に係る拡張機能-1をアンインストールする流れを示すシーケンス図である。 本発明の実施例1に係る拡張機能-1及び拡張機能-2に関する階層構造情報を表示する流れを示すシーケンス図である。 本発明の実施例1に係る拡張機能-1及び拡張機能-2に関する階層構造情報の表示例(利用者の権限が弱い場合)を示す図である。 本発明の実施例1に係る拡張機能-1及び拡張機能-2に関する階層構造情報の表示例(利用者の権限が強い場合)を示す図である。 本発明の変形例に係るハードウェア構成例を示すブロック図である。
符号の説明
10 画像処理装置
11 入力部(操作部)
12 表示部(ディスプレイ)
13 補助記憶部(HD)
14 ネットワークI/F
15 外部記憶装置I/F
16 外部入力装置I/F
17 主記憶部(ROM,RAM)
18 制御部(CPU)
19 印刷部(プリンタエンジン)
20 開発者端末(PC)
21 拡張機能用フレームワーク
30a、30b 拡張機能-1パッケージ、拡張機能-2パッケージ
31 拡張機能プログラム
32 依存情報データ
33 機種情報
34 仕向け情報
35 ファームウェア情報
36 プログラム名称
37 バージョン情報
41 基本機能
42 拡張機能
61 プログラム構成管理部
62 拡張機能動作管理部
63 認証部
71 構成管理手段
72 動作管理手段
73 認証手段
74 表示手段
80 階層構造情報テーブル
90 画像形成装置
91 表示画面
92 階層構造情報(参照権限が強い場合)
93 階層構造情報(参照権限が弱い場合)

Claims (12)

  1. 依存関係を有する複数のプログラムと、前記プログラム間の依存関係を示す依存情報データとが格納された画像処理装置であって、
    前記依存情報データに基づいて、前記複数のプログラム間の依存関係が階層化された階層構造情報を生成する構成管理手段と、
    前記階層構造情報が格納される階層構造情報テーブルと、
    前記階層構造情報テーブルを用いて、前記プログラムの起動、終了、インストール、及びアンインストールの少なくともいずれかを行う動作管理手段とを有することを特徴とする画像処理装置。
  2. 前記動作管理手段は、
    所定のプログラムが起動した場合に、
    前記構成管理手段に対して、前記階層構造情報の取得を要求し、取得した前記階層構造情報に基づいて、前記所定のプログラムが使用するプログラムを起動することを特徴とする請求項1に記載の画像処理装置。
  3. 前記動作管理手段は、
    所定のプログラムを終了する場合に、
    前記構成管理手段に対して、前記階層構造情報の取得を要求し、取得した前記階層構造情報に基づいて、前記所定のプログラムが使用するプログラムに終了を要求することを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記動作管理手段は、
    前記プログラムをインストール又はアンインストールする場合に、
    前記構成管理手段に対して、インストール又はアンインストールを行うように要求することを特徴とする請求項1ないし3のいずれか一項に記載の画像処理装置。
  5. 前記構成管理手段は、
    前記プログラムをインストール又はアンインストールした場合に、
    前記階層構造情報テーブルを更新することを特徴とする請求項1ないし4のいずれか一項に記載の画像処理装置。
  6. 前記構成管理手段は、
    前記階層構造情報の取得を要求された場合に、
    前記階層構造情報テーブルに基づいて、前記階層構造情報を返答することを特徴とする請求項1ないし5のいずれか一項に記載の画像処理装置。
  7. 前記プログラムに関する情報を表示画面に表示する表示手段と、
    前記プログラムに関する情報を閲覧できる利用者か否かを認証する認証手段とを有し、
    前記表示手段は、
    前記認証手段により認証に成功した場合に、
    前記プログラムに関する情報を表示することを特徴とする請求項1ないし6のいずれか一項に記載の画像処理装置。
  8. 前記認証手段は、
    認証した利用者毎に、前記プログラムに関する情報のうち、参照できる範囲を示す参照権限を決定することを特徴とする請求項1ないし7のいずれか一項に記載の画像処理装置。
  9. 前記表示手段は、
    前記参照権限に基づいて制限した範囲内の前記プログラムに関する情報を表示することを特徴とする請求項1ないし8のいずれか一項に記載の画像処理装置。
  10. 請求項1から9を有する該画像処理装置を備えたことを特徴とする画像形成装置。
  11. 依存関係を有する複数のプログラムと、前記プログラム間の依存関係を示す依存情報データとが格納された画像処理装置におけるプログラム管理方法であって、
    前記依存情報データに基づいて、前記複数のプログラム間の依存関係が階層化された階層構造情報を生成する構成管理手順と、
    前記階層構造情報が格納される階層構造情報テーブルと、
    前記階層構造情報テーブルを用いて、前記プログラムの起動、終了、インストール、及びアンインストールの少なくともいずれかを行う動作管理手順とを有することを特徴とする画像処理装置におけるプログラム管理方法。
  12. 依存関係を有する複数のプログラムと、前記プログラム間の依存関係を示す依存情報データとが格納された画像処理装置におけるプログラムを管理する管理プログラムであって、
    コンピュータを、
    前記依存情報データに基づいて、前記複数のプログラム間の依存関係が階層化された階層構造情報を生成する構成管理手段と、
    前記階層構造情報が格納される階層構造情報テーブルと、
    前記階層構造情報テーブルを用いて、前記プログラムの起動、終了、インストール、及びアンインストールの少なくともいずれかを行う動作管理手段として機能させる画像処理装置におけるプログラムを管理する管理プログラム。
JP2006218426A 2006-08-10 2006-08-10 画像処理装置、画像形成装置、プログラム管理方法及びプログラムを管理する管理プログラム Pending JP2008041057A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006218426A JP2008041057A (ja) 2006-08-10 2006-08-10 画像処理装置、画像形成装置、プログラム管理方法及びプログラムを管理する管理プログラム
US11/828,051 US20080040392A1 (en) 2006-08-10 2007-07-25 Image processing apparatus, image forming apparatus, program management method, and management program for managing programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006218426A JP2008041057A (ja) 2006-08-10 2006-08-10 画像処理装置、画像形成装置、プログラム管理方法及びプログラムを管理する管理プログラム

Publications (1)

Publication Number Publication Date
JP2008041057A true JP2008041057A (ja) 2008-02-21

Family

ID=39052106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006218426A Pending JP2008041057A (ja) 2006-08-10 2006-08-10 画像処理装置、画像形成装置、プログラム管理方法及びプログラムを管理する管理プログラム

Country Status (2)

Country Link
US (1) US20080040392A1 (ja)
JP (1) JP2008041057A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010011408A (ja) * 2008-06-30 2010-01-14 Ricoh Co Ltd 画像形成装置、アクティベーション方法、プログラム、記憶媒体
JP2010113476A (ja) * 2008-11-05 2010-05-20 Ricoh Co Ltd 情報処理装置、インストール方法、プログラム、記憶媒体
JP2010250561A (ja) * 2009-04-15 2010-11-04 Canon Inc 情報処理装置、制御方法、及びプログラム
JP2011100260A (ja) * 2009-11-05 2011-05-19 Clarion Co Ltd 計算機システム、サーバ装置、端末装置及びソフトウェアアップデート方法
JP2011170638A (ja) * 2010-02-18 2011-09-01 Ricoh Co Ltd プログラム管理システム、プログラム管理方法、クライアントおよびプログラム
WO2011152561A1 (en) * 2010-06-03 2011-12-08 Ricoh Company, Ltd. Information processing device, program installation support method, and computer-readable recording medium

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5194914B2 (ja) * 2008-03-18 2013-05-08 株式会社リコー 画像処理装置と画像処理装置の表示方法とプログラム
GB2465785B (en) * 2008-11-28 2012-07-04 Vmware Inc Computer system and method for resolving dependencies in a computer system
KR20110072922A (ko) * 2009-12-23 2011-06-29 삼성전자주식회사 화상형성장치의 추가 확장기능을 실행하는 방법 및 이를 수행하는 화상형성장치
JP5929387B2 (ja) 2012-03-22 2016-06-08 株式会社リコー 情報処理装置、履歴データ生成プログラム及び投影システム
DE102013021158A1 (de) * 2013-12-10 2015-06-11 Fresenius Medical Care Deutschland Gmbh Verfahren zum Update und/oder Upgrade der Betriebssoftware eines elektronischen Gerätes

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH064273A (ja) * 1992-06-24 1994-01-14 Toshiba Corp データ処理装置
JP2001331508A (ja) * 2000-03-13 2001-11-30 Fujitsu Ltd コンポーネント管理制御システムおよびコンポーネント管理制御プログラムを記録したコンピュータ読み取り可能な記録媒体、並びにコンポーネント管理制御プログラム
JP2004185464A (ja) * 2002-12-05 2004-07-02 Ricoh Co Ltd 情報処理装置、プログラムおよび記録媒体
JP2005295515A (ja) * 2004-03-08 2005-10-20 Ricoh Co Ltd 電子機器、ジョブ表示方法、ジョブ表示プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6983302B1 (en) * 2000-03-13 2006-01-03 Fujitsu Limited Document managing control system and computer-readable recording medium to record document managing control program
US6725452B1 (en) * 2000-06-01 2004-04-20 Aduoa, Inc. Method for resolving dependency conflicts among multiple operative entities within a computing environment
JP2003048526A (ja) * 2001-08-02 2003-02-18 Hitachi Unisia Automotive Ltd 4輪駆動車両におけるアンチスキッド制御装置
JP3721151B2 (ja) * 2001-09-21 2005-11-30 株式会社リコー 画像形成装置、印刷制御方法
JP4148841B2 (ja) * 2002-07-02 2008-09-10 株式会社リコー 画像形成方法および画像形成装置
JP2004114674A (ja) * 2002-08-27 2004-04-15 Ricoh Co Ltd 画像形成装置、記憶領域確保方法
JP4128516B2 (ja) * 2002-11-18 2008-07-30 株式会社リコー 画像形成装置、プログラム更新方法
JP4405793B2 (ja) * 2003-12-12 2010-01-27 キヤノン株式会社 文書管理システム及びその制御方法並びに記録媒体
US20050206913A1 (en) * 2004-03-08 2005-09-22 Toru Matsuda Image forming apparatus, job managing method, electronic device, job displaying method, and job displaying program
JP2006114020A (ja) * 2004-09-17 2006-04-27 Ricoh Co Ltd 電子装置システムとその電子装置,制御方法,プログラム,および記録媒体
JP4764112B2 (ja) * 2004-09-17 2011-08-31 株式会社リコー 電子装置システム
US20060182417A1 (en) * 2005-02-16 2006-08-17 Satoru Sugishita Image processor and file data management therein
JP2007080245A (ja) * 2005-08-19 2007-03-29 Ricoh Co Ltd 画像形成装置及び認証課金方法
JP4676850B2 (ja) * 2005-09-16 2011-04-27 株式会社リコー データ処理システムとそのデータ管理装置,プログラム,および記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH064273A (ja) * 1992-06-24 1994-01-14 Toshiba Corp データ処理装置
JP2001331508A (ja) * 2000-03-13 2001-11-30 Fujitsu Ltd コンポーネント管理制御システムおよびコンポーネント管理制御プログラムを記録したコンピュータ読み取り可能な記録媒体、並びにコンポーネント管理制御プログラム
JP2004185464A (ja) * 2002-12-05 2004-07-02 Ricoh Co Ltd 情報処理装置、プログラムおよび記録媒体
JP2005295515A (ja) * 2004-03-08 2005-10-20 Ricoh Co Ltd 電子機器、ジョブ表示方法、ジョブ表示プログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010011408A (ja) * 2008-06-30 2010-01-14 Ricoh Co Ltd 画像形成装置、アクティベーション方法、プログラム、記憶媒体
US8363252B2 (en) 2008-06-30 2013-01-29 Ricoh Company, Ltd. Image forming device, and activation method, activating or deactivating program on package basis
JP2010113476A (ja) * 2008-11-05 2010-05-20 Ricoh Co Ltd 情報処理装置、インストール方法、プログラム、記憶媒体
JP2010250561A (ja) * 2009-04-15 2010-11-04 Canon Inc 情報処理装置、制御方法、及びプログラム
US8826176B2 (en) 2009-04-15 2014-09-02 Canon Kabushiki Kaisha Information processing apparatus and control method
JP2011100260A (ja) * 2009-11-05 2011-05-19 Clarion Co Ltd 計算機システム、サーバ装置、端末装置及びソフトウェアアップデート方法
JP2011170638A (ja) * 2010-02-18 2011-09-01 Ricoh Co Ltd プログラム管理システム、プログラム管理方法、クライアントおよびプログラム
WO2011152561A1 (en) * 2010-06-03 2011-12-08 Ricoh Company, Ltd. Information processing device, program installation support method, and computer-readable recording medium
JP2011253417A (ja) * 2010-06-03 2011-12-15 Ricoh Co Ltd 情報処理装置、プログラム導入支援方法、及びプログラム導入支援プログラム

Also Published As

Publication number Publication date
US20080040392A1 (en) 2008-02-14

Similar Documents

Publication Publication Date Title
JP2008041057A (ja) 画像処理装置、画像形成装置、プログラム管理方法及びプログラムを管理する管理プログラム
US8432562B2 (en) Image processing apparatus, method, program, and computer readable recording medium for controlling operation switching and displaying at occurrence of error conditions
JP4625343B2 (ja) 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
JP5326918B2 (ja) 電子機器,ソフトウェア更新方法,プログラム,および記録媒体
JP4597834B2 (ja) 画像形成装置、情報処理方法、情報処理プログラム及び記録媒体
US9135407B2 (en) License management apparatus, license management method, and storage medium
EP2530587B1 (en) Method and apparatus to develop an application of an image forming apparatus
EP2306310A1 (en) Program installation assistance system
US20060294492A1 (en) Application management system, application management method, program, and storage medium
JP2011141683A (ja) 画像処理装置、表示装置、認証システム、表示制御方法、表示制御プログラム、及びそのプログラムを記録した記録媒体
JP2009054027A (ja) 情報処理装置、表示画面カスタマイズ方法、及び表示画面カスタマイズプログラム
JP2007189668A (ja) 画像形成装置、アクセス制御方法、アクセス制御プログラム及び記録媒体
US20090083651A1 (en) Method to manage driver program of image forming apparatus, and apparatus thereof
US10778861B2 (en) Image forming apparatus, method for controlling image forming apparatus, and storage medium configured to change update processing control depending on whether an update target application is of a type for offering an authentication function
JP2006222569A (ja) 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
CN103853578A (zh) 信息处理系统及信息处理方法
JP5664692B2 (ja) 電子機器、画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2009140347A (ja) 情報処理装置、画像形成装置、情報処理方法、プログラム、及び記録媒体
JP2009087319A (ja) 画像形成装置及び利用制限方法
KR20190088292A (ko) 복수의 플랫폼을 지원하는 화상 형성 장치에서 동일 또는 유사한 서비스를 제공하는 앱들의 제어
JP2009205262A (ja) アプリケーションプログラムインストール装置、アプリケーションプログラムインストール方法、プログラム、および記録媒体
JP4792744B2 (ja) 画像処理装置
JP2005269439A (ja) 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2006293994A (ja) 画像形成装置、情報処理方法、プログラム、及び記録媒体
JP5273222B2 (ja) 機器、情報処理方法、プログラム、及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120313