説明

コンピュータ・システムの制御方法およびコンピュータ

【課題】ノートPCとタブレットPCにおいてアプリケーションを連携動作させる。
【解決手段】ノートPC10は第1のアプリケーションを格納しタブレットPC100は第1のアプリケーションと同一性のある第2のアプリケーションを格納する。ノートPCとタブレットPCはネットワークを経由して接続される。タブレットPCがタッチ・スクリーンで生成した入力情報で第2のアプリケーションを実行する。タブレットPCは、その第2の入力情報をノートPCに送る。ノートPCは第2の入力情報に基づいて第1のアプリケーションを実行する。ノートPCには、タブレットPCのディスプレイに表示した画像と同一の画像を表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のコンピュータを連携動作させて同一内容のファイルを処理する技術に関し、さらには各コンピュータの入出力機能を相互補完しながら同一内容のファイルを処理する技術に関する。
【背景技術】
【0002】
コンピュータの種類には、単体ではマウスやキーボードのようはハードウエアの入力デバイスを備えておらず、ディスプレイに指や電子ペンで入力するピュアタブレット型コンピュータ(以下、タブレットPCという。)がある。タブレットPCは、たとえばマイクロソフト社ではスレートPCと呼び、アップル社では商品名としてiPad(登録商標)と呼んでいる。また、電話機能を備え入出力方法がタブレットPCに似た構造でタブレットPCより小型のスマートフォンといわれるコンピュータも普及している。
【0003】
近年、ユーザがデスクトップ型パーソナル・コンピュータ(以下、デスクトップPCという。)またはノートブック型パーソナル・コンピュータ(以下、ノートPCという。)に加えて、タブレットPCまたはスマートフォンを保有することが一般的になりつつある。ユーザは、これらのコンピュータをその特徴によって使い分ける。たとえばユーザは、携帯性を重視する場合はスマートフォンを利用し、文書ファイルや画像などのコンテンツを閲覧するときにはタブレットPCを利用する。
【0004】
またユーザはキーボードからの入力が多い場合にはノートPCを利用し、負荷の大きなプログラムを実行したり、拡大した画面表示が必要な場合はデスクトップPCを利用したりする。外出先では同時に複数のコンピュータを利用することは困難であるが、家庭やオフィスではこれらの複数のコンピュータが身近に存在する。ノートPCとデスクトップPCのグループとタブレットPCおよびスマートフォンのグループを比較したときには、前者のグループはキーボードおよびマウスを利用できるのでタブレットPCやスマートフォンに多量の入力作業をする場合にノートPCまたはデスクトップPCから入力ができれば都合がよい。
【0005】
また、後者のグループは携帯に便利なため、プレゼンテーションの際にノートPCがプロジェクタに表示している画面を、スマートフォンを利用して遠隔から操作できれば都合がよい。また、後者のグループはマルチタッチや電子ペンで入力ができるため、アプリケーションによってはそのような入力を利用してノートPCでの処理ができれば都合がよい場合がある。したがって、ノートPCとタブレットPCまたはスマートフォンを接続して、相互に一方から他方を操作できると都合がよい。複数のコンピュータの間で入出力を共有する方法としてマイクロソフト社が提供するリモート・デスクトップという技術がある。リモート・デスクトップでは、ネットワークを介して別のコンピュータの画面を自分のコンピュータ上にそのまま表示して、自分のコンピュータを操作するようにリモートマシンを操作することができる。
【0006】
また、タブレットPCのようにビデオ・ポートのないコンピュータをセカンダリ・ディスプレイとして利用してネットワークで接続されたプライマリ・ディスプレイのデスクトップを拡張するMaxiVista(登録商標)という技術がある。マルチモニタ環境を実現するセカンダリ・ディスプレイに対する操作は、プライマリ・ディスプレイからだけ行われる。同様の技術には、iPad(登録商法)をセカンダリ・ディスプレイとして利用するiDisplayおよびAir Dixplayがある。
【0007】
また、Windows(登録商標)には、複数のコンピュータ間で同じファイルを使用する場合にブリーフケースというフォルダに保管しておき、コンピュータをネットワーク経由または直接接続することでブリーフケースに保管されたファイルを比較して最新の状態に更新したり、ファイルの削除を反映したりする技術がある。さらにまた、MobileMe(登録商標)またはWindows Live Meshといったようなネットワーク上のサーバに保管したファイルを複数のコンピュータ間で共有するソフトウエアも多数存在する。
【0008】
特許文献1は、電子装置間でデータ同期を行う方法を開示する。特許文献2は、利用者が異なる場所で異なるコンピュータを使用しても、同じコンピュータ作業環境で仕事ができるようにする技術を開示する。利用者がコンピュータ環境携帯装置を異なるコンピュータに接続すると、コンピュータ環境ソフトウウエアが自動的にインストールされ、当該コンピュータの作業環境を変換することができる。ここに作業環境としては、電子メールの設定、ウェブブラウザのブックマーク、履歴、クッキー、デスクトップ、ショートカット、または作業関係のドキュメントおよびファイルなどの個人設定が例示されている。
【0009】
特許文献3は、第1のデバイスと第2のデバイスの間でソフトウエア・プログラムを同期させる技術を開示する。同文献には、スクリーンサイズ、計算能力、オペレーティング・システム、無線アプリケーションパートユーザプロファイル作業部会による無線アプリケーションパートのバージョンなど、ユーザに依存しないようなデバイスの機能を同期させることや、電子カレンダー入力、アドレス帳入力、または電子メールのようなユーザデータを、複数デバイス間で同期させることが記載されている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2005−322250号公報
【特許文献2】特開2006−146912号公報
【特許文献3】特表2008−510207号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
これまでのネットワーク経由または直接接続でコンピュータの入出力を共有する技術では、コンテンツはいずれかのコンピュータでしか作成または処理されておらず、接続が解除されたときには、それまでの作業結果は1つのコンピュータにしか残らない。また、データの同期は、ディスク・ドライブに保存されたファイルの単位でしか行われず、メイン・メモリに展開された作業中のデータの同期は行われていない。さらに、複数のコンピュータでネットワーク上のファイルを共有する技術は、一方のコンピュータで他方のコンピュータのファイルを操作するものではない。
【0012】
複数のコンピュータを接続して一方のコンピュータから他方のコンピュータのプログラムを実行するこれまでの方法は、一方のコンピュータは他方のコンピュータの入出力デバイスとして利用する範囲に留まっていた。しかし、複数のコンピュータを接続中および接続解除後にそれぞれ対等な関係で存在させておきたい場合がある。たとえば、ノートPCとタブレットPCを接続したときには、特徴があるそれぞれの入出力デバイスを相互補完するように利用しながら連携動作でファイルを処理する。そして、接続を解除したときにはそれまでに処理したファイルをノートPCおよびタブレットPCのいずれでも引き継いでそれぞれが単独で処理を進め、再接続したときにはいずれか一方の最新のファイルに基づいて再度連携した処理をすることができれば、コンピュータの利用効率と利便性を一層高めることができる。
【0013】
そこで本発明の目的は、同一内容のコンテンツを複数のコンピュータにおいてそれぞれ同時に処理するコンピュータ・システムの制御方法を提供することにある。さらに本発明の目的は、いずれのコンピュータからの操作でもそれぞれのコンピュータで同一性のあるアプリケーションを同じように実行することができるコンピュータ・システムの制御方法を提供することにある。
【0014】
さらに本発明の目的は、コンピュータの接続が解除された後において、接続解除前のコンテンツを継続しながらいずれのコンピュータでも単独動作で同一性のあるアプリケーションを実行することができるコンピュータ・システムの制御方法を提供することにある。さらに本発明の目的は、複数のコンピュータの入力デバイスの特徴を相互補完して操作することができるコンピュータ・システムの制御方法を提供することにある。さらに本発明の目的は、そのような制御方法を実現するコンピュータ・プログラムおよびコンピュータを提供することにある。
【課題を解決するための手段】
【0015】
本発明は、複数のコンピュータにおいてそれぞれ同一性のあるプログラムの連携動作を可能にする制御方法を提供する。第1のコンピュータは、第1のディスプレイと第1の入力デバイスとを備え第1のアプリケーション・プログラムの実行が可能である。第2のコンピュータは、第2のディスプレイと第2の入力デバイスとを備え第1のアプリケーション・プログラムと同一性のある第2のアプリケーション・プログラムの実行が可能である。
【0016】
第1のコンピュータと第2のコンピュータを、データ交換が可能なように接続する。接続前に第1のアプリケーション・プログラムと第2のアプリケーション・プログラムがそれぞれのコンピュータで実行されていてもよい。接続後に第2のコンピュータが第2の入力デバイスで生成した第2の入力情報で第2のアプリケーション・プログラムを実行する。第2のコンピュータは、第2のアプリケーション・プログラムを実行した第2の入力情報を第1のコンピュータに送る。第1のコンピュータは受け取った第2の入力情報に基づいて第1のアプリケーション・プログラムを実行する。
【0017】
第1のアプリケーション・プログラムと第2のアプリケーション・プログラムには同一性があるため、第2の入力デバイスが生成した入力情報は、第2のコンピュータにおける第2のアプリケーション・プログラムを実行する入力情報になると同時に、第1のコンピュータにおける第1のアプリケーション・プログラムを実行する入力情報にもなる。第1のアプリケーション・プログラムが作成した画像データは、第1のディスプレイに表示しても表示しなくてもよい。
【0018】
接続されている間は、2つのアプリケーション・プログラムはコマンド・ベースでリアルタイムに連携または同期して動作する。2つのアプリケーション・プログラムの実行状態は、それぞれのコンピュータのメイン・メモリに展開されるため、たとえ接続を解除してもいずれのコンピュータでも切断前の状態を引き継いで作業をすることができる。よって、接続中と切断後において第1のコンピュータと第2のコンピュータにシームレスな連携動作を実現することができる。
【0019】
接続時に第2のコンピュータでは、第2のアプリケーション・プログラムが起動されている場合がある。この場合は接続に応答して、第2のコンピュータが第1のコンピュータに第2のアプリケーション・プログラムの識別子およびファイルの識別子を含むアプリケーション情報を送ることができる。第1のコンピュータでは、受け取ったアプリケーション情報に基づいて、第1のアプリケーション・プログラムを起動することができる。その結果、第1のコンピュータでは、第2のコンピュータで第2のアプリケーション・プログラムが実行していた作業を第1のアプリケーション・プログラムが同一内容のファイルを自らのディスク・ドライブから読み出して実行し、接続前と接続後においてシームレスな連携動作を実現することができる。
【0020】
このときのアプリケーション情報に、第2のアプリケーション・プログラムが作成したアプリケーション・ウインドウの表示状態を示す状態情報を含むようにして、第1のコンピュータが状態情報を起動した前記第1のアプリケーション・プログラムに設定するようにすれば、接続直前の第2のディスプレイに表示されていたアプリケーション・ウインドウの画像と同じ内容の画像を、接続後に第1のディスプレイに表示することができる。第1のコンピュータは第1のアプリケーション・プログラムが作成した画像データを展開する仮想ディスプレイをメイン・メモリ上に作成することができる。仮想ディスプレイの総画素数は第2のディスプレイの総画素数に一致させることが望ましい。
【0021】
仮想ディスプレイを作成することで、第1のコンピュータでは第1のディスプレイに物理的な画像を表示しないでも第1のアプリケーション・プログラムが作成した画像データを仮想ディスプレイに展開しながら第1のアプリケーション・プログラムを実行することができる。また、第1のコンピュータが仮想ディスプレイ表示ウインドウを第1のディスプレイに作成し、仮想ディスプレイの画像データを表示することができる。
【0022】
仮想ディスプレイと第2のディスプレイの総画素数を一致させると、GUIを利用して入力する際に、第1の入力デバイスが仮想ディスプレイを指示する座標または第2の入力デバイスが第2のディスプレイを指示する座標を容易に対応させることができる。したがって、コマンド・ベースの連携動作の制御を簡単に行うことができる。さらに第2のコンピュータのデスクトップ上で実行している全てのアプリケーションを第1のコンピュータの仮想ディスプレイ上で実行させることで、仮想ディスプレイに第2のディスプレイのデスクトップを再現させることができる。このとき、連携動作によって、第2のディスプレイはあたかも第1のコンピュータの拡張ディスプレイであるかのようにふるまう。
【0023】
その結果、ユーザは、仮想ディスプレイ表示ウインドウまたは第2のディスプレイをみながら第1の入力デバイスで入力操作をしながら、第1のアプリケーション・プログラムと第2のアプリケーション・プログラムを連携動作させることができる。第1のコンピュータにおいては、第1のディスプレイに表示されているアプリケーション・ウインドウをドラッグして仮想ディスプレイの中に移動させることができる。仮想ディスプレイ表示ウインドウを表示しない場合は、仮想ディスプレイに移動したアプリケーション・ウインドウは、第1のディスプレイから消える。
【0024】
第1のコンピュータは、アプリケーション・ウインドウが仮想ディスプレイの中に移動したときに、連携動作の対象になったと認定して、移動したアプリケーション・ウインドウのアプリケーション情報を第2のコンピュータに送ることができる。そして、第2のコンピュータでは、受け取ったアプリケーション情報に対応するアプリケーション・プログラムを起動することができる。したがって、第1のコンピュータで通常動作しているアプリケーション・プログラムを連携動作させることができる。
【0025】
第1のコンピュータは第1の入力デバイスで生成した第1の入力情報で第1のアプリケーション・プログラムを実行し、第1の入力情報を第2のコンピュータに送信することができる。第2のコンピュータでは、受け取った第1の入力情報に基づいて第2のアプリケーション・プログラムを実行することができる。その結果、第1の入力デバイスが生成した入力情報が、第1のコンピュータにおける第1のアプリケーション・プログラムを実行する入力情報になると同時に、第2のコンピュータにおける第2のアプリケーション・プログラムを実行する入力情報にもなる。
【0026】
2つのコンピュータを接続したときに、第1のアプリケーション・プログラムが作成して第1のコンピュータが保存している第1のファイルと第2のアプリケーション・プログラムが作成して第2のコンピュータが保存している第2のファイルを同期することができる。そして、第1のアプリケーション・プログラムを実行する際に、第1のコンピュータが第1のアプリケーション・プログラムを実行して同期されたファイルを読み取ることができる。
【0027】
あるいは第2のアプリケーション・プログラムを実行する際に、第2のコンピュータが第2のアプリケーション・プログラムを実行して同期されたファイルを読み取ることができる。よって、2つのコンピュータが切断されて単独状態で動作するときに、それまで連携動作して同一性が維持されていたファイルをそれぞれ更新しても、再接続時には最新のファイルに対して第1のアプリケーション・プログラムと第2のアプリケーション・プログラムが連携動作をすることができる。このようにして、接続前と接続後においてシームレスな連携動作を実現することができる。
【0028】
本発明では、連携動作中に、第1のアプリケーション・プログラムと第2のアプリケーション・プログラムを第1の入力デバイスまたは第2の入力デバイスのいずれかが生成した入力情報で同時に実行することができるため、入力デバイスの特徴を相互補完して作業性を高めることができる。本発明は、第1のコンピュータがノートブック型パーソナル・コンピュータまたはデスクトップ型パーソナル・コンピュータで第2のコンピュータがタブレット型コンピュータまたはスマートフォンの場合に適用すると入力デバイスを相互補完的に利用できて効果的である。
【発明の効果】
【0029】
本発明により、同一内容のコンテンツを複数のコンピュータにおいてそれぞれ同時に処理するコンピュータ・システムの制御方法を提供することができた。さらに本発明により、いずれのコンピュータからの操作でもそれぞれのコンピュータで同一性のあるアプリケーションを同じように実行することができるコンピュータ・システムの制御方法を提供することができた。
【0030】
さらに本発明により、コンピュータの接続が解除された後において、接続解除前のコンテンツを継続しながらいずれのコンピュータでも単独動作で同一性のあるアプリケーションを実行することができるコンピュータ・システムの制御方法を提供することができた。さらに本発明により、複数のコンピュータの入力デバイスの特徴を相互補完して操作することができるコンピュータ・システムの制御方法を提供することができた。さらに本発明により、そのような制御方法を実現するコンピュータ・プログラムおよびコンピュータを提供することができた。
【図面の簡単な説明】
【0031】
【図1】ノートPC10とタブレットPC100がネットワークで接続されている様子を示す図である。
【図2】ノートPC10およびタブレットPC100の主要なハードウエアの構成を示す機能ブロック図である。
【図3】ノートPC10に実装される主要なソフトウエアの構成を示す機能ブロック図である。
【図4】タブレットPC100に実装される主要なソフトウエアの構成を示す機能ブロック図である。
【図5】ノートPC10とタブレットPC100を接続したときのアプリケーションの連携動作の手順を示すフローチャートである。
【図6】LCD19のデスクトップ画面と仮想ディスプレイ57の関係を示す図である。
【発明を実施するための形態】
【0032】
[ハードウエアの構成]
図1は、ノートPC10とタブレットPC100がネットワークを経由して接続されている様子を示す。図2は、ノートPC10およびタブレットPC100の主要なハードウエアの構成を示す機能ブロック図である。図2(A)に示したノートPC10では、バス23にCPU11の他に、メイン・メモリ13、入力デバイス15、ハードディスク・ドライブ(HDD)17、液晶ディスプレイ(LCD)19、ネットワーク・インターフェース・カード(NIC)21などが図示しないコントローラを経由して接続されている。図3に示すソフトウエアはHDD17に格納され、メイン・メモリ13にロードされてCPU11により実行される。入力デバイス15は、キーボードおよびマウスで構成されており、ユーザがアプリケーションを操作したりデータを入力したりするために使用される。
【0033】
図2(B)に示したタブレットPC100ではノートPC10と同様に、バス113にCPU101の他に、メイン・メモリ103、入力デバイス105、ソリッド・ステート・ドライブ(SSD)107、LCD109、NIC111などが図示しないコントローラを経由して接続されている。図4に示すソフトウエアはSSD107に格納され、メイン・メモリ103にロードされてCPU101により実行される。
【0034】
タブレットPC100は、表示部を回転させてノートPCとタブレットPCのいずれかとして使用できるようにしたいわゆるコンバーチブル型とは違い、本体にはハードウエアで構成されたキーボードおよびマウスを備えず、入力デバイス105はタッチ・スクリーンおよびデジタイザまたはいずれかで構成されたピュアタブレット型といわれる種類に属する。なお、タブレットPC100はスマートフォンといわれる範疇のコンピュータであってもよい。また、LCD109には、ソフトウエア・キーボードを表示することができる。
【0035】
NIC21とNIC111は、LANのインターフェースで構成することができる。ただし、本発明におけるNIC21およびNIC111は、ノートPC10とタブレットPC100の間で双方向にアプリケーション情報および入力情報を転送するために利用するものであり、ブルートゥースに代表されるPANやUSBなどの外部周辺装置とのインターフェースに置き換えることもできる。また、インターフェースの媒体は有線、無線または光のいずれでもよい。ノートPC10およびタブレットPC100のハードウエアの構成は周知であるため詳しい説明は省略する。
【0036】
[ソフトウエアの構成]
図3はノートPC10に実装される主要なソフトウエアの構成を示す機能ブロック図である。図4はタブレットPC100に実装される主要なソフトウエアの構成を示す機能ブロック図である。文書アプリケーション51、151は、OS55、155のサービスを利用して文書を作成するための汎用的なプログラムである。文書アプリケーション51、151は、LCD19、109のGUI(Graphical User Interface)を通じて入力デバイス15、105が生成した入力情報に基づいて対話型処理を行うプログラムである。文書アプリケーション51、151は、ノートPC10とタブレットPC100においてそれぞれ連携動作または同期動作をすることができる。
【0037】
アプリケーションの連携動作とは、複数のコンピュータでそれぞれ実行されているアプリケーションがいずれかのコンピュータからの操作イベントを共通の操作イベントとして受け取り、各アプリケーションが同一内容のコンテンツを作成、編集、または閲覧している状態をいう。たとえば、アプリケーションが文書作成用のアプリケーションまたはプレゼンテーション用のアプリケーションの場合は、それぞれがいずれかのコンピュータが生成した操作イベントに同期して動作し、ノートPC10とタブレットPC100においてそれぞれ同一内容のファイルを作成、編集または表示しているような状態をいう。
【0038】
また、アプリケーションがWebブラウザの場合は、いずれかのWebブラウザに対する操作に同期して動作して、ノートPC10とタブレットPC100においてそれぞれ同一のURLにアクセスして同一のコンテンツを閲覧しているような状態をいう。連携動作をしている間は各アプリケーションが処理しているコンテンツは各コンピュータのメイン・メモリに記憶されており、連携動作が解除されたときには各コンピュータのメイン・メモリに残る。また、各コンピュータが処理したコンテンツは、各コンピュータに保存することができる。
【0039】
したがって、文書アプリケーション51と文書アプリケーション151は機能およびバージョンが完全に同一であることが望ましいが、一定の同一性があれば本発明の適用が可能である。アプリケーション51、151は、実用上の支障がない範囲で同一のコマンドをサポートし、アプリケーション・ウインドウの形状が実用上の支障がない範囲で類似し、かつ当該同一の操作コマンドに対する応答の差が実用上の支障がない範囲に収まる場合に同一性があるといえる。
【0040】
したがって、アプリケーション・ウインドウのメニューバーやツールバーの言語だけが相違するような場合には同一性があるといえる。ただしアプリケーション51、151に同一性があるためには、それぞれで作成したファイルは互換性がある必要がある。入力変換ドライバ67、167の負担を軽くするために、OS55とOS155も完全に同一であることが望ましいが、一定の範囲で機能に同一性があれば本発明の適用が可能である。なお、本発明はタブレットPC100で動作している複数のアプリケーションを、ノートPC10で動作するそれぞれ同一性のある各アプリケーションと連携して動作させることもできる。
【0041】
同期アプリケーション52、152は、ノートPC10とタブレットPC100が接続されたときに連携動作の対象となる文書アプリケーション51、151がそれぞれ作成した対応するファイルを同期させるプログラムである。連携動作の対象となるアプリケーションは、接続時にタブレットPC100で動作しているアプリケーションとそれと同一性のあるノートPC10に実装されたアプリケーションとすることができる。
【0042】
さらに連携動作の対象となるアプリケーションは、接続後にタブレットPC100で実行されたアプリケーションとそれと同一性のあるノートPC10に実装されたアプリケーションとすることができる。さらに、連携動作の対象となるアプリケーションは、接続後にノートPC10で連携動作の対象として特定されたアプリケーションとそれと同一性のあるタブレットPC100に実装されたアプリケーションとすることができる。同期アプリケーション52、152は、連携動作の対象となるアプリケーションがそれぞれ作成してHDD17とSSD107に保存した同一名称のファイルを同期させて、いずれか一方の新しい更新日時のファイルで他方の古い更新日時のファイルを上書きする。
【0043】
ウインドウ・アプリケーション53は、OS55のサービスを利用してLCD19のデスクトップ画面に、仮想ディスプレイ57の内容を表示する仮想ディスプレイ表示ウインドウ71(図6参照)を作成するプログラムである。仮想ディスプレイ表示ウインドウ71は、アプリケーション・ウインドウの1つで、LCD19のデスクトップ画面上でドラッグして移動したりサイズを変更したりすることができる。
【0044】
連携制御ドライバ56は、ノートPC10とタブレットPC100が接続されてNICドライバ69からタブレットPC100で動作している文書アプリケーション151のアプリケーション情報を受け取ったときに、文書アプリケーション151と同一性のあるノートPC10の文書アプリケーション51を連携動作の対象として選択する。アプリケーション情報は、文書アプリケーション151の名称、文書アプリケーション151がSSD107から読み出して現在編集しているファイルの名称、および文書アプリケーション151の状態情報を含む。
【0045】
状態情報は、デスクトップ上の順序を含むアプリケーション・ウインドウの表示位置、大きさ、表示しているページ情報などのアプリケーション・ウインドウの表示状態を示す情報である。状態情報はメイン・メモリにだけ存在し、メイン・メモリの電源が喪失したときにコンピュータから消失する情報を含む。文書アプリケーション51、151が連携動作をしている間は、ノートPC10とタブレットPC100における対応する状態情報は同じ内容になる。連携制御ドライバ56は、ノートPC10で実行されているアプリケーションが、図6で説明する仮想ディスプレイ57の中に入ったときに当該アプリケーションを連携対象として指定する。
【0046】
連携制御ドライバ56は、接続前にノートPC10で実行されていたアプリケーションを連携対象として特定したときに、当該アプリケーションのアプリケーション情報をタブレットPC100に送る。連携制御ドライバ56は、ノートPC10で連携動作をしないで通常動作をしていたアプリケーションのアプリケーション・ウインドウがドラッグにより仮想ディスプレイ57の中に移動したときに、当該アプリケーションを連携動作の対象として特定することができる。連携制御ドライバ56は、入力デバイス15から仮想ディスプレイ領域内で入力操作があったときに、当該入力情報をOS55に送るのと同時にタブレットPC100にも送る。
【0047】
連携制御ドライバ56により、OS55および文書アプリケーション51に修正を加えないでも、ノートPC10において通常動作のアプリケーションと連携動作のアプリケーションを共存させて実行することができる。なお本実施の形態では、タブレットPC100では、同時に実行されるアプリケーションをすべて連携動作の対象にするので連携制御ドライバは存在しない。ただし、タブレットPC100でも連携制御ドライバを実装して、連携動作のアプリケーションと通常動作のアプリケーションを併存させてもよい。
【0048】
仮想ディスプレイ・ドライバ59は、連携動作をしている文書アプリケーション51が作成した描画命令から、メイン・メモリ13に画像データを作成するプログラムである。この画像データを記憶するメイン・メモリ13に確保された記憶領域を仮想ディスプレイ57という。OS55は、GUIを利用して操作するアプリケーションに対して論理的な表示領域を提供できない場合は当該アプリケーションを実行できない。OS55は、文書アプリケーション51の描画命令を処理する内部関数を実行した結果を仮想ディスプレイ・ドライバ59に送り、成功すると文書アプリケーション51に戻り値を返す。
【0049】
仮想ディスプレイ57はそれ自体では物理的な表示を行わずビットマップ形式の画像データを記憶するだけである。このように文書アプリケーション51は、LCD19に物理的な表示をしないでも仮想ディスプレイ57を利用してOS55に画像を表示していると認識させながら動作をすることができる。
【0050】
図6は、LCD19のデスクトップ画面と仮想ディスプレイ57の関係を示す図である。仮想ディスプレイ57が保有する画像データは、LCD19のデスクトップ画面20に隣接してその外側に位置するようにメイン・メモリ13上に記憶されている。仮想ディスプレイ57は、外見上はLCD19のデスクトップ画面20を拡張するデュアル・ディスプレイに相当するが、物理的な表示はしない。ただし、仮想ディスプレイ表示ウインドウ71を利用することで仮想ディスプレイ57の画像データをデスクトップ画面20上に表示することができる。
【0051】
仮想ディスプレイ57は、LCD109のデスクトップ画面と縦横の総画素数および色彩階調が同じになるように作成するとGUIを利用して連携動作のための入力操作をする際にユーザに違和感を生じさせない。ウインドウ・アプリケーション53は、仮想ディスプレイ57の画像データを仮想ディスプレイ表示ウインドウ71に取り込むことによりデスクトップ画面20上で表示する。仮想ディスプレイ表示ウインドウ71は、LCD109のデスクトップ画面をノートPC10のデスクトップ画面20上にリアルタイムで再現することができる。
【0052】
そして、入力デバイス15で指示した仮想ディスプレイ57における座標はLCD109の座標と1対1に対応するため、入力デバイス15が指示するときに生成した入力情報をタブレットPC100に送れば、タブレットPC100ではそれを対応する座標への指示とすることができる。仮想ディスプレイ57は、LCD109の画面の表示方向を変化させたときにそれに応じて同様に変化する。仮想ディスプレイ57に表示されるアプリケーション・ウインドウの表示位置および表示内容はLCD109の表示位置および表示内容と連動して同じように変化する。仮想ディスプレイ表示ウインドウ71も仮想ディスプレイ57の変化に応じてそのサイズを変更してもよい。
【0053】
図6(A)は、LCD19のデスクトップ画面20に通常動作をしているアプリケーションが作成したアプリケーション・ウインドウ73が表示され、デスクトップ画面20に隣接する位置に仮想ディスプレイ57が作成されている様子を示している。図6(B)は、仮想ディスプレイ57に連携動作をしている文書アプリケーション51が作成したアプリケーション・ウインドウ77が作成されている。このとき、ウインドウ・アプリケーション53が作成した仮想ディスプレイ表示ウインドウ71には、アプリケーション・ウインドウ77に対応する画像イメージ75が表示されている。
【0054】
図6(C)は、デスクトップ画面20に表示されていたアプリケーション・ウインドウ73が入力デバイス15でドラッグされてLCD19の右端に移動し、その一部がデスクトップ画面20から消えている様子を示している。仮想ディスプレイ・ドライバ59は、アプリケーション・ウインドウ73の一部が仮想ディスプレイ57の中に入ったことを検出したときに、アプリケーション・ウインドウ73を作成したアプリケーションが、連携動作の対象になったことを連携制御ドライバ56に通知する。
【0055】
通知を受け取った連携制御ドライバ56は、当該アプリケーションを連携動作の対象としてタブレットPC100に通知する。タブレットPC100は、当該アプリケーションと同一性のあるアプリケーションを起動し、仮想ディスプレイ57内でのアプリケーション・ウインドウ73と対応するLCD109上の位置にウインドウを開く。図6(D)は、アプリケーション・ウインドウ73の全体が仮想ディスプレイ57の中に移動して、画像イメージ81としてメイン・メモリ13に記憶されている様子を示している。
【0056】
ディスプレイ・ドライバ61、161は、LCD19、109に接続されたビデオ・カード(図示せず。)の設定および制御とビデオ・カードとOS55、155との間でのデータ転送を制御するプログラムである。入力ドライバ63、163は、入力デバイス15、105に接続されたコントローラ(図示せず。)の設定および制御とコントローラとOS55、155との間のデータ転送を制御するプログラムである。入力変換ドライバ67は、NICドライバ69から受け取ったタブレットPC100における文書アプリケーション151に対する入力情報をノートPC10における文書アプリケーション51に対する入力情報に変換するプログラムである。
【0057】
入力変換ドライバ67は、たとえば、タブレットPC100において入力デバイス105が生成した、SSD107に保存されている文書アプリケーション151を起動する入力情報を、ノートPC10においてHDD17に保存されている文書アプリケーション51を起動する入力情報に変換する。入力変換ドライバ67は入力デバイス105が生成した、文書アプリケーション151がSSD107からファイルを読み出す入力情報または編集中のファイルをSSD107に保存する入力情報を、文書アプリケーション51がHDD17から読み出す入力情報またはHDD17に保存する入力情報に変換する。
【0058】
入力変換ドライバ167は、NICドライバ169から受け取ったノートPC10において入力デバイス15が生成した文書アプリケーション51に対する入力情報をタブレットPC100における文書アプリケーション153に対する入力情報に変換するプログラムである。NICドライバ69、169は、NIC21、111の設定および制御とNIC21、111とOS55、155との間のデータ転送を制御するプログラムである。
【0059】
[連携動作の手順]
つぎに、ノートPC10とタブレットPC100を接続してアプリケーションが連携動作をする手順を、図5のフローチャートに基づいて説明する。ブロック201から225まではノートPC10における手順を示し、ブロック301からブロック323まではタブレットPC100における手順を示す。ブロック201、301では、ノートPC10とタブレットPC100がシームレスな連携動作をするための準備をする。
【0060】
シームレスな連携動作とは、両者が接続されたときにそれぞれにおいて同一性のあるアプリケーションが操作コマンド・ベースで同期して実行されることを意味する。具体的には、両者が接続されたときは、それぞれにおいて同一性のあるアプリケーションを実行して一方のアプリケーションに対する入力イベントが他方のアプリケーションに対する入力イベントとしても使用され、他方のアプリケーションに対する入力イベントが一方のアプリケーションに対する入力イベントとしても使用されることを意味する。
【0061】
さらにシームレスな連携動作とは、接続時にいずれか一方に保存されている最新のファイルに対して双方のアプリケーションを実行できることを意味する。さらにシームレスな連携動作とは、両者の接続が解除されたときに解除前のコンテンツおよびアプリケーションの実行状態を引き継いで、それぞれのコンピュータの単独動作で同一性のあるアプリケーションを実行できることを意味する。
【0062】
HDD17には、ノートPC10が文書アプリケーション51を実行して作成したファイルが保存されている。SSD107には、タブレットPC100が文書アプリケーション151を実行して作成したファイルが保存されている。HDD17のファイルとSSD17のファイルは、更新日時が必ずしも一致しない。ブロック203では、ノートPC10においてユーザが文書アプリケーション51を実行してHDD17から読み出したファイルの編集を行っている。ファイルは、以前にノートPC10とタブレットPC100を接続して文書アプリケーション51、151が連携動作をしている間に作成したものでもよいし、通常動作だけで作成したものでもよい。
【0063】
ノートPC10が単独で動作して文書アプリケーション51を実行しているときは、文書アプリケーション51は連携動作をしておらず、そのアプリケーション・ウインドウは、図6(A)のアプリケーション・ウインドウ73のようにデスクトップ画面20に表示される。この時点では、ノートPC10では、仮想ディスプレイ57は作成されておらず仮想ディスプレイ表示ウインドウ71も表示されていない。
【0064】
ブロック303では、タブレットPC100においてユーザが、入力デバイス105を操作して文書アプリケーション151を実行し、SSD107から読み出したファイルの編集または新規のファイルの作成を行っている。メイン・メモリ103には、文書アプリケーション151のプログラム、文書アプリケーション151が作成しているファイルおよび文書アプリケーション151のアプリケーション情報が記憶されている。ブロック205、305では、ネットワークを通じてNIC21とNIC111が接続される。
【0065】
ノートPC10への接続を検知したNICドライバ169は同期アプリケーション152に接続を通知する。ブロック207、307では、同期アプリケーション152がイニシエータとなって同期アプリケーション52との間で連携動作の対象となるアプリケーションが作成したファイルを同期する。前述のように現在タブレットPC100で実行されているアプリケーションとノートPC10に実装された同一性のあるアプリケーションは、連携動作の対象となる。ノートPC10に実装されたアプリケーションは接続の直前には実行されていなくてもよい。同期アプリケーション152は、現在タブレットPC100で実行されているすべてのアプリケーションが作成または編集しているファイルを一旦SSD107に保存する。
【0066】
同期アプリケーション152は、タブレットPC100で現在動作している文書アプリケーション151の名称、当該アプリケーションが作成してSSD107に保存したすべてのファイルの名称および当該ファイルの更新日時を含む更新リストAをノートPC10に送る。更新リストAを受け取った同期アプリケーション52は、現在文書アプリケーション51が作成または編集しているファイルが更新リストAのファイル名称と同じであれば、文書アプリケーション51に指示して一旦当該ファイルをHDD17に保存させる。
【0067】
つづいて、同期アプリケーション52はHDD17に保存されているファイルと更新リストAのファイルを比較し、更新リストAの方が新しいファイルの名称および更新リストAに記述されているがHDD17に保存されていないファイルの名称を記述した更新リストBをタブレットPC100に送ってそれらのファイルを送信するように要求する。さらに、同期アプリケーション52は、更新リストAに含まれる名称のファイルより新しいファイルおよび更新リストにないファイルをHDD17から読み出してタブレットPC100に送る。
【0068】
同期アプリケーション152は、ノートPC10から受け取ったファイルがSSD107に保存されているファイルより新しいことを確認して、SSD107のファイルを更新する。さらに、同期アプリケーション152は更新リストBに記述されたファイルをノートPC10に送る。ファイルを受け取った同期アプリケーション52は受け取ったファイルでHDD17のファイルを更新する。その結果、HDD17とSSD107では、タブレットPC100で現在動作しているすべてのアプリケーションが作成したファイルが同期され、双方が最新のファイルを保存する状態となる。
【0069】
この同期処理の中で、文書アプリケーション51、151を設定する設定情報を格納するレジストリまたはINIファイルを併せて同期させてもよい。この場合は文書アプリケーション51の設定を優先させて、文書アプリケーション51の設定情報で文書アプリケーション151の設定情報を上書きすることができる。なお、同期対象とするファイルは、SSD107に保存されているすべてのファイルであってもよいし、現在タブレットPC100で動作しているアプリケーションが作成または編集しているファイルだけであってもよい。また、同期対象とするファイルは、ノートPC10に存在するファイルを基準にして決定してもよい。
【0070】
ブロック309では、タブレットPC100の転送アプリケーション153が連携動作の対象となる実行中のアプリケーションのアプリケーション情報とLCD109の画像情報をノートPC10に転送する。画像情報は、LCD109の総画素数および色彩階調などの表示するコンテンツとは無関係なディスプレイの基本的な情報を含む。総画素数は、LCD109の縦と横のそれぞれの最大画素数である。
ブロック209では、アプリケーション情報を受け取った連携制御ドライバ56は、文書アプリケーション151のアプリケーション情報に基づいて同一性のある文書アプリケーション51を連携動作の対象として選択する。連携制御ドライバ56は、LCD109の画像情報を仮想ディスプレイ・ドライバ59に送り、総画素数がLCD109に一致する仮想ディスプレイ57を作成する。
【0071】
つづいてブロック211で連携制御ドライバ56は、文書アプリケーション51を起動してアプリケーション情報に含まれているファイル名のファイルをHDD17から読み出し、アプリケーション・ウインドウ77を仮想ディスプレイ57上のLCD109に対応する位置に作成する。連携制御ドライバ56は、文書アプリケーション151のアプリケーション情報に含まれる状態情報をメイン・メモリ13に確保された文書アプリケーション51の作業領域に書き込んで文書アプリケーション51と文書アプリケーション151のアプリケーション・ウインドウを同じ表示状態にする。
【0072】
このとき、それまで通常動作をしていた文書アプリケーション51が編集しているファイルと、これから連携動作する文書アプリケーション51が同一名称のファイルを処理することになる場合は、連携制御ドライバ56は重複して同一ファイルが読み取られることを防止するために、LCD19にプロンプトを表示してユーザに現在読み出しているファイルを終了するように要求することができる。タブレットPC100のデスクトップ上で動作している全てのアプリケーションについて上記の操作を繰り返すことで、仮想ディスプレイ57には実質的にタブレットPC100のデスクトップ画面が再現される。
【0073】
なお、アプリケーションの起動とは、メイン・メモリ13、103に確保された所定の領域にHDD17またはSDD107からアプリケーションをロードすることをいう。ただし、アプリケーションは当該コンピュータに保存されている必要はなく、実行時に他のコンピュータからロードすることでもよい。アプリケーションの実行とはメイン・メモリ13、103にロードされたアプリケーションが所定のファイルに対して、入力デバイス15、105から受け取った入力情報に基づく処理をすることをいう。
【0074】
したがって本明細書においては、ローカル・コンピュータからリモート・コンピュータに入力情報を送り、リモート・コンピュータのCPUとメイン・メモリで実行するアプリケーションに指示し、当該アプリケーションが作成した画像データをローカル・コンピュータに表示するような実行形態は、ローカル・コンピュータによるアプリケーションの実行とはいわない。
【0075】
文書アプリケーション51が同時に複数のプロセスで起動できる場合は、連携制御ドライバ56はHDD17からアプリケーション情報に含まれるファイルを読み出す。この場合は、ノートPC10が単独動作のときに実行されていた文書アプリケーション51は、連携動作の対象以外のファイルをHDD17から読み出して編集したり新たなファイルを作成したりすることができる。文書アプリケーション51が同時に1つしか実行できない場合は、それまで動作していた文書アプリケーション51を閉じる必要がある。
【0076】
仮想ディスプレイ57とLCD109は総画素数が一致するため、入力デバイス15が所定のコンテンツを対象にして仮想ディスプレイ57を指示した座標は、LCD105の対応するコンテンツの座標に対応する。連携制御ドライバ56は、仮想ディスプレイ57が生成されたことをウインドウ・アプリケーション53に通知する。ウインドウ・アプリケーション53は、デスクトップ画面20上に仮想ディスプレイ57の画像データを表示するために仮想ディスプレイ表示ウインドウ71を表示する。
【0077】
ブロック213では、キーボードまたはマウスなどの入力デバイス15から文書アプリケーション51に対して入力情報が入力される。入力情報は、文書アプリケーション51に対する入力データおよび文書アプリケーション51の操作または設定のコマンドで構成される。LCD109と仮想ディスプレイでは、連携動作をしている間にそれぞれのデスクトップ画面においてフォアグラウンドのアプリケーション・ウインドウが一致するように制御される。
【0078】
文書アプリケーション51がフォアグラウンドのときに、入力デバイス15から入力された入力情報は、OS55が文書アプリケーション51に送る。文書アプリケーション51は入力情報に基づいて実行を進め、描画命令を生成してOS55に送る。OS55は、受け取った描画命令を内部関数で処理した結果を座標位置に応じてディスプレイ・ドライバ61または仮想ディスプレイ・ドライバ59に送る。すなわち、文書アプリケーション51は、通常動作と同じように入力情報に基づいて動作して描画命令をOS55に送るだけでよく、本発明を適用するために文書アプリケーション51およびOS55を修正する必要はない。
【0079】
仮想ディスプレイ・ドライバ59は受け取った描画命令に基づいて画像データを生成し、仮想ディスプレイ57の画像データを更新する。ウインドウ・アプリケーション53は、常に更新された仮想ディスプレイ57の画像データを仮想ディスプレイ表示ウインドウ71の中に表示する。ブロック215では、連携制御ドライバ56はブロック213で入力デバイス15から仮想ディスプレイ内の座標に対して入力された入力情報を、LCD109上の対応する座標に変換してタブレットPC100に送る。
【0080】
タブレットPC100においては、ブロック311でノートPC10から受け取った入力情報を入力変換ドライバ167が、文書アプリケーション151に対する入力情報に変換してOS155に渡し、OS155は文書アプリケーション151に渡す。文書アプリケーション151は、ノートPC10において、文書アプリケーション51に対して行われた入力情報に基づいて動作する。
【0081】
ブロック313では、LCD109をGUIとしてタッチ・スクリーンまたはデジタイザなどの入力デバイス105から文書アプリケーション151に対して入力情報が入力される。OS155は、LCD109の中に表示されたフォアグラウンドのアプリケーション・ウインドウに対して入力情報を送る。文書アプリケーション151は、入力情報を実行して、LCD109に表示されたアプリケーション・ウインドウを更新する。ブロック315では、入力ドライバ163はブロック313で生成された入力情報をノートPC10に送る。
【0082】
ブロック217では、タブレットPC100から受け取った入力情報を入力変換ドライバ67が、文書アプリケーション51に対する入力情報に変換して連携制御ドライバ56に送る。連携制御ドライバ56は変換された入力情報をOS55に送る、OS55はフォアグラウンドの文書アプリケーション51に送る。文書アプリケーション51は、タブレットPC100において文書アプリケーション151に対して行われた入力情報に基づいて動作し、ブロック211と同様にして仮想ディスプレイ57および仮想ディスプレイ表示ウインドウ71を更新する。
【0083】
ブロック317では、タブレットPC100において新たなアプリケーションが起動される。つづいて必要な場合には、新たに起動したアプリケーションに関するブロック307で説明したファイルの同期が行われ、ブロック309で説明したノートPC10に対するアプリケーション情報の送信が行われる。ノートPC10においては、ブロック209、211で説明したのと同様の手順で、同一性のある新たなアプリケーションを起動し、仮想ディスプレイ57の画像データおよび仮想ディスプレイ表示ウインドウ71の表示を更新する。新たに起動されたアプリケーションには、アプリケーション情報に含まれている状態情報が設定される。
【0084】
ブロック219では、図6(C)、(D)に示したように、通常動作している他のアプリケーションによりノートPC10のデスクトップ画面20上に表示されているアプリケーション・ウインドウ73が、仮想ディスプレイ57の領域にドラッグされる。連携制御ドライバ56は、移動するアプリケーション・ウインドウの一部が仮想ディスプレイ57の領域まで移動したときに、仮想ディスプレイ・ドライバ59から通知を受けて当該アプリケーションを連携動作の対象と特定する。
【0085】
さらに、連携制御ドライバ56は、新たに連携動作の対象として特定したアプリケーションのアプリケーション情報をタブレットPC100に送る。タブレットPC100では、ブロック209でノートPC10が文書アプリケーション51を実行したようにアプリケーション情報に含まれる名称のアプリケーションと同一性のある新たなアプリケーションが実行される。新たに実行されたアプリケーションには、アプリケーション情報に含まれている状態情報が設定される。
【0086】
以後、ノートPCとタブレットPC100では、一方の入力デバイスからの入力情報で、双方の同一性のあるアプリケーションを同時に操作することで双方のアプリケーションが連携して動作する。アプリケーションが連携動作をしている間は、LCD109の画面の表示方向と仮想ディスプレイの表示方向は一致する。OS155は、LCD109の本体が縦方向から横方向に姿勢を変えてデスクトップ画面の方向を変えると連携制御ドライバ56に通知する。
【0087】
連携制御ドライバ56は仮想ディスプレイ57がこの方向に対応するようにOS55および仮想ディスプレイ・ドライバ59に通知し、解像度を変化させる。また、LCD109と仮想ディスプレイ57上で各アプリケーションのウインドウ位置がずれている場合にはこれをLCD109上での位置に合わせる。ウインドウ・アプリケーション53もこの変化に連動して仮想ディスプレイ表示ウインドウ71のサイズを変化させてもよい。
【0088】
ブロック221、319では、ノートPC10とタブレットPC100の接続が解除される。接続を解除するに当たっては、連携動作の対象となっているアプリケーションに対する特別な操作をする必要はない。ブロック223では、NICドライバ69からネットワーク接続が解除されたことの通知を受けた連携制御ドライバ56は、連携動作をしていた文書アプリケーション51の登録を消去し、仮想ディスプレイ・ドライバ59とウインドウ・アプリケーション53に通知する。
【0089】
通知を受けた仮想ディスプレイ・ドライバ59は、仮想ディスプレイ57をメイン・メモリ13から解放する。また、通知を受けたウインドウ・アプリケーション53は、タブレット・ウインドウ71を閉じる。切断した時点では文書アプリケーション51151のプログラム、作業中のファイルおよびアプリケーションの状態情報はメイン・メモリ13、103に残っている。このとき作業中のファイルおよび状態情報は同一性が維持されている。
【0090】
単独動作に以降したノートPC10においては、連携動作の対象から解放された文書アプリケーション51は通常動作をする。文書アプリケーション51が作成した描画命令は、ディスプレイ・ドライバ61に送られてアプリケーション・ウインドウがデスクトップ画面の上に表示される。ブロック321においてもタブレットPC100は同様に通常動作をする。タブレットPC100では、切断の前後でLCD109の画像に変化はない。ブロック225では文書アプリケーション51が通常動作で作成したファイルがHDD17に保存され、ブロック323では文書アプリケーション151が通常動作で作成したファイルがSSD107に保存される。図5のフローチャートは、連携動作をするための典型的な手順を示したものであり、実行の順序はここに示したものに限定されるものではない。
【0091】
連携動作の対象となるアプリケーションが、ファイルを作成しないWebブラウザまたは音楽や映像をストリーミングで再生するアプリケーションの場合は、実行中にURLを交換して連携動作をさせることができる。また、ノートPC10では、仮想ディスプレイ表示ウインドウ71を表示する例を説明したが、仮想ディスプレイ57の画像とLCD109の画像は同一内容なので、仮想ディスプレイ表示ウインドウ71は必ずしも表示する必要はない。
【0092】
この場合、ユーザはLCD109をみながらアプリケーションを実行することができる。ただし、LCD19にLCD109の画像データを一切表示しない場合であっても、OS55に描画命令を実行してLCD19に画像を表示していると認識させながら文書アプリケーション51を実行する必要があるので、メイン・メモリ13に仮想ディスプレイ57を作成するなどして、OS55に画像命令を処理していることを認識させる必要がある。
【0093】
仮想ディスプレイ57は、LCD109のデスクトップ画面と同一の画面を表示することができるので、LCD109に表示されている複数のアプリケーションの連携動作には都合がよい。しかし、単一のアプリケーションを連携動作させるだけであれば、仮想ディスプレイ57を利用しないで、実際のアプリケーション・ウインドウをLCD19に表示させて行うことも可能である。たとえば、連携動作の対象となるアプリケーション・ウインドウのサイズおよび表示方向を、ノートPC10とタブレットPC100において完全に同期させることで連携動作のための操作をし易くすることができる。
【0094】
また、ノートPC10とタブレットPC100を、クレードルを使用したりしてディスプレイ・ポート(DisplayPort)などのインターフェースで直接接続することができるような場合は、仮想ディスプレイ59の画像データをネットワークではなくディスプレイ・ポートを利用してLCD109に送ることもできる。この場合、タブレットPC100では、ノートPC10に接続されたときにLCD109とビデオ・カードとの接続を、ディスプレイ・ポートに切り換えることになる。また、連携動作するアプリケーションは、3台以上のコンピュータにおいてそれぞれ実行されていてもよい。
【0095】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【0096】
20…デスクトップ画面
57…仮想ディスプレイ
71…タブレット・ウインドウ
73、75…アプリケーション・ウインドウ
77、81…仮想ディスプレイ内の画像イメージ

