JP2007334525A - コンピュータ、クライアント−サーバコンピュータ群、サーバコンピュータ、表示プログラム、及びディスプレイ表示方法 - Google Patents

コンピュータ、クライアント−サーバコンピュータ群、サーバコンピュータ、表示プログラム、及びディスプレイ表示方法 Download PDF

Info

Publication number
JP2007334525A
JP2007334525A JP2006164110A JP2006164110A JP2007334525A JP 2007334525 A JP2007334525 A JP 2007334525A JP 2006164110 A JP2006164110 A JP 2006164110A JP 2006164110 A JP2006164110 A JP 2006164110A JP 2007334525 A JP2007334525 A JP 2007334525A
Authority
JP
Japan
Prior art keywords
display
program
desktop
status information
information
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
JP2006164110A
Other languages
English (en)
Inventor
Takeshi Tsuboi
健 坪井
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.)
SOFNY GROUP KK
Original Assignee
SOFNY GROUP KK
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 SOFNY GROUP KK filed Critical SOFNY GROUP KK
Priority to JP2006164110A priority Critical patent/JP2007334525A/ja
Publication of JP2007334525A publication Critical patent/JP2007334525A/ja
Pending legal-status Critical Current

Links

Abstract

【課題】 大きな表示領域を確保しつつも表示の切り替えが容易で、ユーザービリティの高いディスプレイ表示が行えるようにする。
【解決手段】 一つのリアルデスクトップ2がリアルディスプレイ1に表示されている際、当該ディスプレイ1に隣接して仮想ディスプレイ10が配置されているとし、この仮想ディスプレイ10に別のデスクトップ20が表示されているものとする。リアルディスプレイ1の右側に位置する仮想ディスプレイ10上の仮想デスクトップ20に切り替える操作がされると、それまで右側の仮想ディスプレイ10に表示されていたと仮想される仮想デスクトップ20がリアルディスプレイ1に表示された状態となり、それまでリアルディスプレイ1に表示されていたリアルデスクトップ2は、リアルディスプレイ1の左側に位置する仮想デスクトップ20に仮想的に表示される仮想デスクトップ20となる。
【選択図】 図2

Description

