(57)【要約】【課題】デバイスが内蔵されているユニットに別のユニットが接続された後も、デバイスが内蔵されているユニット内からデバイスにアクセスできるようにする。【解決手段】デバイス１０７と、デバイス１０７にアクセスするアプリケーション実行部１０２と、アプリケーション実行部１０２からデバイス１０７に至る第１の経路とが含まれる基本ユニット１０１に拡張ユニット１０３が接続された際に、バックエンドドライバ切替え部１１７とデバイスＩ／Ｆ切替え部１１５が、アプリケーション実行部１０２がデバイス１０７にアクセスする経路を、第１の経路から、アプリケーション実行部１０２から拡張ユニット１０３を経由してデバイス１０７に至る代替経路に切り替える。【選択図】図１
2015108912.tif 000002
【特許請求の範囲】
【請求項１】
デバイスと、前記デバイスにアクセスする第１のエレメントと、前記第１のエレメントから前記デバイスに至る第１の経路とが含まれる第１のユニットに、第２のユニットが接続された際に、
前記第１のエレメントが前記デバイスにアクセスする経路を、
前記第１の経路から、
前記第１のエレメントから前記第２のユニットを経由して前記デバイスに至る代替経路に切り替える経路切替え部を有することを特徴とする制御装置。
【請求項２】
前記経路切替え部は、
前記第１のユニットに前記第２のユニットが接続される前は、
前記第１のエレメントからの前記デバイスに対するアクセス要求を前記第１の経路から前記デバイスに到達させ、
前記第１のユニットに前記第２のユニットが接続された後は、
前記第１のエレメントからの前記デバイスに対するアクセス要求を前記代替経路から前記デバイスに到達させることを特徴とする請求項１に記載の制御装置。
【請求項３】
前記経路切替え部は、
前記第１のユニットに前記第２のユニットが接続される前は、
前記第１のエレメントからのアクセス要求に対する前記デバイスからの応答を前記第１の経路から前記第１のエレメントに到達させ、
前記第１のユニットに前記第２のユニットが接続された後は、
前記第１のエレメントからのアクセス要求に対する前記デバイスからの応答を前記代替経路から前記第１のユニットに到達させることを特徴とする請求項２に記載の制御装置。
【請求項４】
前記経路切替え部は、
前記デバイスと、前記第１のエレメントと、第１のインターコネクトと、前記第１の経路と、前記第１のエレメントから前記第１のインターコネクトに至る第２の経路と、前記第１のインターコネクトから前記デバイスに至る第３の経路とが含まれる第１のユニットの前記第１のインターコネクトに、前記デバイスにアクセスする第２のエレメントと、第２のインターコネクトと、前記第２のエレメントから前記第２のインターコネクトに至る第４の経路と、前記第２のインターコネクトから前記第２の経路に至る第５の経路とが含まれる第２のユニットの前記第２のインターコネクトが接続された際に、
前記第１のエレメントが前記デバイスにアクセスする経路を、
前記第１の経路から、
前記第２の経路と、前記第１のインターコネクトから前記第２のインターコネクトへの経路と、前記第５の経路と、前記第４の経路と、前記第２のインターコネクトから前記第１のインターコネクトへの経路と、前記第３の経路とが用いられた代替経路に切り替えることを特徴とする請求項１に記載の制御装置。
【請求項５】
前記経路切替え部は、
前記第１のユニットに前記第２のユニットが接続された際に、
前記第４の経路と、前記第２のインターコネクトから前記第１のインターコネクトへの経路と、前記第３の経路とで構成される経路を、前記第２のエレメントが前記デバイスにアクセスする経路として設定することを特徴とする請求項４に記載の制御装置。
【請求項６】
前記経路切替え部は、
前記第１のユニットに前記第２のユニットが接続された際に、
前記第１のエレメントからアクセス要求を受信するフロントエンドドライバの通信先を、前記第１の経路に含まれるバックエンドドライバから前記第５の経路に含まれるバックエンドドライバに切り替え、前記デバイスの通信先を、前記第１の経路に含まれるデバイスインタフェースから前記第４の経路に含まれるデバイスインタフェースに切り替えて、
前記第１のエレメントが前記デバイスにアクセスする経路を、前記第１の経路から前記代替経路に切り替えることを特徴とする請求項４に記載の制御装置。
【請求項７】
前記制御装置は、更に、
前記第１のユニットに前記第２のユニットが接続されたことを検出する接続検出部を有し、
前記経路切替え部は、
バックエンドドライバを切り替えるバックエンドドライバ切替え部と、
デバイスインタフェースを切り替えるデバイスインタフェース切替え部とを有し、
前記バックエンドドライバ切替え部は、
前記接続検出部から前記第１のユニットに前記第２のユニットが接続されたことを通知された際に、前記フロントエンドドライバの通信先を前記第５の経路に含まれるバックエンドドライバに切り替え、
前記デバイスインタフェース切替え部は、
前記接続検出部から前記第１のユニットに前記第２のユニットが接続されたことを通知された際に、前記デバイスの通信先を前記第４の経路に含まれるデバイスインタフェースに切り替えることを特徴とする請求項６に記載の制御装置。
【請求項８】
前記制御装置は、更に、
前記第１のユニットに前記第２のユニットが接続されたことを検出する接続検出部を有し、
前記経路切替え部は
バックエンドドライバを切り替えるバックエンドドライバ切替え部と、
デバイスインタフェースを切り替えるデバイスインタフェース切替え部とを有し、
前記デバイスインタフェース切替え部は、
前記接続検出部から前記第１のユニットに前記第２のユニットが接続されたことを通知された際に、前記デバイスの通信先を前記第４の経路に含まれるデバイスインタフェースに切り替え、
前記バックエンドドライバ切替え部は、
前記デバイスの通信先のデバイスインタフェースが前記第１の経路に含まれるデバイスインタフェースか前記第４の経路に含まれるデバイスインタフェースであるかを判断し、前記デバイスの通信先のデバイスインタフェースが前記第４の経路に含まれるデバイスインタフェースである場合に、前記フロントエンドドライバの通信先を前記第５の経路に含まれるバックエンドドライバに切り替えることを特徴とする請求項６に記載の制御装置。
【請求項９】
デバイスと、前記デバイスにアクセスする第１のエレメントと、前記第１のエレメントから前記デバイスに至る第１の経路とが含まれる第１のユニットと、
第２のユニットとを有し、
前記第１のユニットは、
前記第１のユニットに前記第２のユニットが接続された際に、
前記第１のエレメントが前記デバイスにアクセスする経路を、
前記第１の経路から、
前記第１のエレメントから前記第２のユニットを経由して前記デバイスに至る代替経路に切り替える経路切替え部を有することを特徴とする情報処理システム。
【請求項１０】
前記情報処理システムは、
前記デバイスと、前記第１のエレメントと、第１のインターコネクトと、前記第１の経路と、前記第１のエレメントから前記第１のインターコネクトに至る第２の経路と、前記第１のインターコネクトから前記デバイスに至る第３の経路とが含まれる第１のユニットと、
前記デバイスにアクセスする第２のエレメントと、第２のインターコネクトと、前記第２のエレメントから前記第２のインターコネクトに至る第４の経路と、前記第２のインターコネクトから前記第２の経路に至る第５の経路とが含まれる第２のユニットとを有し、
前記経路切替え部は、
前記第１のインターコネクトに前記第２のインターコネクトが接続された際に、
前記第１のエレメントが前記デバイスにアクセスする経路を、
前記第１の経路から、
前記第２の経路と、前記第１のインターコネクトから前記第２のインターコネクトへの経路と、前記第５の経路と、前記第４の経路と、前記第２のインターコネクトから前記第１のインターコネクトへの経路と、前記第３の経路とが用いられた代替経路に切り替えることを特徴とする請求項９に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスにアクセスするための経路を切り替える技術に関する。
【背景技術】
【０００２】
従来のカーナビゲーション装置のような情報処理装置は、当該情報処理装置に内蔵したハードディスクなどの装置内蔵デバイスへ外部装置がアクセスする場合に、装置内蔵デバイスへと通じるインタフェースをスイッチにより外部装置と直接接続するように切り替えることで、外部装置が装置内蔵デバイスへアクセスできるようにしている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１８３１３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方式では、デバイスが内蔵されている基本ユニット（特許文献１の情報処理装置）に別のユニットである拡張ユニット（特許文献１の外部装置）が接続されると、拡張ユニット内からデバイスにアクセスするための経路に切り替わり、基本ユニット内からのデバイスへのアクセスができなくなり、基本ユニットが正常に動作しなくなるという課題がある。
【０００５】
この発明は、上記のような課題を解決することを主な目的としており、デバイスが内蔵されているユニットに別のユニットが接続された後も、デバイスが内蔵されているユニット内からデバイスにアクセスでき、デバイスが内蔵されているユニットが正常に動作できるようにすることを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る制御装置は、
デバイスと、前記デバイスにアクセスする第１のエレメントと、前記第１のエレメントから前記デバイスに至る第１の経路とが含まれる第１のユニットに、第２のユニットが接続された際に、
前記第１のエレメントが前記デバイスにアクセスする経路を、
前記第１の経路から、
前記第１のエレメントから前記第２のユニットを経由して前記デバイスに至る代替経路に切り替える経路切替え部を有することを特徴とする。
【発明の効果】
【０００７】
本発明では、第１のユニットに第２のユニットが接続された際に、第１のエレメントがデバイスにアクセスするための経路を、第２のユニットを経由する代替経路に切り替える。
このため、第１のユニットに第２のユニットが接続された後も、第１のユニット内の第１のエレメントはデバイスにアクセスすることができ、第１のユニットが正常に動作できる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係る情報処理システムの構成例を示す図。
【図２】実施の形態１に係るバックエンドドライバ切替え動作の例を示すフローチャート図。
【図３】実施の形態１に係るデバイスＩ／Ｆ（インタフェース）切替え動作の例を示すフローチャート図。
【図４】実施の形態１に係る基本ユニットのデバイスアクセス動作を示すフローチャート図。
【図５】実施の形態１に係る拡張ユニットのデバイスアクセス動作を示すフローチャート図。
【図６】実施の形態２に係るバックエンドドライバ切替え動作の例を示すフローチャート図。
【図７】実施の形態１に係る拡張ユニットの接続前の経路を示す図。
【図８】実施の形態１に係る拡張ユニットの接続後の経路を示す図。
【図９】実施の形態１に係る拡張ユニットの接続後の経路を示す図。
【図１０】実施の形態１及び２に係る基本ユニットのハードウェア構成例を示す図。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１は、本実施の形態に係る情報処理システムの構成例を示す。
本実施の形態に係る情報処理システムは、基本ユニット１０１と拡張ユニット１０３で構成される。
【００１０】
図１において、基本ユニット１０１はアプリケーション実行部１０２を動作させることで機能を提供する情報処理装置である。
同様に拡張ユニット１０３はアプリケーション実行部１０４を動作させることで機能を提供する情報処理装置である。
基本ユニット１０１にはデバイス１０７が内蔵されている一方で、拡張ユニット１０３にはデバイスが内蔵されていない。
拡張ユニット１０３は基本ユニット１０１に接続して、デバイス１０７を利用する。
なお、基本ユニット１０１は第１のユニットの例に相当し、拡張ユニット１０３は第２のユニットの例に相当する。
【００１１】
アプリケーション実行部１０２及びアプリケーション実行部１０４は、アプリケーションプログラムを実行する。
アプリケーション実行部１０２及びアプリケーション実行部１０４は、アプリケーションプログラムの実行に必要なデータやプログラムの読出しや書込みをデバイス１０７へアクセスして実行する。
デバイス１０７へアクセスする場合には、アプリケーション実行部１０２及びアプリケーション実行部１０４は、デバイス１０７にそれぞれアクセス要求を送信する。
デバイス１０７は、例えば、ハードディスク装置である。
アプリケーション実行部１０２は第１のエレメントの例に相当し、アプリケーション実行部１０４は第２のエレメントの例に相当する。
【００１２】
基本ユニット１０１は、拡張ユニット１０３が存在しない場合でも単独で動作することが可能である。
基本ユニット１０１のインターコネクト１０５へ拡張ユニット１０３のインターコネクト１０５を接続することで、拡張ユニット１０３が動作することが可能となる。
なお、インターコネクト１０５は第１のインターコネクトの例に相当し、インターコネクト１０６は第２のインターコネクトの例に相当する。
【００１３】
フロントエンドドライバ１０８は、アプリケーション実行部１０２に対して、デバイスドライバと同様の動作を模擬する仮想デバイスドライバである。
フロントエンドドライバ１０８は、アプリケーション実行部１０２からのアクセス要求を受信する。
フロントエンドドライバ１０８は、アプリケーション実行部１０２からのアクセス要求をバックエンドドライバ切替え部１１７へ転送する。
【００１４】
バックエンドドライバ切替え部１１７は、アプリケーション実行部１０２からのアクセス要求の中継先をバックエンドドライバ１０９とするか、インターコネクト１０５及びインターコネクト１０６を経由したバックエンドドライバ１１０とするかを判断し、アクセス要求を中継する中継経路を確立する。
バックエンドドライバ切替え部１１７は、後述するように、デバイスＩ／Ｆ切替え部１１５とともに、基本ユニット１０１に拡張ユニット１０３が接続された際に、アプリケーション実行部１０２がデバイス１０７にアクセスする経路を、アプリケーション実行部１０２から拡張ユニット１０３を経由してデバイス１０７に至る経路に切り替えており、経路切替え部の例に相当する。
【００１５】
バックエンドドライバ１０９は、アプリケーション実行部１０２からのアクセス要求をデバイスドライバ１１１へ転送する。
バックエンドドライバ１１０は、アプリケーション実行部１０２からのアクセス要求をデバイスドライバ１１２へ転送する。
【００１６】
デバイスドライバ１１１は、デバイスＩ／Ｆ１１３を経由してデバイスＩ／Ｆ切替え部１１５へアクセス要求を転送する。
デバイスドライバ１１２は、デバイスＩ／Ｆ１１４、インターコネクト１０５及びインターコネクト１０６を経由してデバイスＩ／Ｆ切替え部１１５へアクセス要求を転送する。
【００１７】
デバイスＩ／Ｆ切替え部１１５は、デバイスＩ／Ｆ１１３と、インターコネクト１０５及びインターコネクト１０６を経由したデバイスＩ／Ｆ１１４との間で経路を切り替える。
デバイスＩ／Ｆ切替え部１１５は、前述のバックエンドドライバ切替え部１１７とともに、経路切替え部の例に相当する。
【００１８】
接続検出部１１６は、インターコネクト１０５に対するインターコネクト１０６の接続有無を検出する。
すなわち、接続検出部１１６は、基本ユニット１０１に拡張ユニット１０３が接続されたか否かを検出する。
【００１９】
なお、デバイスＩ／Ｆ切替え部１１５、接続検出部１１６、バックエンドドライバ切替え部１１７を合わせたものが、制御装置に相当する。
【００２０】
本実施の形態では、アプリケーション実行部１０２−フロントエンドドライバ１０８−バックエンドドライバ切替え部１１７−バックエンドドライバ１０９−デバイスドライバ１１１−デバイスＩ／Ｆ１１３−デバイスＩ／Ｆ切替え部１１５−デバイス１０７という経路を、第１の経路と呼ぶ。
また、アプリケーション実行部１０２−フロントエンドドライバ１０８−バックエンドドライバ切替え部１１７−インターコネクト１０５という経路を、第２の経路と呼ぶ。
また、インターコネクト１０５−デバイスＩ／Ｆ切替え部１１５−デバイス１０７という経路を、第３の経路と呼ぶ。
更に、アプリケーション実行部１０４−デバイスドライバ１１２−デバイスＩ／Ｆ１１４−インターコネクト１０６という経路を、第４の経路と呼ぶ。
また、インターコネクト１０６−バックエンドドライバ１１０という経路を、第５の経路と呼ぶ。
図１の（１）〜（５）は、それぞれ、第１の経路〜第５の経路を示す。
そして、本実施の形態では、基本ユニット１０１に拡張ユニット１０３が接続されるまでは、図７に示すように、アプリケーション実行部１０２からのアクセス要求は第１の経路からデバイス１０７に到達する。
基本ユニット１０１に拡張ユニット１０３が接続された後は、図８に示すように、アプリケーション実行部１０４からのアクセス要求は、第４の経路と、インターコネクト１０６からインターコネクト１０５への経路と、第３の経路とで構成される経路から、デバイス１０７に到達する。
また、基本ユニット１０１に拡張ユニット１０３が接続された後は、図９に示すように、アプリケーション実行部１０２からのアクセス要求は、第２の経路と、インターコネクト１０５からインターコネクト１０６への経路と、第５の経路と、第４の経路（アプリケーション実行部１０４を除く）と、インターコネクト１０６からインターコネクト１０５への経路と、第３の経路とで構成される経路から、デバイス１０７に到達する。
図９に示す経路を代替経路という。
このように、本実施の形態では、バックエンドドライバ切替え部１１７とデバイスＩ／Ｆ切替え部１１５は、基本ユニット１０１に拡張ユニット１０３が接続される際に、アプリケーション実行部１０２がデバイス１０７にアクセスする経路を、第１の経路（図７）から代替経路（図９）に切り替える。
【００２１】
次に動作について説明する。
【００２２】
図２は、バックエンドドライバ切替え部１１７における、バックエンドドライバ切替え動作を示すフローチャートである。
【００２３】
まず、接続検出部１１６が、拡張ユニット１０３が基本ユニット１０１に接続されているかを検出し（Ｓ２０１）、検出結果をバックエンドドライバ切替え部１１７に通知する。
拡張ユニット１０３が基本ユニット１０１に接続されている場合（Ｓ２０２でＹＥＳ）は、バックエンドドライバ切替え部１１７が、フロントエンドドライバ１０８の通信先を、インターコネクト１０５およびインターコネクト１０６を経由したバックエンドドライバ１１０とする設定を行い、アプリケーション実行部１０２がデバイス１０７にアクセスするための経路を代替経路にする（Ｓ２０３）。
つまり、バックエンドドライバ切替え部１１７は、フロントエンドドライバ１０８から受信したアクセス要求の転送先としてインターコネクト１０５を記憶する。
一方、拡張ユニット１０３が基本ユニット１０１に接続されていない場合（Ｓ２０２でＮＯ）は、バックエンドドライバ切替え部１１７は、フロントエンドドライバ１０８の通信先をバックエンドドライバ１０９とする設定を行い、アプリケーション実行部１０２がデバイス１０７にアクセスするための経路を第１の経路にする（Ｓ２０４）。
つまり、バックエンドドライバ切替え部１１７は、フロントエンドドライバ１０８から受信したアクセス要求の転送先としてバックエンドドライバ１０９を記憶する。
【００２４】
図３はデバイスＩ／Ｆ切替え部１１５における、デバイスＩ／Ｆ切替え動作を示すフローチャートである。
【００２５】
まず、接続検出部１１６が、拡張ユニット１０３が基本ユニット１０１に接続されているかを検出し（Ｓ３０１）、検出結果をデバイスＩ／Ｆ切替え部１１５に通知する。
拡張ユニット１０３が基本ユニット１０１に接続されている場合（Ｓ３０２でＹＥＳ）は、デバイスＩ／Ｆ切替え部１１５が、デバイス１０７の通信先を拡張ユニット１０３側のデバイスＩ／Ｆ１１４とする設定を行い、アプリケーション実行部１０２がデバイス１０７にアクセスするための経路を代替経路にする（Ｓ３０３）。
つまり、デバイスＩ／Ｆ切替え部１１５は、アクセス要求の受信元としてインターコネクト１０５を記憶する。
一方、拡張ユニット１０３が基本ユニット１０１に接続されていない場合（Ｓ３０２でＮＯ）は、デバイスＩ／Ｆ切替え部１１５は、デバイス１０７の通信先を基本ユニット１０１側のデバイスＩ／Ｆ１１３とする設定を行い、アプリケーション実行部１０２がデバイス１０７にアクセスするための経路を第１の経路にする（Ｓ３０４）。
つまり、デバイスＩ／Ｆ切替え部１１５は、アクセス要求の受信元としてデバイスＩ／Ｆ１１３を記憶する。
【００２６】
図４は基本ユニット１０１側のアプリケーション実行部１０２からデバイス１０７へアクセスする動作を示すフローチャートである。
【００２７】
まず、アプリケーション実行部１０２がフロントエンドドライバ１０８へデバイス１０７へのアクセス要求を送信し（Ｓ４０１）、フロントエンドドライバ１０８が当該アクセス要求をバックエンドドライバ切替え部１１７に転送する。
拡張ユニット１０３が基本ユニット１０１に接続され、図２のＳ２０３及び図３のＳ３０３によりアプリケーション実行部１０２からデバイス１０７へのアクセス経路として代替経路が設定されている場合（Ｓ４０２でＹＥＳ）は、バックエンドドライバ切替え部１１７がアクセス要求をインターコネクト１０５に転送し、更に、インターコネクト１０５がアクセス要求をインターコネクト１０５に転送して拡張ユニット１０３に到達させる（Ｓ４０３）。
更に、インターコネクト１０６がアクセス要求をバックエンドドライバ１１０に転送し（Ｓ４０４）、バックエンドドライバ１１０がアクセス要求をデバイスドライバ１１２に転送する（Ｓ４０５）。
デバイスドライバ１１２はアクセス要求をデバイスＩ／Ｆ１１４に転送し（Ｓ４０６）、デバイスＩ／Ｆ１１４はアクセス要求をインターコネクト１０６に転送し、更に、インターコネクト１０６がアクセス要求をインターコネクト１０５に転送して基本ユニット１０１に到達させる（Ｓ４０７）。
基本ユニット１０１では、インターコネクト１０５がアクセス要求をデバイスＩ／Ｆ切替え部１１５に転送し、デバイスＩ／Ｆ切替え部１１５がアクセス要求をデバイス１０７に転送してデバイス１０７に到達させる（Ｓ４１１）。
【００２８】
一方、Ｓ４０２において拡張ユニット１０３が基本ユニット１０１に接続されていない場合（Ｓ４０２でＮＯ）は、バックエンドドライバ切替え部１１７がアクセス要求をバックエンドドライバ１０９に転送し（Ｓ４０８）、バックエンドドライバ１０９がアクセス要求をデバイスドライバ１１１に転送し（Ｓ４０９）、更に、デバイスドライバ１１１がアクセス要求をデバイスＩ／Ｆ１１３に転送する（Ｓ４１０）。
そして、デバイスＩ／Ｆ１１３がアクセス要求をデバイスＩ／Ｆ切替え部１１５に転送し、デバイスＩ／Ｆ切替え部１１５がアクセス要求をデバイス１０７に転送してデバイス１０７に到達させる（Ｓ４１１）。
【００２９】
以上の図４のフローでは、アプリケーション実行部１０２からデバイス１０７へのアクセス要求の転送を説明したが、アクセス要求に対するデバイス１０７からの応答は、図４と同じ経路を逆の順序で転送される。
すなわち、基本ユニット１０１に拡張ユニット１０３が接続されている場合は、アクセス要求に対する応答は、デバイス１０７−デバイスＩ／Ｆ切替え部１１５−インターコネクト１０５−インターコネクト１０６−デバイスＩ／Ｆ１１４−デバイスドライバ１１２−バックエンドドライバ１１０−インターコネクト１０６−インターコネクト１０５−バックエンドドライバ切替え部１１７−フロントエンドドライバ１０８−アプリケーション実行部１０２という経路で転送される。
また、基本ユニット１０１に拡張ユニット１０３が接続されていない場合は、アクセス要求に対する応答は、デバイス１０７−デバイスＩ／Ｆ切替え部１１５−デバイスＩ／Ｆ１１３−デバイスドライバ１１１−バックエンドドライバ１０９−バックエンドドライバ切替え部１１７−フロントエンドドライバ１０８−アプリケーション実行部１０２という経路で転送される。
【００３０】
図５は拡張ユニット１０３側のアプリケーション実行部１０４からデバイス１０７へアクセスする動作を示すフローチャートである。
【００３１】
まず、アプリケーション実行部１０４がデバイスドライバ１１２へアクセス要求を送信する（Ｓ５０１）。
デバイスドライバ１１２はデバイスＩ／Ｆ１１４へアクセス要求を転送する（Ｓ５０２）。
デバイスＩ／Ｆ１１４はアクセス要求をインターコネクト１０６に転送し、更に、インターコネクト１０６がアクセス要求をインターコネクト１０５に転送して基本ユニット１０１に到達させる（Ｓ５０３）。
基本ユニット１０１では、インターコネクト１０５がアクセス要求をデバイスＩ／Ｆ切替え部１１５に転送し、デバイスＩ／Ｆ切替え部１１５がアクセス要求をデバイス１０７に転送してデバイス１０７に到達させる（Ｓ５０４）。
【００３２】
以上の図５のフローでは、アプリケーション実行部１０４からデバイス１０７へのアクセス要求の転送を説明したが、アクセス要求に対するデバイス１０７からの応答は、図５と同じ経路を逆の順序で転送される。
すなわち、アクセス要求に対する応答は、デバイス１０７−デバイスＩ／Ｆ切替え部１１５−インターコネクト１０５−インターコネクト１０６−デバイスＩ／Ｆ１１４−デバイスドライバ１１２−アプリケーション実行部１０４という経路で転送される。
【００３３】
以上のように、基本ユニット１０１へ拡張ユニット１０３を接続した場合は、基本ユニット１０１内のアプリケーション実行部１０２からデバイス１０７へのアクセスを、拡張ユニット１０３を経由したアクセス経路で実行可能としているので、拡張ユニット１０３を接続した場合でも基本ユニット１０１が通常動作することができる。
【００３４】
実施の形態２．
以上の実施の形態１では、バックエンドドライバ切替え部１１７において、第１の経路と代替経路のいずれの経路を使用するかを、接続検出部１１６からの拡張ユニット１０３の接続有無の通知を元に判断している。
本実施の形態では、バックエンドドライバ切替え部１１７が接続検出部１１６と接続されておらず、バックエンドドライバ切替え部１１７が接続検出部１１６からの通知を受けない場合でも、第１の経路と代替経路のいずれの経路を使用するかを判断できるようにする例を説明する。
【００３５】
なお、本実施の形態では、基本ユニット１０１と拡張ユニット１０３の構成は、基本的に図１に示す通りであるが、本実施の形態の基本ユニット１０１では、接続検出部１１６とバックエンドドライバ切替え部１１７との接続線が存在しない。
また、本実施の形態においても、デバイスＩ／Ｆ切替え部１１５は接続検出部１１６から拡張ユニット１０３の接続有無が通知され、図３に示した手順にて、デバイス１０７とデバイスＩ／Ｆ１１４との接続又はデバイス１０７とデバイスＩ／Ｆ１１３の接続を行う。
【００３６】
図６は、バックエンドドライバ切替え部１１７の動作を示すフローチャートである。
【００３７】
まず、バックエンドドライバ切替え部１１７は、基本ユニット１０１側のバックエンドドライバ１０９へアクセス（Ｓ６０１）し、デバイスドライバ１１１へアクセス（Ｓ６０２）する。
デバイスドライバ１１１はデバイスＩ／Ｆ１１３へのデバイス１０７の接続有無を確認する（Ｓ６０３、Ｓ６０４）。
Ｓ６０４にてデバイスＩ／Ｆ１１３へデバイス１０７が接続されている場合（Ｓ６０４でＹＥＳ）は、バックエンドドライバ切替え部１１７は、フロントエンドドライバ１０８からのアクセス要求の転送先をバックエンドドライバ１０９とする（Ｓ６０５）。
一方、Ｓ６０４にてデバイスＩ／Ｆ１１３へデバイス１０７が接続されていない場合（Ｓ６０４でＮＯ）、すなわち、デバイス１０７の接続先がデバイスＩ／Ｆ１１４である場合は、バックエンドドライバ切替え部１１７は、フロントエンドドライバ１０８からのアクセス要求の転送先をインターコネクト１０５及びインターコネクト１０６を経由したバックエンドドライバ１１０とする（Ｓ６０６）。
【００３８】
なお、本実施の形態においても、アクセス要求の転送は、図４及び図５に示す手順に従って行わる。
【００３９】
以上のように、デバイスＩ／Ｆを用いて拡張ユニットの接続有無を判断することで、バックエンドドライバ切替え部が接続検出部と接続されていない場合でも、アクセス経路を判断することができる。
【００４０】
最後に、実施の形態１、２に示した基本ユニット１０１のハードウェア構成例を図１０を参照して説明する。
基本ユニット１０１はコンピュータであり、基本ユニット１０１の各要素をプログラムで実現することができる。
基本ユニット１０１のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５、インターコネクト９０６が接続されている。
インターコネクト９０６は、図１のインターコネクト１０５に対応する。
【００４１】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置である。
主記憶装置９０３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、例えば、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
例えば、外部記憶装置９０２、通信装置９０４、入出力装置９０５を図１に示すデバイス１０７とすることができる。
【００４２】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、図１に示す「〜部」として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、図１に示す「〜部」の機能を実現するプログラムを実行する。
【００４３】
なお、図１０の構成は、あくまでも基本ユニット１０１のハードウェア構成の一例を示すものであり、基本ユニット１０１のハードウェア構成は図１０に記載の構成に限らず、他の構成であってもよい。
また、拡張ユニット１０３は、例えば、図１０の構成から外部記憶装置９０２、通信装置９０４、入出力装置９０５を省略したハードウェア構成をしている。
【符号の説明】
【００４４】
１０１  基本ユニット、１０２  アプリケーション実行部、１０３  拡張ユニット、１０４  アプリケーション実行部、１０５  インターコネクト、１０６  インターコネクト、１０７  デバイス、１０８  フロントエンドドライバ、１０９  バックエンドドライバ、１１０  バックエンドドライバ、１１１  デバイスドライバ、１１２  デバイスドライバ、１１３  デバイスＩ／Ｆ、１１４  デバイスＩ／Ｆ、１１５  デバイスＩ／Ｆ切替え部、１１６  接続検出部、１１７  バックエンドドライバ切替え部。
【図１】
2015108912.tif 000003
【図２】
2015108912.tif 000004
【図３】
2015108912.tif 000005
【図４】
2015108912.tif 000006
【図５】
2015108912.tif 000007
【図６】
2015108912.tif 000008
【図７】
2015108912.tif 000009
【図８】
2015108912.tif 000010
【図９】
2015108912.tif 000011
【図１０】
2015108912.tif 000012