【特許請求の範囲】
【請求項1】
第1のディスプレイと第1の入力デバイスとを備え第1のアプリケーション・プログラムの実行が可能な第1のコンピュータと、第2のディスプレイと第2の入力デバイスとを備え前記第1のアプリケーション・プログラムと同一性のある第2のアプリケーション・プログラムの実行が可能な第2のコンピュータで構成されたコンピュータ・システムの制御方法であって、
前記第1のコンピュータと前記第2のコンピュータをデータ交換が可能なように接続するステップと、
前記第2のコンピュータが前記第2の入力デバイスが生成した第2の入力情報で前記第2のアプリケーション・プログラムを実行するステップと、
前記第2のコンピュータが前記第2の入力情報を前記第1のコンピュータに送るステップと、
前記第1のコンピュータが前記第2の入力情報に基づいて前記第1のアプリケーション・プログラムを実行するステップと
を有する制御方法。
【請求項2】
前記接続するステップに応答して、前記第2のコンピュータが前記第1のコンピュータに実行中の前記第2のアプリケーション・プログラムの識別子およびファイルの識別子を含むアプリケーション情報を送るステップと、
前記アプリケーション情報に基づいて前記第1のコンピュータが前記第1のアプリケーション・プログラムを起動するステップと
を有する請求項1に記載の方法制御。
【請求項3】
前記アプリケーション情報が前記第2のアプリケーション・プログラムが作成したアプリケーション・ウインドウの表示状態を示す状態情報を含み、前記第1のコンピュータが前記状態情報を起動した前記第1のアプリケーション・プログラムに設定する請求項2に記載の制御方法。
【請求項4】
前記第1のコンピュータが前記第1のアプリケーション・プログラムが作成した画像データを展開する仮想ディスプレイをメイン・メモリに作成するステップを有する請求項1から請求項3のいずれかに記載の制御方法。
【請求項5】
前記仮想ディスプレイの総画素数が前記第2のディスプレイの総画素数に一致する請求項4に記載の制御方法。
【請求項6】
前記第1のコンピュータが前記第1のディスプレイ内のウインドウに前記仮想ディスプレイの画像データを表示するステップを有する請求項4または請求項5に記載の制御方法。
【請求項7】
前記第1のディスプレイに表示されているアプリケーション・ウインドウを前記仮想ディスプレイの中に移動させるステップと、
前記移動させるステップに応答して、前記第1のコンピュータが前記移動したアプリケーション・ウインドウのアプリケーション情報を前記第2のコンピュータに送るステップと、
前記第2のコンピュータが前記受け取ったアプリケーション情報に含まれる識別子で特定されるアプリケーション・プログラムと同一性のあるアプリケーション・プログラムを起動するステップと
を有する請求項4から請求項6のいずれかに記載の制御方法。
【請求項8】
前記第1のコンピュータが前記第1の入力デバイスが生成した第1の入力情報で前記第1のアプリケーション・プログラムを実行するステップと、
前記第1のコンピュータが前記第1の入力情報を前記第2のコンピュータに送るステップと、
前記第2のコンピュータが受け取った前記第1の入力情報に基づいて前記第2のアプリケーション・プログラムを実行するステップと
を有する請求項1から請求項7のいずれかに記載の制御方法。
【請求項9】
前記接続するステップに応答して、前記第1のアプリケーション・プログラムが作成して前記第1のコンピュータが保存する第1のファイルと前記第2のアプリケーション・プログラムが作成して前記第2のコンピュータが保存する第2のファイルを同期するステップを有する請求項1から請求項8のいずれかに記載の制御方法。
【請求項10】
前記第1のアプリケーション・プログラムを実行するステップが、前記第1のコンピュータが前記第1のアプリケーション・プログラムを起動して前記第1のコンピュータに格納された前記同期されたファイルを読み取るステップを含む請求項9に記載の制御方法。
【請求項11】
前記第1のコンピュータがノートブック型パーソナル・コンピュータまたはデスクトップ型パーソナル・コンピュータで前記第2のコンピュータがタブレット型コンピュータまたはスマートフォンである請求項1から請求項10のいずれかに記載の制御方法。
【請求項12】
第2のディスプレイと第2の入力デバイスとを備え第2のアプリケーション・プログラムの実行が可能な第2のコンピュータに接続が可能で、第1のディスプレイと第1の入力デバイスとを備え前記第2のアプリケーション・プログラムと同一性がある第1のアプリケーション・プログラムの実行が可能な第1のコンピュータに、
前記第2のコンピュータにおける前記第2のアプリケーション・プログラムの実行に応答して前記第1のアプリケーション・プログラムを起動するステップと、
前記第2のコンピュータから前記第2の入力デバイスが生成した前記第2のアプリケーション・プログラムに対する入力情報を受け取るステップと、
前記入力情報に基づいて前記第1のアプリケーション・プログラムを実行するステップと
を有する処理を実行させるコンピュータ・プログラム。
【請求項13】
前記第1の入力デバイスが生成した前記第1のアプリケーション・プログラムに対する入力情報を前記第2のコンピュータに送るステップを有する請求項12に記載のコンピュータ・プログラム。
【請求項14】
前記第2のコンピュータが接続されたことに応答して前記第2のコンピュータから受け取ったファイルで、前記第1のコンピュータが保存しているファイルを更新するステップと、
前記第1のアプリケーション・プログラムを起動して前記更新されたファイルを読み取るステップを有する請求項12または請求項13に記載のコンピュータ・プログラム。
【請求項15】
メイン・メモリに前記第1のアプリケーション・プログラムが作成した画像データを記憶する仮想ディスプレイを作成するステップを有する請求項12から請求項14のいずれかに記載のコンピュータ・プログラム。
【請求項16】
前記第1のディスプレイのデスクトップ画面に前記仮想ディスプレイの画像データを表示するウインドウを表示するステップを有する請求項15に記載のコンピュータ・プログラム。
【請求項17】
前記第2のコンピュータの接続が解除されたことに応答して前記仮想ディスプレイの画像データを前記第1のコンピュータのデスクトップ画面上のアプリケーション・ウインドウとして表示するステップを有する請求項15または請求項16に記載のコンピュータ・プログラム。
【請求項18】
請求項12から請求項17のいずれかに記載されたコンピュータ・プログラムを格納した記憶媒体を有するコンピュータ。
【請求項19】
第2のアプリケーション・プログラムの実行が可能なコンパニオン・コンピュータに接続が可能で前記第2のアプリケーション・プログラムと同一性のある第1のアプリケーション・プログラムの実行が可能なコンピュータであって、
ディスプレイと、
入力デバイスと、
前記コンパニオン・コンピュータとデータを交換するためのインターフェースと、
前記インターフェースを通じて前記コンパニオン・コンピュータが前記第2のアプリケーション・プログラムを実行するために生成した入力情報を受け取り、前記入力情報に基づいて前記第1のアプリケーション・プログラムを実行する制御部と
を有するコンピュータ。
【請求項20】
前記制御部は、前記第1のアプリケーション・プログラムを実行するために前記入力デバイスが生成した入力情報を前記第2のアプリケーション・プログラムを実行するために前記インターフェースを通じて前記コンパニオン・コンピュータに送る請求項19に記載のコンピュータ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−108658(P2012−108658A)
【公開日】平成24年6月7日(2012.6.7)
【国際特許分類】
【出願番号】特願2010−256018(P2010−256018)
【出願日】平成22年11月16日(2010.11.16)
【出願人】(505205731)レノボ・シンガポール・プライベート・リミテッド (292)
【復代理人】
【識別番号】100106699
【弁理士】
【氏名又は名称】渡部 弘道
【復代理人】
【識別番号】100077584
【弁理士】
【氏名又は名称】守谷 一雄
【Fターム(参考)】