本願の発明は、コンピュータのディスプレイへの情報の表示に関するものである。
コンピュータにおいて、ディスプレイは主要なヒューマンインターフェースの一つであり、マウスを始めとする各種GUI(Graphical User Interface)の発達により、操作性の向上が図られてきた。特に、マルチウインドウ、マルチタスクを可能にするOSの発達により、一つのディスプレイ上において異なるアプリケーションプログラム(以下、単にアプリケーション)を同時に起動して表示することがごく当たり前の技術となってきている。
特開平3−204689
しかしながら、マルチウインドウ、マルチタスクとは言っても、一つのディスプレイにおいてウインドウを並べて表示するか、重ねて表示するかであり、使い勝手はあまり良くない。並べて表示する場合、一つのウインドウが小さくなる欠点がある。多数のウインドウを開く場合、この欠点は顕著である。重ねて表示する場合、広い領域に表示が可能であるが、複数のウインドウが重なった状態を仮想しながら切り替えを行うため、アクティブにしたいウインドウがどこにあるかを発見しづらく、切り替えがやりづらい欠点がある。Windows(登録商標)では、タスクバーにウインドウアイコンが表示されるので、それをマウスでクリックすることでウインドウの切り替えができる。しかしながら、ユーザーにおいて仮想されているのは多数のウインドウの重なりであり、その仮想状態においてタスクバーにウインドウアイコンを横に並べても、仮想状態とは一致しないため、ユーザビリティが高いとは言えない。
本願の発明は、このような課題を解決するためになされたものであり、ディスプレイへの表示技術の分野において優れたイノベーションを提供し、大きな表示領域を確保しつつも表示の切り替えが容易で、ユーザービリティの高いディスプレイ表示が行えるようにすることを課題としている。
上記課題を解決するため、本願の請求項1記載の発明は、演算処理部と、記憶部と、ディスプレイとを有するコンピュータであって、
記憶部には、ディスプレイに表示される情報であるオブジェクトが記憶されているとともに、コンピュータを動作させるオペレーティングシステムと、複数のアプリケーションプログラムと、オブジェクトをディスプレイに表示する表示プログラムがインストールされており、
表示プログラムによって表示されるオブジェクトには、各アプリケーションプログラムを起動するためのアイコンと、各アプリケーションによって取り扱われるデータが含まれており、
記憶部には、アイコンを表示するためのアイコン表示用ファイルと、各アプリケーションによって取り扱われるデータとが記憶されており、
表示プログラムは、各アイコン表示用ファイルによって各アプリケーションプログラムを起動するアイコンをそれぞれディスプレイに表示するものとなっており、
オペレーティングシステムは、二以上の前記アプリケーションプログラムを並行して実行することが可能であって、表示プログラムは、二以上の前記アプリケーションプログラムが実行されている際にそれぞれのアプリケーションプログラムの実行状況を一つディスプレイにおいてそれぞれのウインドウに表示するマルチウインドウ表示が可能となっており、
記憶部には、ディスプレイにおける各オブジェクトの表示状態の情報である状態情報を記録した状態情報ファイルが記憶されており、
表示プログラムは、オペレーティングシステムが起動した際、状態情報ファイルに保存された状態情報を読み出して、前回オペレーティングシステムが終了した際のディスプレイへの表示状態を再現するようになっており、
記憶部には、前記現実のディスプレイ及び現実のディスプレイに隣接して仮想的に存在している仮想ディスプレイから成るディスプレイ群のレイアウトに関する情報であるディスプレイレイアウト情報を記録したディスプレイレイアウト情報ファイルが記憶されており、
状態情報ファイルに記録された状態情報は、現実のディスプレイの全画面領域内に同時に表示されるすべてのオブジェクトの状態情報を、複数のオブジェクトグループに分けて保存したものとなっており、
オブジェクトグループの数は、現実のディスプレイの数に仮想ディスプレイの数を加えたものに一致しており、記憶部は、前記ディスプレイ群におけるどのディスプレイに対応するのかの情報とともに前記状態情報を記憶するようになっており、
さらに、
一つのオブジェクトグループが現実のディスプレイに表示されている際、現実のディスプレイに隣接する任意の仮想ディスプレイを選択する入力をユーザーに行わせる選択入力手段が設けられており、この選択入力手段は、現実のディスプレイに対して仮想ディスプレイが存在する側を指定させるものであり、
表示プログラムは、それまで現実のディスプレイに表示されてきたオブジェクトグループの表示を止め、別のオブジェクトグループを現実のディスプレイに表示する切替モジュールを有しており、
切替モジュールは、選択入力手段がユーザーに任意の仮想ディスプレイを選択させた際に動作するものであって、選択された仮想ディスプレイに対応したオブジェクトグループを現実のディスプレイに表示するものであるという構成を有する。
また、上記課題を解決するため、請求項2記載の発明は、前記請求項1の構成において、前記選択入力手段は、ハードウェアとしてのマウスと、記憶部にインストールされたマウス駆動プログラム及び前記表示プログラムの一部である切替起動モジュールとから構成されており、切替起動モジュールは、マウス駆動プログラムによってディスプレイ上に表示されるマウスポインタが、ユーザーによるマウスの操作により前記ディスプレイの画面端に位置し且つ所定の付加動作が行われたのを検出し、前記切替モジュールを起動させるものであって、前記ディスプレイのどの側の画面端で付加動作が行われたのかの情報を前記切替モジュールに渡すものであり、
前記切替モジュールは、渡された情報に従い、その側に位置する仮想ディスプレイに対応したオブジェクトグループを現実のディスプレイに表示するものとなっているという構成を有する。
また、上記課題を解決するため、請求項3記載の発明は、前記請求項2の構成において、前記付加動作は、画面端に位置したマウスポインタを当該画面端に沿って所定距離以上移動させる動作であるという構成を有する。
また、上記課題を解決するため、請求項4記載の発明は、前記請求項1、2又は3の構成において、前記ディスプレイ群のレイアウトは、横方向の一つのみの列と縦方向の一つのみの列とから成るものであるという構成を有する。
また、上記課題を解決するため、請求項5記載の発明は、前記請求項1,2又は3の構成において、前記ディスプレイ群のレイアウトは、横方向の一つのみの列と縦方向の一つのみの列とから成るものであり、
横方向の列のディスプレイ群の一つが現実のディスプレイである場合にその左又は右側の仮想ディスプレイが前記選択入力手段により選択された結果、前記切替モジュールにより、その左又は右側の仮想ディスプレイが現実のディスプレイに切り替わった際、縦方向の仮想ディスプレイの列も同様に左又は右にシフトし、切り替わった現実のディスプレイを通って縦方向の列が位置するようレイアウトが変更されるようになっており、
前記ディスプレイレイアウト情報ファイルは、変更されたレイアウトの情報が更新されて記録されるものであるという構成を有する。
また、上記課題を解決するため、請求項6記載の発明は、前記請求項1、2又は3の構成において、前記ディスプレイ群のレイアウトは、横方向の一つのみの列と縦方向の一つのみの列とから成るものであり、
縦方向の列のディスプレイ群の一つが現実のディスプレイである場合にその上又は下側の仮想ディスプレイが前記選択入力手段により選択された結果、前記切替モジュールにより、その上又は下側の仮想ディスプレイが現実のディスプレイに切り替わった際、横方向の仮想ディスプレイの列も同様に上又は下にシフトし、切り替わった現実のディスプレイを通って横方向の列が位置するようレイアウトが変更されるようになっており、
前記ディスプレイレイアウト情報ファイルは、変更されたレイアウトの情報が更新されて記録されるものであるという構成を有する。
また、上記課題を解決するため、請求項7記載の発明は、前記請求項4、5又は6の構成において、前記横方向の一つののみの列又は縦方向の一つのみの列は、無終端のループ状につながったものであるという構成を有する。
また、上記課題を解決するため、請求項8記載の発明は、前記請求項4、5又は6の構成において、前記横方向の一つののみの列及び縦方向の一つのみの列は、無終端のループ状につながったものであるという構成を有する。
また、上記課題を解決するため、請求項9記載の発明は、前記請求項1乃至8いずれかに記載のコンピュータがクライアントコンピュータとしてネットワークを介してサーバコンピュータに複数接続されているクライアント−サーバコンピュータ群であって、サーバコンピュータはサーバ記憶部を有しており、
サーバ記憶部には、各クライアントコンピュータにおける前記状態情報を保存したサーバ側状態情報ファイルが設けられており、サーバ側状態情報ファイルは、ユーザーを識別するユーザーID毎に前記状態情報を保存しており、
サーバ記憶部には、認証プログラム、状態情報登録プログラム及び状態情報送信プログラムがインストールされており、
認証プログラムは、クライアントコンピュータからユーザーIDを発信させてアクセスを許可するかどうか判断するプログラムであり、
前記表示プログラムは、状態情報発信モジュール及び登録情報受信モジュールを有しており、
状態情報発信モジュールは、当該クライアントコンピュータのオペレーティングシステムが終了する際、当該クライアントコンピュータにおける前記状態情報を発信してサーバコンピュータへの登録を要求するものであり、
状態情報登録プログラムは、認証プログラムによりアクセスが許可されたクライアントコンピュータから発信された状態情報を、発信されたユーザーIDの状態情報としてサーバ側状態情報ファイルに記録して登録するプログラムであり、
状態情報送信プログラムは、認証プログラムによりアクセスが許可されたクライアントコンピュータに、発信されたユーザーIDの状態情報を送信するプログラムであり、
状態情報受信モジュールは、サーバコンピュータから送信された状態情報を受信して各オブジェクトグループの前記現実のディスプレイへの表示を可能とするものであり、
状態情報送信プログラムは、認証プログラムにより認証される限り、前回状態情報を送信してきたクライアントコンピュータとは異なるクライアントコンピュータに対しても状態情報を送信するものであって、オペレーティングシステム終了時のディスプレイ表示状態の再現を異なるクライアントコンピュータ間において可能とするものであるという構成を有する。
また、上記課題を解決するため、請求項10記載の発明は、前記請求項9の構成において、前記状態情報送信プログラムは、前記状態情報とともに広告オブジェクトを送信するものであり、この広告オブジェクトは、送信されたクライアントコンピュータにおいていずれかのオブジェクトグループに追加されるものであり、そのオブジェクトグループが現実のディスプレイに表示される際にディスプレイに表示されるものであるという構成を有する。
また、上記課題を解決するため、請求項11記載の発明は、前記請求項9又は10に記載するクライアント−サーバコンピュータ群を構成する前記サーバコンピュータである。
また、上記課題を解決するため、請求項12記載の発明は、前記請求項1乃至5記載のコンピュータにインストールされる前記表示プログラムである。
また、上記課題を解決するため、請求項13記載の発明は、前記請求項1乃至8いずれかに記載のコンピュータがクライアントコンピュータとしてネットワークを介してサーバコンピュータに複数接続されているクライアント−サーバコンピュータ群において、いずれかのクライアントが備える現実のディスプレイにオブジェクトを表示するディスプレイ表示方法であって、
サーバコンピュータはサーバ記憶部を有しており、
サーバ記憶部は、各クライアントコンピュータにおける前記状態情報を記録したサーバ側状態情報ファイルを記憶しており、サーバ側状態情報ファイルは、ユーザーを識別するユーザーID毎に前記状態情報を記録しており、
サーバ記憶部には、認証プログラム、状態情報登録プログラム及び状態情報送信プログラムがインストールされており、
認証プログラムは、クライアントコンピュータからユーザーIDを発信させてアクセスを許可するかどうか判断するプログラムであり、
前記表示プログラムは、状態情報発信モジュール及び登録情報受信モジュールを有しており、
クライアントコンピュータのオペレーティングシステムが終了する際、状態情報発信モジュールが、当該クライアントコンピュータにおける前記状態情報を発信してサーバコンピュータへの登録を要求するステップと、
状態情報登録プログラムが、認証プログラムによりアクセスが許可されたクライアントコンピュータから発信された状態情報を、発信されたユーザーIDの状態情報としてサーバ側状態情報ファイルに記録して登録するステップと、
状態情報送信プログラムが、認証プログラムによりアクセスが許可されたクライアントコンピュータに、発信されたユーザーIDの状態情報を送信するステップと、
状態情報受信モジュールが、サーバコンピュータから送信された状態情報を受信して各オブジェクトグループの前記現実のディスプレイへの表示を可能とするステップと、
状態情報送信プログラムが、認証プログラムにより認証される限り、前回状態情報を送信してきたクライアントコンピュータとは異なるクライアントコンピュータに対しても状態情報を送信するステップを備えており、ペレーティングシステム終了時のディスプレイ表示状態の再現を異なるクライアントコンピュータ間において可能とするという構成を有する。
以下に説明する通り、本願の請求項1の発明によれば、現実のディスプレイ及び仮想ディスプレイから成る複数のディスプレイが存在し、ユーザーが選択入力手段を操作することによりオブジェクトグループの表示が仮想ディスプレイから現実のディスプレイに切り替えられるので、一つのディスプレイにおいて複数のウインドウをオープンしてアプリケーションを立ち上げる場合に比べると、アプリケーションの切替が容易で、且つ一つのアプリケーションに対し大きなウインドウ領域を確保することができる。
また、請求項2記載の発明によれば、上記効果に加え、画面端において付加動作が行われたのを検出してディスプレイの切替が行われるので、ユーザーの意図しない切替の発生が少なくなる。
また、請求項5記載の発明によれば、上記効果に加え、横方向の列におけるディスプレイの切替の際に、縦方向の列が連動してシフトするので、切り替え後さらに縦方向に切り替える際の操作の手間が少ない。
また、請求項6記載の発明によれば、上記効果に加え、縦方向の列におけるディスプレイの切替の際に、横方向の列が連動してシフトするので、切り替え後さらに横方向に切り替える際の操作の手間が少ない。
また、請求項9記載の発明によれば、オペレーティングシステム終了時のディスプレイ表示状態の再現が異なるクライアントコンピュータ間において可能とされるので、オフィスと自宅のように、一人のユーザーが異なる場所で異なるコンピュータをする場合にも上記効果が得られることになる。
また、請求項10記載の発明によれば、上記請求項9の効果に加え、広告オブジェクトがクライアントコンピュータのディスプレイに表示されるので、サーバコンピュータを運営するサービサーは、広告収入を得ることができる。
次に、本願発明を実施するための最良の形態(以下、実施形態)について説明する。
本願発明の実施形態におけるディスプレイ表示切り替え技術の基本コンセプトは、仮想マルチデスクトップという考え方にある。まず、この点について、図1を使用して説明する。図1は、本願発明の実施形態の基本コンセプトとしての仮想マルチデスクトップを説明した平面概略図、図2は、図1に示す仮想マルチデスクトップの動作について説明した平面概略図である。
まず、デスクトップという概念について説明する。以下の説明では、デスクトップという概念は、ディスプレイに表示する情報を集まりの意味であり、Windows(例えばWindowsXP)におけるものと同様である。一つのディスプレイの中に表示するアイコン、ウインドウ、各種コントロール等のオブジェクトをグループ化したものである。この中には、画面の背景やスクリーンセーバー等の各種設定が含まれる。尚、以下の説明において、オブジェクトとは、一つのディスプレイの画面(全表示領域)内に表示される対象物としての情報という程度の意味である。但し、アプリケーションの起動プログラムが埋め込まれたアイコンの場合のように、プログラムを実行するために表示される情報の場合もある。
また、本願発明は、前述したマルチウインドウ、マルチタスクの技術の改良であるから、一つのデスクトップにおいて複数のウインドウを表示することが可能であり、複数のアプリケーションを一つのデスクトップ上で同時に実行できる環境におけるものということになる。
図1において、コンピュータは、一つの現実のディスプレイ(以下、リアルディスプレイ)1を備える。このリアルディスプレイ1において表示されるデスクトップ2を、以下、リアルデスクトップと呼ぶ。本実施形態においては、このリアルデスクトップ2に関連して、仮想デスクトップ20が複数設けられている。「関連して…」とは、図1に示すように、一つのリアルデスクトップ2がリアルディスプレイ1に表示されている際、当該ディスプレイ1に隣接して仮想的なディスプレイ(以下、仮想ディスプレイ)10が配置されているとし、この仮想ディスプレイ10に別のデスクトップ20が表示されているものと取り扱われることである。「表示されているものと取り扱う」とは、後述するように、予めメモリに記憶しておき、ユーザーによる操作に従い切り替え可能としておくという意味である。
図1に示すように、リアルディスプレイ1の画面は方形である。仮想ディスプレイ10の画面も、リアルディスプレイ1と同じ寸法形状の方形であり、リアルディスプレイ1の方形の各辺に隣接して配置されているとする。尚、図1では、各仮想ディスプレイ10は、画面のみが描かれており、それ以外は図示が省略されている。他の図でも同様である。
この実施形態では、リアルディスプレイ1の画面の各辺に隣接して仮想ディスプレイ10の画面が配置され、さらにもう一つの仮想ディスプレイ10が右側の仮想ディスプレイ10のさらに右側に隣接して配置されているとしている。従って、本実施形態は、一つのリアルデスクトップ2と五つの仮想デスクトップ20とを有している。各ディスプレイ1,10は、画面をそれぞれ隣接させて配置されているものと仮想される。各デスクトップ2,20は、同じシェルプログラムで表示され、各シェルプログラムは同じ機能を持っている。
次に、図1に示す仮想マルチデスクトップの動作について、図2を使用して説明する。図2(1)において、リアルデスクトップ2がリアルディスプレイ1に表示されている。この際、ユーザーがいずれかの仮想ディスプレイ10を選択する操作を行うと、後述する切替プログラムが、選択された仮想ディスプレイ10をリアルデスクトップ2に切り替え、その仮想ディスプレイ10上の仮想ディスプレイ20をリアルディスプレイ1に表示する処理を実行する。いずれかの仮想ディスプレイ10を選択させる操作は、リアルディスプレイ1に対してどの側に隣接する仮想ディスプレイ10であるかを指定する操作である。
図2(1)に矢印で示すように、リアルディスプレイ1の右側に位置する仮想ディスプレイ10上の仮想デスクトップ20に切り替える操作をしたとすると、図2(2)に示すように、それまで右側の仮想ディスプレイ10に表示されていたと仮想される仮想デスクトップ20がリアルディスプレイ1に表示された状態となる。それまでリアルディスプレイ1に表示されていたリアルデスクトップ2は、リアルディスプレイ1の左側に位置する仮想デスクトップ20に仮想的に表示される仮想デスクトップ20となる。別の言い方として、右側に位置する仮想ディスプレイ10がリアルディスプレイ1に切り替わり、それまでリアルディスプレイ1であったディスプレイが仮想ディスプレイ10に切り替わると表現することもできる。このようにユーザーにとって受け止められるということである。本実施形態の仮想マルチデスクトップも、コンピュータのユーザーインターフェースの一つであるから、ユーザーの受け止め方は重要である。仮想ディスプレイ10が存在し、仮想デスクトップ20が表示されているように感じられ、それがリアルデスクトップ2に切り替わったように見えるようにしている。
そして、図2(2)において、リアルディスプレイ1の左側の仮想ディスプレイ10を選択する操作を行うと、元のデスクトップの内容がリアルディスプレイ1に表示された状態となる。また、図2(2)の状態から、さらに右側の仮想ディスプレイ10を選択する操作が行われると、その仮想ディスプレイ10上の仮想デスクトップ20がリアルデスクトップ2としてリアルディスプレイ1に表示された状態となる。
また、図2(2)の状態から、上側の仮想ディスプレイ10を選択すると、図2(3)に示すように、上側の仮想ディスプレイ10上の仮想デスクトップ20がリアルデスクトップ2に切り替わりリアルディスプレイ1に表示された状態となる。
図2から解るように、リアルディスプレイ1及び仮想ディスプレイ10から成るディスプレイ群のレイアウト、即ちリアルディスプレイ2及び仮想デスクトップ20から成るデスクトップ群のレイアウトを、切り替えに伴って変化させている。これは、所望の仮想デスクトップ20をリアルデスクトップ2に切り替える際のユーザーの操作をできるだけ楽にしようという配慮からである。
つまり、図2(2)に示すように、右側の仮想デスクトップ20がリアルデスクトップ2に切り替わった際、上下の仮想ディスプレイ10も連動して右側にシフトしたとし、切り替わって表示されたリアルデスクトップ2の上下に仮想デスクトップ20が存在しているとされる。従って、図2(2)に示す状態で、上側の仮想ディスプレイ10を選択する1回の操作で、そこでの仮想デスクトップ20をリアルデスクトップ2に切り替えることができる。下側の仮想デスクトップ20をリアルデスクトップ2に切り替える場合も同様である。
また、図2(3)に示すように、上側の仮想デスクトップ20がリアルデスクトップ2に切り替えられた際、横方向に並ぶ仮想ディスプレイ10群も連動して上側にシフトしたものとされる。従って、図2(3)に示す状態で、例えば左側の仮想デスクトップ20をリアルデスクトップ2にしたい場合、左側の仮想デスクトップ20を選択する1回の操作でこれが行える。
つまり、図2に示す実施形態では、リアルディスプレイ1及び仮想ディスプレイ10から成るディスプレイ群のレイアウトが、横方向の一列のみと縦方向の一列のみから成るレイアウトであって、横方向においてディスプレイの切り替えが行われる場合、その切り替えに従って縦方向の列が連動してシフトし、縦方向においてディスプレイの切り替えが行われる場合、その切り替えに従って横方向の列が連動してシフトする構成であるといえる。このような構成は、縦横各一列のディスプレイ群レイアウトにおいて、その縦横の列の交差箇所に位置するディスプレイを常にリアルディスプレイ1にしようとする構成であるとも言える。交差状態は、十字状の場合もあり、T字状の場合もあり、L字状の場合もある。
尚、上記以外の例として、連動したシフトは、双方ではなく、一方だけであっても良い。つまり、横方向への切り替えの際に連動して縦方向の列がシフトするが、縦方向への切り替えの際には横方向がシフトしない構成でもよく、縦方向への切り替えの際に連動して横方向の列がシフトするが、横方向への切り替えの際には縦方向がシフトしない構成でもよい。どちらかというと、横方向への切り替えが頻繁に発生するので、横方向への切り替えの時に縦方向の列がシフトするのみの構成があり得る。
図2に示す例では、上記のように切り替えの際のユーザーの操作を最小限にすることを考慮したが、上記のようにディスプレイ群1,10群のレイアウト(即ち、デスクトップ群2,20のレイアウト)が切り替えのたびに変化すると、デスクトップ群1,10のレイアウトがユーザーに固定的に観念されないので、その意味で使いにくくなる可能性もある。図3は、この点を考慮した例であり、ディスプレイ群1,10のレイアウトを固定した実施形態の概略図である。
この実施形態では、図3(2)に示すように、右側の仮想デスクトップ20がリアルデスクトップ2に切り替えられた場合でも、上下の仮想ディスプレイ10はシフトせず、そのままの位置を保持する。従って、ユーザーが、上側の仮想ディスプレイ10上の仮想デスクトップ20をリアルデスクトップ2にしたい場合、図3(2)に矢印で示すように、左側の仮想デスクトップ20をリアルデスクトップ2にする操作をした後、そこからさらに上の仮想ディスプレイ10を選択して上側の仮想デスクトップ20をリアルデスクトップ2にする操作を行う。
このような構成では、操作は図2に比べて手間となるが、ディスプレイ群1,10のレイアウトは固定されているので、そのレイアウトがユーザーの頭にあれば切り換えが容易であるとも言える。図2の場合、ディスプレイ群1,10のレイアウトをユーザーがわからなくなってしまうと、色々と切り替えを行っていくうちに所望の仮想デスクトップ20をリアルデスクトップ2にする状態にたどりつくということが考えられる。
いずれにしても、各実施形態は、リアルディスプレイ1に対する「側」を指定することでデスクトップを切り替えるものである。図1では、「側」とは上下左右となっているが、斜め方向の側を指定して切り替えるようにしても良い。この実施形態が図4である。図4は、さらに別の実施形態を示した概略図である。図4の実施形態では、一つのリアルディスプレイ1の周囲に八つの仮想ディスプレイ10が配置されているとしている。この実施形態において、斜め右上、斜め右下、斜め左上、斜め左下の仮想ディスプレイ10を選択する1回の操作で、そこでの仮想デスクトップをリアルデスクトップに切り替えることが可能としても良い。
図5は、さらに別の実施形態を示した斜視概略図である。この実施形態では、左右に並んだディスプレイ群1,10が、一つの無終端のループ状を成しているものとして与えられており、従ってデスクトップ群2,20もこの無終端のループ状のレイアウトであるとされる。即ち、例えば左側の仮想ディスプレイ20を次々に選択して左側の仮想デスクトップ20をリアルデスクトップ2に切り替えていくと、一番最初にリアルデスクトップ2であった仮想デスクトップ20がリアルデスクトップ2である状態に戻るよう構成されている。この構成は、いわゆるテレビ受像機におけるチャンネルの切り替えに類似している。テレビ受像機においてもチャンネルを次のチャンネルに次々に切り替えていくと元のチャンネルに戻るが、この実施形態でも元のリアルデスクトップ2に戻る。尚、左右に並んだデスクトップがループ状である場合の他、上下に並んだデスクトップがループ状であるよう構成しても良い。左右、上下ともループ状である構成でも良い。
次に、上述したような各実施形態の仮想マルチデスクトップを実現するハードウェア及びソフトウェアの構成について、具体的に説明する。
上述した仮想マルチデスクトップが実現されるコンピュータは、演算処理部と、記憶部と、ディスプレイとを有するコンピュータである。コンピュータは、典型的にはいわゆるパソコン(パーソナルコンピュータ)であるが、ワークステーションその他のコンピュータである場合もある。また、「デスクトップ」という概念を採用するものの、いわゆるデスクトップパソコンに限定されるものではなく、ノートパソコンやパームトップコンピュータ等の場合もあり得る。また、携帯電話についても、マルチウインドウ及びマルチタスクが可能であれば、本実施形態が適用される場合がある。
上述した仮想マルチデスクトップを実現する場合、OS(オペレーティングシステム)上で動作する一つのアプリケーションプログラムにより実現する場合と、OSそのものの機能として実現する場合とがある。まず、前者の場合について説明する。以下の説明では、OSとしてWindowsXP(マイクロソフト社の登録商標)が採用されているものとする。
図6は、各実施形態の仮想マルチデスクトップをアプリケーションとして実現する際のソフトウェアアーキテクチャを示した概略図である。周知のように、Windowsでは、カーネルモードとユーザーモードに分かれており、個々のアプリケーションは、ユーザーモードで動作する。個々のアプリケーションは、CPUに対して直接指令を送ることはできず、カーネルモードで動作するエグゼキュティブの各コンポーネント等を介してCPUを動かすようになっている。そして、エグゼキュティブに対しても、各アプリケーションは直接アクセスすることができず、Windowsサブシステムを介してアクセスするようになっている。Windowsサブシステムは、Win32APIを実現するCRSSS.EXEや各種DLL(KERNEL32.DLL、USER32.DLL、GDI32.DLL等)、Win32K.sys(カーネルモードデバイスドライバ)等が含まれる。各アプリケーションは、それぞれが有するサブシステムDLLから、LPC(Local Procedure Call)を利用してWindowsサブシステムにアクセスし、処理要求を伝えるようになっている。
本実施形態が対象とするデスクトップ環境は、Windowsにおいては、GUI(Graphical User Interface)の一つであるシェルと、レジストリ5によって実現されるとして良い。レジストリ5は、アプリケーションの設定情報やユーザー情報等を記録したデータベースフィアルであり、ハードディスクのような記憶部(ハードウェア)に記憶されたファイル(ソフトウェア)である。尚、レジストリ5は、各請求項の発明においては、「ディスプレイにおける各オブジェクトの表示状態の情報である状態情報を記録した状態情報ファイル」に相当しており、「状態情報ファイル」の一例である。
シェルは、各オブジェクトの表示用のプログラム(シェルプログラム)と、対応するAPI(Application Programing Interface)とを含む。APIの部分(WindowsXPではSHELL32.DLL)は、Windowsサブシステムの一部であるが、図5では、便宜上、Windowsサブシステムの上側に描かれている。
尚、「シェル」という用語は、OSやアプリケーションによって全く異なった意味で使用されることがある。本実施形態の説明では、OSにおいて、デスクトップを実現するユーザーモード上のソフトウェアアーキテクチャという程度の意味で使用している。
記憶部には、アイコンを表示するためのファイル(アイコン表示用ファイル)が記憶されている。コンピュータがブートされてWindowsが起動すると、シェルプログラムがレジストリ5を参照してアイコン表示用ファイルによりアイコンをディスプレイの所定の場所に表示する。アプリケーション用のアイコンがクリックされると、そのアプリケーションの実行ファイルが開かれ、メモリ領域の確保、新規ウインドウの表示等の処理が行われる。
本実施形態の仮想マルチデスクトップ環境は、アプリケーション群とWindowsサブシステムとの間に、通常のシェル(以下、レギュラーシェル)3に加えて追加のシェル(以下、サブシェル)31が置かれた環境であると言って良い。本実施形態では、仮想マルチデスクトップを一つのアプリケーションとして実現するので、図5に示すように、レギュラーシェル3上で仮想マルチデスクトップ用のアプリケーションプログラム(以下、VMDアプリ)4がインストールされて動作する状態となっている。
前述した「課題を解決するための手段」の欄では、「表示プログラム」という用語が使用されているが、図6に示す実施形態では、サブシェル31とVMDアプリ4とを合わせたものが「表示プログラム」に相当している。レギュラーシェル3は、OSの一部であるから「表示プログラム」には含まれない。「表示プログラム」は、OS上で仮想マルチディスプレイを実現するためのプログラムであると言える。
VMDアプリ4は、後述するように、コンピュータにインストールされる際、自動起動プログラム(常駐プログラム)としてインストールされるようになっている。ユーザーがMSconfig.exeを実行するかレジストリ5を編集するかして常駐を外さない限り、ログオンのたびにVMDアプリ4は自動起動される。
VMDアプリ4は、レギュラーシェル3のシェルプログラムとは別に、各デスクトップを表示するためのシェルプログラム(以下、サブシェルプログラム)を実行可能となっている。本実施形態では、サブシェル31はレギュラーシェル3と同様の構成により各デスクトップを表示するようになっている。Windowsではデフォルトの設定では、シェルプログラムはExplorer.exeであるので、VDMアプリもExplorer.exeにより各オブジェクトを表示するようになっている。尚、レギュラーシェル3とは異なるプログラムでサブシェル31を動作させても良い。
また、レジストリ5には、レギュラーシェル3における関連情報に加え、各サブシェル31の関連情報が登録されるようになっている。レジストリ5への登録の仕方は、レギュラーシェル3の場合と同様である。但し、どのサブシェル31における登録情報かを識別できるよう登録しておくことが必要である。各サブシェル31において、サブシェルプログラムは、そのサブシェル31の登録情報をレジストリ5において参照し、WindowsサブシステムのAPI(Shell32.DLL)をコールし、ディスプレイ上にデスクトップを表示するようになっている。
本実施形態では、各サブシェル3,31により表示される各デスクトップの内容(コンテンツ)のうち、アイコンについては、各シェル3,31において同一のものとするようになっている。即ち、各シェル(レギュラーシェル3、サブシェル31)について、レジストリ5におけるアプリケーションの登録情報は共通又は同一のものとなっている。あるシェルにより表示されたデスクトップ上で一つのアプリケーションがインストールされてアイコンが登録されると、そのアイコンは、他のシェルにより表示されるデスクトップでも同様に表示されるようになっている。アイコンの位置情報やプロパティ等も同様で、共通又は同一のものとなっている。但し、これらの登録情報が各シェルにおいて異なるようにしても良い。この構成は、Windowsにおいては、ログオンしたユーザーのユーザー情報に従って異なるレジストリ登録情報を参照するのと同様の構成となる。
本実施形態では、レジストリ5には、VMDアプリ4の終了の際(コンピュータ又はOSのシャットダウン時を含む)、各サブシェル31において動作していたアプリケーションの情報が登録され、再度ログオンした際には、シャットダウン時と同じ状態で各サブシェル31が起動するようになっている。以下、この点について、図7を使用して説明する。図7は、実施形態におけるレジストリ5への情報登録と参照について示した概略図である。
各サブシェル31によって表示される各デスクトップには、VMDアプリ4を終了させるためのアイコン(終了用アイコン)が含まれている。いずれかのデスクトップがリアルディスプレイ1に表示されている(リアルデスクトップである)際、そのデスクトップにおいて終了用アイコンがクリックされると、VMDアプリ4が終了し、レギュラーシェル3によるレギュラーデスクトップの環境に戻る。この際、VMDアプリ4(の終了用モジュール)は、各サブシェル31上で動作していたアプリケーションの情報をレジストリ5に記録する。
より具体的に説明すると、各サブシェル31に対応してアプリケーションの動作情報を記録したレジストリキーがそれぞれ設けられている。今、VMDアプリ4は、三つのサブシェル31を備える構成であるとし、三つのデスクトップがVMDアプリ4上で表示されている(うち一つがリアルデスクトップで他の二つが仮想デスクトップ)とする。これらのデスクトップをデスクトップA、デスクトップB、デスクトップCとすると、それらに対応して、レジストリキーA、レジストリキーB、レジストリキーCがレジストリ5に設けられている。
VMDアプリ4の終了モジュールは、各デスクトップA,B,Cで動作していたアプリケーションの情報(起動情報、ウインドウ情報、アプリデータのリソース情報等)を対応したレジストリキーに保存するようプログラミングされている。例えば、デスクトップAにおいてMicrosoft Word(マイクロソフト社の登録商標)のような文書作成アプリケーションが動作し、デスクトップBにおいてMicrosoft Excel(マイクロソフト社の登録商標)のような表計算アプリケーションが動作し、デスクトップCでInternet Explorer(マイクロソフト社の登録商標)のようなブラウザが動作していたとする。この場合、レジストリキーAには、文書作成アプリケーションの起動情報(実行ファイルの名前、実行ファイルがあるパスの情報等)、終了の際に開いていたウインドウのサイズや位置の情報、終了の際に開いてた文書ファイルのパス情報などが記録される。レジストリキーBには、表計算アプリケーションの起動情報、終了の際に開いていたウインドウのサイズや位置の情報、終了の際に開いてた表計算ファイルのパス情報などが記録される。レジストリキーCには、ブラウザの起動情報、終了の際に開いていたウインドウのサイズや位置の情報、終了の際に閲覧していたウェッブページのURLの情報などが記録される。
尚、「アプリデータ」という用語は、アプリケーションが扱っていたデータを広く意味するものとして使用されている。文書作成アプリケーションや表計算アプリケーションのようなファイルを編集するアプリケーションでは、編集され更新されたファイルがアプリデータである。また、PDFやブラウザで閲覧されるウェッブページファイル等の場合もある。「アプリデータのリソース情報」とは、そのアプリデータが存在する場所の情報(パス情報、URL等)やアプリデータの名前など、そのアプリデータを取得してデスクトップ上に表示するのに必要な情報のことである。
また、「モジュール」という用語は、本明細書においては、プログラムの構成要素という意味で使用している。モジュール自身もプログラムであることは変わりが無く、一つのまとまった情報処理を行うのであるが、「プログラムがプログラムを有する」といった表現の不明確さを避けるため、「モジュール」という用語を使用している。従って、VMDアプリ4の終了用モジュールとは、VMDアプリというプログラムの一部であるところの終了用のプログラムということである。
また、レジストリには、デスクトップ群のレイアウトに関する情報が登録される。いくつのデスクトップがどのようなレイアウトで配置されているのか、またそのうち終了時にリアルデスクトップであったのはどれか、などの情報である。これらの情報に対応したレジストリキーが設定されている。尚、これらの情報は、各ディスプレイ群の情報であるとも言える。従って、実施形態におけるレジストリは、ディスプレイレイアウト情報ファイルの一例であるとも言える。
一方、VMDアプリ4の開始用モジュールは、レジストリ5に記録された各レジストリキーを参照し、終了時と同じアプリケーションの動作状況を各デスクトップ上に再現するようになっている。以下、この点を図8及び図9を使用して説明する。図8は、VMDアプリの開始用モジュールの概略構成を示したフローチャート、図9はVMDアプリにおけるメモリ空間の概略図である。
前述したように、VMDアプリは自動起動アプリケーションであり、ログオンが完了すると、シェルプログラムの起動の後、自動起動される。この際、VMDアプリが使うメモリ空間が確保(マッピング)される。次に、図9に示すように、確保されたメモリ空間において各サブシェルが使うメモリ空間(以下、サブメモリ空間)を割り当てる。上記のようにサブシェルが三つであって三つのデスクトップがVDMアプリ上で表示されるものとすると、図9に示すように、三つのサブメモリ空間が割り当てられる。次に、VMDアプリは、各サブメモリ空間に、シェルプログラム(ここではExplorer.exe)を読み込み、実行可能な状態としておく。「読み込み」とは、「読み出し、書き込む」の意味であり、ここでは、ハードディスクから読み出し、各サブメモリ空間に書き込む、ということである。そして、VMDアプリは、それぞれのサブシェル用のレジストリキーをレジストリからコピーし、割り当てられたメモリ空間に書き込んでおく。尚、WindowsXPでは、仮想マシンマネージャがページング機能を使って仮想マシンごとに仮想的にメモリ空間を確保するので、図9に示すサブメモリ空間は、実際のメモリ空間(物理メモリ空間)を直接意味するものでなく、仮想メモリ空間としての割り当てということである。
そして、各レジストリキーを参照して、各アプリケーションのプログラム本体、必要なコントロール等のオブジェクト、アプリデータ等を、ハードディスクから読み込み、割り当てられた各メモリ空間に書き込み保持しておく。尚、アプリデータがウェッブページの場合、インターネット上のウェッブサーバ等の他のコンピュータから取得されてメモリ空間に書き込まれる。尚、これらのアプリケーション関連のプログラムやデータは、VMDアプリに与えられたメモリ空間内ではなく、アプリケーションを起動する際に通常与えられるアプリケーション用のメモリ空間に書き込むようにすると、VMDアプリ用のメモリ空間の消費が少なくなるので好適である。
VMDアプリ自体のレジストリキーには、前回終了した際にリアルデスクトップを表示していた(アクティブであった)サブシェルを特定する情報が含まれている。VMDアプリは、各メモリ空間へのプログラムやデータ等の書き込みが終了すると、レジストリキーを参照し、前回終了した際にアクティブであったサブシェルのシェルプログラムを起動させる。そして、そのサブシェルのメモリ空間に読み込んでおいたアプリケーションを起動する。この際、メモリ空間に書き込んでおいたレジストリキーを参照してウインドウをオープンし、同様にメモリ空間に書き込んでおいたアプリデータを読み込んでウインドウに表示する。これで、VMDアプリの開始用モジュールが終了した状態となる。
一つのリアルデスクトップ上でのアプリケーションの動作は、通常のデスクトップの場合と同様である。ユーザーは、リアルデスクトップ上で、自動起動したアプリケーションで業務を行ったり、そのアプリケーションを終了して他のアプリケーションを起動したりすることが自由に行える。そして、ユーザーは、選択入力手段を使用することで、前述したように他の仮想デスクトップをリアルデスクトップに切り替えることができる。以下、実施形態における選択入力手段について、図10〜図11を使用して説明する。図10は、選択入力手段を構成するオブジェクトを示した概略図、図11は、選択手段を構成する切替起動モジュール及び切替モジュールの概略を示したフローチャートである。
選択入力手段は、任意の仮想デスクトップを選択する入力をユーザーに行わせてリアルデスクトップに切り替える手段であるが、仮想デスクトップは文字通り「仮想」であり、実在しないものである。各サブシェルのメモリ空間にシェルプログラムが書き込まれ、起動可能状態(スタンバイ状態)になっているだけのものである。つまり、リアルデスクトップに切り替わった際、そのデスクトップのコンテンツがそれまで隣接したディスプレイにあたかも表示されていたかのようにユーザーが感じることが重要である。別の言い方をすれば、選択入力手段の構成自体が、仮想デスクトップが仮想デスクトップたらしめているとも言える。
選択入力手段の具体的構成は幾つか考えられるが、一つにはアイコンによって実現することができる。この例が図10に示してある。この例の場合、実施形態のVMDアプリは、デスクトップ切り替え用のアイコン(以下、切替用アイコン)61の生成モジュール、切替用アイコンの更新モジュール等を含んでいる。
図10に示すように、切替用アイコン61は、小さな方形の図形(以下、方形部62)を組み合わせ形状である。各方形部62及びそのレイアウトは、各デスクトップのレイアウトに相当している。図10の例は、図1及び図2に示す例の仮想マルチデスクトップにおける切替用アイコン61の例である。各方形部62のうち、一つの方形部62は他の方形部62とは異なる状態となっている。異なる状態とは、塗りつぶしの色が異なるとか、図10のように網掛けがしてあるとか、又は線種が異なる(例えばそれのみ実線で他は点線)とかである。
この「異なる状態」を、以下、差別化状態と呼ぶ。差別化状態とされた方形部62は、その方形に相当するデスクトップが現在リアルデスクトップとなっていることを示している。差別化状態でない状態(非差別化状態)の方形の部分は、その方形部62に相当するデスクトップが現在仮想デスクトップであることを示している。
各方形部62には、切り替え用のプログラム(切替モジュール)の起動させるためのプログラム(切替起動モジュール)が埋め込まれている。ある方形部62がマウスでクリックされると、切替起動モジュールが動作する。切替起動モジュールは、その方形部62が現在リアルデスクトップか仮想デスクトップでかを判断し、リアルデスクトップである場合にはそのままとする。仮想デスクトップである場合、そのデスクトップをリアルデスクトップに切り替えるよう切替モジュールを起動させるようになっている。
各デスクトップを特定する変数が与えられており、以下、これをデスクトップIDと呼ぶ。切替起動モジュールは、切替対象のデスクトップIDを引数にして切替モジュールを起動させる。例えば、図10に示すように、中央に位置するデスクトップがリアルデスクトップになっている状態で、右側の非差別化状態の方形部62がクリックされた場合、その右側のデスクトップのデスクトップIDを引数にして切替モジュールを起動させるようになっている。
切替モジュールは、現在リアルデスクトップであるデスクトップ(以下、カレントリアル)を特定する。これは、レジストリを参照しても良いし、VMDアプリが起動した際にレジストリから予め受け取っておき、VMDアプリ内の環境変数として保持しておくようにしても良い。
切替モジュールは、まず、カレントリアルを仮想デスクトップにする処理を行う。切替モジュールは、カレントリアルを実現していたサブシェルにおいて、アプリケーションの動作状態、ウインドウ状態等を、そのデスクトップ用のサブメモリ空間に書き込まれているレジストリキーに上書きする。また、アプリケーションが取り扱っていたアプリデータをサブメモリ空間に一時的に記憶しておく。そして、カレントリアルを実現させていたサブシェルプログラムを終了させる。これにより、カレントリアルは、仮想デスクトップに切り替わる。
次に、切替モジュールは、切替用アイコン61の更新を行う。即ち、カレントリアルから仮想デスクトップに切り替わったデスクトップに相当する方形部62についてはこれを非差別化状態とし、仮想デスクトップからリアルデスクトップに切り替わったデスクトップに相当する方形部62についてはこれを差別化状態とするよう変更する。通常のデスクトップにおけるアイコンは、WindowsXP等では、サブシステム(Shell32.DLL)に登録されているが、切替用アイコン61の形状や色等のデータは、VMDアプリの環境情報として登録される。即ち、VMDアプリ上に設けられた設定ファイルとして切替用アイコン61のデータが設けられており、VMDアプリが自動的に更新する。切替用アイコン61のデータは、VMDアプリの起動とともに、VMDアプリ用に割り当てられたメモリ空間に記憶され、切替モジュールはメモリ空間にアクセスして切替用アイコン61を更新する。
次に、指定された仮想デスクトップをリアルデスクトップに切り替える処理を行う。デスクトップIDに従って、そのサブシェルにおけるサブシェルプログラムを起動させる。この際、そのデスクトップに割り当てられたサブメモリ空間にアクセスし、レジストリキーを参照して、アプリケーション(そのデスクトップがリアルデスクトップであった際に最後に起動していたアプリケーション)を起動し、ウインドウをオープンし、アプリデータを読み込む。最後にリアルデスクトップであった際にアプリケーションが動作していなかった場合は、ウインドウオープンやアプリデータの読み込みは行わず、単に背景(壁紙)やアイコンを表示するのみとする。また、起動したサブシェルプログラムは、VMDアプリ本体のメモリ空間にアクセスし、更新された切替用アイコン61を取得してデスクトップ内の指定された箇所に表示する。
これで、一連の切替処理は終了する。図10において、さらに別の非差別化状態の方形部62がクリックされると、同様の切替処理が行われ、別のデスクトップがリアルデスクトップとなる。
次に、選択入力手段の別の例について説明する。この選択入力手段は、マウスポインタを利用したもので、仮想マルチデスクトップを実現するのに非常に優れたユニークなものである。
図12は、別の例の選択入力手段について示した概略図である。この例の選択入力手段は、ハードウェアとしてのマウスと、マウスを駆動するソフトウェアとしてのマウス駆動プログラム(マウスドライバ)と、マウスポインタを表示するハードウェアとしてのディスプレイと、ソフトウェアとしての切替起動モジュールや切替モジュール等から構成されている。
図12において、あるデスクトップがリアルデスクトップであるとする。この選択入力手段を使用してデスクトップを切り替える場合、図12(1)に点線で示すように、マウスを操作してマウスポインタ63をディスプレイ2の画面の端にもっていく。この端は、リアルデスクトップに切り替えたい仮想デスクトップが位置している側の端である。以下、この端を画面端と呼ぶ。
マウスポインタ63がある画面端に位置すると、切替起動モジュールが実行されて切替モジュールが起動し、図12(2)に示すように、その画面端の側に位置していた仮想デスクトップ20がリアルデスクトップ2に切り替わり、それまでリアルデスクトップ2が仮想デスクトップ20に切り替わるようになっている。
尚、図12(1)(2)に示すように、ユーザーがマウスを操作することにより生ずるマウスポインタの移動距離要求を、切り替えられたリアルデスクトップ2において忠実に実行するようにすると好適である。つまり、マウスポインタが画面端に達すると、通常は、それ以上マウスを操作してもマウスポインタは移動せず画面端に位置するのみである。しかし、図12(1)(2)に示すように、リアルデスクトップに切り替わった画面において、普通にマウスポインタが移動したと想定される位置(二つ分の大きさの画面があり、そこで普通にマウスポインタが移動して達したと想定される位置)に、マウスポインタを位置させておく。このようにすると、ユーザーとしては、マウスポインタの移動に関連して仮想デスクトップ20からリアルデスクトップ2への切り替えを意識することができる。
切替起動モジュールは、マウスポイント63が画面端に位置したことをイベントとして切替モジュールを起動するようになっている。図13は、図12に示す動作を行う選択入力手段における切替起動モジュール及び切替モジュールの概略を示したフローチャートである。また、図14は、図13に示す切替起動モジュールにおいて切替モジュールに渡す引数について説明した図である。
図13に示すように、切替起動モジュールは、マウスポインタが画面端に位置したかをどうかを常時監視している。マウスポインタが画面端に位置した際、切替起動モジュールは、マウスポインタがどの側の画面端に位置しているかに応じて設定された引数を切替モジュールに渡すようになっている。
画面端は、厳密な意味での画面の端からある程度の幅をもった領域として設定されている(以下、画面端領域)。画面端領域を、図14において網掛けで示す。厳密な意味での画面端は、画面の最も端に位置するピクセルの列ということになるが、そのピクセル列に画面端を限定してもよいが、操作をし易くするため、ある程度の幅を設定している。但し、あまり幅を大きくすると、デスクトップの切替を意図していないにもかかわらず切替モジュールが起動してしまうので、最小限にすべきである。尚、画面の端には、タスクバーのようなメニューバーが常駐オブジェクトとして設けられることがあるが、画面端領域はそれと重ならないように、その外側(さらに端)に設定される。
切替起動モジュールは、マウスポインタが画面端領域内のいずれかのピクセルに位置した際、切替モジュールを起動させる。この際、画面端領域に属する各ピクセルは、画面のどの側であるかによって区分されている。図14に示すように、画面の右側の画面端領域のピクセル群をR、左側の画面端領域のピクセル群をL、上側の画面端領域のピクセル群をU、下側の画面端領域のピクセル群をDとする。
切替起動モジュールは、右側のピクセル群のいずれかにマウスポインタが位置した際には、右側に位置する仮想デスクトップをリアルデスクトップに切り替えるよう引数を切替モジュールに渡す。また、左側のピクセル群のいずれかにマウスポインタが位置した際には、左側に位置する仮想デスクトップをリアルデスクトップに切り替えるよう引数を切替モジュールに渡す。上側、下側についても同様である。引数については、デスクトップIDのような絶対的な値の場合もあるし、現在のリアルデスクトップであるデスクトップに対して右側、というように相対的な値の場合もある。
図3に示す例の場合、デスクトップ群のレイアウトが固定されているので、あるデスクトップのどの側にどのデスクトップが存在するのかは固定されている。従って、図14に示すL,R,U,Dに対応して各デスクトップIDをそのまま設定することができる。一方、図2に示す例では、デスクトップ群のレイアウトが切り替えの際に変更されるので、L,R,U,Dと各デスクトップIDの対応関係を切り替えのたびに設定し直す等の処理が必要になる。
切替モジュール自体は、前述したものと基本的に同様である。現在リアルデスクトップであるデスクトップを仮想デスクトップに切り替えるとともに、渡された引数で指定された仮想デスクトップをリアルデスクトップに切り替える処理を行う。
尚、相対的な値の引数が渡された場合、切替モジュールは、その引数からデスクトップIDを求めるサブプログラムを実行する。該当するデスクトップが無い場合(例えば一番右側のデスクトップがリアルデスクトップの場合においてさらに右側のデスクトップを指定する引数が渡された場合)は、エラーを発生させ、デスクトップの切替を行わずにプログラムを終了させる。エラーを発生させた際、「こちら側にはデスクトップの設定はありません」というようなエラー表示が画面上になされるようにしても良い。
上記例の選択入力手段の操作性を向上したさらに別の例の選択入力手段について、以下に説明する。
上記例では、マウスポインタ63が画面端に位置すると自動的に切替モジュールが起動する例であった。しかしながら、この構成では、何らかの拍子でマウスポインタ63が画面端に位置した際にデスクトップが切り替わってしまい、ユーザーが意図しないデスクトップの切替が頻発する可能性もある。この点を考慮し、マウスポインタ63が画面端に位置しただけでは切替モジュールが起動せず、その上さらに特定の付加動作が加わった場合に切替モジュールが起動するようにする。従って、切替起動モジュールの構成が前述した例と異なっている。この例の切替起動モジュールについて、図15を使用して説明する。図15は、別の例の切替起動モジュール及び切替モジュールの概略を示したフローチャートである。
図15に示すように、この例の切替モジュールは、マウスポインタが画面端に位置し、且つ、付加動作が行われた場合に限り、切替モジュールを起動させるようになっている。引数の設定等は、前述したのと同様である。
付加動作としては、幾つかのものが考えられる。一つは、マウスポインタが画面端においてさらに移動することである。この例が図16に示してある。図16は、図15に示す別の例の切替起動モジュールにおける付加動作の一例について示した図である。
図16に示すように、マウスポインタ63がある画面端に位置し、さらにその画面端に沿ってある程度以上の距離(ピクセル数)を移動した際、切替モジュールが動作するよう切替起動モジュールがプログラミングされる。この距離は、あまり短いと、同様に「ユーザーの意図しない切替」が生じる可能性があるので、ある程度長い距離とすることが好ましい。逆にあまり長いと、長い距離マウスポインタを移動させないと切り替わってくれないので、煩わしくなる。絶対的な距離でいうと、2cmから10cm程度の範囲のいずれに設定し、それ以上の距離移動した際に切り替わるようにしておくと良い。尚、この例でも、マウスポインタがどの側の画面端において所定距離以上移動したかに応じて、その側に対応した引数を切替モジュールに渡す。
また、市販されている通常のマウスに付属したマウスドライバでは、マウスポインタが画面端に達した後も引き続き同じ向きにマウスポインタが移動する操作すると、マウスは画面端に沿って移動する。例えば図16に示すように、マウスポインタ63が斜め左下に向けて移動するようにマウスを操作して、マウスポインタ63が画面端に達したとする。この場合、同じ動作を継続すると、マウスから送られる横方向の駆動要求は無効とされ、縦方向の駆動要求のみが有効となる。従って、マウスポインタ63は縦方向の駆動要求に従って画面端に沿って下方に移動する。
このようなことから、ユーザーがマウスポインタ63を画面端に沿って意図して移動させる操作を行わなくても、切り替えができる場合がある。即ち、画面端に向けて完全に垂直な方向に移動して画面端に達する場合を除いて、普通にマウスを操作すれば、画面端に沿ったマウスポインタ63の動きは生じ得る。従って、これを付加動作として切替モジュールを起動させるようプログラミングすることができる。このような構成は、付加動作をユーザーが意図して行うことが不要なので、よりユーザビリティが高いと言える。
尚、図16では、マウスポインタ63が左側の画面端に位置し、さらにその画面端に沿って下方に移動する例が示されているが、上方に移動した場合も同様に切替モジュールが起動する。また、上側又は下側の画面端にマウスポインタ63が位置した場合、右方向又は左方向にマウスポインタ63が所定距離移動することで切替モジュールが起動されることになる。
他の付加動作の例としては、マウスポインタが画面端にある時間が所定時間(切替設定時間)以上になることが挙げられる。マウスポインタが画面端に位置した際にタイマーをスタートさせ、タイマーのカウントが所定値に達したら、切替モジュールの起動させるようにする。この間、マウスポインタがその画面端から離れたら、タイマーのカウントを中止するようにする。この場合も、切替設定時間が短いと、ユーザーが意図しない切替が生じてしまう可能性が高くなり、切替設定時間が長いと、切替までの待ち時間が長くなり、ユーザーにとって煩わしくなる。切替設定時間は、例えば0.5秒から2秒程度が好ましい。尚、この例でも、マウスポインタがどの側の画面端に位置した状態でタイマーのカウントが所定値に達したかに応じて、その側に対応した引数を切替モジュールに渡す。
さらの他の付加動作の例としては、マウスポインタが画面端にある状態でクリックすることが挙げられる。この場合、クリック(左クリック又は右クリック)だけで切替モジュールが動作するようにして良いし、クリックしさらに別の動作をすることで切替モジュールが動作するようにしても良い。別の動作とは、例えば、クリックするとプルダウンメニュー表示がされ、そこに「デスクトップ切替」のメニューが含まれるようにし、さらにマウスでそれをクリックすることで切替ができる構成である。この場合、マウスポインタが画面端以外の場所にあるときのプルダウンメニュー(通常のプルダウンメニュー)は、「デスクトップ切替」が含まれないようにする。即ち、マウスポインタが画面端にある場合にのみ、プルダウンメニューで「デスクトップ切替」が選択できるようにする。尚、この例でも、マウスポインタがどの側の画面端においてプルダウンメニュー表示をさせたかに応じて、その側に対応した引数を切替モジュールに渡す。
以上で、本実施形態における仮想マルチデスクトップを実現する各コンポーネントの説明は終了である。ユーザーがコンピュータを立ち上げてOSを稼働させると、VMDアプリが自動で起動し、前回シャットダウンした際のデスクトップの状況が再現される。即ち、シャットダウンした際にリアルデスクトップであったデスクトップがディスプレイ上に表示される。そして、シャットダウンした際のウインドウが自動でオープンし、シャットダウンした際に動作させていたアプリケーションがそのウインドウに表示される。並行して、各仮想デスクトップの表示用の情報が各サブメモリ空間に記憶され、表示のスタンバイ状態となる。選択入力手段がユーザーにある仮想デスクトップを選択させると、選択された仮想デスクトップがリアルデスクトップに切り替わる。尚、各デスクトップにおいては、複数のアプリケーションが起動して並行して実行されることもあり、複数のウインドウがオープンされることもある。また、一つのアプリケーションにおいて複数のウインドウがオープンされることもある。
実施形態の仮想マルチデスクトップによれば、デスクトップが複数存在し、それがユーザーの操作により切り替わるので、一つのデスクトップ内にの複数のウインドウをオープンしてアプリケーションを立ち上げる場合に比べると、アプリケーションの切替が容易で、且つ一つのアプリケーションに対し大きなウインドウ領域を確保することができる。
本実施形態の仮想マルチデスクトップは、従来のマルチウインドウとは本質的に異なる。従来のマルチウインドウの場合、デスクトップが一つしかない。従って、一つのアプリケーションを稼働させてウインドウ表示をさせている際、別のアプリケーションを起動させようとすると、そのウインドウをアイコン化するか、かなり小さいウインドウにし、デスクトップ上のその別のアプリケーションの起動用アイコンが見える(表示される)状態にしなければならない。従って、面倒である。一方、本実施形態では、別のアプリケーションを起動したければ、別のデスクトップに切り替えてそのデスクトップにおいて起動用アイコンをクリックすれば良い。従って、極めて使い勝手が良い。
尚、携帯電話等でも、横方向や縦方向の画面表示の切り替えが行われるようになっているが、本実施形態の仮想マルチデスクトップは、これとは本質的に異なる。複数のアプリケーションを同時に起動させ、複数のウインドウを同時オープンするという環境(デスクトップ)が複数あり、これが切り替えられるようになっているのであり、この点で全く異なる。
上述したような仮想マルチデスクトップの環境は、既存の環境に対し、ソフトウェアをインストールすることで実現される。このソフトウェアには、VMDアプリの他、インストール実行プログラムのファイル、マウスドライバの更新が必要な場合はその更新用のファイル等が含まれる。インストール実行プログラムは、VMDアプリを常駐プログラムとしてインストールするか、非常駐プログラムとしてインストールするかをユーザーが選択できるようにしておくことが好ましい。非常駐プログラムを選択した場合、通常のデスクトップ上には、VMDアプリを起動させるためのアイコンが自動的に設けられるようにする。
尚、VMDアプリには、VMDアプリの環境設定プログラムが含まれる。環境設定プログラムによる環境設定は、まずインストール実行プログラムによるインストールの際に行えるようになっている。インストールの際に行われる環境設定には、仮想マルチデスクトップの初期レイアウトについての設定が含まれる。即ち、例えば、図1、図4、図5のようなデスクトップのレイアウトのいずれかにするのかの選択である。
VMDアプリの環境設定は、VMDアプリの稼働中にも行えるようになっている。この環境設定には、デスクトップの増設やデスクトップの削除の設定が含まれる。以下、この点について図17を使用して説明する。図17は、VMDアプリ稼働中の環境設定について示した概略図である。
VMDアプリは常駐プログラムであるので、リアルデスクトップのタスクバーには、VDMアプリが常駐していることを示すアイコン(常駐アイコン)が表示されるようになっている。そして、常駐アイコンをクリックすると、「環境設定」を含むメニュー表示が行われるようになっている。
図17の例は、図10に示すような切替用アイコン61において、「環境設定」のメニューが表示されるようにしたものである。常駐アイコンをクリックすると、切替用アイコン61が表示され、そこに「環境設定」のコマンドボタン(以下、環境設定ボタン)64が表示されるようになっている。
環境設定ボタン64をクリックすると、図17に示すように、メニューリスト65が表示されるようになっており、そこに「デスクトップの増設」が含まれるようになている。図17において、「デスクトップの増設」をクリック(左クリック又は右クリック)すると、現在の仮想マルチデスクトップレイアウトにおいてどこに追加するのかを選択させるウインドウ(以下、位置選択ウインドウ)66が表示されるようになっている。図18は、位置選択ウインドウの一例を示した概略図である。
図18に示すように、この位置選択ウインドウ66では、現在のデスクトップレイアウトが実線で示され、追加配置可能な位置が点線で示されている。位置選択ウインドウ66には、OKボタンが設けられている。OKボタンには、選択された位置にデスクトップを追加配置するプログラム(デスクトップ追加プログラム)の起動コマンドが埋め込まれている。ユーザーは、点線で示されたいずかの領域をマウスでクリックして選択し、さらにOKボタンをクリックする。この結果、デスクトップ追加プログラムが起動し、選択された位置に仮想デスクトップが追加配置される。
デスクトップ追加プログラムは、サブメモリ空間増設モジュール、メモリ記憶モジュール、切替用アイコン61の更新モジュール(図10の実施形態の場合)等を含んでいる。サブメモリ空間増設モジュールは、VMDアプリ用のメモリ空間内にサブメモリ空間を増設し、そこを追加のデスクトップ用に割り当てるモジュールである。メモリ記憶モジュールは、追加されたサブメモリ空間に、シェルプログラムをサブシステムから読み込んで記憶するとともに、アイコン等の表示に必要なレジストリキーをレジストリからコピーして記憶するモジュールである。デスクトップ追加プログラムが実行されると、追加されたデスクトップをいつでもリアルデスクトップに切り替えられる状態となる。
尚、図18においてOKボタンがクリックされた際、追加するデスクトップを直ちにリアルデスクトップにするのか、とりあえず仮想デスクトップとして追加するのかをユーザーが選択できるようにしておくと好ましい。この例について、19を使用して説明する。図19は、追加するデスクトップを直ちにリアルデスクトップにするのか、とりあえず仮想デスクトップとして追加するのかをユーザーに選択させるウインドウ(状態選択ウインドウ)67の一例を示した概略図である。図18においてOKボタンがクリックされた際、デスクトップ追加プログラムが実行される前に、図19に示す状態選択ウインドウ67が表示されるようになっている。
図19に示すように、状態選択ウインドウ67では、「直ちにリアルデスクトップ」と表示されたコマンドボタンと、「とりあえず仮想デスクトップ」と表示されたコマンドボタンとが設けられている。「直ちにリアルデスクトップ」がクリックされると、上記のようにデスクトップ追加プログラムが起動するが、デスクトップ追加プログラムは、上記各モジュールを実行した後、追加したデスクトップをリアルデスクトップに切り替える切替モジュールを実行するようになっている。切替モジュールの詳細は、前述した選択入力手段によりデスクトップの切替を行う場合と同様である。また、「とりあえず仮想デスクトップ」のコマンドボタンがクリックされた場合、デスクトップ追加プログラムは、切替モジュールを行わずにプログラムを終了する。
このように、ユーザーは、VMDアプリの起動中、デスクトップを追加したい場合には、いつでも任意の位置に追加できるようになっている。
上述した実施形態におけるVMDアプリにおいて、VMDアプリを常駐させず、VMD環境とするか否かをユーザーが選択できるようにしても良い。この場合、Windowsを起動してレギュラーシェル3を動作させた際、レギュラーシェル3により表示されるデスクトップ上には、VMDアプリ起動用のアイコンが設けられ、それをクリックすることにより仮想マルチデスクトップ環境に移行するよう構成される。クリックしないと、通常のデスクトップ環境のまま業務が行われる。
次に、上述したようなVMD環境をOSの機能として実現する実施形態について説明する。図20は、VMD環境をOSの機能として実現する実施形態におけるソフトウェアアーキテクチャの概略を示した図である。以下の説明でも、OSとしてはWindowsXPのようなWindowsが想定されている。従って、以下の説明は、WindowsOSがVMD機能を備えたものとして作り変えられる場合を想定したものである。
図20に示すように、この実施形態では、サブシステムに複数のシェル71が設けられるようになっている。複数のシェル71は、OSの初期設定(デフォルト)において所定数設けられるようにしても良いし、初期設定では一つのシェルのみであるが、ユーザーの操作により任意の数だけ追加するようにしても良い。
また、各シェル71をコントロールするプログラムとして、サブシステムにシェルマネージャプログラム(以下、単にシェルマネージャ)72が設けられている。各シェル71は、シェルマネージャ72上で動作するアーキテクチャとなっている。シェルマネージャ72は、サブシステムではなく、カーネルモードのエグゼキュティブに設けられるようになっていても良い。シェルマネージャ72は、主に、各シェル71の動作をオンオフしてデスクトップの切替を行う。
図21は、図20に示す実施形態におけるレジストリ5への情報登録と参照について示した概略図である。図20に示す各シェル71はシェルプログラムを含んでおり、各シェルプログラムはハードディスクからメモリに読み込まれて起動可能な状態とされる。図21に示すように、レジストリ5には、各シェル71のそれぞれに対応してレジストリキーが設けられており、各シェル71で表示されていたデスクトップについてレジストリ情報(レジストリキー値)がそれぞれ登録される。レジストリ5には、シェルマネージャ72が参照するレジストリ情報を登録したレジストリキーも含まれている。シェルマネージャ72が参照するレジストリ情報(以下、マネージャ参照情報)とは、前回シャットダウンした際にどのシェルがオンしていたかの情報などである。
図20及び図21に示す実施形態において、OSが起動すると、サブシステム用にメモリ空間が確保(マッピング)される。この際、各シェルのそれぞれにメモリ空間(以下、シェル用メモリ空間)が割り当てられる。
そして、各シェル用メモリ空間には、ハードディスクからシェルプログラムがそれぞれ読み込まれて記憶される。また、各シェル用メモリ空間には、対応するシェル71のレジストリ情報がレジストリ5から読み込まれて記憶される。また、シェルマネージャ72用のメモリ空間も確保され、そこにはシェルマネージャがハードディスクから読み出されて記憶されるとともに、マネージャ参照情報がレジストリ5から読み出されて記憶される。
そして、シェルマネージャ72が自動的に起動する。シェルマネージャ72は、マネージャ参照情報に従い、前回シャットダウンした際にオンしていたシェル71に動作指令を送る。これにより、そのシェル71のシェルプログラムが起動する。シェルプログラムは、そのシェル71に割り当てられたシェル用メモリ空間からレジストリ情報を読み込み、デスクトップをディスプレイ上に表示する。そして、ユーザーの操作によりアプリケーションが起動し、ウインドウがオープンし、アプリデータが読み出されてウインドウに表示される。これらのシェル71によるデスクトップの表示や動作は、通常のOSにおけるシェルと同様である。
そして、ユーザーが選択入力手段により、別のデスクトップに切り替える操作を行うと、シェルマネージャ72は、それまでリアルデスクトップを表示していたシェル71をオフにし、選択されたデスクトップをリアルデスクトップにするよう対応するシェル71をオフからオンに切り替える。「シェルをオフにする」とは、そのシェル71のシェルプログラムを終了させるとともに、終了の際のそのデスクトップ上の各オブジェクトの状態の情報をそのシェル71のシェル用メモリ空間のレジストリキーに更新して記憶することである。また、「シェルをオンにする」とは、そのシェル71のシェル用メモリ空間に記憶されたレジストリ情報を参照しながらシェルプログラムを起動させ、デスクトップを表示することである。
このようにして、ユーザーの操作に従ってシェルマネージャ72が各シェル17を切り替え、いずれかのシェル71によりリアルデスクトップを表示する。ユーザーは、リアルデスクトップ上でアプリケーションを使って業務を行う。そして、必要に応じ、デスクトップの増設や削除等を行う。
OSがシャットダウンされる際、まず、リアルデスクトップであったデスクトップの情報が、そのシェル71のシェル用メモリ空間に更新して記憶される。そして、各シェル用メモリ空間のレジストリ情報がレジストリ5に送られてレジストリ5に登録されているレジストリ情報(一種のマスタデータ)が更新される。その後、各シェル用メモリ空間やシェルマネージャ用メモリ空間が解放される。後の処理は、通常のシャットダウンと同様である。
この実施形態においても、デスクトップが複数存在し、それがユーザーの操作により切り替わるので、一つのデスクトップ内にの複数のウインドウをオープンしてアプリケーションを立ち上げる場合に比べると、アプリケーションの切替が容易で、且つ一つのアプリケーションに対し大きなウインドウ領域を確保することができる。また、一つのアプリケーションの稼働中に別のアプリケーションを起動させる際、別のデスクトップをリアルデスクトップにして起動させれば良いので、極めて使い勝手が良い。
尚、別の実施形態の構成として、複数のデスクトップのうちの一つがデフォルトのデスクトップとして設定されており、これのみがOSの機能として表示されるものとなっており、他はアプリケーションにより実現されるようにする場合もあり得る。
尚、上記各実施形態において、起動時に各シェル用メモリ空間にシェルプログラムを記憶せず、切り替え時にシェルプログラムをハードディスクから読み込むようにしても良い。即ち、ある仮想デスクトップをリアルデスクトップに切り替えるよう選択入力手段が操作された際に、ハードディスクからシェルプログラムを読み込んで起動させるようにしても良い。この場合、シェルプログラムはシェル用メモリ空間に全く記憶させない(常駐しない)ようにしても良い。このようにすると、シェルプログラムがシェル用メモリ空間の大きな領域を占めてしまうことが無いので、メモリ資源の節約の観点からは好適である。但し、ハードディスクからいちいち読み込むことになるため、切り替え時のデスクトップの立ち上げに時間がかかる欠点がある。ユーザーが選択入力手段を操作した際に短時間のうちにリアルデスクトップが切り替わって表示されるようにするには、シェル用メモリ空間に予めシェルプログラムを記憶しておくことが好適である。
レジストリ情報についても、同様のことが言える。起動時に各シェル用メモリ空間にレジストリ5からレジストリ情報をコピーして記憶させずに、切り替え時にレジストリ5を直接参照してデスクトップを立ち上げるようにしても良い。この場合も、メモリ資源の節約の観点では好適であるが、立ち上げが遅くなる欠点がある。逆に、レジストリ情報を予め各シェル用メモリ空間にコピーしておくと、デスクトップの切り替えが早くなり、ユーザーにとって違和感や苛立ちなどが無くなる。
上述した各実施形態において、VMD環境の再現は、完全な再現でないようにする場合もある。例えば、各デスクトップのレイアウトの再現、各デスクトップ内のアイコン表示の再現、各デスクトップにおけるアプリケーションの起動の再現は行うが、アプリデータの再現は行わないようにしても良い。この場合、アプリケーションは前回の終了時と同じように立ち上がるが、アプリデータの読み込みは、ユーザーがマニュアル操作で行うようにする。また、アプリケーションの起動についても再現しないようにしても良い。
次に、上述したような仮想マルチデスクトップ環境(VMD環境)を、一つのネットワークサービスとして提供する発明の実施形態について説明する。このサービスは、一人のユーザーが、ネットワーク上の異なるコンピュータで同じような業務を行おうとする際、極めて好適なものである
図22は、VMD環境を一つのネットワークサービスとしてサービス(以下、VMDサービス)提供する発明の実施形態の概略構成を示した図である。この発明は、ネットワークを介してVMDサービスを提供するサーバコンピュータ(以下、VMDサーバ)や、ネットワークを介してVMDサービスを提供する方法として実現される。
本実施形態では、ネットワークとしてはインターネット81が想定されている。VMDサーバ82は、インターネット81を介して各クライアントコンピュータ(以下、単にクライアント)83につながっている。各クライアント83は、典型的にはパソコン等のコンピュータであるが、上述したようなVMDアプリが実行可能なコンピュータであれば、その種類は問わない。
VMDサーバ82は、VMDアプリ用ソフトウェアのダウンロードサービス、VMD環境の情報をユーザーのコンピュータに代わって登録し利用させるVMDプロキシサービス等を提供するものとなっている。
VMDサーバ82の主要な機能の一つは、ウェブサーバである。VMDサーバ82には、マイクロソフト社のIIS(Internet Information Service)のようなインターネットサーバプログラムがインストールされており、各種HTMLファイル、XMLファイル等のファイル(以下、ウェッブページ用ファイル)の閲覧サービス、ファイルのダウンロードサービス等が行えるようになっている。
VMDファイルによって提供されるウェッブページには、VMDサービスを提供する事業主体(サービサー)のトップページ、VMDアプリのダウンロードサービス用のページ(以下、ダウンロードページ)、VMDプロキシサービス用のページ(以下、プロキシページ)が含まれる。トップページには、ダウンロードページやプロキシページ等へのリンクボタンが設けられている。
VMDサーバ82が備えるストレージ(典型的にはハードディスク)には、閲覧サービスのためのhttpdプログラム、各種ウェッブページ用ファイル、ダウンロードサービスのためのftpプログラム、ダウンロードされる各種ファイル(以下、ダウンロードファイル)等が保存されている。
ダウンロードファイルに、VMDアプリ用の各種ファイルが含まれている。ダウンロードページには、VMDアプリを紹介する文章とととに、VMDアプリ用ソフトウェアのダウンロード用のコマンドボタン(以下、ダウンロードボタン)が設けられている。VMDアプリのストレージには、VMDアプリ用ソフトウェアのダウンロードプログラムが設けられており、ダウンロードボタンをクリックすると実行されるようになっている。
本実施形態では、VMDアプリのダウンロードは無償で行えるようになっている。ユーザーは、トップページにアクセスし、ダウンロードページに飛んでからダウンロードボタンをクリックすることで自由に自分のコンピュータにVMDアプリをダウンロードできるようになっている。尚、VMDアプリのダウンロードの際、VMDサーバ82上のインストールプログラムを直接実行してインストールするのか、インストールプログラムを自分のコンピュータのハードディスクにコピーしてから実行するのかを選択できるようになっている。このようなプログラムダウンロードは、通常のダウンロードサービスにおけるものと同様なので、詳細な説明は割愛する。
次に、VMDプロキシサービスについて説明する。VMDプロキシサービスは、各ユーザーがVMDアプリを使用して業務を行う際、前回シャットダウンした際のVMDアプリの各デスクトップの情報(以下、VMD情報)をユーザーのコンピュータの代わりに登録するサービスである。登録された情報を利用することで、ユーザーは、インターネット81に接続されたどのコンピュータからでも前回終了時の各デスクトップの状況を再現することができるようになっている。
ユーザー自身以外が登録情報を利用できるのはまずいので、VMDプロキシサービスは、無料サービスではあるが、会員制となっている。VMDサーバ82には、会員登録のためのウェッブページ用ファイルが設けられており、トップページには会員登録のためのページへのリンクボタンが設けられている。ユーザーは、トップページからこのページに飛び、氏名等の個人情報を入力し、ユーザーIDとパスワードの付与を受けるようになっている。従って、VMDサーバ82は、ユーザーID及びパスワードの発行を行うプログラムや認証を行う認証プログラム等を含んでいる。これらの構成は、通常の会員制のサイトにおけるものと同様なので詳細な説明は割愛する。
VMDサーバ82は、VMDプロキシサービスのためのストレージ(記憶装置)84を備えている。ストレージ84は、各種プログラムやウェッブページ用ファイルが記憶されたものと同じ記憶装置でも良いが、情報量が膨大となるため、図22に示すように、別のストレージ(以下、プロキシ用ストレージ)84を用いても良い。プロキシ用ストレージ84は、イントラネット80を介してVMDサーバ82に接続されている。尚、VMDサーバ82は勿論であるが、特にプロキシ用ストレージ84に対して不正なアクセスが無いよう、イントラネット80は、ファイアウォール801を介してインターネット81に接続されている。
プロキシ用ストレージ84には、会員登録したユーザー(以下、登録ユーザー)ごとにパスが設けられ、各パスに、各ユーザーのVMD情報が登録されるようになっている。以下、このユーザー毎のパスをユーザーパスと呼ぶ。VMD情報としてどのような情報を登録するか、幾つかのパターンが考えられる。
第一のパターンは、前述したレジストリへの登録とほぼ同じようにするパターンである。この場合は、VMDアプリにおけるデスクトップレイアウト情報(デスクトップの数やレイアウトの情報等)や各種状態情報、即ち、前回シャットダウンした際にリアルデスクトップであったデスクトップIDの情報、前回シャットダウンした際に各デスクトップで動作させていたアプリケーションの状況情報(アプリケーションの名前、起動パス、アプリデータのリソース情報等)が、VMD情報としてユーザーパスに登録される。
VMD情報には、そのユーザーがアクセス権を持つコンピュータの情報が含まれる。例えば、あるユーザーが職場でパソコンを使用し、自宅でも別のパソコンを使用していたとすると、それぞれのパソコンのアクセス情報とは、IPアドレスやコンピュータ名等の情報である。また、アプリケーションの情報のうち、起動パスやアプリデータにおけるパス情報は、インターネット81上の絶対パスの形で登録される。即ち、そのユーザーIDを持つユーザーが前回VMD環境を実現していたコンピュータ上のパスが登録される。
第一のパターンでは、図22に矢印Xで示すように、前回VMD環境を実現していたコンピュータにVMDサーバ82を介してアクセスし、アプリケーションプログラムやアプリデータを取得する。従って、ユーザーがアクセス権を持つインターネット81上の複数のコンピュータのうちの少なくとも一つは、インターネット81からのアクセス(リモートアクセス)を許可する設定であることが必要である。尚、リモートアクセスについては、当然のことながら、ユーザー自身が設定したIDとパスワードによって認証してから許可するようになっている。この部分の構成は、通常のネットワークOSにおけるものと同様である。以下、リモートアクセスを許可しているコンピュータをRACと呼ぶ。
第二のパターンは、VMDアプリにおけるディスクレイアウト情報や各種状態情報に加え、アプリデータそのものをVMD情報として登録するパターンである。即ち、ユーザーが前回シャットダウンした際に稼働させていたアプリケーションで扱っていたアプリデータもプロキシ用ストレージ84に記憶される。例えばあるデスクトップにおいて文書作成アプリケーションを使用して文書作成をしており、別のデスクトップにおいてブラウザを使用してあるウェッブサイトを閲覧していた場合、その文書ファイルをプロキシ用ストレージ84の当該ユーザーパスに記憶するとともに、そのウェッブサイトのウェッブページをキャッシュメモリに記憶するのと同様にプロキシ用ストレージ84の当該ユーザーのパスに記憶する。
いずれのパターンにおいても、VMDアプリが動作しているコンピュータがクライアント83となる。VMDサーバ82は、クライアント83からの要求に従い、受信したVMD情報の更新登録や、クライアント83へのVMD情報の送信等を行う。従って、このようなVMD情報の送受信等を含む処理を行うプロキシサービスプログラムが、VMDサーバ82にインストールされている。また、VMDアプリについても、VMDサーバ82に対するクライアント83として機能するよう、上述したものから改変が加えられる(ネットワーク型のVMDアプリ)。
図23及び図24は、ネットワーク型のVMDアプリとプロキシサービスプログラムの主要部の概略について示したフローチャートである。このうち、図23は、ネットワーク型のVMDアプリの起動時のプログラムの概略とそれに対応したプロキシサービスプログラムの概略を示し、図24は、ネットワーク型のVMDアプリの終了時のプログラムの概略とそれに対応したプロキシサービスプログラムの概略を示している。
まず、プロキシ用ストレージ84への記憶情報が第一のパターンである場合の各プログラムの概略について説明する。以下の説明では、あるユーザーが使用するコンピュータがすべてRACであるとして説明する。ユーザーは、RACである第一のクライアント83(例えば職場のパソコン)においてVMDアプリを使用してVMD環境で業務を行う。即ち、複数のデスクトップを立ち上げ、各々で異なるアプリケーションを使って業務をする。もしくは、アプリケーションは同じであるが異なるアプリデータを使って業務を行う。そして、業務を終了し、第一のクライアント83をシャットダウンする。
この際、図23に示すように、VMDアプリは、VMDサーバ82にアクセスし、そのユーザーのユーザーパスにVMD情報の登録要求を送信するようプログラミングされる。一方、VMDサーバ82は、VMD情報の登録要求を受信すると、プロキシサービスプログラムを起動させる。プロキシサービスプログラムは、まず、認証プログラムをサブプログラムとして実行する。認証プログラムは、アクセスしてきた第一のクライアント83に認証画面のページを送る。第一のクライアント83のディスプレイに表示された認証画面においてユーザーIDとパスワードが正しく入力されると、認証画面の埋め込みプログラムによりユーザーIDとパスワードがVMDサーバ82に送信される。認証プログラムは、ユーザーIDとパスワードが正しいかどうか判断し、正しければ認証完了とし、認証完了の旨の戻り値をプロキシサービスプログラムに渡して終了する。
そして、プロキシサービスプログラムは、認証完了した旨を第一のクライアント83に送信する。VMDアプリは、認証完了を受信すると、VMD情報をVMDサーバ82に発信する。VMD情報には、VMDアプリにおけるデスクトップレイアウト情報や各種状態情報が含まれる。プロキシサービスプログラムは、認証完了を送信した後、VMD情報を受信すると、受信したVMD情報をプロキシ用ストレージ84の該当ユーザーのユーザーパスに記憶する。これで、VMDアプリ終了時のプログラムは終了である。
次に、VMDアプリ起動時のプログラムについて説明する。
前述したユーザーが、RACである第二のクライアント83(例えば自宅のパソコン)を立ち上げる。第二のクライアント83のハードディスクにもVMDアプリが予めインストールされており、VMDアプリが自動で起動するようになっている。第二のクライアント83においてVMDアプリが起動すると、VMDアプリは、VMDサーバ82に対し、設定情報や状況情報の送信要求を送信する。
送信要求がVMDアプリから送信されると、VMDサーバ82のプロキシサービスプログラムが起動し、同様に、認証プログラムをサブプログラムとして実行する。認証プログラムによる認証が完了し、認証プログラムから認証完了の戻り値を取得すると、プロキシサービスプログラムは、プロキシ用ストレージ84の該当ユーザーのユーザーパスから、VMD情報を読み出し、アクセスしてきた第二のクライアント83に送信する。VMDアプリは、送信されたVMD情報に従って、サブシェルのアーキテクチャを構築し、前述したようなサブシェルメモリ空間の確保やレジストリ情報の記憶等を行うようプログラミングされている。
次に、VMDアプリは、VMD情報に従い、前回のシャットダウン時にリアルデスクトップであったデスクトップをリアルデスクトップにする。そして、前回のシャットダウン時に稼働させていたアプリケーションをリアルデスクトップで立ち上げ、ウインドウのオープンやアプリデータの読み込み等を行って、シャットダウン時の状況を再現する。この際、VMDアプリは、必要に応じ第一のクライアント83にアクセスする。例えば、立ち上げるアプリケーションのプログラムが第二のクライアント83のハードディスクにインストールされていない場合、第一のクライアント83にアクセスし、第一のクライアント83のハードディスクからアプリケーションを読み込んで立ち上げる。また、アプリデータの読み込みが必要な場合、VMDアプリは、第一のクライアント83にアクセスし、第一のクライアント83のハードディスクからアプリデータを読み込む。例えば、第一のクライアント83においてVMDアプリ上で文書作成アプリケーションを使用して文書作成業務をしていた場合、更新した文書ファイルは第一のクライアント83のハードディスクにあるが、この文書ファイルのパス情報は、VMDサーバ82から取得したVMD情報に含まれている。従って、第二のクライアント83で起動させたVMDアプリは、第一のクライアント83にリモートアクセスし、第一のクライアント83から文書ファイルを取得する。また、第一のクライアント83においてVMDアプリ上でブラウザを使用し、ウェッブサイトを閲覧していた場合、VMD情報には、そのウェブサイトのURLが含まれる。従って、第二のクライアント83においてVMDアプリを起動した際、ブラウザを自動的に起動させ、VMD情報に従って自動的にウェッブサイトにアクセスし、ウェッブページのファイルを取得してブラウザのウインドウに表示する。
尚、第二のクライアント83においてVMDアプリを終了させる際、VMDアプリは、同様に、VMDサーバ82にアクセスし、プロキシ用ストレージ84のユーザーパスにVMD情報を更新して記録しておく。そして、再び第一のクライアント83においてVMDアプリが起動させると、今度は第一のクライアント83が必要に応じてVMDサーバ82を介して第二のクライアント83にアクセスし、更新ファイルを第二のクライアント83から取得する。
上記第一のパターンの説明から解るように、第一のパターンにおいてはRACは少なくとも一つあれば足りる。上記説明で言うと、例えば第二のクライアント83がRACではない場合、第二のクライアント83においてVMDアプリ上でアプリケーションを使用して業務を行った際、更新ファイルは、第一のクライアント83のハードディスクの所定のパスに記憶されるようにする。
尚、上記VMDアプリ及びプロキシサービスプログラムにおいて、第一第二の各コンピュータにおいて、同一のVMD環境において各アプリケーションを動作させることが可能なるが、その前提として、第一第二の各コンピュータには、各アプリケーションが同じようにインストールされていることが必要である。この場合、各コンピュータへのアプリケーションのインストールは、各コンピュータにおいて通常のインストール手順を繰り返すことで行っても良いが、VMDアプリに自動インストール機能を持たせても良い。
例えば、第一のクライアント83においてVMDアプリが稼働している際、新しいアプリケーションがインストールされたとする。この場合、そのインストールの実行ファイル(inst.exe)やアプリケーションを構成するファイルやフォルダ群が存在する第一のクライアント83のハードディスクのパス(以下、新アプリインストパス)や、そのアプリケーションの識別情報(アプリケーションの名前等)を、VMDアプリの一つのVMD情報として記憶するようにする。そのVMDアプリが終了した際、新アプリインストパスをVMD情報の一つとして、VMDサーバ82がプロキシ用ストレージ84のユーザーパスに記憶する。一方、第二のクライアント83がVMDアプリを起動させた際、アプリケーションの識別情報に従い、第一のクライアント83に新しくインストールされたアプリケーションが第二のクライアント83にインストールされているかどうか判断する。インストールされていなければ、プロキシ用ストレージ84のユーザーパスにある新アプリインストパスの情報に従い、第一のクライアント83にリモートアクセスし、第一のクライアント83にあるinst.exeを実行し、第二のクライアント83にも新しいアプリケーションをインストールしておく。inst.exeやインストールに必要なファイル群、フォルダ群を第二のクライアント83のハードディスクにコピーしてからインストールしても良い。尚、当然のことならが、ユーザーには、このような二つのコンピュータへのインストールのライセンスがアプリケーションプロバイダから与えられている。
このようにしておくと、各クライアント83において、常に同じアプリケーション群がインストールされた状態となるので、上記のようなネットワーク型のVMD環境を実現する上で好適である。尚、inst.exeやインストールに必要なファイル群、フォルダ群を、プロキシ用ストレージ84のユーザーパスにコピーしておく方法もある。この場合、第二のクライアント83は、ユーザーパス上のinst.exeを実行するか、第二のクライアント83のハードディスクにコピーした上で実行することになる。
次に、第二のパターンにおけるVMDアプリ及びプロキシサービスプログラムについて説明する。
第二のパターンでは、VMDアプリは、終了時に、VMD情報に加え、必要に応じてアプリデータをVMDサーバ82に送りプロキシ用ストレージ84に記憶する。即ち、VMDアプリの終了時に、いずれかのデスクトップにおいてアプリケーションを動作させており、アプリデータを扱っていた場合、その最後の状態のアプリデータをVMDアプリがVMDサーバ82に発信する。最後の状態のアプリデータとは、文書作成アプリケーションのようなファイル編集アプリケーションの場合、最後に編集された状態のファイル(更新ファイル)である。ブラウザの場合、デスクトップで最後に閲覧していたウェッブページのファイルである。これらのアプリデータが、他のVMD情報とともに発信され、プロキシ用ストレージ84のユーザーパスに記憶される。VMDアプリ及びプロキシサービスプログラムは、この部分が第一のパターンと異なるのみで、他は同じである。
上記第二のパターンでは、アプリデータもプロキシ用ストレージ84にあるので、VMDアプリ起動の際、他のコンピュータにリモートアクセスすることは基本的に不要である。従って、リモートアクセスを許可しない設定のコンピュータ間において、上記のようにVMD環境の再現が行える。尚、ユーザーが作成した更新ファイルをプロキシ用ストレージ84に記憶することになるので、更新ファイルが他人に不正に取得されないよう、セキュリティには万全を期す必要がある。
上記説明では、第一第二の二つのクライアント83であったが、三つ以上のクライアントでも同様である。ユーザーID及びパスワードで認証される限り、どのクライアントに対してもVMD情報が送信されるので、ユーザーは、どのクライアントにおいても同じVMD環境において業務を行うことができる。尚、当然のことであるが、VMD環境は、前回VMDアプリを終了させたクライアントと同じクライアントにおいても同様に再現することができる。
尚、上記説明では、ユーザーIDとパスワードで認証を行ったが、これに限定される訳ではない。ユーザーを特定する情報としてユーザーIDは必要であるが、認証に必要なものとしてはパスワード以外の認証手段を用いてもよい。例えば、クライアント83が指紋認証手段又は静脈認証手段等を備えている場合、そられの認証手段の認証結果を上記ネットワーク型VMDアプリにおける認証として採用しても良い。
図25は、ネットワーク型VMDを利用して広告サービスを行う発明の実施形態の概略を示した図である。ネットワーク型VMDを利用して広告サービスを行う発明は、VMDのためのサーバであって、広告情報も併せてクライアント83に送信するサーバとして実現される。
図25においても、インターネット81にはファイアウォール801を介してびイントラネット80が設けられ、イントラネット80上にVMDサーバ82及プロキシ用ストレージ84が設けられている。これらの構成は、図24に示す実施形態のものとほぼ同様である。図25に示す実施形態では、イントラネット80上にさらに広告サーバ84が設けられている。広告サーバ84は、VMDサーバ82からの要求に応じ、広告情報をVMDサーバ82に送信するものである。
図26は、広告サービスが実施されているVMD環境下のリアルデスクトップの例について示した概略図である。広告情報は、オブジェクトとして(即ち、ディスプレイに表示されることが可能な情報として)送られるものであり、以下、広告オブジェクトと呼ぶ。図26に示すように、デスクトップは、広告オブジェクト91を含んでいる。この実施形態では、広告オブジェクト91は、ディスプレイの画面下端付近(タスクバーの上側)に表示されるようになっている。
図25に示すように、広告サーバ84のハードディスクには、広告情報データベース841が記憶されている。広告情報データベース841は、図25に概念的に示すように、多数の広告情報ファイル842から成る。
サービサーは、予め広告を募っており、広告主からの依頼に応じて広告データを作成する。イントラネット80上には、不図示の管理用コンピュータが接続されており、管理用コンピュータにおいて広告データが入力され、広告サーバ84の広告情報ファイル842に登録されるようになっている。
また、各広告情報ファイル842には、優先順位が与えられている。即ち、図25に示すように、各広告情報ファイル842は、0〜n番目のパスに記憶されている。0番目のパスに記憶された広告情報ファイル842が最も優先順位が高く、n番目が最も低い。
一方、広告オブジェクト91は、VMD情報の送信要求があったコンピュータにVMDサーバ82からVMD情報が送信される際、併せて送信される。広告オブジェクト91は、ActiveXやJava(登録商標)アプレットのようなプログラムをダウンロードして実行するタイプのOLE(Object Linking and Embedding)オブジェクトである。このようなOLEオブジェクトは、ブラウザ上で動作するものが多いが、シェルプログラム上で動作するように構成される。
広告オブジェクト91には、広告サーバ84の広告情報データベース841にアクセスしてに、0番目のパスにある広告情報ファイル842を取得して表示するプログラム(以下、埋め込みアプレット)が埋め込まれている。VMD情報がプロキシ用ストレージ84からクライアント83に送られてVMD環境が再現され、広告オブジェクト91がリアルデスクトップに表示されると、埋め込みアプレットが自動的に起動し、広告サーバ84にアクセスする。そして、広告情報データベース841の0番目のパスの広告情報を取得して広告オブジェクト91として当該リアルデスクトップ上に表示するようプログラミングされている。
また、広告サーバ84には、ユーザーのデスクトップ上に表示される広告オブジェクト91の内容(広告データ)を、順次入れ替えるための入れ替えプログラムが設けられている。入れ替えプログラムは、所定時間毎に、各広告情報の優先順位を一つ上にシフトするプログラムである。即ち、ある時間が経過すると、各広告情報は、その一つ上のパスに移動させられる。0番めのパスにあった広告情報は、n番目のパスに移動する。このようにして、所定時間(以下、シフト周期)毎に、各広告情報が一つ上のパスに移動するようになっている。
一方、広告オブジェクト91の埋め込みアプレットは、所定時間毎に起動し、広告情報データベース841の0番目のパスの情報を取得し直して広告オブジェクト91を更新するようプログラミングされれている。この所定時間は、上記シフト周期と同じ時間に設定されている。従って、リアルデスクトップ上に表示された広告オブジェクト91は、シフト周期毎に内容が入れ替わって表示されるようになっている。尚、前述したように、選択入力手段によりリアルデスクトップは別のデスクトップに切り替わるが、埋め込みアプレットの周期的自動起動のためのタイマーカウントは、リアルデスクトップの切り替えによってもリセットされない(0に戻らない)ようにしておく。
上記構成によれば、ネットワーク型VMDサービスの提供に際して、広告サービスも併せて提供することができる。広告サービスの提供に際しては、サービサーは広告主から手数料を徴収することができるので、ネットワーク型VMDサービスの提供については無料とすることができる。このため、VMD技術の普及に貢献する。
尚、広告オブジェクト91は、ユーザーにおいて削除することができないよう構成される。多少の大きさの変更や位置の変更は許容されるようにしても良いが、アイコン化して広告情報がわかならいようにすることもできないようにする。
上記説明では、広告オブジェクト91は埋め込みアプレットにより広告情報を表示するものであったが、広告オブジェクトは広告データそのものであっても良い。この場合は、プロキシ用ストレージ84に広告オブジェクトを全ユーザー共通のものとして登録するようにしておく。そして、クライアント83からVMD情報の送信要求があった場合、広告オブジェクトがVMDサーバ82から送信され、ディスプレイに表示されるようにする。この場合、広告オブジェクト91は単なるデータなので、広告内容を周期的に切り替えることはそのクライアント83上ではできない。
但し、プロキシ用ストレージ84上の広告オブジェクトを周期的に更新して登録するようにすれば、上述したものに近いことは行える。即ち、広告サーバ84が周期的にプロキシ用ストレージ84にアクセスし、広告オブジェクトを更新するようにする。広告オブジェクトの更新は、前述した広告情報ファイル842の内容とし、0〜nの順の内容で周期的に更新が行われるようにする。従って、クライアント83からどのタイミングでVMD情報の送信要求があったかに応じて、0〜nのいずれかの広告情報ファイル842の内容が広告オブジェクトとしてクライアント83に送信され、表示される。
また、広告オブジェクトは、CGI、JavaScript、VBScriptのようなスクリプトにより表示されるものであっても良い。この場合、スクリプトが自動実行されるようシェルプログラム等が構成されることが好ましい。また、スクリプトをコンパイルして実行する機能が広告サーバ84に備えられる。
尚、広告オブジェクト91において広告情報を更新取得する周期は、上記シフト周期に一致している必要はない。また、広告オブジェクト91において広告情報が周期的に入れ替わるようにすることも必須の要素ではない。VMDサーバ82がVMD情報をクライアント83に送信する際、単に広告情報をリアルデスクトップ上で貼り付けられるよう広告情報を送るだけでも良い。
また、前述した縦横各一列のみから成るデスクトップ群のレイアウトの場合、広告オブジェクト91の表示は、縦の列に位置するデスクトップにおいてのみ行われるようにすると好適である。この点は、人間工学的な観点を加味したものである。即ち、デスクトップに表示される多くの情報は、ユーザーが横方向に目で追って視認する場合が多い。典型的には、文字情報は多くの場合横書きである。従って、横方向へのデスクトップの切替は、ユーザーには比較的自然なものとして感じるが、縦方向へのデスクトップの切替は特別に感じる。
このような点を考慮すると、横方向の列のデスクトップ群は、ユーザーが比較的頻繁に見るオブジェクトグループとして設定され、縦方向の列のデスクトップ群は、特別な場合に見るオブジェクトグループとして設定されるのが、ユーザビリティの高い設定である。この際、横方向のデスクトップ群において広告オブジェクトが表示されると、頻繁に広告オブジェクトが表示される結果となるから、ユーザーにとって煩わしく感じる可能性がある。また、頻繁に表示するデスクトップでは、なるべく広い表示領域を確保するため、広告オブジェクトを表示しない方が良いという考えもある。従って、縦方向の列のデスクトップを表示する場合のみ広告オブジェクトが表示されるようにすると好適である。
図3の実施形態に沿って上記の点の具体例を説明する。図3において、横方向の列において左から三番目のデスクトップがデフォルトでリアルデスクトップ2であるとし、VMDアプリを起動させた場合、常にこの位置のデスクトップがリアルデスクトップ2であるとする。この場合、ユーザーは、デフォルトのリアルデスクトップ2において左又は右の仮想デスクトップ20を選択し、リアルデスクトップに切り替え、起動させておいたアプリケーションプログラムにより業務を行う。業務を行う際、何らかの情報を得る目的や気分転換の目的でインターネットサイトにアクセスしてウェッブページを閲覧することがある。この際に、上又は下の仮想デスクトップ20を選択し、起動させておいたブラウザによりウェッブページを閲覧する。この上又は下の仮想デスクトップ20を選択した場合のみ広告オブジェクトが表示されるよう、前記VMD情報が設定される。つまり、横方向の列については、広告オブジェクトの表示無しにユーザーが自由にカスタマイズすることができるようにしておき、縦方向の列においてのみ広告オブジェクトの表示が行われるようにする。尚、場合によっては、横方向の列においてのみ広告オブジェクトが表示され、縦方向では表示されないようにすることもあり得る。
上記各実施形態の説明では、Windows系のOSを前提として説明したが、本願発明の考え方は、Unix(登録商標)、Linux、MacOS等、他のOSにおいても適用が可能である。
尚、上記各実施形態におけるVMDのコンセプトは、通信と放送が融合した将来のIT環境において優れたソリューションを提供する。即ち、例えばテレビ放送のディスプレイ上への表示も、一つのアプリケーションと捉えることができる。従って、リアルデスクトップ上に一つのチャンネルを写し(一つ放送局から配信された番組を表示し)、他の仮想デスクトップにおいて他のチャンネルを写す(他の放送局から配信された番組を表示す)るような使い方が考えられる。この場合も、選択入力手段により他のチャンネルの番組を表示するよう切り替えが行われるが、特に、図5に示すように、各デスクトップがループ状に連なった構成において、選択入力手段によるチャンネル切り替えを行うようにすると、現状のテレビジョン装置の同様のイメージでユーザーはチャンネル切り替えを行うことができ、好適である。この場合、テレビ放送受信以外のアプリケーションを上側及び又は下側に配置したデスクトップで表示することが考えられる。この場合も、各デスクトップにおいては、複数のアプリケーションが並行して実行されたり、複数のウインドウがオープンされることがあり、一つのデスクトップにおいてテレビ番組の表示とテレビ番組以外の他のアプリデータの表示とが行われたりすることもある。
また、上記各実施形態では、オブジェクトグループを意味するものとして「デスクトップ」という概念を採用したため、仮想マルチデスクトップというコンセプトで説明が行われた。しかしながら、「デスクトップ」という用語は本願発明においては必須のものではない。オブジェクトグループが複数設定されており、その数が、リアルディスプレイと仮想ディスプレイの合計の数に一致しており、各オブジェクトグループが各ディスプレイに対応して設けられていることが必須条件である。「対応して設けられている」とは、対応するディスプレイがリアルディスプレイになった際に表示されるものとして記憶部に記憶されているということである。
本願発明の実施形態の基本コンセプトとしての仮想マルチデスクトップを説明した平面概略図である。 図1に示す仮想マルチデスクトップの動作について説明した平面概略図である。 ディスプレイ群1,10のレイアウトを固定した実施形態の概略図である。 さらに別の実施形態を示した概略図である。 さらに別の実施形態を示した斜視概略図である。 各実施形態の仮想マルチデスクトップをアプリケーションとして実現する際のソフトウェアアーキテクチャを示した概略図である。 実施形態におけるレジストリ5への情報登録と参照について示した概略図である。 VMDアプリの開始用モジュールの概略構成を示したフローチャートである。 VMDアプリにおけるメモリ空間の概略図である。 選択入力手段を構成するオブジェクトを示した概略図である。 選択手段を構成する切替起動モジュール及び切替モジュールの概略を示したフローチャートである。 別の例の選択入力手段について示した概略図である。 図12に示す動作を行う選択入力手段における切替起動モジュール及び切替モジュールの概略を示したフローチャートである。 図13に示す切替起動モジュールにおいて切替モジュールに渡す引数について説明した図である。 別の例の切替起動モジュール及び切替モジュールの概略を示したフローチャートである。 図15に示す別の例の切替起動モジュールにおける付加動作の一例について示した図である。 VMDアプリ稼働中の環境設定について示した概略図である。 位置選択ウインドウの一例を示した概略図である。 状態選択ウインドウ67の一例を示した概略図である。 VMD環境をOSの機能として実現する実施形態におけるソフトウェアアーキテクチャの概略を示した図である。 図20に示す実施形態におけるレジストリ5への情報登録と参照について示した概略図である。 VMD環境を一つのネットワークサービスとして提供する発明の実施形態の概略構成を示した図である。 ネットワーク型のVMDアプリとプロキシサービスプログラムの主要部の概略について示したフローチャートである。 ネットワーク型のVMDアプリとプロキシサービスプログラムの主要部の概略について示したフローチャートである。 ネットワーク型VMDを利用して広告サービスを行う発明の実施形態の概略を示した図である。 広告サービスが実施されているVMD環境下のリアルデスクトップの例について示した概略図である。
符号の説明
1 リアルディスプレイ
10 仮想ディスプレイ
2 リアルデスクトップ
20 仮想デスクトップ

