【文献】
中辻裕之,プロトコルから理解する有線LANとの違い,NETWORK WORLD,日本,(株)IDGジャパン,2007年 1月,第12巻 第1号,76−81頁
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
開示したアーキテクチャは、多くのノートブッククライアントがクライアント間での直接の通信又は調整なしに共有可能な電子ノートブックに対してスケジュールされたジョブを実行することを可能にする。書き込み可能なファイル(トラッキング情報と称される)は共有可能なノートブックと関連して配置され、ノートブッククライアントはノートブックとの同期中においてファイルに保証したアトミックロックを掛けることができる。ファイルはルートにおいてノートブック内にプロパティを保存することができ、クライアントインスタンスのジョブに同期させるために用いられる。プロパティはジョブの最後の実行の時間(例えば、UTC協定世界時間)及び望まれる他のプロパティを含むことができる。
【0012】
参照は図面に対して行われ、類似の参照符号が明細書中に亘って類似の要素を参照するため用いられる。次の詳細な説明において、説明の目的のために、多くの特定の詳細はその完璧な理解を与えるために記述されている。しかしながら、新規の実施形態をそれらの特定の詳細なしに実施することができることは明白である。他の例において、良く知られた構成及び装置はそれの説明を容易にするためにブロック図形式で示されている。本発明は、請求項の構成の趣旨及び範囲内に入る全ての変更、等価、及び代替を含むものである。
【0013】
図1は、開示したアーキテクチャによる、コンピュータ実装のジョブスケジューリングシステム100を示している。システム100は、共有電子ノートブック104に関連し、共有ノートブック情報110に対して処理されるジョブ108のトラッキング情報106を作成して維持するジョブトラッキングコンポーネント102を含んでいる。また、システム100は、トラッキング情報106に基づいて共有ノートブック情報110に対してクライアントインスタンス116によって新しいジョブ114を同期させるスケジューリングコンポーネント112を含んでいる。クライアントインスタンス116は共有電子ノートブック104とインターラクション可能な又はインターラクションしている多くのクライアントインスタンス118の1つであることができる。
【0014】
トラッキング情報106は階層データコレクションのルートレベルに保存されたファイルであることができ、ここで、階層データコレクションはノートブックを表す。そのファイルは処理されたジョブに関係したプロパティを含む。プロパティは新しいジョブが処理されると更新される。クライアントインスタンス116は、スケジューリングコンポーネント112がクライアントインスタンス116からの新しいジョブ114を共有ノートブック情報110に同期させるとき共有ノートブック情報110についてアトミックロックを得る。その新しいジョブはノートブックの全ファイルを扱う新しい全ファイルジョブであることができる。又はその新しいジョブはファイルのデータの部分だけが同期のために処理されるような増加分のジョブである。
【0015】
電子ノートブックは、ファイルシステムにおけるファイル及びディレクトリに類似した、ファイル及びディレクトリのコレクションとして説明することができる。全ファイル構造として、ノートブックはファイル全体として保存される。ノートブックの1つのセクションは1つのファイルにマッピングされ、ファイルは変更がされる毎に変更のサイズに関係なくファイル全体としてアクセスされる。全ファイルノートブックはノートブックセクションをファイルにマッピングし、ノートブックフォルダをディレクトリにマッピングする。ルートディレクトリはノートブックのトップである。電子機器におけるビューのビジュアル的な説明例がファイル及びディレクトリのノートブックコレクションがどのようにファイルシステムに変換されるかについて本明細書で以下に提供される。
【0016】
アトミックファイルロックが処理され、その際、全ノートブックファイルへのアクセスは全ファイルが中断できない1つの動作において行われる。全ファイルロックが得られると、ノートブッククライアントインスタンスは全ファイルへの排他的なアクセスを持つことを保証され、他の全てのクライアントインスタンスは他のクライアントがロックを有している間においてアクセスを拒否される。
【0017】
図2は、ジョブスケジューリングシステム200の代替実施形態を示している。システム200は増加分の更新コンポーネント202の実施を介してクライアントノートブックデータ(ジョブ)の増加分の同期を容易にすることを含んでいる。ジョブ108は1つの更新から他(又はデルタ変更)への変更であることができ、本明細書で説明される全ファイル更新ではない。
【0018】
システム200は、共有電子ノートブック104と関連し、共有ノートブック情報110に対して処理されたジョブ108(今、増加分の更新)のトラッキング情報106を作成して維持するジョブトラッキングコンポーネント102を含むことができる。また、システム200はトラッキング情報106に基づいて共有ノートブック情報110に対してクライアントインスタンス116によって新しいジョブ114(今、新しい増加分のジョブ)を同期させるスケジューリングコンポーネント112を含んでいる。クライアントインスタンス116は共有電子ノートブック104とインターラクション可能な又はインターラクションしている多くのクライアントインスタンス118の1つであることができる。
【0019】
前述の通り、トラッキング情報106は階層データコレクションのルートレベルに保存されたファイルであることができ、ここで、階層データコレクションはノートブック104を表す。増加分の実施形態において、トラッキング情報106は処理されたジョブに関係したプロパティを含む。トラッキング情報106のプロパティは新しいジョブが処理されると更新される。
【0020】
ジョブは、ユーザが行った変更毎に全ファイルに代えて増加可能なサーバへのファイルの増加分更新(リビジョンと称される)である。例えば、テキスト文書の1つの文字を変更し協調サーバへ保存する場合にはその全テキスト文書は全ファイル実装において更新される必要がある。逆に、増加互換性のあるサーバは変更がされたことを説明する小さなデータのパケットを受け入れるだけである。クライアントは全ファイル実装においては説明されたアトミックファイルロックを用いない。
【0021】
リビジョンは、小さな文書編集が行われたとき全ファイルに代えて送信される変更のパケットを説明するために用いられる。セルのリビジョンの全ては一緒にグループ化されたときにページ又はセクションを作り出す。セルはそれ自身で意味をなす文書の一部である。例えば、セルで最小単位はページであることができ、これに対し、全ファイルノートブックでは最小単位はセクション(それはファイルである)である。
【0022】
言い換えれば、ジョブスケジューリングシステム200は、共有電子ノートブック104と関連し、共有ノートブック情報110に対して処理されたジョブのトラッキング情報106を作成して維持するジョブトラッキングコンポーネント102を含む。トラッキング情報106はノートブック104を表す階層データコレクションのルートレベルに保存され、トラッキング情報106は処理されたジョブに関連したプロパティを含む。また、システム200は、トラッキング情報106に基づいてクライアントインスタンス116からの新しいジョブ114を共有ノートブック情報110に同期させるスケジューリングコンポーネント112を含み、そのトラッキング情報106は新しいジョブ114の最後の実行の時間情報を含んでいる。
【0023】
新しいジョブ114は前記ファイルジョブであることでき、クライアントインスタンス116はスケジューリングコンポーネント112が全ファイルジョブを共有ノートブック情報110に同期させるとき共有ノートブック情報110についてのファイルロックを得る。スケジューリングコンポーネント112は同時ジョブ実行でクライアントインスタンスによる試みを和らげるために新しいジョブ114にランダム追加時間を加える。
【0024】
システム200は共有ノートブック情報110への増加分更新として新しいジョブ114を受信する増加分更新コンポーネント202を更に含むことができる。新しいジョブ114は変更されるデータにだけ関係した変更のパケットである。
【0025】
図3は、ジョブスケジューリングのための共有仮想電子ノートブックアーキテクチャの例のビジュアル説明を示している。仮想電子ノートブックはファイルシステムにおけるちょうどファイル及びディレクトリのようなファイル及びディレクトリのコレクションを含んでいる。全ファイルノートブックはノートブックセクションをファイルにマッピングし、ノートブックフォルダをディレクトリにマッピングする。ルートディレクトリはノートブックのトップである。ビジュアル説明300はノートブックユーザインターフェースビュー302の一例を示し、そのビュー302が以下のファイルシステム304においてどのようにファイル及びフォルダへ変換可能であるかを示している。そのビュー302はミーティングノート(Meeting Notes)、プロジェクトA(Project A)、プロジェクトB(Project B)、リサーチ(Research)、及びフォルダ(Folder)を備えるワークノートブックを含むノートブックを示している。そのフォルダはトラベル(Travel)、プランニング(Planning)、ミセレイニアス(Miscellaneous)と名付けられたノートブックファイルを含むように拡張する。
【0026】
単に便宜的に、トラッキング情報はシステムファイルリストでジョブ_トークン(job_token)ファイルとしてルートレベルに含まれる。開示したアーキテクチャはプロパティを保存するノートブックのルートレベルにファイルを配置する。ジョブ_トークンファイルは、ジョブを同期させるために用いられ、また、そのプロパティ、ジョブの最後の実行の時間(例えば、UTC)及び望まれる他のプロパティに応じて追跡させるために用いられる。
【0027】
全ファイル実装のために、クライアントインスタンスは同期が取れたときジョブ_トークンファイルについて中断不可能なアトミックファイルロックを設定する。そのロックが得られと、クライアントインスタンスに排他的アクセスを有することが保証される。
【0028】
開示したアーキテクチャはクライアント間で直接的な通信及び調整なしに共有ノートブックに対してスケジューリングしたジョブを実行する能力を多くのノートブッククライアントに提供する。
【0029】
図4は、開示したアーキテクチャの一実施形態による、全ファイルノートブックジョブスケジューリングシステム400を示している。そのシステム400は、共有ノートブック104とインターラクションを行うためにクライアントベースのオペレーティングシステム402を介して動作するノートブッククライアントインスタンスを含んでいる。
【0030】
共有ノートブック104は他のファイル及びフォルダを用いることができるけれども2つのセクションファイル404を含むとして表されている。加えて、トラッキング情報ファイル406(ジョブ_トークンファイルと記された)は共有ノートブックファイル404のルートレベルにおいて作成されて、保存され、維持される。示されたように、その共有ノートブック104はファイルサーバ408に保存維持される。ファイルサーバ408例えば、LDAP(lightweight directory access protocol:ライトウエイトディレクトリアクセスプロトコル)ファイルサーバであることができる。
【0031】
図5は、開示したアーキテクチャの一実施形態による、セルベースの電子ノートブックジョブスケジューリングシステム500を示している。システム500は、ファイルサーバ408上で共有ノートブック104とインターラクションを行うためにクライアントベースのオペレーティングシステム402に対して増加分更新コンポーネント202を介して動作するノートブッククライアントインスタンス116を含んでいる。
【0032】
ここで、共有ノートブック104は、他のセルを用いることができるけれども、2つのセクションセル502を含むとして表されている。加えて、トラッキング情報セル504(ジョブ_トークンセルと記された)は共有ノートブックセル502のルートレベルにおいて作り出され、保存され、維持される。示されたように、その共有ノートブック104はファイルサーバ408に保存維持され得る。ファイルサーバ408例えば、LDAP(ライトウエイトディレクトリアクセスプロトコル)ファイルサーバであることができる。
【0033】
本明細書において、開示したアーキテクチャの新規の態様を実行するために方法例を表すフローチャートのセットが含まれている。説明の簡略化のために、本明細書で示された手1以上の方法、例えば、フローチャート又はフロー図の形式で、一連の動作として示され、説明される一方、その方法は、いくつかの動作がそれに応じて異なる順に及び/又は本明細書で示されかつ説明されたこと以外の他の動作と同時に起きても良いように動作の順によっては限定されないことが理解及び評価されるべきである。例えば、方法は状態図におけるように一連の相互に関係した状態又はイベントとして代替的に表され得ることをこの分野の当業者は理解及び評価できる。更に、方法において示された全ての動作が新規の実施のために要求されなくても良い。
【0034】
図6は、ジョブスケジューリングの方法を示している。600では共有ノートブック情報に対して処理されたジョブのトラッキング情報が作り出されて維持される。602ではジョブはその共有ノートブック情報に対して同期をとるためにスケジューリング処理される。608ではスケジューリング処理したジョブがトラッキング情報に基づいて共有ノートブック情報と同期をとられる。
【0035】
図7は、
図6の方法の追加の態様を示している。700では、トラッキング情報はファイルサーバの共有ノートブック情報のルートレベルにデータとして保存される。702では、全ファイルジョブは共有ノートブック情報との全ファイルの同期化のためにスケジューリング処理される。704では、リビジョンジョブは共有ノードブック情報に対する部分的な更新の同期化のためにスケジューリング処理される。706では、前のリビジョンに従ったトラッキング情報についてのテイクロックリビジョンが出力される。708では、ジョブを実行する前に所定の制限時間の待機が行われる。710では、トラッキング情報は最後の実行ジョブについての時間情報を得るためにアクセスされる。
【0036】
図8は、全ファイルジョブについてのジョブスケジューリング及び実行を表す状態
図800を示している。802では、ジョブ_トークンファイルの形式のトラッキング情報がジョブを処理するために読み取られる。前に処理したジョブがあるならば、そのファイルはサーバリソース位置から読み取られ、最後に実行したジョブの時間が得られる。804では、ランダム追加時間がジョブのスケジューリングに加えられる。その最後に実行したジョブは記憶され(又はデフォルト値を使用する)、加えられたランダム追加時間である。これはクライアントが同時にジョブを実行する試みを軽減又は防止することである。806では、所定の制限を越えてジョブ時間のいずれかを待つためにバックグラウンド待機状態に入ることがされる。ジョブを処理する時間を最終的にマッチングさせるためにカウントダウンが行われる。これはジョブが異なる回数又は頻繁(例えば、1時間当たり1度に1ジョブ及び1日当たり1度に他のジョブ)に実行されることを可能にする。
【0037】
ジョブの時間が終わったならば、フローは次の状態808に移行し、808では、ノートブックのルートにおけるジョブ_トークンファイルについてファイルロックが行われる。ロックが失敗したならば、フローは802に戻る。ロックが成功したならば、ジョブ_トークンファイルの別のコピーがサーバから取り出される。これは他のジョブがロックを得て新しいトラッキング情報が得られるためである。810では、最後の実行ジョブの時間がジョブ_トークンファイルから得られロックしたときにジョブが実行されたか否かを確かにする。最後のジョブが実行されてから十分の時間が経過していないならば、ロックが解放され、フローは802に戻る。
【0038】
ジョブが実行されていないならば、フローは810から812に移行してジョブを実行する。ジョブの実行が成功したならば、フローは814に移行してジョブ_トークンファイルを更新する。ジョブの実行を失敗したならば、フローは812から816に移行してジョブを中止する。ジョブ成功又は失敗のいずれの場合においてもフローは818に移行してジョブ_トークンファイルについてのロックを解放する。そして、フローは818から804に戻って再開してランダム追加時間を加える。
【0039】
図9は、リビジョンジョブのためのジョブスケジューリング及び実行を表す状態
図900を示している。902では、全てのジョブ_トークンファイルセルリビジョンがファイルサーバの共有ノートブックから要求される。最後のジョブの時間と、他のクライアントがセルについて現ロックを有するか否かはそれらのリビジョンにあると考えられる。以前に処理したジョブがあるならば、ファイルはサーバリソース位置から読み取られ、最後に実行したジョブの時間が得られる。904では、ランダム追加時間がジョブのスケジューリングに加えられる。最後に実行したジョブは記憶され(又はデフォルト値を使用する)、加えられたランダム追加時間である。これはクライアントが同時にジョブを実行する試みを防止することである。906では、所定の制限を越えてジョブ時間のいずれかを待つためにバックグラウンド待機状態に入ることがされる。ジョブを処理する時間を最終的にマッチングさせるためにカウントダウンが行われる。これはジョブが異なる回数又は頻繁(例えば、1時間当たり1度に1ジョブ及び1日当たり1度に他のジョブ)に実行されることを可能にする。
【0040】
ジョブの時間が終わったならば、フローは次の状態908に移行し、908では、前のリビジョンに従ってテイクロックリビジョンを出力する。これはセルの最終リビジョンが変更したならば(それは一般に他のクライアントがロックを行ったことを意味する)、この現在のテイクロックは失敗することを確かにする。ロックテイクが失敗したならば、フローは902に戻る。ロックテイクが成功したならば、フローは908から910に移行し、910で全てのセルリビジョンのコピーがサーバから得られる。910では、最後に実行したジョブの時間がジョブ_トークンセルから得られてジョブがロックしているときに実行されなかったことを確かにする。最後のジョブが実行されてから十分の時間が系かしてないならば、ロックは解放され、フローは910から902に戻る。
【0041】
ジョブ実行の時間が来たならば、フローは910から912に移行してジョブを実行する。ジョブ実行が成功したならば、フローは914に移行してジョブ_トークンセルプロパティを更新する。そのプロパティについての新しいリビジョンを出力することによってジョブが実行された時間がジョブ_トークンセルにおいて更新される。ジョブ実行が失敗したならば、フローは912から916に移行してジョブを中止する。ジョブ成功又は失敗のいずれの場合においてもフローは918に移行してジョブ_トークンセルについてのロックを解放する。そして、フローは918から904に戻って再開してランダム追加時間を加える。
【0042】
ユーザに情報を表示するある方法がスクリーンショットとしてある図について示されかつ説明されるが、関連分野の当業者は、様々な他の代替方法を用いることができることを認識することができる。用語の「スクリーン」、「スクリーンショット」、「ウェブページ」、「ドキュメント(文書)」、及び「ページ」は通常、本明細書では交互に用いられる。ページ又はスクリーンは、ディスプレイ説明として、グラフィカルユーザインターフェースとして、又はレイアウト及びページ上に表示されるべき情報又はコンテンツがメモリ、データベース、又は他の記憶設備に保存される(例えば、パーソナルコンピュータ、PDA、モバイル電話、又は他の適切な装置等の)スクリーン上に情報を描画する他の方法によって保存及び/又は送信される。
【0043】
本出願において用いられるように、用語の「コンポーネント」及び「システム」はコンピュータに関連した実体物、いずれかのハードウエア、ハードウエアとソフトウエアとの組み合わせ、ソフトウエア、又は実行中のソフトウエアを参照しているつもりである。例えば、コンポーネントは限定されないが、プロセッサ上で動作する処理、プロセッサ、ハードディスクドライブ、複数の記憶装置(光学式、半導体、及び/又は磁気記憶媒体)、オブジェクト、実行ファイル、実行のスレッド、プログラム、及び/又はコンピュータであることができる。図示を介してサーバ上で動作するアプリケーション及びそのサーバの両方はコンポーネントであることができる。1以上のコンポーネントは実行の処理及び/又はスレッド内に存在することができ、コンポーネントは1つのコンピュータにあっても及び/又は2以上のコンポーネント間に分散されても良い。言葉の「模範例(exemplary)」は本明細書では1つの例、インスタンス、例示として供する意味として用いられている。本明細書てで「模範例」として説明された態様又は設計は他の態様又は設計以上の好ましいこと又は利点として必ずしも解釈されるべきではない。
【0044】
図10を参照すると、開示したアーキテクチャに応じて電子ノートブック用のジョブを実行可能なコンピューティングシステム1000のブロック図が示されている。それの様々な態様についての追加のコンテキストを提供するために、
図10及び次の記載は様々な態様を実施することができる適切なコンピューティングシステム1000の短い一般的な説明を提供するつもりである。上記した説明は1以上のコンピュータで動作することができるコンピュータ実行可能な命令の一般的なコンテキスト中にあるが、他のプログラムモジュールとの組み合わせにおいて及び/又はハードウエア及びソフトウエアの組み合わせとして新規の実施形態を実施することができることをこの分野の当業者は認識することができる。
【0045】
様々な態様を実施するコンピューティングシステム1000は処理ユニット1004、システムメモリ1006、及びシステムバス1008を有するコンピュータ1002を含んでいる。処理ユニット1004は、シングルプロセッサ、マルチプロセッサ、シングルコアプロセッサ、及びマルチコアプロセッサ等の様々な市販のプロセッサのいずれかであることができる。更に、この分野の当業者は、その新規方法を、ミニコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ(例えば、デスクトップ、ラップトップ等)、ハンドヘルドコンピューティング装置、マイクロプロセッサベースの又はプログラマブル家電等を含む他のコンピュータシステム構成で実施することができ、それらの各々を1以上の関連装置と動作上で結合することができることを理解できる。
【0046】
システムメモリ1006は、揮発性(VOL)メモリ1010(例えば、RAM(ランダムアクセスメモリ))及び不揮発性(NON−VOL)メモリ1012(例えば、ROM、EPROM、EEPROM等)を含むことができる。不揮発性メモリ1012は基本入力/出力システム(BIOS)を保存することができ、基本入力/出力システム(BIOS)はコンピュータ1002内のコンポーネント間のデータ及び信号の通信を容易にするスタートアップ等の基本ルーチンを含んでいる。揮発性メモリ1010はデータキャッシュを行うスタテックRAM等の高速RAMを含むことができる。
【0047】
システムバス1008は限定されないが、メモリサブシステム1006ないし処理ユニット1004を含むシステムコンポーネントのためのインターフェースを提供する。システムバス1008は、様々な市販のバスアーキテクチャのいずれかを用いて、メモリバス(メモリコントローラと共に又はなしで)、及び周辺バス(例えば、PCI,PCIe,AGP,LPC等)と更に相互接続することができる何種類かのバス構成のいずれかであることができる。
【0048】
コンピュータ1002は、記憶サブシステム1014と、記憶サブシステム1014をシステムバス1008及び他の所望のコンピュータコンポーネントにインターフェース接続する記憶インターフェース1016とを更に含んでいる。記憶サブシステム1014は、例えば、ハードディスクドライブ(HDD)、磁気フロッピーディスクドライブ(FDD)、及び/又は光ディスク記憶装置(例えば、CD−ROMドライブ、DVDドライブ)のうちの1以上を含むことができる。記憶インターフェース1016は例えば、EIDE、ATA、SATA、及びIEEE1394等のインターフェース技術を含むことができる。
【0049】
メモリサブシステム1006、リムーバブルメモリサブシステム1018(例えば、フラッシュドライブフォームファクタ技術)、及び/又は記憶サブシステム1014(例えば、光、磁気、半導体)は、オペレーティングシステム1020、1以上のアプリケーションプログラム1022、他のプログラムモジュール1024、及びプログラムデータ1026を含む1以上のプログラム及びデータを保存することができる。
【0050】
コンピュータ1002がクライアントベースの機器である場合には、1以上のアプリケーションプログラム1022、他のプログラムモジュール1024、及びプログラムデータ1026は、例えば、
図1のクライアントインスタンス118、ジョブ108、及び新しいジョブ114、
図2の増加分更新コンポーネント202、
図3のビュー302、
図4のオペレーティングシステム403、及び
図6〜9のフローチャート及び状態図に示されたステップの1以上を含むことができる。
【0051】
コンピュータ1002がクライアントベースの機器である場合には、1以上のアプリケーションプログラム1022、他のプログラムモジュール1024、及びプログラムデータ1026は、例えば、
図1のジョブトラッキングコンポーネント102、トラッキング情報106、スケジューリングコンポーネント112、ジョブ108、新しいジョブ114、共有電子ノートブック104及び共有ノートブック情報110、
図3のファイルシステム304、
図4のファイルサーバ408、共有ノートブックファイル404及びトラッキング情報ファイル406、
図5の共有ノートブックファイル502及びトラッキング情報セル504、
図6〜
図9のフローチャート及び状態図に示されたステップの1以上を含むことができる。
【0052】
一般的に、プログラムは、特定のタスクを実行する又は、特定のアブストラクトデータタイプを実施するルーチン、方法、データストラクチャ、他のソフトウエアコンポーネント等を含む。また、例えば、揮発性メモリ1010等のメモリはオペレーティングシステム1020、アプリケーションプログラム1022、プログラムモジュール1024、及び/又はデータ1026の全て又は一部をキャッシュすることができる。開示したアーキテクチャを様々な市販のオペレーティングシステム又はオペレーティングシステムの組み合わせ(例えば、仮想マシンのような)で実施することができることは理解されるべきである。
【0053】
記憶サブシステム1014及びメモリサブシステム(1016及び1018)は、揮発性及びデータ、データ構造、コンピュータ実行可能な命令等の揮発及び不揮発性記憶装置のコンピュータ読み取り可能な媒体としての機能を果たす。コンピュータ読み取り可能な媒体はコンピュータ1002によってアクセスが可能ないくつかの有用な媒体であることができ、揮発性及び不揮発性媒体、リムーバブル及び非リムーバブル媒体を含む。コンピュータ1002のために、媒体はいくつかの適切なディジタルフォーマットでデータの記憶場所を提供する。開示したアーキテクチャの新規の方法を実行するためのコンピュータ実行可能命令を保存するZIPドライブ、磁気テープ、フラッシュメモリカード、カートリッジ等のコンピュータ読み取り可能な媒体の他の種類を用いることができることはその分野の当業者によって理解されるべきである。
【0054】
ユーザは、キーボードやマウス等の外部ユーザ入力装置1028を用いてコンピュータ1002、プログラム、及びデータとのインターラクションを行うことができる。他の外部ユーザ入力装置1028はマイクロホン、IR(赤外線)リモートコントロール、ジョイスティック、ゲームパッド、カメラ認識システム、スタイラスペン、タッチスクリーン、ジェスチャーシステム(例えば、目の動き、頭の動き等)等を含むことができる。ユーザは、タッチパッド、マイクロホン、キーボード等のオンボードユーザ入力装置1030を用いてコンピュータ1002、プログラム、及びデータとインターラクションを行うことができ、ここでコンピュータ1002は例えば、ポータブルコンピュータである。それらの及び他の入力装置はシステムバス1008を経て入出力(I/O)装置インターフェース1032を介して処理ユニット1004と接続されているが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインターフェース等の他のインターフェースによって接続されても良い。また、I/O装置インターフェース1032は、プリンタ、オーディオ装置、カメラ装置等、サウンドカード及び/又はオンボードオーディオ処理機能等の出力周辺機器1034の使用を容易にする。
【0055】
1以上のグラフィックスインターフェース1036(通常、グラフィックス処理ユニット(GPU)と称する)は、コンピュータ1002と外部ディスプレイ1038(例えば、LCD、プラズマ)及び/又はオンボードディスプレイ1040(例えば、ポータブルコンピュータ用)との間でグラフィックス及びビデオ信号を提供する。また、そのグラフィックスインターフェース1036をコンピュータシステムボードの一部として製造することができる。
【0056】
コンピュータ1002は1以上のネットワーク及び/又は他のコンピュータとの有線/無線通信サブシステム1042を介したロジカル接続を用いてネットワーク環境(例えば、IP)で動作することができる。他のコンピュータはワークステーション、サーバ、ルータ、パーソナルコンピュータ、マイクロプロセッサベースのエンターテインメント電化製品、ピア装置又は他の共通ネットワークノードを含むことができ、また、一般的に、コンピュータ1002に関係して説明されたエレメントの多く又は全てを含むことができる。ロジカル接続はLAN(ローカルエリアネットワーク)、WAN(ワイドエリアネットワーク)、ホットスポット等への有線/無線接続を含むことができる。LAN及びWANネットワーク環境は事務所及び会社における通常であり、その全てがインターネット等のグローバル通信ネットワークに接続することができるイントラネット等の企業規模コンピュータネットワークを容易にする。
【0057】
ネットワーク環境で使用されるとき、コンピュータ1002は有線/無線通信サブシステム1042(例えば、ネットワークインターフェースアダプタ、オンボードトランシーバサブシステム等)を介してネットワークに接続して有線/無線ネットワーク、有線/無線プリンタ、有線/無線入力装置1044等と通信する。コンピュータ1002はモデムを含む、又はネットワークを介して通信を確立する他の手段を有することができる。ネットワーク環境においては、コンピュータ1002に関係したプログラム及びデータを、分散システムと関連しているようにリモートメモリ/記憶装置に保存することができる。示されたネットワーク接続は例であり、コンピュータ間で通信リンクを確立する他の手段を用いることができる。
【0058】
コンピュータ1002は、例えば、プリンタ、スキャナー、デスクトップ及び/又はポータブルコンピュータ、パーソナルディジタルアシスタント(PDA)、通信衛星、無線検出可能なタグ(例えば、キオスク、ニューススタンド、レストルーム)と関連した機器又は場所の一部、及び電話との無線通信(例えば、IEEE802.11無線変調技術)において動作可能に設けられた無線装置等の規格のIEEE802.xxファミリ等の高周波技術を用いて有線/無線装置又は実体と通信するために動作可能である。これは、ホットスポットのためのWi−Fi(又はワイヤレス・フィデリティー)、WiMax、及びブルートゥース(商標)無線技術を少なくとも含む。よって、通信は従来のネットワーク又は少なくとも2つの装置間の単なる特別な通信のように所定の構造であることができる。Wi−FiネットワークはIEEE802.11x(a,b,g等)と呼ばれる無線技術を用いて安全で信頼性ある高速無線接続を提供する。コンピュータを互いに、インターネットに、及び有線ネットワーク(それはIEEE802.3に関係した媒体及び機能を使用する)に接続するためにWi−Fiネットワークを用いることができる。
【0059】
また、所定のタスクが通信ネットワークを介してリンクされているリモート処理装置によって実行される分散コンピューティング環境において図示した態様を実施することができる。分散コンピューティング環境において、プログラムモジュールをローカル及び/又はリモート記憶装置及び/又はメモリシステムに配置することができる。
【0060】
図11を参照すると、仮想電子ノートブックジョブスケジューリング及び同期のためのコンピューティング環境の略ブロック図が示されている。環境1100は1以上のクライアント1102を含んでいる。そのクライアント1102はハードウエア及び/又はソフトウエア(例えば、スレッド、プロセス、コンピューティング装置)であることができる。クライアント1102は例えば、クッキー及び/又は関連したコンテキスト情報を含むことができる。
【0061】
また、環境1100は1以上のサーバ1104を含んでいる。また、サーバ1104はハードウエア及び/又はソフトウエア(例えば、スレッド、プロセス、コンピューティング装置)であることができる。サーバ1104はスレッドを含んで例えば、アーキテクチャを用いることによって変換を行うことができる。クライアント1102とサーバ1104との間の1つの可能性ある通信は、2以上のコンピュータ処理間で送信されるために適応されるデータパケットの形式であることができる。そのデータパケットは例えば、クッキー及び/又は関連したコンテキスト情報を含むことができる。環境1100はクライアント1102とサーバ1104との間の通信を容易にするために使用可能な通信フレームワーク1106(例えば、インターネット等のグローバル通信ネットワーク)を含んでいる。
【0062】
有線(光ファイバを含む)技術及び/又は無線技術を通して通信を容易にすることができる。クライアント1102は、クライアント1102の地域情報(例えば、クッキー及び/又は関連したコンテキスト情報)を保存するために使用可能な1以上のクライアントデータストア1108に動作可能に接続されている。同様に、サーバ1104は、サーバ1104の地域情報を保存するために使用可能な1以上のサーバデータストア1110に動作可能に接続されている。
【0063】
上記したことは開示したアーキテクチャの例を含んでいる。勿論、コンポーネント及び/又は方法の考えられる全ての組み合わせを説明することは不可能であるが、その分野の当業者は、多くの更なる組み合わせ及び置換が可能であることを認識することができる。よって、新規のアーキテクチャは請求項の精神及び範囲内に入る修正、変更及び変形の全てを包含するつもりである。更に、用語「includes(含む)」が詳細な説明又は請求の範囲で用いられる限りにおいては、そのような用語は、「comprising(備える)」が請求項で転換語として用いられたとき解釈されるように用語「comprising」に同様に含んだつもりである。