(57)【要約】【課題】複数の実行環境を有する情報処理装置に関し、既存の処理に関連して追加する処理がある場合において、簡易な修正を加えるだけで処理の追加を実現可能にする構成を提供する。【解決手段】外部から送信されたデータを受信すると、ハイパーバイザ１０が、当該データを受け付けた受付ポートが転送対象ポート番号リストに存在するか否かを判定し、受付ポートが転送対象ポート番号リストに存在すると判定された場合には、当該データをＯＳ（Ａ）２０の転送用ポートに宛てて転送する。ハイパーバイザ１０からＯＳ（Ａ）２０の転送用ポートに宛てて転送されたデータは、ＯＳ（Ｂ）３０の対応するポートに宛てて転送され、そのポートに対応する補助機能の実行に用いられた後にＯＳ（Ａ）２０の処理用ポートに宛てて転送され、その処理用ポートに対応する基本機能の実行に用いられる。【選択図】図１
2011248790.tif 000002
【特許請求の範囲】
【請求項１】
第１処理の実行環境となる第１実行環境と、
第１処理に関連して追加された第２処理の実行環境となる第２実行環境と、
前記第１実行環境及び前記第２実行環境をそれぞれ仮想環境として動作させるための仮想化処理を行う仮想化処理部と、を備え、
前記第１実行環境は、第１処理の対象のデータを受け付ける第１受付手段と、第２処理の対象のデータを受け付ける第２受付手段と、前記第２受付手段により受け付けられたデータを前記第２実行環境へ転送する第１転送手段と、を有し、
前記第２実行環境は、第２処理の対象のデータを受け付ける第３受付手段と、前記第３受付手段により受け付けられて第２処理が実行されたデータを第１処理の対象のデータとして前記第１実行環境へ転送する第２転送手段と、を有し、
前記仮想化処理部は、外部から受信した第１処理の対象のデータを第２処理の対象のデータとして前記第１実行環境へ転送する第３転送手段を有する、
ことを特徴とする情報処理装置。
【請求項２】
前記第１実行環境において、前記第１受付手段に割り当てられた第１ポートと前記第２受付手段に割り当てられた第２ポートはそれぞれ異なるポートであり、
前記仮想化処理部の第３転送手段は、外部から第１ポートに宛てて送信された第１処理の対象のデータを、第２処理の対象のデータとして第２ポートに宛てて転送する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、前記第２実行環境に第２処理のプログラムを追加する追加手段と、前記追加手段により追加されたプログラムに対して関連付ける第１ポートを設定するポート設定手段と、を備えており、
前記仮想化処理部の第３転送手段は、前記ポート設定手段により前記プログラムに対して関連付けを設定された第１ポートに宛てたデータを外部から受信した場合に、当該データを前記プログラムに対応する第２ポートに宛てて転送する、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第１実行環境の第２受付手段に割り当てる第２ポートは、前記追加手段により第２処理のプログラムが追加されたことに伴って開設される、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第２実行環境の第３受付手段に割り当てる第３ポートは、前記追加手段により第２処理のプログラムが追加されたことに伴って開設される、
ことを特徴とする請求項３又は請求項４に記載の情報処理装置。
【請求項６】
第１処理の実行環境となる第１実行環境と、第１処理に関連して追加された第２処理の実行環境となる第２実行環境と、前記第１実行環境及び前記第２実行環境をそれぞれ仮想環境として動作させるための仮想化処理を行う仮想化処理部と、を備え、前記仮想化処理部が、外部から受信した第１処理の対象のデータを第２処理の対象のデータとして前記第１実行環境へ転送し、前記第２実行環境が、前記第１実行環境を介して転送された第２処理の対象のデータについて第２処理を実行し、第２処理が実行されたデータを第１処理の対象のデータとして前記第１実行環境へ転送する構成を有する情報処理装置が実現されるコンピュータに、
前記第１実行環境において動作させる機能として、第１処理の対象のデータを受け付ける第１受付機能と、第２処理の対象のデータを受け付ける第２受付機能と、前記第２受付手段により受け付けられたデータを前記第２実行環境へ転送する第１転送機能と、を実現させるためのプログラム。
【請求項７】
第１処理の実行環境となる第１実行環境と、第１処理に関連して追加された第２処理の実行環境となる第２実行環境と、前記第１実行環境及び前記第２実行環境をそれぞれ仮想環境として動作させるための仮想化処理を行う仮想化処理部と、を備え、前記仮想化処理部が、外部から受信した第１処理の対象のデータを第２処理の対象のデータとして前記第１実行環境へ転送し、前記第１実行環境が、第１処理の対象のデータを受信した場合には当該データについて第１処理を実行し、第２処理の対象のデータを受け付けた場合には当該データを前記第２実行環境へ転送する構成を有する情報処理装置が実現されるコンピュータに、
前記第２実行環境において動作させる機能として、第２処理の対象のデータを受け付ける第３受付機能と、前記第３受付機能により受け付けられて第２処理が実行されたデータを第１処理の対象のデータとして前記第１実行環境へ転送する第２転送機能と、を実現させるためのプログラム。
【請求項８】
第１処理の実行環境となる第１実行環境と、第１処理に関連して追加された第２処理の実行環境となる第２実行環境と、前記第１実行環境及び前記第２実行環境をそれぞれ仮想環境として動作させるための仮想化処理を行う仮想化処理部と、を備え、前記仮想化処理部が、前記第１実行環境が、第１処理の対象のデータを受信した場合には当該データについて第１処理を実行し、第２処理の対象のデータを受け付けた場合には当該データを前記第２実行環境へ転送し、前記第２実行環境が、前記第１実行環境を介して転送された第２処理の対象のデータについて第２処理を実行し、第２処理が実行されたデータを第１処理の対象のデータとして前記第１実行環境へ転送する構成を有する情報処理装置が実現されるコンピュータに、
前記仮想化処理部において動作させる機能として、外部から受信した第１処理の対象のデータを第２処理の対象のデータとして前記第１実行環境へ転送する第３転送機能を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来、印刷・複写・ファクシミリ等の機能を複合的に備えた複合機などにおいて、処理の実行環境を実現するためのオペレーティングシステム（ＯＳ）を複数用意し、これらのＯＳをハイパーバイザ上で仮想環境（仮想ＯＳ）として動作させる構成を採用することで、各機能に関する処理をその機能に適したＯＳで実行させることが行われている。
【０００３】
このような構成の装置に関し、以下のような技術が開示されている。
例えば、複数の仮想ＯＳが動作しているコンピュータシステムにおいて、第１のＯＳが外部からの通信パケットを全て受信し、そのうち第１のＯＳが使用しないパケットを第２のＯＳに転送する技術が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−５００３８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、複数の実行環境を有する情報処理装置に関し、既存の処理に関連して追加する処理がある場合において、簡易な修正を加えるだけで処理の追加を実現可能にする構成を提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に記載の本発明は、第１処理の実行環境となる第１実行環境と、第１処理に関連して追加された第２処理の実行環境となる第２実行環境と、前記第１実行環境及び前記第２実行環境をそれぞれ仮想環境として動作させるための仮想化処理を行う仮想化処理部と、を備え、前記第１実行環境は、第１処理の対象のデータを受け付ける第１受付手段と、第２処理の対象のデータを受け付ける第２受付手段と、前記第２受付手段により受け付けられたデータを前記第２実行環境へ転送する第１転送手段と、を有し、前記第２実行環境は、第２処理の対象のデータを受け付ける第３受付手段と、前記第３受付手段により受け付けられて第２処理が実行されたデータを第１処理の対象のデータとして前記第１実行環境へ転送する第２転送手段と、を有し、前記仮想化処理部は、外部から受信した第１処理の対象のデータを第２処理の対象のデータとして前記第１実行環境へ転送する第３転送手段を有する、ことを特徴とする情報処理装置である。
【０００７】
請求項２に記載の本発明は、請求項１に記載の情報処理装置において、前記第１実行環境において、前記第１受付手段に割り当てられた第１ポートと前記第２受付手段に割り当てられた第２ポートはそれぞれ異なるポートであり、前記仮想化処理部の第３転送手段は、外部から第１ポートに宛てて送信された第１処理の対象のデータを、第２処理の対象のデータとして第２ポートに宛てて転送する、ことを特徴とする。
【０００８】
請求項３に記載の本発明は、請求項２に記載の情報処理装置において、前記情報処理装置は、前記第２実行環境に第２処理のプログラムを追加する追加手段と、前記追加手段により追加されたプログラムに対して関連付ける第１ポートを設定するポート設定手段と、を備えており、前記仮想化処理部の第３転送手段は、前記ポート設定手段により前記プログラムに対して関連付けを設定された第１ポートに宛てたデータを外部から受信した場合に、当該データを前記プログラムに対応する第２ポートに宛てて転送する、ことを特徴とする。
【０００９】
請求項４に記載の本発明は、請求項３に記載の情報処理装置において、前記第１実行環境の第２受付手段に割り当てる第２ポートは、前記追加手段により第２処理のプログラムが追加されたことに伴って開設される、ことを特徴とする。
【００１０】
請求項５に記載の本発明は、請求項３又は請求項４に記載の情報処理装置において、前記第２実行環境の第３受付手段に割り当てる第３ポートは、前記追加手段により第２処理のプログラムが追加されたことに伴って開設される、ことを特徴とする。
【００１１】
請求項６に記載の本発明は、第１処理の実行環境となる第１実行環境と、第１処理に関連して追加された第２処理の実行環境となる第２実行環境と、前記第１実行環境及び前記第２実行環境をそれぞれ仮想環境として動作させるための仮想化処理を行う仮想化処理部と、を備え、前記仮想化処理部が、外部から受信した第１処理の対象のデータを第２処理の対象のデータとして前記第１実行環境へ転送し、前記第２実行環境が、前記第１実行環境を介して転送された第２処理の対象のデータについて第２処理を実行し、第２処理が実行されたデータを第１処理の対象のデータとして前記第１実行環境へ転送する構成を有する情報処理装置が実現されるコンピュータに、前記第１実行環境において動作させる機能として、第１処理の対象のデータを受け付ける第１受付機能と、第２処理の対象のデータを受け付ける第２受付機能と、前記第２受付手段により受け付けられたデータを前記第２実行環境へ転送する第１転送機能と、を実現させるためのプログラムである。
【００１２】
請求項７に記載の本発明は、第１処理の実行環境となる第１実行環境と、第１処理に関連して追加された第２処理の実行環境となる第２実行環境と、前記第１実行環境及び前記第２実行環境をそれぞれ仮想環境として動作させるための仮想化処理を行う仮想化処理部と、を備え、前記仮想化処理部が、外部から受信した第１処理の対象のデータを第２処理の対象のデータとして前記第１実行環境へ転送し、前記第１実行環境が、第１処理の対象のデータを受信した場合には当該データについて第１処理を実行し、第２処理の対象のデータを受け付けた場合には当該データを前記第２実行環境へ転送する構成を有する情報処理装置が実現されるコンピュータに、前記第２実行環境において動作させる機能として、第２処理の対象のデータを受け付ける第３受付機能と、前記第３受付機能により受け付けられて第２処理が実行されたデータを第１処理の対象のデータとして前記第１実行環境へ転送する第２転送機能と、を実現させるためのプログラムである。
【００１３】
請求項８に記載の本発明は、第１処理の実行環境となる第１実行環境と、第１処理に関連して追加された第２処理の実行環境となる第２実行環境と、前記第１実行環境及び前記第２実行環境をそれぞれ仮想環境として動作させるための仮想化処理を行う仮想化処理部と、を備え、前記仮想化処理部が、前記第１実行環境が、第１処理の対象のデータを受信した場合には当該データについて第１処理を実行し、第２処理の対象のデータを受け付けた場合には当該データを前記第２実行環境へ転送し、前記第２実行環境が、前記第１実行環境を介して転送された第２処理の対象のデータについて第２処理を実行し、第２処理が実行されたデータを第１処理の対象のデータとして前記第１実行環境へ転送する構成を有する情報処理装置が実現されるコンピュータに、前記仮想化処理部において動作させる機能として、外部から受信した第１処理の対象のデータを第２処理の対象のデータとして前記第１実行環境へ転送する第３転送機能を実現させるためのプログラムである。
【発明の効果】
【００１４】
請求項１に記載の本発明によると、複数の実行環境を有する情報処理装置に関し、既存の処理に関連して追加する処理がある場合において、簡易な修正を加えるだけで処理の追加を実現可能にする構成を提供することができる。
【００１５】
請求項２に記載の本発明によると、外部から受信したデータを仮想化処理部から第１実行環境に転送する際にポートを切り替えるだけで、既存の処理に関連して追加された処理を実行させることができる。
【００１６】
請求項３に記載の本発明によると、第２実行環境に追加された処理のプログラムに対し、第１実行環境に設けられた既存の処理に係るポートとの関連付けを設定するだけで、当該ポートに宛てた既存の処理に関連付けられたプログラムを実行させるようにすることができる。
【００１７】
請求項４に記載の本発明によると、第１実行環境のポートに係るリソースを節約することができる。
【００１８】
請求項５に記載の本発明によると、第２実行環境のポートに係るリソースを節約することができる。
【００１９】
請求項６〜８に記載の本発明によると、複数の実行環境を有する情報処理装置に関し、既存の処理に関連して追加する処理がある場合において、簡易な修正を加えるだけで処理の追加を実現可能にする構成をコンピュータに実現させるためのプログラムを提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施形態に係る情報処理装置の構成を例示する図である。
【図２】本発明の一実施形態に係る情報処理装置のポート設定画面を例示する図である。
【図３】本発明の一実施形態に係る情報処理装置の転送対象ポート番号リストを例示する図である。
【図４】本発明の一実施形態に係る情報処理装置の仮想化処理部における処理フローを例示する図である。
【図５】本発明の一実施形態に係る情報処理装置の第１実行環境における処理フローを例示する図である。
【図６】本発明の一実施形態に係る情報処理装置の第２実行環境における処理フローを例示する図である。
【図７】本発明の一実施形態に係る情報処理装置の主要なハードウェアを例示する図である。
【発明を実施するための形態】
【００２１】
本発明の一実施形態について、図面を参照して説明する。
なお、以下では、本発明の一実施形態に係る情報処理装置として、プリント・コピー・ファクシミリ等の機能を複合的に備えた複合機に適用した場合を例に説明するが、これに限定するものではない。
【００２２】
図１には、情報処理装置の一例に係る複合機の構成を例示してある。
本例の複合機は、コンピュータの物理的な構成要素であるハードウェア上でハイパーバイザ（仮想化処理部）１０を動作させ、このハイパーバイザ１０による仮想化処理のもとで、各機能に係る処理を実行するソフトウェアの実行環境であるＯＳ（Ａ）２０、ＯＳ（Ｂ）３０の各ＯＳを、仮想環境（仮想ＯＳ）として動作させるように構成されている。
また、本例の複合機には、各種データの記憶に用いられるメモリ４０、利用者（ユーザーやエンジニアなど）に対する情報の提示（表示）や操作入力の受け付けを行うためのユーザーインターフェース（ＵＩ）５０、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）に対応した機器や媒体などが接続されるＵＳＢポート６０等が設けられている。
【００２３】
ここで、本例では、通常印刷機能などの基本機能（既存の処理を提供する機能）をＯＳ（Ａ）２０側のプログラムで提供する構成となっており、ＯＳ（Ｂ）３０側には、利用者がそれぞれの環境に応じてカスタマイズしたプログラムなどの、前記基本機能に関連する補助機能（既存の処理に関連する処理を提供する機能）のプログラムを事後的にインストール（追加）できるようにしてある。
本例では、ＯＳ（Ａ）２０として、リアルタイムＯＳの一例であるＶｘＷｏｒｋｓ（登録商標）を用い、ＯＳ（Ｂ）１３として、汎用ＯＳの一例であるＬｉｎｕｘ（登録商標）を用いている。なお、リアルタイムＯＳとは、外部割込み等の処理要求に対する応答時間が一定の範囲内となるようにすること（即時応答性の確保）を重視して構成されたＯＳのことをいい、汎用ＯＳとは、リアルタイムＯＳほどは即時応答性の確保を重視しておらず、種々の場面で汎用的に利用されることを想定して構成されたＯＳのことをいう。
すなわち、本例では、リアルタイムＯＳを用いたＯＳ（Ａ）２０側に基本機能を設け、汎用ＯＳを用いたＯＳ（Ｂ）３０側に前記基本機能に関連する補助機能を設ける構成となっており、補助機能のプログラムの追加先として汎用ＯＳを用いることで、基本機能に関連する補助機能のプログラムの追加を簡易に行えるようにしている。
【００２４】
基本機能（本例では通常印刷機能）に関連する補助機能のプログラムとしては、例えば、圧縮された印刷データに対して伸張処理を施すプログラム、印刷データにおいて指定された印刷属性を書き換えるプログラム、印刷データにトレースデータ（データ追跡などに用いられるデータ）を付加するプログラム等のように、基本機能用のデータに対して加工処理を加えるものや、印刷データに付加されているトレースデータを読み取るプログラム、印刷データのイメージログ（印刷内容の記録）を保存するプログラム等のように、基本機能用のデータを用いて別の処理を行うものなどが挙げられる。
【００２５】
以下では、ＯＳ（Ａ）２０側において、基本機能のプログラムとして、ＬＰＤ（Ｌｉｎｅ  Ｐｒｉｎｔｅｒ  Ｄａｅｍｏｎ  Ｐｒｏｔｏｃｏｌ）２１、ＩＰＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｉｎｔｉｎｇ  Ｐｒｏｔｏｃｏｌ）２２の２つの印刷プロトコルのプログラムが動作し、ＯＳ（Ｂ）３０側において、補助機能のプログラムとして、ＬＰＤ２１用に受信した圧縮された印刷データに対して伸張処理を施す伸張処理プログラム３１（ＬＰＤ２１に関連する補助機能のプログラム）が動作する構成について説明する。
【００２６】
本例では、ハイパーバイザ１０、ＯＳ（Ａ）２０、ＯＳ（Ｂ）３０のそれぞれに、データ入出力のインターフェースとなるポートを有している。
具体的には、本例のハイパーバイザ１０は、ＬＰＤ２１用に割り当てられた５１５番ポート（Ｐ１１）と、ＩＰＰ２２用に割り当てられた６３１番ポート（Ｐ１２）を有する。
また、本例のＯＳ（Ａ）２０は、ＬＰＤ２１用に割り当てられた５１５番ポート（Ｐ２１）と、ＩＰＰ２２用に割り当てられた６３１番ポート（Ｐ２２）を処理用ポートとして有し、更に、これらの処理用ポートに対応する転送用ポートとして、ＬＰＤ２１用に割り当てられた１５１５番ポート（Ｐ２３）と、ＩＰＰ２２用に割り当てられた１６３１番ポート（Ｐ２４）を有する。
また、本例のＯＳ（Ｂ）３０は、ＬＰＤ２１に関連する伸張処理プログラム３１用に割り当てられた５１５番ポート（Ｐ３１）を有する。
【００２７】
以上のように、本例では、基本機能毎に、ハイパーバイザ１０におけるポート番号、ＯＳ（Ａ）２０における処理用ポートのポート番号、ＯＳ（Ｂ）３０における補助機能用のポート番号を一致させている。また、本例では、ＯＳ（Ａ）２０における処理用ポートのポート番号に１０００番を加算したものを転送用ポートとしている。
【００２８】
なお、上記のような構成に限定するものではなく、例えば、ハイパーバイザ１０におけるポート番号、ＯＳ（Ａ）２０における処理用ポートのポート番号、ＯＳ（Ｂ）３０における補助機能用のポート番号をそれぞれ異なるポート番号にしてもよい。また、例えば、転送用ポートについて、他の演算式により算出されるポートを転送用ポートに割り当てる構成や、転送用ポートへ割り当て可能なポート番号の範囲を予め定めておき、その中から空きのポート番号を転送用ポートに割り当てていく構成としてもよい。
また、このような他の構成を用いる場合には、各ポート番号の対応関係を設定した対応表を各部（ハイパーバイザ１０、ＯＳ（Ａ）２０、ＯＳ（Ｂ）３０など）から参照可能なメモリ領域に記憶させておき、後述するデータ転送の宛先となるポート番号を決定する際に参照するようにすればよい。
【００２９】
ハイパーバイザ１０、ＯＳ（Ａ）２０、ＯＳ（Ｂ）３０の各ポートは、後述する一部のポートを除いて開設（オープン）された状態となっており、すなわち、そのポートに宛てたデータの受け付け待ちの状態となっている。
一方、ＯＳ（Ａ）２０の転送用ポートのうち、補助機能を有しない基本機能の転送用ポートについては閉鎖（クローズ）された状態となっており、仮にそのポートに宛てたデータがあっても破棄される。本例では、補助機能（伸張処理プログラム３１）を有するＬＰＤ２１に係る転送用ポートである１５１５番ポート（Ｐ２３）については開設された状態となっており、補助機能を有しないＩＰＰ２２に係る転送用ポートである１６３１番ポート（Ｐ２４）については閉鎖された状態となっている。
【００３０】
次に、ＯＳ（Ａ）２０側の基本機能に関連する補助機能のプログラムをＯＳ（Ｂ）３０にインストールする際の処理について説明する。
本例の複合機は、種々の手法によるプログラムのインストールに対応しており、例えば、ＵＳＢポート６０に接続されたＵＳＢメモリからプログラムを読み込んでＯＳ（Ｂ）３０にインストールする方法や、外部のサーバ等からハイパーバイザ１０を介して送信されたプログラムをＯＳ（Ｂ）３０にインストールする方法などに対応している。なお、プログラムのインストール機能は、ハイパーバイザ１０、ＯＳ（Ａ）２０、ＯＳ（Ｂ）３０のいずれに設けられてもよい。
【００３１】
上記のようにしてＯＳ（Ｂ）３０に補助機能のプログラムがインストールされた後に、そのプログラムに割り当てるポートの設定が行われる。補助機能のプログラムに割り当てるポートの設定は、例えば、図２に例示するようなポート設定画面を用いて行われる。
図２のポート設定画面７０は、補助機能のプログラム（ファイル名）の指定を利用者から受け付けるプログラム指定部７１と、当該プログラムに割り当てるポート番号の指定を利用者から受け付けるポート番号指定部７２を有しており、プログラム指定部７１に指定されたプログラムに対し、ポート番号指定部７２に指定されたポート番号を割り当てることが設定される。図２の例では、“ｕｎｃｏｍｐｒｅｓｓ．ｅｘｅ”用（伸張処理プログラム３１用）のポートとして、ＬＰＤ２１用のポートと同じポート番号である５１５番ポート（Ｐ３１）を割り当てることが設定されており、すなわち、ＬＰＤ２１（基本機能）に対して伸張処理プログラム３１を補助機能として関連付けることが設定される。
【００３２】
補助機能用のプログラムに割り当てるポートの設定（基本機能と補助機能の関連付けの設定）が行われると、当該割り当てられたポートがＯＳ（Ｂ）３０において開設され、これに合わせて、当該補助機能が関連付けられた基本機能の転送用ポートがＯＳ（Ａ）２０において開設される。このような構成により、ポートが不必要に開設されることを防ぎ、ポートに係るリソースの節約を図っている。
【００３３】
また、補助機能用のプログラムに割り当てるポートの設定（基本機能と補助機能の関連付けの設定）が行われると、そのポート番号が、ＯＳ（Ａ）２０の転送用ポートを使用するポート番号として、ハイパーバイザ１０から参照可能なメモリ領域（本例ではメモリ４０）に記憶される。
図３には、転送用ポートを使用するポート番号をリスト形式で保持する転送対象ポート番号リストが例示されており、同図では、転送用ポートを使用するポート番号として５１５番ポート（ＬＰＤ２１用のポート）が設定されている。
なお、上記のような設定は一例に過ぎず、例えば、各ポート番号の対応関係を設定した対応表を用いる構成の場合には、利用者が自由に対応関係を設定できるようにすることもできる。
【００３４】
次に、本例の複合機に対して外部（例えば、利用者端末）からデータが送信された際の処理について説明する。
図４には、ハイパーバイザ１０における処理フローを例示してある。
ハイパーバイザ１０では、外部から送信されたデータを受信すると（ステップＳ１１）、当該データを受け付けた受付ポートのポート番号が転送対象ポート番号リストに存在するか否かを判定する（ステップＳ１２）。
テータの受付ポートのポート番号が転送対象ポート番号リストに存在しない（補助機能を有しない基本機能用のデータ）と判定された場合には、当該データをＯＳ（Ａ）２０の処理用ポート（受付ポートのポート番号と同じポート番号）に宛てて転送する（ステップＳ１３）。一方、テータの受付ポートのポート番号が転送対象ポート番号リストに存在する（補助機能を有する基本機能用のデータ）と判定された場合には、ＯＳ（Ａ）２０の処理用ポートに対応する転送用ポートのポート番号を取得し（ステップＳ１４）、当該取得したポート番号に係るＯＳ（Ａ）２０の転送用ポートに宛ててデータを転送する（ステップＳ１５）。
すなわち、本例のハイパーバイザ１０は、補助機能を有する基本機能用のデータを受信した場合に、ＯＳ（Ａ）２０における基本機能に係る処理の実行に先立って、ＯＳ（Ｂ）３０において補助機能に係る処理が実行されるように、受信データをＯＳ（Ａ）２０の転送用ポートに宛てて転送する機能を有する。
【００３５】
ハイパーバイザ１０による処理について具体例を挙げて説明すると、ハイパーバイザ１０の６３１番ポート（Ｐ１２）で受け付けられたデータ（ＩＰＰ２２用のデータ）については、転送対象ポート番号リストに６３１番ポートが存在しないため、ＯＳ（Ａ）２０の対応する処理用ポートである６３１番ポート（Ｐ２２）に宛てて転送される。一方、ハイパーバイザ１０の５１５番ポート（Ｐ１１）で受け付けられたデータ（ＬＰＤ２１用のデータ）については、転送対象ポート番号リストに５１５番ポートが存在するため、ＯＳ（Ａ）２０の対応する転送用ポートである１５１５番ポート（Ｐ２３）に宛てて転送される。
【００３６】
なお、本例では、ＯＳ（Ａ）２０において処理用ポートのポート番号に１０００を加算したものを転送用ポートとして用いているため、ハイパーバイザ１０では、受付ポートのポート番号に１０００を加算することで、ＯＳ（Ａ）２０の対応する転送用ポートを決定しているが、これに限定するものではない。例えば、処理用ポートのポート番号と転送用ポートのポート番号が他の関係式により表現される構成の場合には、その関係式に従って転送用ポートのポート番号を算出すればよい。また、例えば、各ポート番号の対応関係を設定した対応表をハイパーバイザ１０から参照可能に有する構成の場合には、その対応表から転送用ポートのポート番号を取得すればよい。
【００３７】
図５には、ＯＳ（Ａ）２０における処理フローを例示してある。
ＯＳ（Ａ）２０では、ハイパーバイザ１０から送信されたデータを受信すると（ステップＳ２１）、当該データを受け付けた受付ポートが転送用ポートか否かを判定する（ステップＳ２２）。
データの受付ポートが転送用ポートでない（処理用ポートである）と判定された場合には、当該データを用いてその受付ポート（処理用ポート）に係る基本機能のプログラムを実行する（ステップＳ２３）。一方、データの受付ポートが転送用ポートであると判定された場合には、その受付ポート（転送用ポート）に対応するＯＳ（Ｂ）３０のポートに宛ててデータを転送する（ステップＳ２４）。
すなわち、本例のＯＳ（Ａ）２０は、補助機能を有する基本機能用のデータを受信（転送用ポートで受信）した場合に、ＯＳ（Ａ）２０における基本機能に係る処理の実行に先立って、ＯＳ（Ｂ）３０において補助機能に係る処理が実行されるように、ＯＳ（Ｂ）３０に転送する機能を有する。
【００３８】
ＯＳ（Ａ）２０による処理について具体例を挙げて説明すると、ＯＳ（Ａ）２０の６３１番ポート（Ｐ２２）で受け付けられたデータ（ＩＰＰ２２用のデータ）については、６３１番ポート（Ｐ２２）は処理用ポートであるため、ＩＰＰ２２による印刷処理に用いられる。一方、ＯＳ（Ａ）２０の１５１５番ポート（Ｐ２３）で受け付けられたデータ（ＬＰＤ２１用のデータ）については、１５１５番ポート（Ｐ２３）は転送用ポートであるため、ＯＳ（Ｂ）３０の対応するポートである５１５番ポート（Ｐ３１）に宛てて転送される。
【００３９】
なお、本例では、ＯＳ（Ａ）２０において処理用ポートのポート番号に１０００を加算したものを転送用ポートとして用いているため、ＯＳ（Ａ）２０では、受付ポートのポート番号から１０００を減算することで、ＯＳ（Ａ）２０の対応する処理用ポートを決定しているが、これに限定するものではない。例えば、処理用ポートのポート番号と転送用ポートのポート番号が他の関係式により表現される構成の場合には、その関係式に従って処理用ポートのポート番号を逆算すればよい。また、例えば、各ポート番号の対応関係を設定した対応表をＯＳ（Ａ）２０から参照可能に有する構成の場合には、その対応表から処理用ポートのポート番号を取得すればよい。
【００４０】
図６には、ＯＳ（Ｂ）３０における処理フローを例示してある。
ＯＳ（Ｂ）３０では、ＯＳ（Ａ）２０から送信されたデータを受信すると（ステップＳ３１）、当該データを用いてその受付ポートに係る補助機能のプログラムを実行し（ステップＳ３２）、その後、補助機能のプログラムによる処理が実行されたデータを、ＯＳ（Ａ）２０の対応する処理用ポートに宛てて転送する（ステップＳ３３）。ＯＳ（Ｂ）３０からＯＳ（Ａ）２０の処理用ポートに転送されたデータは、その処理用ポートに対応する基本機能のプログラムの実行に用いられる。
すなわち、本例のＯＳ（Ｂ）３０は、補助機能を有する基本機能用のデータを受信した場合に、補助機能に係る処理を実行し、実行後にそのデータをＯＳ（Ａ）２０において基本機能に係る処理が実行されるように、ＯＳ（Ａ）２０の処理用ポートに宛てて転送する機能を有する。
【００４１】
ＯＳ（Ｂ）３０による処理について具体例を挙げて説明すると、ＯＳ（Ｂ）３０の５１５番ポート（Ｐ３１）で受け付けられたデータ（ＬＰＤ２１用のデータ）は、ＬＰＤ２１に関連する補助機能である伸張処理プログラム３１による伸張処理に用いられ、その結果のデータがＯＳ（Ａ）２０の対応する処理用ポートである５１５番ポート（Ｐ２１）に宛てて転送されて、ＬＰＤ２１による印刷処理に用いられる。
【００４２】
なお、本例では、ＯＳ（Ａ）２０における基本機能用の処理用ポートと同じポート番号のポートをＯＳ（Ｂ）３０における関連する補助機能用のポートとして用いているため、ＯＳ（Ｂ）３０では、受付ポートのポート番号と同じポート番号に宛てて、ＯＳ（Ａ）に対するデータの転送を行っているが、これに限定するものではない。例えば、各ポート番号の対応関係を設定した対応表をＯＳ（Ｂ）３０から参照可能に有する構成の場合には、その対応表から転送用ポートのポート番号を取得すればよい。
【００４３】
また、本例では、伸張処理プログラム３１による伸張処理結果のデータをＯＳ（Ａ）２０に転送しているが、例えば、印刷データのイメージログ（印刷内容の記録）を保存する機能を補助機能として設ける構成の場合には、受信したデータそのものを転送するようにしてもよい。すなわち、基本機能用のデータに対して加工処理を加える補助機能については、その処理結果のデータを転送すればよく、基本機能用のデータを用いて他の処理を行う補助機能については、受信したデータそのものを転送すればよい。
【００４４】
以上のように、本例の複合機では、外部から送信されたデータを受信すると、ハイパーバイザ１０が、当該データを受け付けた受付ポートが転送対象ポート番号リストに存在するか否かを判定し、受付ポートが転送対象ポート番号リストに存在すると判定された場合には、当該データは補助機能を有する基本機能の実行に用いるデータであるので、基本機能に関連する補助機能が当該基本機能に先立って実行されるようにＯＳ（Ａ）２０の転送用ポートに宛てて転送し、一方、受付ポートが転送対象ポート番号リストに存在しないと判定された場合には、当該データは補助機能を有しない基本機能の実行に用いるデータであるので、そのまま基本機能を実行させるようにＯＳ（Ａ）２０の処理用ポートに宛てて転送する。この結果、ハイパーバイザ１０からＯＳ（Ａ）２０の処理用ポートに宛てて転送されたデータは、その処理用ポートに対応する基本機能の実行に用いられ、一方、ハイパーバイザ１０からＯＳ（Ａ）２０の転送用ポートに宛てて転送されたデータは、ＯＳ（Ｂ）３０の対応するポートに宛てて転送され、そのポートに対応する補助機能の実行に用いられた後にＯＳ（Ａ）２０の処理用ポートに宛てて転送され、その処理用ポートに対応する基本機能の実行に用いられる。
【００４５】
なお、本例の複合機では、各プログラム毎に転送用ポートを設けてあるが、複数のプログラムで転送用ポートを共有するように構成してもよい。
また、本例の複合機では、転送先となるポートを切り替えることで、基本機能に関連する補助機能を当該基本機能に先立って実行させるように制御しているが、他の手法による制御を行うようにしてもよく、例えば、ＩＰアドレスやＨＴＴＰのパスの切り替えにより、基本機能に関連する補助機能を当該基本機能に先立って実行させるような制御を行うようにしてもよい。
また、本例の複合機では、基本機能を設けるＯＳと補助機能を設けるＯＳをそれぞれ１つずつにしているが、これらは複数であってもよく、基本機能が設けられたＯＳと当該基本機能に関連する補助機能が設けられたＯＳとの対応が特定可能な構成であればよい。
【００４６】
図７には、本例の複合機（情報処理装置の一例）として動作するコンピュータの主要なハードウェアを例示してある。
本例では、各種演算処理を行うＣＰＵ８１、ＣＰＵ８１の作業領域となるＲＡＭ８２や基本的な制御プログラムを記録したＲＯＭ８３等の主記憶装置、本発明の一実施形態に係るプログラムや各種データを記憶する補助記憶装置（例えば、ＨＤＤ等の磁気ディスクや、フラッシュメモリ等の書き換え可能な不揮発性メモリなど）８４、各種情報を表示出力する表示装置等の出力機器及び操作者により入力操作に用いられる操作ボタン・タッチパネル等の入力機器とのインターフェースである入出力Ｉ／Ｆ８５、他の装置との間で有線又は無線により通信を行うインターフェースである通信Ｉ／Ｆ８６、等のハードウェア資源を有するコンピュータにより構成されている。
そして、本発明の一実施形態に係るプログラムを補助記憶装置８４等から読み出してＲＡＭ８２に展開し、これをＣＰＵ８１により実行させることで、本発明の一実施形態に係る情報処理装置をコンピュータ上に実現している。
【００４７】
なお、本発明の一実施形態に係るプログラムは、例えば、当該プログラムを記憶したＣＤ−ＲＯＭ等の外部記憶媒体から読み込む形式や、通信回線等を介して受信する形式などにより、本例に係るコンピュータに設定される。
また、本例のようなソフトウェア構成により情報処理装置を実現する態様に限られず、専用のハードウェアモジュールを用いて実現するようにしてもよい。
【符号の説明】
【００４８】
１０：ハイパーバイザ、  ２０：ＯＳ（Ａ）、  ３０：ＯＳ（Ｂ）、  ４０：メモリ、  ５０：ＵＩ、  ６０：ＵＳＢポート、
２１：ＬＰＤ、  ２２：ＩＰＰ、  ２３：伸張処理プログラム、
Ｐ１１、Ｐ１２、Ｐ２１〜Ｐ２４、Ｐ３１：ポート
【図１】
2011248790.tif 000003
【図２】
2011248790.tif 000004
【図３】
2011248790.tif 000005
【図４】
2011248790.tif 000006
【図５】
2011248790.tif 000007
【図６】
2011248790.tif 000008
【図７】
2011248790.tif 000009