Claims (13)

  1. 演算処理部と、記憶部と、ディスプレイとを有するコンピュータであって、
    記憶部には、ディスプレイに表示される情報であるオブジェクトが記憶されているとともに、コンピュータを動作させるオペレーティングシステムと、複数のアプリケーションプログラムと、オブジェクトをディスプレイに表示する表示プログラムがインストールされており、
    表示プログラムによって表示されるオブジェクトには、各アプリケーションプログラムを起動するためのアイコンと、各アプリケーションによって取り扱われるデータが含まれており、
    記憶部には、アイコンを表示するためのアイコン表示用ファイルと、各アプリケーションによって取り扱われるデータとが記憶されており、
    表示プログラムは、各アイコン表示用ファイルによって各アプリケーションプログラムを起動するアイコンをそれぞれディスプレイに表示するものとなっており、
    オペレーティングシステムは、二以上の前記アプリケーションプログラムを並行して実行することが可能であって、表示プログラムは、二以上の前記アプリケーションプログラムが実行されている際にそれぞれのアプリケーションプログラムの実行状況を一つディスプレイにおいてそれぞれのウインドウに表示するマルチウインドウ表示が可能となっており、
    記憶部には、ディスプレイにおける各オブジェクトの表示状態の情報である状態情報を記録した状態情報ファイルが記憶されており、
    表示プログラムは、オペレーティングシステムが起動した際、状態情報ファイルに保存された状態情報を読み出して、前回オペレーティングシステムが終了した際のディスプレイへの表示状態を再現するようになっており、
    記憶部には、前記現実のディスプレイ及び現実のディスプレイに隣接して仮想的に存在している仮想ディスプレイから成るディスプレイ群のレイアウトに関する情報であるディスプレイレイアウト情報を記録したディスプレイレイアウト情報ファイルが記憶されており、
    状態情報ファイルに記録された状態情報は、現実のディスプレイの全画面領域内に同時に表示されるすべてのオブジェクトの状態情報を、複数のオブジェクトグループに分けて保存したものとなっており、
    オブジェクトグループの数は、現実のディスプレイの数に仮想ディスプレイの数を加えたものに一致しており、記憶部は、前記ディスプレイ群におけるどのディスプレイに対応するのかの情報とともに前記状態情報を記憶するようになっており、
    さらに、
    一つのオブジェクトグループが現実のディスプレイに表示されている際、現実のディスプレイに隣接する任意の仮想ディスプレイを選択する入力をユーザーに行わせる選択入力手段が設けられており、この選択入力手段は、現実のディスプレイに対して仮想ディスプレイが存在する側を指定させるものであり、
    表示プログラムは、それまで現実のディスプレイに表示されてきたオブジェクトグループの表示を止め、別のオブジェクトグループを現実のディスプレイに表示する切替モジュールを有しており、
    切替モジュールは、選択入力手段がユーザーに任意の仮想ディスプレイを選択させた際に動作するものであって、選択された仮想ディスプレイに対応したオブジェクトグループを現実のディスプレイに表示するものであることを特徴とするコンピュータ。
  2. 前記選択入力手段は、ハードウェアとしてのマウスと、記憶部にインストールされたマウス駆動プログラム及び前記表示プログラムの一部である切替起動モジュールとから構成されており、切替起動モジュールは、マウス駆動プログラムによってディスプレイ上に表示されるマウスポインタが、ユーザーによるマウスの操作により前記ディスプレイの画面端に位置し且つ所定の付加動作が行われたのを検出し、前記切替モジュールを起動させるものであって、前記ディスプレイのどの側の画面端で付加動作が行われたのかの情報を前記切替モジュールに渡すものであり、
    前記切替モジュールは、渡された情報に従い、その側に位置する仮想ディスプレイに対応したオブジェクトグループを現実のディスプレイに表示するものとなっていることを特徴とする請求項1記載のコンピュータ。
  3. 前記付加動作は、画面端に位置したマウスポインタを当該画面端に沿って所定距離以上移動させる動作であることを特徴とする請求項2記載のコンピュータ。
  4. 前記ディスプレイ群のレイアウトは、横方向の一つのみの列と縦方向の一つのみの列とから成るものであることを特徴とする請求項1、2又は3記載のコンピュータ。
  5. 前記ディスプレイ群のレイアウトは、横方向の一つのみの列と縦方向の一つのみの列とから成るものであり、
    横方向の列のディスプレイ群の一つが現実のディスプレイである場合にその左又は右側の仮想ディスプレイが前記選択入力手段により選択された結果、前記切替モジュールにより、その左又は右側の仮想ディスプレイが現実のディスプレイに切り替わった際、縦方向の仮想ディスプレイの列も同様に左又は右にシフトし、切り替わった現実のディスプレイを通って縦方向の列が位置するようレイアウトが変更されるようになっており、
    前記ディスプレイレイアウト情報ファイルは、変更されたレイアウトの情報が更新されて記録されるものであることを特徴とする請求項1、2又は3記載のコンピュータ。
  6. 前記ディスプレイ群のレイアウトは、横方向の一つのみの列と縦方向の一つのみの列とから成るものであり、
    縦方向の列のディスプレイ群の一つが現実のディスプレイである場合にその上又は下側の仮想ディスプレイが前記選択入力手段により選択された結果、前記切替モジュールにより、その上又は下側の仮想ディスプレイが現実のディスプレイに切り替わった際、横方向の仮想ディスプレイの列も同様に上又は下にシフトし、切り替わった現実のディスプレイを通って横方向の列が位置するようレイアウトが変更されるようになっており、
    前記ディスプレイレイアウト情報ファイルは、変更されたレイアウトの情報が更新されて記録されるものであることを特徴とする請求項1、2又は3記載のコンピュータ。
  7. 前記横方向の一つののみの列又は縦方向の一つのみの列は、無終端のループ状につながったものであることを特徴とする請求項4、5又は6記載のコンピュータ。
  8. 前記横方向の一つののみの列及び縦方向の一つのみの列は、無終端のループ状につながったものであることを特徴とする請求項4、5又は6記載のコンピュータ。
  9. 請求項1乃至8いずれかに記載のコンピュータがクライアントコンピュータとしてネットワークを介してサーバコンピュータに複数接続されているクライアント−サーバコンピュータ群であって、サーバコンピュータはサーバ記憶部を有しており、
    サーバ記憶部には、各クライアントコンピュータにおける前記状態情報を保存したサーバ側状態情報ファイルが設けられており、サーバ側状態情報ファイルは、ユーザーを識別するユーザーID毎に前記状態情報を保存しており、
    サーバ記憶部には、認証プログラム、状態情報登録プログラム及び状態情報送信プログラムがインストールされており、
    認証プログラムは、クライアントコンピュータからユーザーIDを発信させてアクセスを許可するかどうか判断するプログラムであり、
    前記表示プログラムは、状態情報発信モジュール及び登録情報受信モジュールを有しており、
    状態情報発信モジュールは、当該クライアントコンピュータのオペレーティングシステムが終了する際、当該クライアントコンピュータにおける前記状態情報を発信してサーバコンピュータへの登録を要求するものであり、
    状態情報登録プログラムは、認証プログラムによりアクセスが許可されたクライアントコンピュータから発信された状態情報を、発信されたユーザーIDの状態情報としてサーバ側状態情報ファイルに記録して登録するプログラムであり、
    状態情報送信プログラムは、認証プログラムによりアクセスが許可されたクライアントコンピュータに、発信されたユーザーIDの状態情報を送信するプログラムであり、
    状態情報受信モジュールは、サーバコンピュータから送信された状態情報を受信して各オブジェクトグループの前記現実のディスプレイへの表示を可能とするものであり、
    状態情報送信プログラムは、認証プログラムにより認証される限り、前回状態情報を送信してきたクライアントコンピュータとは異なるクライアントコンピュータに対しても状態情報を送信するものであって、オペレーティングシステム終了時のディスプレイ表示状態の再現を異なるクライアントコンピュータ間において可能とするものであることを特徴とするクライアント−サーバコンピュータ群。
  10. 前記状態情報送信プログラムは、前記状態情報とともに広告オブジェクトを送信するものであり、この広告オブジェクトは、送信されたクライアントコンピュータにおいていずれかのオブジェクトグループに追加されるものであり、そのオブジェクトグループが現実のディスプレイに表示される際にディスプレイに表示されるものであることを特徴とするクライアント−サーバコンピュータ群。
  11. 請求項9又は10に記載するクライアント−サーバコンピュータ群を構成する前記サーバコンピュータ。
  12. 請求項1乃至5記載のコンピュータにインストールされる前記表示プログラム。
  13. 請求項1乃至8いずれかに記載のコンピュータがクライアントコンピュータとしてネットワークを介してサーバコンピュータに複数接続されているクライアント−サーバコンピュータ群において、いずれかのクライアントが備える現実のディスプレイにオブジェクトを表示するディスプレイ表示方法であって、
    サーバコンピュータはサーバ記憶部を有しており、
    サーバ記憶部は、各クライアントコンピュータにおける前記状態情報を記録したサーバ側状態情報ファイルを記憶しており、サーバ側状態情報ファイルは、ユーザーを識別するユーザーID毎に前記状態情報を記録しており、
    サーバ記憶部には、認証プログラム、状態情報登録プログラム及び状態情報送信プログラムがインストールされており、
    認証プログラムは、クライアントコンピュータからユーザーIDを発信させてアクセスを許可するかどうか判断するプログラムであり、
    前記表示プログラムは、状態情報発信モジュール及び登録情報受信モジュールを有しており、
    クライアントコンピュータのオペレーティングシステムが終了する際、状態情報発信モジュールが、当該クライアントコンピュータにおける前記状態情報を発信してサーバコンピュータへの登録を要求するステップと、
    状態情報登録プログラムが、認証プログラムによりアクセスが許可されたクライアントコンピュータから発信された状態情報を、発信されたユーザーIDの状態情報としてサーバ側状態情報ファイルに記録して登録するステップと、
    状態情報送信プログラムが、認証プログラムによりアクセスが許可されたクライアントコンピュータに、発信されたユーザーIDの状態情報を送信するステップと、
    状態情報受信モジュールが、サーバコンピュータから送信された状態情報を受信して各オブジェクトグループの前記現実のディスプレイへの表示を可能とするステップと、
    状態情報送信プログラムが、認証プログラムにより認証される限り、前回状態情報を送信してきたクライアントコンピュータとは異なるクライアントコンピュータに対しても状態情報を送信するステップを備えており、ペレーティングシステム終了時のディスプレイ表示状態の再現を異なるクライアントコンピュータ間において可能とすることを特徴とするディスプレイ表示方法。
