(57)【要約】【課題】プログラムの依存関係を容易に把握できるようにする。【解決手段】クライアント装置において、サーバが保持するプログラムのインストールが要求されると、依存関係表示作成部は、サーバから、サーバが保持するプログラムの情報と、当該プログラムに対する他のプログラムの依存関係を示す情報とを含むサーバプログラム情報を取得すると共に、クライアント装置にインストール済みのプログラムの情報を含む機器プログラム情報を取得する。依存関係表示作成部は、サーバプログラム情報が含む依存関係を示す情報に基づき、インストールを指定されたプログラムと当該プログラムに対して依存関係がある他のプログラムとの依存関係が明確になるように、表示画面を作成する。それと共に、機器プログラム情報に基づき、インストールするプログラムのうちインストール済みのプログラムに対して、その旨示す表示を行う。【選択図】図３
2011170638.tif 000002
【特許請求の範囲】
【請求項１】
クライアントと、該クライアントとネットワークを介して接続されるサーバとを備えるプログラム管理システムであって、
前記サーバは、
前記クライアントにインストールするプログラムを保持するプログラム記憶手段と、
前記プログラム記憶手段に保持される前記プログラムを示す情報と、該プログラム記憶手段に保持されるプログラムに対する、他の該プログラム記憶手段に保持されるプログラムの依存関係を示す情報とを含む第１のプログラム情報を保持する第１のプログラム情報記憶手段と
を有し、
前記クライアントは、
ユーザ入力を受け付ける入力手段と、
インストールされたプログラムを示す情報と、該インストールされたプログラムに対する、他の該インストールされたプログラムの依存関係を示す情報とを含む第２のプログラム情報を保持する第２のプログラム情報記憶手段と、
前記入力手段に対する前記ユーザ入力に従い、前記第１のプログラム情報および前記第２のプログラム情報の少なくとも一方を用いて、前記プログラム記憶手段に保持されるプログラムまたは前記インストールされたプログラムに対する他のプログラムの依存関係を示す表示を行う表示画面を作成する表示画面作成手段と
を有する
ことを特徴とするプログラム管理システム。
【請求項２】
前記表示画面作成手段は、
前記入力手段に対して、前記プログラム記憶手段に保持される前記プログラムのうち、前記サーバから前記ネットワークを介してダウンロードしてインストールするプログラムが指定された場合に、
前記ネットワークを介して前記第１のプログラム情報記憶手段から前記第１のプログラム情報を取得すると共に、前記第２のプログラム情報記憶手段から前記第２のプログラム情報を取得し、
取得した該第１のプログラム情報と該第２のプログラム情報とを用いて、前記入力手段でインストールするよう指定されたプログラムに対する他のプログラムの依存関係を示す表示を行う表示画面を作成する
ことを特徴とする請求項１に記載のプログラム管理システム。
【請求項３】
前記表示画面作成手段は、
前記第２のプログラム情報に基づき、前記入力手段でインストールするよう指定されたプログラムに対する他のプログラムのうち、既にインストールされているプログラムが存在するか否かを判断し、存在すると判断された場合に、該既にインストールされているプログラムであることを示す情報を前記依存関係を示す表示に付加する
ことを特徴とする請求項２に記載のプログラム管理システム。
【請求項４】
前記表示画面作成手段は、
前記入力手段に対して、既にインストールされているプログラムのうち、アンインストールするプログラムが指定された場合に、
前記第２のプログラム情報記憶手段から前記第２のプログラム情報を取得し、
該第２のプログラム情報を用いて、前記入力手段でアンインストールするよう指定されたプログラムに対する他のプログラムの依存関係を示す表示を行う表示画面を作成する
ことを特徴とする請求項１に記載のプログラム管理システム。
【請求項５】
前記表示画面作成手段は、
プログラムを示す情報を、該プログラムに対する他のプログラムの依存関係に従った階層構造で配置することで前記表示画面を作成する
ことを特徴とする請求項１乃至請求項４の何れか１項に記載のプログラム管理システム。
【請求項６】
前記表示画面作成手段は、
前記プログラムを示す情報を、該プログラムに対する他のプログラムの依存関係に従ったツリー構造で配置することで前記表示画面を作成する
ことを特徴とする請求項１乃至請求項５の何れか１項に記載のプログラム管理システム。
【請求項７】
前記プログラムの依存関係を示す情報は、
プログラムを示す情報と、該プログラムを実行するために必要な他のプログラムを示す情報とが関連付けられてなる
ことを特徴とする請求項１乃至請求項６の何れか１項に記載のプログラム管理システム。
【請求項８】
クライアントと、該クライアントとネットワークを介して接続されるサーバとを備えるプログラム管理システムのプログラム管理方法であって、
前記サーバは、
前記クライアントにインストールするプログラムを保持するプログラム記憶手段と、
前記プログラム記憶手段に保持される前記プログラムを示す情報と、該プログラム記憶手段に保持されるプログラムに対する、他の該プログラム記憶手段に保持されるプログラムの依存関係を示す情報とを含む第１のプログラム情報を保持する第１のプログラム情報記憶手段と
を有し、
前記クライアントは、
インストールされたプログラムを示す情報と、該インストールされたプログラムに対する、他の該インストールされたプログラムの依存関係を示す情報とを含む第２のプログラム情報を保持する第２のプログラム情報記憶手段を有し、
前記クライアントが、ユーザ入力を受け付ける入力ステップと、
前記クライアントが、前記入力ステップに対する前記ユーザ入力に従い、前記第１のプログラム情報および前記第２のプログラム情報のうち少なくとも一方を取得する取得ステップと、
前記クライアントが、前記取得ステップで取得された前記第１のプログラム情報および前記第２のプログラム情報のうち少なくとも一方を用いて、前記プログラム記憶手段に保持されるプログラムまたは前記インストールされたプログラムに対する他のプログラムの依存関係を示す表示を行う表示画面を作成する表示画面作成ステップと
を有する
ことを特徴とするプログラム管理方法。
【請求項９】
ユーザ入力を受け付ける入力手段と、
インストールされたプログラムを示す情報と、該インストールされたプログラムに対する、他の該インストールされたプログラムの依存関係を示す情報とを含むプログラム情報を保持するプログラム情報記憶手段と、
前記入力手段に対する前記ユーザ入力に従い、ネットワークを介して接続されるサーバに保持されるインストールするプログラムを示す情報と、該サーバに保持されるプログラムに対する、他の該サーバに保持されるプログラムの依存関係を示す情報とを含むプログラム情報と、前記プログラム情報記憶手段に保持されるプログラム情報とのうち少なくとも一方を用いて、前記サーバに保持されるプログラムまたは前記インストールされたプログラムに対する他のプログラムの依存関係を示す表示を行う表示画面を作成する表示画面作成手段と
を有する
ことを特徴とするクライアント。
【請求項１０】
入力手段が、ユーザ入力を受け付ける入力ステップと、
取得手段が、前記入力ステップに対する前記ユーザ入力に従い、ネットワークを介して接続されるサーバに保持される、インストールするプログラムを示す情報と、該プログラムに対する、他のプログラムの依存関係を示す情報とを含む第１のプログラム情報と、前記入力ステップに対する前記ユーザ入力に従い、インストールされたプログラムを示す情報と、該インストールされたプログラムに対する、他の該インストールされたプログラムの依存関係を示す情報とを含む第２のプログラム情報とのうち少なくとも一方を取得する取得ステップと、
表示画面作成手段が、前記取得ステップで取得された前記第１のプログラム情報および前記第２のプログラム情報のうち少なくとも一方を用いて、前記サーバに保持されるプログラムまたは前記インストールされたプログラムに対する他のプログラムの依存関係を示す表示を行う表示画面を作成する表示画面作成ステップと
を有する
ことを特徴とするプログラム管理方法。
【請求項１１】
ユーザ入力を受け付ける入力ステップと、
前記入力ステップに対する前記ユーザ入力に従い、ネットワークを介して接続されるサーバに保持される、インストールするプログラムを示す情報と、該プログラムに対する、他のプログラムの依存関係を示す情報とを含む第１のプログラム情報と、前記入力ステップに対する前記ユーザ入力に従い、インストールされたプログラムを示す情報と、該インストールされたプログラムに対する、他の該インストールされたプログラムの依存関係を示す情報とを含む第２のプログラム情報とのうち少なくとも一方を取得する取得ステップと、
前記取得ステップで取得された前記第１のプログラム情報および前記第２のプログラム情報のうち少なくとも一方を用いて、前記サーバに保持されるプログラムまたは前記インストールされたプログラムに対する他のプログラムの依存関係を示す表示を行う表示画面を作成する表示画面作成ステップと
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの管理を行うプログラム管理システム、プログラム管理方法、クライアントおよびプログラムに関する。
【背景技術】
【０００２】
従来から、ネットワーク通信機能を有する情報処理装置において、サーバからネットワークを介してダウンロードしたプログラムをインストールすることが行われている。また、近年では、印刷機能、コピー機能およびＦＡＸ機能などを１台の機器で実現する複合機にネットワーク通信機能を設け、サーバからネットワークを介してプログラムをダウンロードしてインストールし、当該複合機に対して新たな機能を追加可能とした製品も開発されている。
【０００３】
ところで、例えば複合機のある機能を実現するために、複数のプログラムが協働して動作する場合が多くみられる。このような、ある機能を実現するために互いに協働して動作する複数のプログラムの間には、依存関係が存在するといえる。
【０００４】
複合機に対してある機能を追加する場合には、当該機能を実現するための、依存関係にあるプログラムが、当該複合機に全てインストールされた状態にする必要がある。また、複合機に追加されたある機能を削除する場合には、当該機能を実現するための、依存関係にあるプログラムを、当該複合機からアンインストールする。
【０００５】
特許文献１には、複合機の機器構成の変更時に、当該複合機にインストールされているプラグインプログラムの情報を、ネットワークに接続される各複合機のプラグイン情報を管理するサーバに送信し、サーバに対してプラグインプログラムの適用可否の判断などを要求する構成が記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来のシステムでは、ある機能を複合機に対して追加する場合や、複合機に追加されたある機能を削除する場合に必要な情報である、プログラム間の依存関係をユーザが把握することが困難であった。これは、例えば複合機において機能追加のプログラムを管理する上で、問題となる。
【０００７】
上述した特許文献１の記載によれば、ネットワークを介してサーバと複合機との間でプラグインプログラムの情報などをやりとりし、プラグインの適用可否情報を複合機において提示している。しかしながら、特許文献１の構成では、プログラムの依存関係をユーザが明確に把握できないという問題は解消できていない。
【０００８】
本発明は、上記に鑑みてなされたものであって、プログラムの依存関係を容易に把握できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、第１の発明は、クライアントと、クライアントとネットワークを介して接続されるサーバとを備えるプログラム管理システムであって、サーバは、クライアントにインストールするプログラムを保持するプログラム記憶手段と、プログラム記憶手段に保持されるプログラムを示す情報と、プログラム記憶手段に保持されるプログラムに対する、他のプログラム記憶手段に保持されるプログラムの依存関係を示す情報とを含む第１のプログラム情報を保持する第１のプログラム情報記憶手段とを有し、クライアントは、ユーザ入力を受け付ける入力手段と、インストールされたプログラムを示す情報と、インストールされたプログラムに対する、他のインストールされたプログラムの依存関係を示す情報とを含む第２のプログラム情報を保持する第２のプログラム情報記憶手段と、入力手段に対するユーザ入力に従い、第１のプログラム情報および第２のプログラム情報の少なくとも一方を用いて、プログラム記憶手段に保持されるプログラムまたはインストールされたプログラムに対する他のプログラムの依存関係を示す表示を行う表示画面を作成する表示画面作成手段とを有することを特徴とする。
【００１０】
また、第２の発明は、クライアントと、クライアントとネットワークを介して接続されるサーバとを備えるプログラム管理システムのプログラム管理方法であって、サーバは、クライアントにインストールするプログラムを保持するプログラム記憶手段と、プログラム記憶手段に保持されるプログラムを示す情報と、プログラム記憶手段に保持されるプログラムに対する、他のプログラム記憶手段に保持されるプログラムの依存関係を示す情報とを含む第１のプログラム情報を保持する第１のプログラム情報記憶手段とを有し、クライアントは、インストールされたプログラムを示す情報と、インストールされたプログラムに対する、他のインストールされたプログラムの依存関係を示す情報とを含む第２のプログラム情報を保持する第２のプログラム情報記憶手段を有し、クライアントが、ユーザ入力を受け付ける入力ステップと、クライアントが、入力ステップに対するユーザ入力に従い、第１のプログラム情報および第２のプログラム情報のうち少なくとも一方を取得する取得ステップと、クライアントが、取得ステップで取得された第１のプログラム情報および第２のプログラム情報のうち少なくとも一方を用いて、プログラム記憶手段に保持されるプログラムまたはインストールされたプログラムに対する他のプログラムの依存関係を示す表示を行う表示画面を作成する表示画面作成ステップとを有することを特徴とする。
【００１１】
また、第３の発明は、ユーザ入力を受け付ける入力手段と、インストールされたプログラムを示す情報と、インストールされたプログラムに対する、他のインストールされたプログラムの依存関係を示す情報とを含むプログラム情報を保持するプログラム情報記憶手段と、入力手段に対するユーザ入力に従い、ネットワークを介して接続されるサーバに保持されるインストールするプログラムを示す情報と、サーバに保持されるプログラムに対する、他のサーバに保持されるプログラムの依存関係を示す情報とを含むプログラム情報と、プログラム情報記憶手段に保持されるプログラム情報とのうち少なくとも一方を用いて、サーバに保持されるプログラムまたはインストールされたプログラムに対する他のプログラムの依存関係を示す表示を行う表示画面を作成する表示画面作成手段とを有することを特徴とする。
【００１２】
また、第４の発明は、入力手段が、ユーザ入力を受け付ける入力ステップと、取得手段が、入力ステップに対するユーザ入力に従い、ネットワークを介して接続されるサーバに保持される、インストールするプログラムを示す情報と、プログラムに対する、他のプログラムの依存関係を示す情報とを含む第１のプログラム情報と、入力ステップに対するユーザ入力に従い、インストールされたプログラムを示す情報と、インストールされたプログラムに対する、他のインストールされたプログラムの依存関係を示す情報とを含む第２のプログラム情報とのうち少なくとも一方を取得する取得ステップと、表示画面作成手段が、取得ステップで取得された第１のプログラム情報および第２のプログラム情報のうち少なくとも一方を用いて、サーバに保持されるプログラムまたはインストールされたプログラムに対する他のプログラムの依存関係を示す表示を行う表示画面を作成する表示画面作成ステップとを有することを特徴とする。
【００１３】
また、第５の発明は、ユーザ入力を受け付ける入力ステップと、入力ステップに対するユーザ入力に従い、ネットワークを介して接続されるサーバに保持される、インストールするプログラムを示す情報と、プログラムに対する、他のプログラムの依存関係を示す情報とを含む第１のプログラム情報と、入力ステップに対するユーザ入力に従い、インストールされたプログラムを示す情報と、インストールされたプログラムに対する、他のインストールされたプログラムの依存関係を示す情報とを含む第２のプログラム情報とのうち少なくとも一方を取得する取得ステップと、取得ステップで取得された第１のプログラム情報および第２のプログラム情報のうち少なくとも一方を用いて、サーバに保持されるプログラムまたはインストールされたプログラムに対する他のプログラムの依存関係を示す表示を行う表示画面を作成する表示画面作成ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、プログラムの依存関係を容易に把握できるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の第１の実施形態に適用可能なプログラム管理システムの構成を概略的に示すブロック図である。
【図２】図２は、プログラムサーバのプログラム情報記憶部に保持される情報の例を示す略線図である。
【図３】図３は、本発明の第１の実施形態による依存関係を表示する表示画面の作成処理の一例を示すシーケンス図である。
【図４】図４は、ソフトウェア管理画面の一例を示す略線図である。
【図５】図５は、インストール処理が指示された場合の依存関係表示画面の一例の作成処理を示すフローチャートである。
【図６】図６は、プログラム追加画面の一例を示す略線図である。
【図７】図７は、インストール処理における依存関係表示画面の一例を示す略線図である。
【図８】図８は、依存関係表示画面の別の例を示す略線図である。
【図９】図９は、アンインストール処理が指示された場合の依存関係表示画面の一例の作成処理を示すフローチャートである。
【図１０】図１０は、プログラム管理画面の一例を示す略線図である。
【図１１】図１１は、異なる複数のプログラムが共通のプログラムに対して依存関係を持つ例を示す略線図である。
【図１２】図１２は、依存関係を閲覧するプログラムを選択するための選択画面の例を示す略線図である。
【図１３】図１３は、本発明の第２の実施形態に適用可能なソフトウェア配信システムの一例のネットワーク構成図である。
【図１４】図１４は、本発明の第２の実施形態に適用可能な複合機の機能的構成の例を示すブロック図である。
【図１５】図１５は、複合機のハードウェア構成の例を示すブロック図である。
【図１６】図１６は、本発明の第２の実施形態の変形例によるソフトウェア配信システムの一例のネットワーク構成図である。
【発明を実施するための形態】
【００１６】
＜第１の実施形態＞
以下に添付図面を参照して、本発明に係るプログラム管理システムの第１の実施形態について説明する。図１は、本第１の実施形態に適用可能なプログラム管理システム１の構成を概略的に示す。ＬＡＮ(Local Area Network)などによるネットワーク５に対して、プログラムサーバ１０と、クライアント装置２０、２０、…とが接続され、プログラムサーバ１０と各クライアント装置２０、２０、…との間で互いに通信可能とされている。
【００１７】
プログラムサーバ１０は、例えばＣＰＵ(Central Processing Unit)、ＲＡＭ(Random Access Memory)、ＲＯＭ(Read Only Memory)などを有する一般的なコンピュータからなり、ＣＰＵ上で動作する制御プログラムに従い、各クライアント装置２０、２０、…に対して機能を追加するためのプログラムを管理する。制御プログラムは、例えばＣＤ(Compact Disk)やＤＶＤ(Digital Versatile Disk)といった記録媒体や、ネットワークなどを介してプログラムサーバ１０に提供される。
【００１８】
各クライアント装置２０、２０、…は、自身に機能を追加するためのプログラムまたはプログラム群を、プログラムサーバ１０からネットワーク５を介してダウンロードし、インストールすることができる。以下では、プログラムは、特に記載がない限り、クライアント装置２０に対して機能を追加するためのプログラムを指すものとする。
【００１９】
クライアント装置２０は、例えば、印刷機能、コピー機能、ファクス機能など複数の機能を１の筐体で実現する複合機（ＭＦＰ：Multi Function Printer）である。クライアント装置２０は、ＣＰＵ、ＲＡＭ、ＲＯＭなどを有し、ＣＰＵ上で動作する制御プログラムに従い動作が制御される。制御プログラムは、例えばＣＤやＤＶＤといった記録媒体や、ネットワークなどを介してクライアント装置２０に提供される。
【００２０】
これに限らず、クライアント装置２０は、プログラムサーバ１０からネットワーク５を介してダウンロードしたプログラムをインストール可能であれば、一般的なコンピュータ、特定の機能を実行するための他の情報処理装置でもよい。
【００２１】
なお、プログラム管理システム１において、ネットワーク５に対してプログラムサーバ１０を複数接続してもよい。また、ネットワーク５は、ＬＡＮに限らず、インターネットなど外部との通信可能なネットワークでもよいし、ＬＡＮと、外部との通信可能なネットワークとが混在していてもよい。
【００２２】
プログラムサーバ１０は、プログラム管理部１２、プログラム記憶部１３、プログラム情報記憶部１４およびネットワーク部１５を有し、これらが互いに通信可能に接続されている。また、プログラムサーバ１０の全体を制御するための制御プログラムが、図示されない記憶部にインストールされている。
【００２３】
プログラム記憶部１３は、クライアント装置２０、２０、…に対して機能を追加するためのプログラムを保持する。このプログラムは、単独のプログラムで構成されていてもよいし、複数のプログラムが協働して動作するように構成されていてもよい。プログラム情報記憶部１４は、プログラム記憶部１３に保持されるプログラムの情報を保持する。このプログラム情報には、プログラム間の依存関係を示す情報が含まれる。
【００２４】
プログラム管理部１２は、図示されない記憶部に格納された制御プロラムに従ったＣＰＵの動作により、プログラム記憶部１３が保持するプログラムを管理する。また、ネットワーク部１５は、制御プログラムに従いネットワーク５に対する通信を制御する。
【００２５】
クライアント装置２０は、制御部２２、プログラム情報記憶部２３、依存関係表示作成部２４、画面表示部２５、入力部２６およびネットワーク部２７を有し、これらが互いに通信可能に接続されている。
【００２６】
また、クライアント装置２０の全体を制御するための制御プログラムや、クライアント装置２０の機能を実現するためのプログラムが、図示されない記憶部に格納されている。なお、制御プログラムには、クライアント装置２０に機能を追加するためにプログラムをインストールしたり、追加した機能を削除するためにプログラムのアンインストールを行うためのインストールプログラムを含む。
【００２７】
制御部２２は、制御プログラムに従ったＣＰＵの動作により、クライアント装置２０の各部の制御を行う。プログラム情報記憶部２３は、クライアント装置２０にインストールされている、クライアント装置２０の機能を実現するためのプログラムの情報が保持される。このプログラム情報には、プログラム間の依存関係を示す情報が含まれる。
【００２８】
依存関係表示作成部２４は、制御プログラムに従ったＣＰＵの動作により、制御部２２からの要求に応じて、指定されたプログラムに関するプログラム間の依存関係を示す表示画面を作成する。画面表示部２５は、例えばＬＣＤ(Liquid Crystal Display)などの表示素子に対して画面の表示を行う。入力部２６は、ユーザ入力を受け付ける。例えば、入力部２６は、画面表示部２５の画面表示部分と一体的に構成されたタッチパネルであって、押圧された位置に応じた信号を出力する。ネットワーク部２７は、ネットワーク５に対する通信を制御する。
【００２９】
図２は、プログラムサーバ１０のプログラム情報記憶部１４に保持される情報の例を示す。プログラム情報記憶部１４は、図２（ａ）に例示されるＩＤテーブルと、図２（ｂ）に例示される依存関係テーブルとを保持する。
【００３０】
ＩＤテーブルは、プログラム記憶部１３が保持するプログラムの名称に対してユニークな識別情報（ＩＤ）を関連付けて保持する。図２（ａ）の例では、プログラム記憶部１３に対して保持される、名称「コピーパッケージ」、「マルチアプリパッケージ」、「ファクスパッケージ」、…のプログラムに対して、それぞれユニークな識別子「１１１」、「１２３」、「２２５」、…が関連付けられている。
【００３１】
依存関係テーブルは、プログラム記憶部１３が保持するプログラムについて、プログラム記憶部１３が保持する他のプログラムとの間の依存関係が保持される。図２（ｂ）において、対象ＩＤの項目には、例えばプログラム記憶部１３が保持する全てのプログラムの識別子が記述される。また、依存先ＩＤには、対象ＩＤの項目に記述される識別子に関連付けられたプログラムに対して依存関係がある、プログラム記憶部１３が保持するプログラムの識別子が記述される。
【００３２】
図２（ｂ）の例では、識別子「１１１」で示されるプログラムは、識別子「６７８」で示されるプログラムに対して依存関係があることが示される。換言すれば、識別子「１１１」で示されるプログラムは、識別子「６７８」で示されるプログラムと協働して動作することで、識別子「１１１」で示されるプログラムとしての機能を実現する。
【００３３】
図２（ｂ）の別の例では、識別子「１２３」で示されるプログラムは、それぞれ識別子「２２５」、識別子「３３４」および識別子「５５５」で示されるプログラムに対して依存関係があることが示される。換言すれば、識別子「１２３」で示されるプログラムは、それぞれ識別子「２２５」、識別子「３３４」および識別子「５５５」で示されるプログラムと協働して動作することで、識別子「１２３」で示されるプログラムとしての機能を実現する。このように、１つのプログラムが複数のプログラムに対して依存関係を持っていてもよい。
【００３４】
また、図２（ｂ）のさらに別の例では、上述した識別子「１２３」で示されるプログラムに対して依存関係がある、識別子「５５５」で示されるプログラムは、さらに、識別子「７８９」で示されるプログラムと依存関係にある。したがって、識別子「１２３」で示されるプログラムは、それぞれ識別子「２２５」、識別子「３３４」および識別子「５５５」で示されるプログラムに対して直接的な依存関係があると共に、識別子「７８９」で示されるプログラムに対して間接的な依存関係がある。このように、依存先ＩＤを対象ＩＤとして、この対象ＩＤに対して依存先ＩＤを記述することで、プログラム間の依存関係の階層構造を記述することもできる。
【００３５】
なお、ここではプログラムサーバ１０のプログラム情報記憶部１４に保持される情報について説明したが、クライアント装置２０のプログラム情報記憶部２３にも、図２に示したＩＤテーブルおよび依存関係テーブルと同様の形態で、プログラムおよびプログラムの依存関係が保持される。但し、クライアント装置２０のプログラム情報記憶部２３においては、クライアント装置２０に機能追加のためにインストールされているプログラムに関して、識別子および依存関係が保持される。
【００３６】
次に、本第１の実施形態による、プログラムの依存関係を表示する表示画面の作成処理について説明する。本第１の実施形態では、例えば、プログラムサーバ１０からネットワーク５を介してダウンロードしたプログラムのクライアント装置２０に対するインストール時、ならびに、クライアント装置２０に機能を追加するためにインストールされたプログラムのアンインストール時に、インストールまたはアンインストール対象のプログラムに対する他のプログラムの依存関係を表示させる。
【００３７】
本第１の実施形態では、さらに、インストールまたはアンインストールを行わない状態であっても、プログラムサーバ１０がプログラム記憶部１３に保持するプログラム、ならびに、クライアント装置２０にインストールされているプログラムの他のプログラムとの依存関係を表示させることもできる。
【００３８】
図３は、本第１の実施形態による依存関係を表示する表示画面の作成処理の一例を示すシーケンス図である。クライアント装置２０において、入力部２６に対するユーザ操作により、インストール処理、アンインストール処理および依存関係表示処理のうち何れの処理を実行するかが入力される。入力部２６は、入力された処理内容を示す情報をパラメータとして、制御部２２に対して依存関係表示要求を出す（ＳＥＱ１０）。以下では、入力部２６に対するユーザ操作により、インストール処理の実行が指示されたものとして図３に係る説明を行う。
【００３９】
制御部２２は、入力部２６からの依存関係表示要求を受けて、処理内容を示す情報をパラメータとして、依存関係表示作成部２４に対して依存関係表示画面の作成を要求する依存関係表示作成要求を出す（ＳＥＱ１１）。依存関係表示作成部２４は、制御部２２からの依存関係表示作成要求を受けて、プログラムサーバ１０に対してサーバプログラム取得要求を出し、プログラム記憶部１３に保持されているプログラムの情報を取得するように要求する（ＳＥＱ１２）。
【００４０】
以下、適宜、プログラムサーバ１０のプログラム記憶部１３に保持されているプログラムをサーバプログラムと呼び、プログラム情報記憶部１４に保持されているプログラム情報をサーバプログラム情報と呼ぶ。
【００４１】
サーバプログラム取得要求は、ネットワーク部２７からネットワーク５を介してプログラムサーバ１０に送信され、プログラムサーバ１０側のネットワーク部１５に受信される（ＳＥＱ１３）。ネットワーク部１５は、受信したサーバプログラム取得要求を、プログラム管理部１２に渡す（ＳＥＱ１４）。プログラム管理部１２は、サーバプログラム取得要求に応じて、プログラム情報記憶部１４からサーバプログラム情報を取得する（ＳＥＱ１５、ＳＥＱ１６）。
【００４２】
ここでは、プログラム記憶部１３が保持している全てのサーバプログラムについて、プログラム情報記憶部１４からサーバプログラム情報が取得されるものとする。これに限らず、ＳＥＱ１３においてクライアント装置２０からプログラムサーバ１０に送信するサーバプログラム取得要求に対してクライアント装置２０を特定可能な情報を含め、プログラムサーバ１０側において、特定されたクライアント装置２０に適用可能なサーバプログラムに対応するサーバプログラム情報を選択的に取得するようにもできる。
【００４３】
上述のＳＥＱ１６で取得されたサーバプログラム情報は、プログラム管理部１２からネットワーク部１５に渡され（ＳＥＱ１７）、ネットワーク部１５からクライアント装置２０のネットワーク部２７に送信される（ＳＥＱ１８）。クライアント装置２０において、ネットワーク部２７は、プログラムサーバ１０から送信されたサーバプログラム情報を受信して、依存関係表示作成部２４に渡す（ＳＥＱ１９）。
【００４４】
また、依存関係表示作成部２４は、上述した、ＳＥＱ１２からのプログラムサーバ１０に対するサーバプログラム情報の要求処理を行うと共に、クライアント装置２０内部において、機能追加のためにインストールされているプログラムに関するプログラム情報を取得する。
【００４５】
以下、適宜、クライアント装置２０にインストールされているプログラムを機器プログラムと呼び、プログラム情報記憶部２３に保持されているプログラム情報を機器プログラム情報と呼ぶ。
【００４６】
より具体的には、依存関係表示作成部２４は、上述のＳＥＱ１１で制御部２２からの依存関係表示の作成要求を受けると、クライアント装置２０内のプログラム情報記憶部２３に対して、当該クライアント装置２０にインストールされているプログラムのプログラム情報を取得するように要求する。この要求に応じてプログラム情報記憶部２３から機器プログラム情報が取得され、取得された機器プログラム情報が依存関係表示作成部２４に渡される（ＳＥＱ３０、ＳＥＱ３１）。
【００４７】
なお、図３において、依存関係表示作成部２４は、ＳＥＱ３１で機器プログラム情報を取得してからＳＥＱ１９でサーバプログラム情報を取得するように示されているが、この取得順序は逆でも構わない。
【００４８】
依存関係表示作成部２４は、ＳＥＱ１９で取得されたサーバプログラム情報と、ＳＥＱ３１で取得された機器プログラム情報とに基づき、各プログラムの依存関係とプログラムのインストール状態とを判断する（ＳＥＱ４０、ＳＥＱ４１）。
【００４９】
より具体的には、ＳＥＱ４０で、依存関係表示作成部２４は、ＳＥＱ１９で取得したサーバプログラム情報に含まれるＩＤテーブルおよび依存関係テーブルから、サーバプログラムについて、プログラム記憶部１３に保持されている他のプログラムとの依存関係を求める。次のＳＥＱ４１で、依存関係表示作成部２４は、ＳＥＱ３１で取得した機器プログラム情報に含まれるＩＤテーブルおよび依存関係テーブルから、各機器プログラムのうちＩＤテーブルに記述されているプログラムの情報を取得すると共に、当該プログラムに対する他のプログラムの依存関係を取得する。
【００５０】
依存関係表示作成部２４は、機器プログラムおよびサーバプログラムについての依存関係と、クライアント装置２０におけるプログラムのインストール状態を取得すると、取得したこれらの情報に基づき、プログラムの依存関係を表示するための依存関係表示画面を作成する（ＳＥＱ４２）。
【００５１】
このとき、依存関係表示作成部２４は、ＳＥＱ１０、ＳＥＱ１１で依存関係表示作成部２４に渡された依存関係表示の作成要求のパラメータで示される処理内容がインストール処理、アンインストール処理および依存関係表示のみの処理の何れであるかに応じて、依存関係テーブルおよびインストール状態を示す情報に基づき、依存関係表示画面を作成する。
【００５２】
作成された依存関係表示画面を画面表示部２５に表示させるための表示信号が依存関係表示作成部２４から出力され、画面表示部２５に供給される（ＳＥＱ５０）。画面表示部２５は、供給された表示信号に従い表示素子に対して表示を行う。
【００５３】
＜依存関係表示画面の作成処理＞
次に、依存関係表示作成部２４による依存関係表示画面の作成処理について説明する。先ず、制御部２２または依存関係表示作成部２４は、インストール処理、アンインストール処理および依存関係閲覧処理のうち何れか１つの処理を選択するための、ソフトウェア管理画面を作成し、画面表示部２５に表示させる。ユーザは、このソフトウェア管理画面に従い入力部２６を操作することで、処理を選択することができる。
【００５４】
図４は、ソフトウェア管理画面３０の一例を示す。ソフトウェア管理画面３０に対して、プログラム追加ボタン３１、プログラム管理ボタン３２および依存関係閲覧ボタン３３が配置される。プログラム追加ボタン３１は、サーバプログラムのクライアント装置２０に対するインストールを指示する。プログラム管理ボタン３２は、クライアント装置２０にインストールされている機器プログラムのアンインストールを指示する。依存関係閲覧ボタン３３は、付随的に配置されるラジオボタン３４Ａおよび３４Ｂにより選択された、サーバプログラムおよび機器プログラムのうちの一方を閲覧する閲覧画面を表示させる。
【００５５】
＜インストール処理時の依存関係表示＞
先ず、インストール処理が指示された場合について説明する。図５は、上述のＳＥＱ１０で、入力部２６からプログラム追加ボタン３１が操作され、インストール処理が指示された場合の、依存関係表示作成部２４による依存関係表示画面の一例の作成処理を示すフローチャートである。プログラム追加ボタン３１が操作されると、入力部２６は、インストール処理に係る依存関係表示要求を制御部２２に渡す。
【００５６】
依存関係表示作成部２４は、入力部２６からの依存関係表示要求を、制御部２２を介して受け取ると、ステップＳ１０で、プログラム間の依存関係を把握するために、プログラムサーバ１０に対してサーバプログラム情報の取得要求を送信し、プログラムサーバ１０からサーバプログラム情報を取得する。次のステップＳ１１で、依存関係表示作成部２４は、クライアント装置２０にインストール済みのプログラムを判断するために、プログラム情報記憶部２３に対して機器プログラム情報を要求し、プログラム情報記憶部２３から機器プログラム情報を取得する。
【００５７】
依存関係表示作成部２４は、次のステップＳ１２で、インストールの対象となるプログラムを示す情報を取得する。例えば、依存関係表示作成部２４は、ステップＳ１０で取得したサーバプログラム情報に含まれるＩＤテーブルを参照してサーバプログラム名称が一覧表示されたプログラム追加画面を作成し、作成したプログラム追加画面を画面表示部２５に表示させる。
【００５８】
図６は、プログラム追加画面４０の一例を示す。図４で示したソフト管理画面３０におけるプログラム追加ボタン３１の操作に応じて、上述のステップＳ１０およびステップＳ１１の処理が行われ、このプログラム追加画面４０が画面表示部２５に表示される。ステップＳ１０で取得されたサーバプログラム情報から取り出したサーバプログラムの名称が、プログラム追加画面４０の表示領域４２に対して例えばリスト状に配置される。図６の例では、サーバプログラム名称として、「マルチアプリパッケージ」、「ファクスパッケージ」、「送信パッケージ」、「拡張編集パッケージ」および「マニュアルパッケージ」が表示領域４２に対して配置されている。
【００５９】
また、各サーバプログラム名称に対してチェックボックスが付随的に配置される。ユーザは、入力部２６の操作により所望のサーバプログラムに付随するチェックボックスをチェックすることで、クライアント装置２０にインストールしたい１または複数のサーバプログラムを選択することができる。図６の例では、「マルチアプリパッケージ」に付随するチェックボックスがチェックされ、インストールを行うサーバプログラムとして「マルチアプリパッケージ」が選択されている。
【００６０】
所望のサーバプログラムを選択した後に、入力部２６によりインストールボタン４１を操作すると、選択されたプログラムを示す情報（例えば当該プログラムに関連付けられた識別子）が、入力部２６から制御部２２を介して依存関係表示作成部２４に渡され、ステップＳ１３以降の処理により、インストール対象のサーバプログラムに関するプログラムの依存関係の表示画面作成が実行される。
【００６１】
なお、取得したサーバプログラムの数が多く、プログラム追加画面４０に対して全てのサーバプログラムの名称を表示しきれない場合は、スクロールボタン４３を操作することで、プログラム追加画面４０の表示が縦方向にスクロールし、プログラム追加画面４０外にはみ出ている表示内容をプログラム追加画面４０内に表示させることができる。
【００６２】
ステップＳ１３からステップＳ１８までの処理は、インストール対象のプログラム毎に繰り返される処理である。依存関係表示作成部２４は、インストール対象のプログラムを示す情報を取得すると、ステップＳ１３で、当該インストール対象のプログラムの名称をサーバプログラム情報に含まれるＩＤテーブルを参照して求め、表示情報として依存関係表示情報に追加する。
【００６３】
次のステップＳ１４からステップＳ１７までの処理は、インストール対象の１つのプログラムと依存関係にある他のサーバプログラム毎に繰り返される処理である。ステップＳ１４で、依存関係表示作成部２４は、インストール対象の１つのサーバプログラム（以下、対象サーバプログラムと呼ぶ）について、対象サーバプログラムと依存関係にあるサーバプログラムのうち１つのサーバプログラムの情報を、表示情報として依存関係表示情報に追加する。
【００６４】
例えば、依存関係表示作成部２４は、対象サーバプログラムについて、サーバプログラム情報に含まれる依存関係テーブルを参照して他のサーバプログラムとの依存関係を取得する。取得された他のサーバプログラムの名称を、ＩＤテーブルを参照して求め、求められた名称を、表示情報とする。以下、対象サーバプログラムに対して依存関係にある他のサーバプログラムを、依存対象サーバプログラムと呼ぶ。
【００６５】
次のステップＳ１５で、依存関係表示作成部２４は、当該依存対象サーバプログラムがクライアント装置２０にインストール済みであるか否かを判断する。すなわち、依存関係表示作成部２４は、機器プログラム情報に含まれるＩＤテーブルを参照し、当該依存対象サーバプログラムの識別子と一致する識別子が当該ＩＤテーブルに保持されているか否かを判断する。若し、保持されていないと判断されたら、処理はステップＳ１７に移行される。
【００６６】
一方、ステップＳ１５で、当該依存対象サーバプログラムの識別子と一致する識別子が当該ＩＤテーブルに保持されていると判断されたら、処理はステップＳ１６に移行される。依存関係表示作成部２４は、ステップＳ１６で、当該依存対象サーバプログラムがインストール済みである旨を示す情報を、表示情報として依存関係表示情報に追加する。このインストール済みである旨を示す情報は、例えば当該依存対象サーバプログラムの名称に対して所定のメッセージやアイコンなどを関連付けて示すことが考えられる。
【００６７】
次のステップＳ１７で、依存関係表示作成部２４は、対象サーバプログラムと依存関係にある全ての依存対象サーバプログラムについて、名称を表示情報として依存関係表示情報に追加したか否かを判断する。若し、名称が追加されていない依存対象サーバプログラムが存在すると判断したら、依存関係表示作成部２４は、処理をステップＳ１４に戻し、未だ名称が追加されていない依存対象サーバプログラムについて、ステップＳ１４〜ステップＳ１７の処理を行う。
【００６８】
一方、ステップＳ１７で、依存関係表示作成部２４は、対象サーバプログラムと依存関係にある全ての依存対象サーバプログラムについて、名称が追加されたと判断したら、処理をステップＳ１８に移行させる。ステップＳ１８で、依存関係表示作成部２４は、インストール対象として選択された全ての対象サーバプログラムに対する処理が終了したか否かを判断する。若し、終了していないと判断したら、処理をステップＳ１３に戻し、未だ処理されていない対象サーバプログラムについて、ステップＳ１３〜ステップＳ１８の処理を行う。
【００６９】
一方、ステップＳ１８で、依存関係表示作成部２４は、インストール対象として選択された全ての対象サーバプログラムに対する処理が終了したと判断したら、処理をステップＳ１９に移行させる。
【００７０】
ステップＳ１９で、依存関係表示作成部２４は、依存関係表示情報から依存関係を表示する依存関係表示画面を作成する。依存関係表示作成部２４は、例えば、依存関係表示情報に含まれる対象サーバプログラムの名称と、同様に依存関係表示情報に含まれる、当該対象サーバプログラムと依存関係にある依存対象サーバプログラムの名称との依存関係が明確となるように、これらの名称を画面に配置して、依存関係表示画面を作成する。
【００７１】
そして、次のステップＳ２０で、依存関係表示作成部２４は、ステップＳ１９で作成した依存関係表示画面を表示させるための表示信号を画面表示部２５に対して供給し、画面に表示部２５に対して当該依存関係表示画面を表示させる。
【００７２】
図７は、ステップＳ１９で作成される、インストール処理における依存関係表示画面７０の一例を示す。表示領域７３に対し、「選択したプログラム」として対象サーバプログラムの名称が配置される。表示領域７３に隣接する表示領域７４に対し、「インストールに必要なパッケージ」として、表示領域７３に表示される対象サーバプログラムに対して依存関係がある依存対象サーバプログラムの名称が配置される。
【００７３】
図７の例では、対象サーバプログラムとして「マルチアプリパッケージ」が選択され、「ファクスパッケージ」、「マーキングパッケージ」および「送信パッケージ」が、当該対象サーバプログラムに対して依存関係がある依存対象サーバプログラムとして示されている。また、依存対象サーバプログラムのうち、「マーキングパッケージ」は、クライアント装置２０にインストール済みである旨が、「インストール済み」なるメッセージを当該依存対象サーバプログラムの名称に対して付加することで示されている。
【００７４】
図７のように、あるプログラムの名称と、当該プログラムに対して依存関係がある他のプログラムの名称とを対にして、互いに隣接させて配置して表示させることで、ユーザによるプログラムの依存関係の把握が容易となる。
【００７５】
また、図７の例において、依存関係表示画面７０の上部右側に、実行ボタン７１およびキャンセルボタン７２が配置される。実行ボタン７１は、例えば入力部２６から操作することで、表示領域７３および７４に表示される名称のプログラムのインストールを実行することができる。キャンセルボタン７２は、インストール処理のキャンセルを指示する。
【００７６】
一例として、実行ボタン７１が操作された旨が入力部２６から制御部２２に通知されると、制御部２２は、依存関係表示作成部２４に対して、表示領域７３に名称が表示される対象サーバプログラムの識別子を要求する。それと共に、制御部２２は、依存関係表示作成部２４に対して、表示領域７４に名称が表示される依存対象サーバプログラムのうち、インストール済みではない依存対象サーバプログラムの識別子を要求する。制御部２２は、これらの要求に応じて取得された識別子を、ネットワーク部２７からプログラムサーバ１０に対して送信する。
【００７７】
プログラムサーバ１０において、クライアント装置２０から送信された、サーバプログラムを示す識別子がネットワーク部１５により受信され、プログラム管理部１２に渡される。プログラム管理部１２は、ネットワーク１５から渡された識別子に対応するサーバプログラムをプログラム記憶部１３から取り出し、取り出したサーバプログラムをネットワーク部１５からクライアント装置２０に対して送信する。
【００７８】
送信されたサーバプログラムは、クライアント装置２０においてネットワーク部２７に受信されて制御部２２に渡され、制御部２２により所定の手順で以てクライアント装置２０にインストールされる。サーバプログラムのインストール終了後、制御部２２は、プログラム情報記憶部１４のＩＤテーブルおよび依存関係テーブルを更新し、インストールされたサーバプログラムの情報を反映させる。
【００７９】
上述したように、インストールを行う対象サーバプログラムは、複数を選択することができる。対象サーバプログラムが複数選択された場合、依存関係表示画面７０には、選択された複数の対象サーバプログラムと、これら複数の対象サーバプログラムのそれぞれについて、依存関係のある依存対象サーバプログラムが、依存関係が明確になるように配置されて表示される。図７の例では、表示領域７３および７４の組が、選択された対象サーバプログラムの数だけ表示されることになる。
【００８０】
この場合、複数の対象サーバプログラムからインストールを実行する対象サーバプログラムを選択可能とすると、より好ましい。例えば、複数の対象サーバプログラムそれぞれについて、表示領域７３に表示される対象サーバプログラムの名称に対してチェックボックスを付加的に表示させ、入力部２６に対する操作によりチェックボックスがチェックされた対象サーバプログラムについて、選択的にインストール処理を行う。１つの対象サーバプログラムのインストールが終了する毎にＩＤテーブルおよび依存関係テーブルを更新し、それに伴い依存関係表示画面７０の表示内容を更新すると好ましい。
【００８１】
なお、インストールを行う対象サーバプログラムが多数選択され、各プログラム名称が依存関係表示画面７０内に一度に表示しきれない場合は、スクロールボタン７５を操作することで、依存関係表示画面７０の表示が縦方向にスクロールし、依存関係表示画面７０外にはみ出ている表示部分を依存関係表示画面７０内に表示させることができる。
【００８２】
図８は、依存関係表示画面の別の例を示す。なお、図８において、上述した図７と共通する部分には同一の符号を付し、詳細な説明を省略する。図８の例では、依存関係表示画面８０は、プログラム間の依存関係をツリー構造を用いて視覚的にレイアウトして表現している。すなわち、インストールを行う対象サーバプログラムの名称がツリー構造のルートとしての表示領域７３’に配置され、当該対象サーバプログラムに対して直接的に依存関係がある依存対象サーバプログラムの名称が、ルートの直下の階層として表示領域７４’に配置される。また、ツリー構造を用いたレイアウトの場合、表示８１のように、対象サーバプログラムに対して階層構造により間接的に依存関係があるプログラムの表示も容易である。
【００８３】
＜アンインストール処理時の依存関係表示＞
次に、アンインストール処理が指示された場合について説明する。図９は、上述のＳＥＱ１０で、入力部２６からプログラム管理ボタン３２が操作され、アンインストール処理が指示された場合の、依存関係表示作成部２４による依存関係表示画面の一例の作成処理を示すフローチャートである。プログラム管理ボタン３２が操作されると、入力部２６は、アンインストール処理に係る依存関係表示要求を制御部２２に渡す。
【００８４】
依存関係表示作成部２４は、入力部２６からの依存関係表示要求を、制御部２２を介して受け取ると、ステップＳ３０で、クライアント装置２０にインストール済みの機器プログラムを判断すると共に、当該インストール済みの機器プログラムに対する他の機器プログラムの依存関係を把握するために、プログラム情報記憶部２３から機器プログラム情報を取得する。
【００８５】
依存関係表示作成部２４は、次のステップＳ３１で、アンインストールの対象となるプログラムを示す情報（例えば識別子）を取得する。例えば、依存関係表示作成部２４は、ステップＳ３０で取得した機器プログラム情報に含まれるＩＤテーブルを参照して機器プログラム名称が一覧表示されたプログラム管理画面を作成し、作成したプログラム管理画面を画面表示部２５に表示させる。
【００８６】
図１０は、プログラム管理画面５０の一例を示す。図４で示したソフトウェア管理画面３０におけるプログラム管理ボタン３２の操作に応じて、上述のステップＳ３０の処理が行われ、このプログラム管理画面５０が画面表示部２５に表示される。ステップＳ３０で取得された機器プログラム情報から取り出した機器プログラムの名称が、プログラム管理画面５０の表示領域５２に対して例えばリスト状に配置される。図１０の例では、クライアント装置２０にインストールされている機器プログラム名称として、「マルチアプリパッケージ」、「ファクスパッケージ」、「送信パッケージ」、「拡張編集パッケージ」および「マニュアルパッケージ」が表示領域５２に対して配置されている。
【００８７】
また、各機器プログラム名称に対してチェックボックスが付随的に配置される。ユーザは、入力部２６の操作により所望の機器プログラムに付随するチェックボックスをチェックすることで、クライアント装置２０からアンインストールしたい１または複数の機器プログラムを選択することができる。
【００８８】
所望の機器プログラムを選択した後に、入力部２６によりアンインストールボタン５１を操作すると、選択されたプログラムを示す情報が、入力部２６から制御部２２を介して依存関係表示作成部２４に渡され、ステップＳ３２以降の処理により、アンインストール対象の機器プログラムに関する依存関係の表示画面作成が実行される。なお、スクロールボタン５３の機能は、図６を用いて説明したスクロールボタン４３と同様であるので、ここでの説明を省略する。
【００８９】
ステップＳ３２からステップＳ３７までの処理は、アンインストール対象の機器プログラム毎に繰り返される処理である。依存関係表示作成部２４は、アンインストール対象の機器プログラムを示す情報を取得すると、ステップＳ３３で、当該アンインストール対象の機器プログラムの名称を機器プログラム情報に含まれるＩＤテーブルを参照して求め、表示情報として依存関係表示情報に追加する。
【００９０】
次のステップＳ３３からステップＳ３６までの処理は、アンインストール対象の１つの機器プログラムと依存関係にある他の機器プログラム毎に繰り返される処理である。ステップＳ３４で、依存関係表示作成部２４は、アンインストール対象の１つの機器プログラム（以下、対象機器プログラムと呼ぶ）について、対象機器プログラムと依存関係にある機器プログラムのうち１つの機器プログラムの情報を、表示情報として依存関係表示情報に追加する。
【００９１】
例えば、依存関係表示作成部２４は、対象機器プログラムについて、機器プログラム情報に含まれる依存関係テーブルを参照して他の機器プログラムとの依存関係を取得する。取得された他の機器プログラムの名称を、ＩＤテーブルを参照して求め、求められた名称を、表示情報とする。以下、対象機器プログラムに対して依存関係にある他の機器プログラムを、依存対象機器プログラムと呼ぶ。
【００９２】
次のステップＳ３４で、依存関係表示作成部２４は、機器プログラム情報に含まれる依存関係テーブルを参照して、当該依存対象機器プログラムが、当該依存対象機器プログラムを依存対象とする対象機器プログラムを除く他の機器プログラムに対して依存関係にあるか否かを判断する。若し、依存関係に無いと判断されたら、処理はステップＳ３６に移行される。
【００９３】
ここで、異なる複数のプログラムが共通のプログラムに対して依存関係を持つ場合について考える。例えば、図１１に斜線を付して例示されるように、識別子「１２３」のプログラムと、識別子「６６６」のプログラムに対して共通して、識別子「５５５」のプログラムが依存関係を持つものとする。この場合、識別子「１２３」のプログラムをアンインストールする際に、依存関係にある識別子「５５５」のプログラムも共にアンインストールしてしまうと、識別子「５５５」に依存関係を持つ識別子「６６６」のプログラムが実行できなくなってしまう。
【００９４】
そこで、依存関係表示作成部２４は、ステップＳ３４で当該依存対象機器プログラムが、当該依存対象機器プログラムを依存対象とする対象機器プログラムを除く他の機器プログラムに対して依存関係にあると判断したら、処理をステップＳ３５に移行させて、当該依存対象機器プログラムのアンインストールが不可である旨を示す情報を、表示情報として依存関係表示情報に追加する。このアンインストール済みである旨を示す情報は、例えば当該依存対象機器プログラムに対して所定のメッセージやアイコンなどを関連付けて示すことが考えられる。
【００９５】
次のステップＳ３６で、依存関係表示作成部２４は、対象機器プログラムと依存関係にある全ての依存対象機器プログラムについて、名称を表示情報として依存関係表示情報に追加したか否かを判断する。若し、名称が追加されていない依存対象機器プログラムが存在すると判断したら、依存関係表示作成部２４は、処理をステップＳ３３に戻し、未だ名称が追加されていない依存対象機器プログラムについて、ステップＳ３３〜ステップＳ３６の処理を行う。
【００９６】
一方、ステップＳ３６で、依存関係表示作成部２４は、対象機器プログラムと依存関係にある全ての依存対象機器プログラムについて、名称が追加されたと判断したら、処理をステップＳ３７に移行させる。ステップＳ３７で、依存関係表示作成部２４は、アンインストール対象として選択された全ての対象機器プログラムに対する処理が終了したか否かを判断する。若し、終了していないと判断したら、処理をステップＳ３２に戻し、未だ処理されていない対象機器プログラムについて、ステップＳ３２〜ステップＳ３７の処理を行う。
【００９７】
一方、ステップＳ３７で、依存関係表示作成部２４は、アンインストール対象として選択された全ての対象機器プログラムに対する処理が終了したと判断したら、処理をステップＳ３８に移行させる。
【００９８】
ステップＳ３８で、依存関係表示作成部２４は、図５のフローチャートのステップＳ１９で説明したようにして、依存関係表示情報から依存関係を表示する依存関係表示画面を作成する。すなわち、依存関係表示作成部２４は、依存関係表示情報に含まれる対象機器プログラムの名称と、同様に依存関係表示情報に含まれる、当該対象機器プログラムに対して依存関係がある依存対象機器プログラムの名称との依存関係が明確となるように、これらの名称を画面に配置して、依存関係表示画面を作成する。
【００９９】
そして、次のステップＳ３９で、依存関係表示作成部２４は、ステップＳ３８で作成した依存関係表示画面を表示させるための表示信号を画面表示部２５に対して供給し、画面表示部２５に対して当該依存関係表示画面を表示させる。
【０１００】
アンインストール処理において画面表示部２５に表示される依存関係表示画面は、タイトル等の文言や、アンインストール不可を示すメッセージなどを除き、図７および図８を用いて説明した、インストール処理の場合の依存関係表示画面７０および８０と略同様に、リスト構造やツリー構造で以て表示できる。
【０１０１】
アンインストール処理に係る依存関係表示画面に配置される実行ボタンが入力部２６から操作されると、対象機器プログラムと、当該対象機器プログラムに対して依存関係がある依存対象機器プログラムとの、クライアント装置２０からのアンインストールが実行される。
【０１０２】
一例として、アンインストール処理の実行ボタンが操作された旨が入力部２６から制御部２２に通知されると、制御部２２は、依存関係表示作成部２４に対して、アンインストール対象となる対象機器プログラムの識別子を要求する。それと共に、制御部２２は、依存関係表示作成部２４に、当該対象機器プログラムに対して依存関係がある依存対象機器プログラムのうち、アンインストール不可ではない依存対象機器プログラムの識別子を要求する。
【０１０３】
制御部２２は、この要求に応じて依存関係表示作成部２４から返された各識別子に対応する機器プログラムを、所定の手順で以てクライアント装置２０からアンインストールする。機器プログラムのアンインストール終了後、制御部２２は、プログラム情報記憶部２３のＩＤテーブルおよび依存関係テーブルを更新し、アンインストールされた機器プログラムの情報を反映させる。
【０１０４】
アンインストールの対象機器プログラムが複数選択された場合の処理も、上述のインストール処理の際と同様にして行われるため、ここでの詳細な説明を省略する。
【０１０５】
＜依存関係閲覧処理時の依存関係表示＞
次に、依存関係閲覧処理が指示された場合について説明する。上述のＳＥＱ１０で、入力部２６から、図４に示すソフトウェア管理画面３０における依存関係閲覧ボタン３３が操作されることで、依存関係閲覧処理が指示される。ラジオボタン３４Ａおよび３４Ｂのうち一方を選択した上で依存関係閲覧ボタン３３が操作されると、入力部２６は、ラジオボタン３４Ａおよび３４Ｂにより選択された側のプログラムの依存関係を表示するための依存関係表示要求を制御部２２に渡す。
【０１０６】
より具体的には、「サーバから選択」を指示するラジオボタン３４Ａが選択されている場合には、入力部２６は、依存関係閲覧処理を示す処理内容と共に、サーバプログラム情報の取得を示す情報をパラメータとした依存関係表示要求を制御部２２を介して依存関係表示作成部２４に渡す。以降、依存関係表示作成部２４は、図３のＳＥＱ１２〜ＳＥＱ１９のシーケンスに従いプログラムサーバ１０からサーバプログラム情報を取得する。
【０１０７】
次に、依存関係表示作成部２４は、取得されたサーバプログラム情報に含まれるＩＤテーブルを参照してプログラムサーバ１０がプログラム記憶部１３に保持するサーバプログラムの名称および対象ＩＤとしての識別子を取得する。依存関係表示作成部２４は、さらに、ＩＤテーブルから取得した各識別子により、取得されたサーバプログラム情報に含まれる依存関係テーブルを参照し、ＩＤテーブルから取得した識別子それぞれについて、依存先ＩＤとしての識別子を取得する。
【０１０８】
「機器から選択」を指示するラジオボタン３４Ｂが選択されている場合も、同様である。この場合、入力部２６は、依存関係閲覧処理を示す処理内容と共に、機器プログラムの取得を示す情報をパラメータとして依存関係表示要求を制御部２２を介して依存関係表示作成部２４に渡す。以降、依存関係表示作成部２４は、図３のＳＥＱ３０およびＳＥＱ３１のシーケンスに従いプログラム情報記憶部２３から機器プログラム情報を取得する。
【０１０９】
次に、依存関係表示作成部２４は、取得された機器プログラム情報に含まれるＩＤテーブルを参照して、クライアント装置２０にインストールされている機器プログラムの名称および対象ＩＤとしての識別子を取得する。依存関係表示作成部２４は、さらに、ＩＤテーブルから取得した各識別子により、取得されたサーバプログラム情報に含まれる依存関係テーブルを参照し、ＩＤテーブルから取得した識別子それぞれについて、依存先ＩＤとしての識別子を取得する。
【０１１０】
このようにしてサーバプログラムまたは機器プログラムに関する識別子が取得されると、依存関係表示作成部２４は、図１２に例示されるような、依存関係を閲覧するプログラムを選択するための選択画面６０を作成し、画面表示部２５に表示させる。選択画面６０は、図６で示したプログラム追加画面４０などと同様に、取得されたサーバプログラムまたは機器プログラムの名称が表示領域６２に対してリスト状に配置されると共に、各プログラム名称に対してチェックボックスが付随的に配置される。スクロールボタン６３は、選択画面６０を縦方向にスクロールさせ、画面外にはみ出た情報を画面内に表示させる。
【０１１１】
ユーザは、入力部２６の操作により、依存関係を閲覧したいプログラム名称に付随するチェックボックスがチェックされ、表示ボタン６１が操作されると、依存関係表示作成部２４は、チェックされたチェックボックスに対応する名称のプログラムに対して依存関係のある他のプログラムを閲覧するための依存関係閲覧画面を作成する。
【０１１２】
すなわち、依存関係表示作成部２４は、図７や図８を用いて行った説明と同様に、チェックされたチェックボックスに対応するプログラムの名称と、当該プログラムに対して依存関係にある他のプログラムの名称とを、互いの依存関係が明確になるように画面に配置して、依存関係閲覧処理に係る依存関係表示画面を作成する。依存関係表示画面は、図７で示したようなリスト表示であってもよいし、図８で示したようなツリー構造を用いたレイアウトでもよい。
【０１１３】
以上説明したように、本第１の実施形態によれば、クライアント装置２０やプログラムサーバ１０において、インストール済みまたは保持するプログラムについて、当該プログラムを示す情報に、当該プログラムに対して依存関係にある他のプログラムを示す情報が関連付けられている。
【０１１４】
そのため、クライアント装置２０にプログラムサーバ１０が保持するプログラムをインストールする場合や、クライアント装置２０からプログラムをアンインストールする場合に、処理対象のプログラムと、当該処理対象のプログラムに対して依存関係にある他のプログラムとの依存関係が明確になるように表示できる。
【０１１５】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。本第２の実施形態は、上述した第１の実施形態を、ネットワークを介してサーバから複合機に対してソフトウェアを配信するソフトウェア配信システムに適用させた例である。
【０１１６】
図１３は、本第２の実施形態に適用可能なソフトウェア配信システムの一例のネットワーク構成図である。図１３に示すように、ソフトウェア配信システムは、仲介装置２００と、ライセンス管理サーバ３００と、ソフトウェア配信サーバ３０１と、ソフトウェア管理装置としての管理装置３０２と、Ｗｅｂサーバ３０３とが、インターネットなどのネットワーク３１０を介して接続されている。ネットワーク３１０は、上述した第１の実施形態におけるネットワーク５に相当する。
【０１１７】
仲介装置２００とネットワーク３１０との間には、ファイアウォール９０が設けられている。また、仲介装置２００は、複数の複合機１００ａ、１００ｂ、１００ｃが接続されている。以下、特定しない複合機を単に複合機１００と称する。複合機１００は、上述した第１の実施形態におけるクライアント装置２０に相当する。
【０１１８】
ファイアウォール９０は、公衆回線やインターネットなどの外部ネットワークを通じて仲介装置２００に侵入した第三者により不正が行われないように、外部との境界を流れるデータを監視し、不正なアクセスを検出および遮断する。
【０１１９】
ソフトウェア配信サーバ３０１は、複合機１００において実行される各種アプリケーションのソフトウェアのパッケージであるソフトウェアプログラムを記憶しており、このソフトウェアプログラムを、仲介装置２００を介して複合機１００に配信するサーバ装置である。このソフトウェア配信サーバ３０１が、上述した第１の実施形態におけるプログラムサーバ１０に相当し、ソフトウェア配信サーバ３０１が配信するソフトウェアプログラムが、第１の実施形態におけるサーバプログラムに相当する。
【０１２０】
ライセンス管理サーバ３００は、ソフトウェア配信サーバ３０１から提供され、複合機１００にインストールされるアプリケーションのソフトウェアプログラムのライセンス（利用権）や、複合機１００において実行される機能のライセンス（利用権）を、仲介装置２００を介して管理する装置である。
【０１２１】
Ｗｅｂサーバ３０３は、アプリケーションなどのソフトウェアのポータル販売サイトを有するサーバ装置である。ユーザが不図示のＰＣ(Personal Computer)や複合機１００などからこのＷｅｂサーバ３０３のポータル販売サイトにアクセスして、所望のアプリケーションソフトウェアを購入する。そして、ユーザがこのＷｅｂサーバ３０３からソフトウェアを購入した場合、インストール対象として指定された複合機１００の機器ＩＤと購入したソフトウェアのプロダクト名とプロダクトキーと共にインストール要求がＷｅｂサーバ３０３から管理装置３０２に送信される。
【０１２２】
管理装置３０２は、仲介装置２００を介して複合機１００を遠隔管理する装置である。具体的には、管理装置３０２は、複合機１００に管理装置３０２は、複合機のメーカやサービス提供会社といったサービスセンタなどに設置されたサーバ装置である。管理装置３０２は、Ｗｅｂサーバ３０３からインストール要求を受信すると、ソフトウェア配信サーバ３０１からインストール対象のソフトウェアの取得先ＵＲＬや依存ソフトウェアの取得先ＵＲＬなどを受信し、インストール先として指定された複合機１００にインストールされているソフトウェアの状況である機器情報を参照して、インストール対象のソフトウェアと複合機１００に必要な依存ソフトウェアを決定してインストール要求を仲介装置２００に送信する。
【０１２３】
仲介装置２００は、ソフトウェア配信サーバ３０１およびライセンス管理サーバ３００と、複合機１００との間で行われる処理を仲介する装置である。具体的には、仲介装置２００は、複合機１００から各複合機１００にインストールされているソフトウェアの状況である機器情報を一定期間ごとに収集し、この複合機１００毎の機器情報を管理装置３０２に送信する。
【０１２４】
また、仲介装置２００は、インストール対象のソフトウェアプログラムをソフトウェア配信サーバ３０１に要求して受信する処理や、インストール対象のソフトウェアのライセンスをライセンス管理サーバ３００に要求して受信する処理を行う。すなわち、上述の第１の実施形態においてクライアント装置２０のネットワーク部２７と、プログラムサーバ１０のネットワーク部１５との間で、ネットワーク５を介してなされる通信は、本第２の実施形態では、さらに仲介装置２００を介して行われることになる。さらに、仲介装置２００は、これらのソフトウェアプログラムとライセンスと共に、ソフトウェアのインストール要求を複合機１００に送信して、複合機１００に当該ソフトウェアをインストールさせる。
【０１２５】
複合機１００は、コピー、ファクス、プリンタなどの複数の機能を備えた装置であって、ＬＡＮなどのローカルネットワークにより仲介装置２００に接続されている。図１３では、３台の複合機１００ａ、１００ｂ、１００ｃがネットワークに接続されているが、これに限定されることなく、１台、２台、または４台以上の複合機を接続した構成としてもよい。複合機１００は、仲介装置２００から、ソフトウェアプログラムおよびライセンスと共にインストール要求を受信すると、インストール要求で指定されたソフトウェアのインストールを実行するアプリインストール制御部を備えている。
【０１２６】
次に、複合機１００について説明する。図１４は、本第２の実施形態に適用可能な複合機１００の機能的構成の例を示すブロック図である。図１４に示すように、複合機１００は、白黒レーザプリンタ（Ｂ＆Ｗ  ＬＰ）１０１と、カラーレーザプリンタ（Ｃｏｌｏｒ  ＬＰ）１０２と、ＨＤＤ（ハードディスクドライブ）１０３と、スキャナ、ファクス、メモリなどのハードウェアリソース１０４、通信Ｉ／Ｆ（インターフェース）１０５とを有すると共に、プラットホーム１２０と、アプリケーション１３０とから構成されるソフトウェア群１１０とを備えている。
【０１２７】
複合機１００において、ＨＤＤ１０３に、機器情報や、ソフトウェア配信サーバ３０１からダウンロードしたアプリケーションのソフトウェアパッケージ、ファームウェアパッケージ、パッケージ情報、インストール処理の動作指示を示す指示情報、およびライセンス管理サーバ３００からダウンロードアプリケーションのライセンスファイルが保存される。また、このＨＤＤ１０３に、インストール処理の進行状態が記録される。さらに、このＨＤＤ１０３に、上述の第１の実施形態における機器プログラム情報が保持される。
【０１２８】
なお、上述した第１の実施形態においてクライアント装置２０にインストールされるサーバプロクラムは、本第２の実施形態においては、このＨＤＤ１０３に対して所定の手順で格納されることで、この複合機１００に対してインストールされる。
【０１２９】
プラットホーム１２０は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、１または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ（ＳＲＭ）１２３と、汎用ＯＳ１２１とを有する。
【０１３０】
コントロールサービスは、複数のサービスモジュールから形成され、ＳＣＳ（システムコントロールサービス）１２２と、ＥＣＳ（エンジンコントロールサービス）１２４と、ＭＣＳ（メモリコントロールサービス）１２５と、ＯＣＳ（オペレーションパネルコントロールサービス）１２６と、ＦＣＳ（ファクスコントロールサービス）１２７と、ＮＣＳ（ネットワークコントロールサービス）１２８と、ＮＲＳ（ニューリモートサービス）１２９と、アプリインストール制御サービス１３１とから構成される。このプラットホーム１２０は、予め定義された関数によりアプリケーション１３０から処理要求を受信可能とするアプリケーションプログラムインタフェース（ＡＰＩ）を有する。
【０１３１】
汎用ＯＳ１２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム１２０およびアプリケーション１３０の各ソフトウェアをそれぞれプロセスとして並列実行する。上述した第１の実施形態による、クライアント装置２０における制御部２２は、例えばこの汎用ＯＳ１２１に含まれる。
【０１３２】
ＳＲＭ１２３のプロセスは、ＳＣＳ１２２と共にシステムの制御およびリソースの管理を行うものである。ＳＲＭ１２３のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４  Ｉ／Ｆ、ＲＳ２３２Ｃ  Ｉ／Ｆなど）のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
【０１３３】
具体的には、このＳＲＭ１２３は、要求されたハードウェア資源が利用可能であるか、すなわち、他の要求により利用されていないかどうかを判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、ＳＲＭ１２３は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えばプリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成）を直接実施している。
【０１３４】
ＳＣＳ１２２のプロセスは、アプリ管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、割り込みアプリ制御などを行う。ＥＣＳ１２４のプロセスは、白黒レーザプリンタ（Ｂ＆Ｗ  ＬＰ）１０１、カラーレーザプリンタ（Ｃｏｌｏｒ  ＬＰ）１０２、スキャナ、ファクスなどからなるハードウェアリソース１０４のエンジンの制御を行う。ＭＣＳ１２５のプロセスは、画像メモリの取得および解放、ハードディスク装置（ＨＤＤ）の利用、画像データの圧縮および伸張などを行う。
【０１３５】
ＦＣＳ１２７のプロセスは、システムコントローラの各アプリ層からＰＳＴＮ／ＩＳＤＮ網を利用したファクス送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクスデータの登録／引用、ファクス読み取り、ファクス受信印刷、融合送受信を行うためのＡＰＩを提供する。
【０１３６】
ＮＣＳ１２８のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。
【０１３７】
ＯＣＳ１２６のプロセスは、オペレータ（利用者）と本体制御との間の情報伝達手段となるオペレーションパネル（操作パネル）の制御を行う。ＯＣＳ１２６は、オペレーションパネルからキー押下（またはタッチ操作）をキーイベントとして取得し、取得したキーに対応したキーイベント関数をＳＣＳ１２２に送信するＯＣＳプロセスの部分と、アプリケーション１３０またはコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたＯＣＳライブラリの部分とから構成される。このＯＣＳライブラリは、アプリケーション１３０およびコントロールサービスの各モジュールにリンクされて実装されている。なお、ＯＣＳ１２６のすべてをプロセスとして動作させるように構成しても良く、あるいはＯＣＳ１２６のすべてをＯＣＳライブラリとして構成しても良い。
【０１３８】
アプリインストール制御サービス１３１のプロセスは、複合機１００にインストールされているアプリケーションなどのソフトウェアに関する情報や機器の情報を機器情報として一定期間毎に管理装置３０２に送信する。アプリインストール制御サービス１３１のプロセスは、管理装置３０２からインストール要求を受信した場合、ソフトウェア配信サーバ３０１に対して、インストール要求で指定されたプロダクトＩＤのソフトウェアの配信要求を行って、ソフトウェア配信サーバ３０１からインストール対象のソフトウェアを受信し、インストールする。また、アプリインストール制御サービス１３１のプロセスは、管理装置３０２からインストール要求を受信した場合、ライセンス管理サーバ３００に対して、インストール要求で指定されたプロダクトＩＤのソフトウェアのライセンスを要求し、ライセンス管理サーバ３００からライセンスを取得する。
【０１３９】
上述した第１の実施形態による、クライアント装置２０における依存関係表示作成部２４は、このアプリインストール制御サービス１３１に含まれる。
【０１４０】
ＮＲＳ１２９のプロセスは、ネットワークを介してデータを送受信する際のデータの変換を行う等のネットワークを介した機器遠隔管理に関する機能及びスケジューラ機能を有している。
【０１４１】
アプリケーション１３０は、ページ記述言語（ＰＤＬ）、ＰＣＬおよびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ１１１と、コピー用アプリケーションであるコピーアプリ１１２と、ファクス用アプリケーションであるファクスアプリ１１３と、スキャナ用アプリケーションであるスキャナアプリ１１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ１１５と、工程検査用アプリケーションである工程検査アプリ１１６と、インターネットに接続されたＰＣ等のクライアント端末に対してＷＥＢサーバ（ｈｔｔｐサーバ）として動作し、クライアント端末上で動作するＷＥＢブラウザに各種画面を表示するＷＥＢアプリ１１７とを有している。
【０１４２】
アプリケーション１３０の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクスなどの画像形成処理にかかるユーザサービスを実現している。
【０１４３】
このように、本第２の実施形態に係る複合機１００には、複数のアプリケーション１３０および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、１または複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション１３０に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクスなどの画像形成処理にかかるユーザサービスを提供するようになっている。
【０１４４】
また、複合機１００には、複合機１００の顧客、サードベンダなどの第三者がコントロールサービス層の上のアプリケーション層に外部アプリ１７２を開発して搭載することが可能となっている。この外部アプリ１７２は、アプリインストール制御サービス１３１によりソフトウェア配信サーバ３０１からダウンロードしてインストールされたサーバプログラムであり、図１４は、外部アプリ１７２が実行されている状態を示している。
【０１４５】
なお、本第２の実施形態に係る複合機１００では、複数のアプリケーション１３０のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション１３０とコントロールサービスのプロセスとがそれぞれ単一の構成とすることも可能である。また、各アプリケーション１３０は、アプリケーションごとに追加または削除することができる。すなわち、上述したように、外部アプリ１７２をインストール可能であり、かつアンインストールも可能となっている。
【０１４６】
図１５は、複合機１００のハードウェア構成の例を示すブロック図である。本図に示すように、この複合機１００は、コントローラ４１０とエンジン部(Engine)４６０とをＰＣＩ(Peripheral Component Interface)バスで接続した構成となる。コントローラ４１０は、複合機１００全体の制御と描画、通信、図示しない操作部からの入力を制御するコントローラである。エンジン部４６０は、ＰＣＩバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナまたはファクスユニットなどである。なお、このエンジン部４６０には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
【０１４７】
コントローラ４１０は、ＣＰＵ(Central Processing Unit)４１１と、ノースブリッジ（ＮＢ）４１３と、システムメモリ（ＭＥＭ−Ｐ）４１２と、サウスブリッジ（ＳＢ）４１４と、ローカルメモリ（ＭＥＭ−Ｃ）４１７と、ＡＳＩＣ(Application Specific Integrated Circuit)４１６と、ハードディスクドライブ（ＨＤＤ）１０３とを有し、ノースブリッジ４１３とＡＳＩＣ４１６との間をＡＧＰ(Accelerated Graphics Port)バス１５で接続した構成となる。
【０１４８】
ＣＰＵ４１１は、複合機１００の全体制御を行うものであり、ＮＢ４１３、ＭＥＭ−Ｐ１２およびＳＢ１４からなるチップセットを有し、このチップセットを介して他の機器と接続される。
【０１４９】
ＮＢ４１３は、ＣＰＵ４１１とＭＥＭ−Ｐ１２、ＳＢ４１４、ＡＧＰ４１５とを接続するためのブリッジであり、ＭＥＭ−Ｐ４１２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタおよびＡＧＰターゲットとを有する。
【０１５０】
ＭＥＭ−Ｐ４１２は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ＲＯＭ(Read Only Memory)４１２ａとＲＡＭ(Random Access Memory)４１２ｂとからなる。ＲＯＭ４１２ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ４１２ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
【０１５１】
ＳＢ４１４は、ＮＢ４１３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。このＳＢ４１４は、ＰＣＩバスを介してＮＢ４１３と接続されており、このＰＣＩバスには、ネットワークインターフェース（Ｉ／Ｆ）部なども接続される。
【０１５２】
ＡＳＩＣ４１６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ(Integrated Circuit)であり、ＡＧＰ４１５、ＰＣＩバス、ＨＤＤ１０３およびＭＥＭ−Ｃ４１７をそれぞれ接続するブリッジの役割を有する。このＡＳＩＣ４１６は、ＰＣＩターゲットおよびＡＧＰマスタと、ＡＳＩＣ４１６の中核をなすアービタ（ＡＲＢ）と、ＭＥＭ−Ｃ４１７を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のＤＭＡＣ(Direct Memory Access Controller)と、エンジン部４６０との間でＰＣＩバスを介したデータ転送をおこなうＰＣＩユニットとからなる。このＡＳＩＣ４１６には、ＰＣＩバスを介してＦＣＵ(Facsimile Control Unit)４３０、ＵＳＢ(Universal Serial Bus)４４０、ＩＥＥＥ１３９４(the Institute of Electrical and Electronics Engineers 1394)インターフェース４５０が接続される。操作表示部４２０はＡＳＩＣ４１６に直接接続されている。
【０１５３】
ＭＥＭ−Ｃ４１７は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、ＨＤＤ１０３は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。また、ＨＤＤ１０３は、ソフトウェア配信サーバ３０１からダウンロードされたサーバプログラムが格納される。
【０１５４】
ＡＧＰ４１５は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、ＭＥＭ−Ｐ４１２に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
【０１５５】
なお、複合機１００で実行されるインストールプログラムは、ＲＯＭなどに予め組み込まれて提供される。
【０１５６】
本第２の実施形態の複合機１００で実行されるインストールプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ、フレキシブルディスク（ＦＤ）、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【０１５７】
さらに、本第２の実施形態の複合機１００で実行されるインストールプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本第２の実施形態の複合機１００で実行されるインストールプログラムをインターネットなどのネットワーク経由で提供または配信するように構成しても良い。
【０１５８】
本第２の実施形態の複合機１００で実行されるインストールプログラムは、少なくとも上述したアプリインストール制御サービス１３１を含むモジュール構成となっており、実際のハードウェアとしては、例えばＣＰＵ４１１がＲＯＭ４１１ａからインストールプログラムを読み出して実行することによりアプリインストール制御サービス１３１が主記憶装置上にロードされ、アプリインストール制御サービス１３１が主記憶装置上に生成されるようになっている。
【０１５９】
また、本第２の実施形態の管理装置３０２、ソフトウェア配信サーバ３０１、ライセンス管理サーバ３００およびＷｅｂサーバ３０３は、ＣＰＵなどの制御装置と、ＲＯＭやＲＡＭなどの記憶装置と、ＨＤＤ、光ディスクドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１６０】
＜第２の実施形態の変形例＞
次に、上述の第２の実施形態の変形例について説明する。上述した第２の実施形態では、ソフトウェア配信サーバ３０１およびライセンス管理サーバ３００と、複合機１００との間で行われる処理を仲介装置２００を介して行っていた。本変形例では、仲介装置２００を介さずに直接的に、複合機１００と各種送受信を行うものである。
【０１６１】
図１６は、本変形例によるソフトウェア配信システムの一例のネットワーク構成図である。本変形例では、図１６に示すように、管理装置３０２と、ソフトウェア配信サーバ３０１と、ライセンス管理サーバ３００と、Ｗｅｂサーバ３０３と、複合機１００（複合機１００ａ、１００ｂ、１００ｃ）とがネットワーク３１０に接続された構成となっており、仲介装置を設けない構成となっている。
【０１６２】
ここで、管理装置３０２、ソフトウェア配信サーバ３０１、ライセンス管理サーバ３００およびＷｅｂサーバ３０３の構成については、上述した第２の実施形態と同様である。但し、管理装置３０２は、複合機１００から直接的に機器情報を受信し、また、インストール要求を直接的に複合機１００に対して送信する。
【符号の説明】
【０１６３】
５  ネットワーク
１０  プログラムサーバ
１２  プログラム管理部
１３  プログラム記憶部
１４，２３  プログラム情報記憶部
２０  クライアント装置
２２  制御部
２４  依存関係表示作成部
２５  画面表示部
２６  入力部
３０  ソフトウェア管理画面
４０  プログラム追加画面
５０  プログラム管理画面
６０  依存関係閲覧画面
７０，８０  依存関係表示画面
１００  複合機
１３１  アプリインストール制御サービス
２００  仲介装置
３０１  ソフトウェア配信サーバ
【先行技術文献】
【特許文献】
【０１６４】
【特許文献１】特開２００６−２６１９７０号公報
【図１】
2011170638.tif 000003
【図２】
2011170638.tif 000004
【図３】
2011170638.tif 000005
【図４】
2011170638.tif 000006
【図５】
2011170638.tif 000007
【図６】
2011170638.tif 000008
【図７】
2011170638.tif 000009
【図８】
2011170638.tif 000010
【図９】
2011170638.tif 000011
【図１０】
2011170638.tif 000012
【図１１】
2011170638.tif 000013
【図１２】
2011170638.tif 000014
【図１３】
2011170638.tif 000015
【図１４】
2011170638.tif 000016
【図１５】
2011170638.tif 000017
【図１６】
2011170638.tif 000018