JP2006164110A 2006-06-14 2006-06-14 コンピュータ、クライアント−サーバコンピュータ群、サーバコンピュータ、表示プログラム、及びディスプレイ表示方法 Pending JP2007334525A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006164110A JP2007334525A (ja) 2006-06-14 2006-06-14 コンピュータ、クライアント−サーバコンピュータ群、サーバコンピュータ、表示プログラム、及びディスプレイ表示方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006164110A JP2007334525A (ja) 2006-06-14 2006-06-14 コンピュータ、クライアント−サーバコンピュータ群、サーバコンピュータ、表示プログラム、及びディスプレイ表示方法

Publications (1)

Publication Number Publication Date
JP2007334525A true JP2007334525A (ja) 2007-12-27

Family

ID=38933964

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006164110A Pending JP2007334525A (ja) 2006-06-14 2006-06-14 コンピュータ、クライアント−サーバコンピュータ群、サーバコンピュータ、表示プログラム、及びディスプレイ表示方法

Country Status (1)

Country Link
JP (1) JP2007334525A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015536A (ja) * 2008-07-01 2010-01-21 Renbao Computer Industry Co Ltd 地図式メニューインターフェースを操作する方法
JP2010108190A (ja) * 2008-10-29 2010-05-13 Kyocera Corp 携帯電子機器
JP2011222032A (ja) * 2011-05-10 2011-11-04 Mitsutoshi Mizutani 拡大仮想化されたユーザーインターフェイスの表示方法
JP2013084260A (ja) * 2011-09-28 2013-05-09 Kyocera Corp 装置、方法、及びプログラム
JP2013546045A (ja) * 2010-10-01 2013-12-26 ゼット124 デスクトップ前面表示化拡張
JP2014529212A (ja) * 2011-08-05 2014-10-30 トムソン ライセンシングThomson Licensing ビデオ・ピーキング(peeking)
US9477370B2 (en) 2012-04-26 2016-10-25 Samsung Electronics Co., Ltd. Method and terminal for displaying a plurality of pages, method and terminal for displaying a plurality of applications being executed on terminal, and method of executing a plurality of applications
JP2017174448A (ja) * 2012-09-07 2017-09-28 グーグル インコーポレイテッド 電子デバイスを制御するためのプログラムおよび電子デバイス
US9870121B2 (en) 2010-10-01 2018-01-16 Z124 Desktop reveal expansion
CN110225380A (zh) * 2019-04-28 2019-09-10 百度在线网络技术(北京)有限公司 电视桌面的显示方法和装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02114320A (ja) * 1988-10-25 1990-04-26 Pfu Ltd 画面切換え制御方式
JPH04287094A (ja) * 1991-03-18 1992-10-12 Fujitsu Ltd マルチウィンドウシステムの表示方式
JPH05158849A (ja) * 1991-12-05 1993-06-25 Fuji Xerox Co Ltd ウインドウシステム
JPH05324248A (ja) * 1992-12-16 1993-12-07 Casio Comput Co Ltd マルチウィンドウ表示装置
JPH0651929A (ja) * 1992-07-31 1994-02-25 Hitachi Ltd ウィンドウ表示制御システム
JPH07114451A (ja) * 1993-10-19 1995-05-02 Canon Inc 3次元メニュー選択方法とその装置
JP2000089886A (ja) * 1998-09-10 2000-03-31 Scale:Kk 仮想多面体を用いたデスクトップ管理システム及び方法
JP2001266005A (ja) * 2000-03-08 2001-09-28 Korea Data Systems Co Ltd インターネット広告画面表示装置
JP2001312346A (ja) * 2000-04-27 2001-11-09 Kenwood Corp 表示装置
JP2002099370A (ja) * 2000-07-31 2002-04-05 Internatl Business Mach Corp <Ibm> 仮想デスクトップ間をスイッチするための方法、システム、およびコンピュータ・プログラム製品
JP2002269492A (ja) * 2001-01-05 2002-09-20 Internatl Business Mach Corp <Ibm> ディジタル・ペンを使用してコモン・ミュージック・ノテーション(cmn)を書くための方法およびシステム

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02114320A (ja) * 1988-10-25 1990-04-26 Pfu Ltd 画面切換え制御方式
JPH04287094A (ja) * 1991-03-18 1992-10-12 Fujitsu Ltd マルチウィンドウシステムの表示方式
JPH05158849A (ja) * 1991-12-05 1993-06-25 Fuji Xerox Co Ltd ウインドウシステム
JPH0651929A (ja) * 1992-07-31 1994-02-25 Hitachi Ltd ウィンドウ表示制御システム
JPH05324248A (ja) * 1992-12-16 1993-12-07 Casio Comput Co Ltd マルチウィンドウ表示装置
JPH07114451A (ja) * 1993-10-19 1995-05-02 Canon Inc 3次元メニュー選択方法とその装置
JP2000089886A (ja) * 1998-09-10 2000-03-31 Scale:Kk 仮想多面体を用いたデスクトップ管理システム及び方法
JP2001266005A (ja) * 2000-03-08 2001-09-28 Korea Data Systems Co Ltd インターネット広告画面表示装置
JP2001312346A (ja) * 2000-04-27 2001-11-09 Kenwood Corp 表示装置
JP2002099370A (ja) * 2000-07-31 2002-04-05 Internatl Business Mach Corp <Ibm> 仮想デスクトップ間をスイッチするための方法、システム、およびコンピュータ・プログラム製品
JP2002269492A (ja) * 2001-01-05 2002-09-20 Internatl Business Mach Corp <Ibm> ディジタル・ペンを使用してコモン・ミュージック・ノテーション(cmn)を書くための方法およびシステム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015536A (ja) * 2008-07-01 2010-01-21 Renbao Computer Industry Co Ltd 地図式メニューインターフェースを操作する方法
JP2010108190A (ja) * 2008-10-29 2010-05-13 Kyocera Corp 携帯電子機器
JP2013546045A (ja) * 2010-10-01 2013-12-26 ゼット124 デスクトップ前面表示化拡張
US9870121B2 (en) 2010-10-01 2018-01-16 Z124 Desktop reveal expansion
JP2011222032A (ja) * 2011-05-10 2011-11-04 Mitsutoshi Mizutani 拡大仮想化されたユーザーインターフェイスの表示方法
JP2014529212A (ja) * 2011-08-05 2014-10-30 トムソン ライセンシングThomson Licensing ビデオ・ピーキング(peeking)
JP2013084260A (ja) * 2011-09-28 2013-05-09 Kyocera Corp 装置、方法、及びプログラム
US9477370B2 (en) 2012-04-26 2016-10-25 Samsung Electronics Co., Ltd. Method and terminal for displaying a plurality of pages, method and terminal for displaying a plurality of applications being executed on terminal, and method of executing a plurality of applications
US10387016B2 (en) 2012-04-26 2019-08-20 Samsung Electronics Co., Ltd. Method and terminal for displaying a plurality of pages,method and terminal for displaying a plurality of applications being executed on terminal, and method of executing a plurality of applications
JP2017174448A (ja) * 2012-09-07 2017-09-28 グーグル インコーポレイテッド 電子デバイスを制御するためのプログラムおよび電子デバイス
CN110225380A (zh) * 2019-04-28 2019-09-10 百度在线网络技术(北京)有限公司 电视桌面的显示方法和装置

Similar Documents

Publication Publication Date Title
JP2007334525A (ja) コンピュータ、クライアント−サーバコンピュータ群、サーバコンピュータ、表示プログラム、及びディスプレイ表示方法
AU2006318813B2 (en) Multiple dashboards
US20200218437A1 (en) Visual Characteristics of User Interface Elements in a Unified Interest Layer
US10437611B2 (en) Management of user interface elements in a display environment
US8566732B2 (en) Synchronization of widgets and dashboards
US8543931B2 (en) Preview including theme based installation of user interface elements in a display environment
US6690400B1 (en) Graphic user interface for resources management of super operating system based computers
US8453065B2 (en) Preview and installation of user interface elements in a display environment
US7512892B2 (en) Method and system for displaying and interacting with paginated content
US20080034309A1 (en) Multimedia center including widgets
US20070101279A1 (en) Selection of user interface elements for unified display in a display environment
US20140365910A1 (en) Systems and methods for sharing and switching between personas on mobile technology platforms
CN102918540A (zh) 利用凭证创建并启动万维网应用
CN102918484A (zh) 包括任务栏锁定的万维网应用锁定
CA2697936A1 (en) Methods and systems for generating desktop environments providing integrated access to remote and local resources
JP2013536482A (ja) ウェブアプリケーションホームボタン
CN102918486A (zh) Web应用导航域
KR20010024488A (ko) 드래그 앤드 드롭 인터페이스를 이용한 응용 프로그램제어 시스템
KR102301903B1 (ko) 복수의 디스플레이들을 포함하는 사용자 단말을 사용하여 사이드 바와 연관된 콘텐츠를 제공하는 방법 및 장치
JP2000082002A (ja) データ管理システム及び記録媒体
Harwani Android Programming Unleashed
JP2008250382A (ja) コンピュータプログラム、情報処理装置および情報処理方法
Moore Creating Great Windows Applications
Kotecha Windows 7 in easy steps
Thomas Booting Linux for the First Time

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111206