(57)【特許請求の範囲】
【請求項１】
コンピュータ実行ジョブスケジューリングシステムであって、
共有電子ノートブックと関連し、前記共有電子ノートブックに対して処理を行うジョブのトラッキング情報を作成して維持するジョブトラッキングコンポーネントと、
前記トラッキング情報に基づいて前記共有電子ノートブックに対するジョブを実行するスケジューリングコンポーネントとを含み、
前記トラッキング情報は、ジョブが最後に実行された時刻に関する情報を含み、
前記スケジューリングコンポーネントは、
前記ジョブトラッキングコンポーネントが維持する前記トラッキング情報から、前記ジョブが最後に実行された時刻に関する情報を取出し、
前記ジョブが最後に実行された時刻に関する情報にランダムな時間を加算し、
前記ランダムな時間が加算されたジョブが最後に実行された時刻に関する情報を基準としてジョブが実行されるべき時間間隔に相当する時間待ちを行い、
前記ジョブトラッキングコンポーネントが維持する前記トラッキング情報に対してファイルロックを試み、
前記トラッキング情報に対する前記ファイルロックに失敗した場合に、前記トラッキング情報に対する前記ファイルロックを解放して、前記ジョブトラッキングコンポーネントが維持する前記トラッキング情報から、前記ジョブが最後に実行された時刻に関する情報を取出すことから再度行い、
前記トラッキング情報に対する前記ファイルロックに成功した場合に、前記ジョブを実行し、前記トラッキング情報に含まれる、前記ジョブが最後に実行された時刻に関する情報を現在の時刻に更新し、前記トラッキング情報に対する前記ファイルロックを解放することを実行することによって、
同時ジョブ実行の発生を軽減することを特徴とする、
システム。
【請求項２】
前記トラッキング情報は、前記共有電子ノートブックの一部として保存されることを特徴とする請求項１記載のシステム。
【請求項３】
前記トラッキング情報に対する前記ファイルロックに成功した場合に、前記ジョブトラッキングコンポーネントが維持する前記トラッキング情報から、前記ジョブが最後に実行された時刻に関する情報を再度取出し、前記ジョブが最後に実行された時刻から十分の時間が経過していないならば、前記トラッキング情報に対する前記ファイルロックを解放して、前記ジョブトラッキングコンポーネントが維持する前記トラッキング情報から、実行しようとするジョブについての前記ジョブが最後に実行された時刻に関する情報を取出すことから再度行い、前記ジョブが最後に実行された時刻から十分の時間が経過している場合には、前記ジョブを実行することを特徴とする請求項１又は２記載のシステム。
【請求項４】
前記スケジューリングコンポーネントが前記共有電子ノートブックに対して処理を行う前記ジョブを実行するとき、前記共有電子ノートブックについてのアトミックロックを得ることを特徴とする請求項１〜３記載のシステム。
【請求項５】
前記ジョブは前記共有電子ノートブックの全ファイルに対して処理を行う全ファイルジョブであることを特徴とする請求項１〜３記載のシステム。
【請求項６】
前記ジョブは前記共有電子ノートブックのファイルのデータの一部分に対して処理を行う増加分ジョブであることを特徴とする請求項１〜３記載のシステム。
【請求項７】
前記共有電子ノートブックのファイルのデータの一部分に対して処理を行う増加分ジョブとして前記ジョブを受け入れる増加分更新コンポーネントを更に含むことを特徴とする請求項６記載のシステム。
【請求項８】
前記共有電子ノートブックのファイルのデータの一部分に対して処理を行う増加分ジョブは変更するデータにだけ関係した変更のパケットを含んでいることを特徴とする請求項６記載のシステム。
【請求項９】
ジョブスケジューリングのコンピュータ実行方法であって、
共有電子ノートブックに対して処理を行うジョブのトラッキング情報を作成して維持することと、
前記トラッキング情報に基づいて前記共有電子ノートブックに対するジョブを実行することとを含み、
前記トラッキング情報は、ジョブが最後に実行された時刻に関する情報を含み、
前記トラッキング情報に基づいて前記共有電子ノートブックに対するジョブを実行することとは、
前記トラッキング情報から、前記ジョブが最後に実行された時刻に関する情報を取出し、
前記ジョブが最後に実行された時刻に関する情報にランダムな時間を加算し、
前記ランダムな時間が加算されたジョブが最後に実行された時刻に関する情報を基準としてジョブが実行されるべき時間間隔に相当する時間待ちを行い、
前記トラッキング情報に対してファイルロックを試み、
前記トラッキング情報に対する前記ファイルロックに失敗した場合に、前記トラッキング情報に対する前記ファイルロックを解放して、前記トラッキング情報から、前記ジョブが最後に実行された時刻に関する情報を取出すことから再度行い、
前記トラッキング情報に対する前記ファイルロックに成功した場合に、前記ジョブを実行し、前記トラッキング情報に含まれる、前記ジョブが最後に実行された時刻に関する情報を現在の時刻に更新し、前記トラッキング情報に対する前記ファイルロックを解放することを含むことによって、
同時ジョブ実行の発生を軽減することを特徴とする、
方法。
【請求項１０】
前記トラッキング情報は、前記共有電子ノートブックの一部として保存されることを特徴とする請求項９記載の方法。
【請求項１１】
前記トラッキング情報に対する前記ファイルロックに成功した場合に、前記トラッキング情報から、前記ジョブが最後に実行された時刻に関する情報を再度取出し、前記ジョブが最後に実行された時刻から十分の時間が経過していないならば、前記トラッキング情報に対する前記ファイルロックを解放して、前記トラッキング情報から、実行しようとするジョブについての前記ジョブが最後に実行された時刻に関する情報を取出すことから再度行い、前記ジョブが最後に実行された時刻から十分の時間が経過している場合には、前記ジョブを実行することを特徴とする請求項９又は１０記載の方法。
【請求項１２】
前記共有電子ノートブックに対して処理を行う前記ジョブを実行するとき、前記共有電子ノートブックについてのアトミックロックを得ることを特徴とする請求項９〜１１記載の方法。
【請求項１３】
前記ジョブは前記共有電子ノートブックの全ファイルに対して処理を行う全ファイルジョブであることを特徴とする請求項９〜１１記載の方法。
【請求項１４】
前記ジョブは前記共有電子ノートブックのファイルのデータの一部分に対して処理を行う増加分ジョブであることを特徴とする請求項９〜１１記載のシステム。
【請求項１５】
前記共有電子ノートブックのファイルのデータの一部分に対して処理を行う増加分ジョブは変更するデータにだけ関係した変更のパケットを含んでいることを特徴とする請求項１４記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有電子ノートブックに関する。
【背景技術】
【０００２】
電子的な仮想ノートブックは、多くのユーザが開いて同時に編集することができるように共有することができる。周期的に動作するタスクを有することから恩恵を受けることができるという共有ノートブックの特徴がある。それらのタスク、又はジョブは通常、一度だけ、公開された共有ノートブックを有する１つのクライアント又はマシンだけによって実行されることを必要とする。１人又は１つのインスタンス以上を有するいくつかの場合には、同じタスクを行う試みは、予測できない結果又は潜在的に破損したデータをもたらすことがある。
【０００３】
周期的なジョブ動作を利用するという特徴の例は、ノートブックのＨＴＭＬビューである。インストールされたノートブッククライアントを有していないが、ウェブブラウザを介してノートブックにアクセスするユーザについて、それらのユーザは、ノートブックコンテンツの読み取りだけのＨＴＭＬビューを望むことがある。何らかの値を有するＨＴＭＬビューのために、そのビューは周期的に、そして変更があるならば頻繁に、しかしその公開されたノートブックプログラムを有する１つのクライアントによってだけ更新されなければならない。加えて、ノートブックプログラムを実行するどのユーザがそのジョブを行うかの決定は自動的に、そしてユーザの介入又は入力なしに行われるべきである。
【発明の概要】
【０００４】
以下の説明は、本明細書で説明するいくつかの新規な実施形態の基本的な理解を与えるために簡単な概要を提供する。この概要は詳細な要約ではなく、主要／重要な要素を識別し又はその範囲を説明することを意図していない。その唯一の目的は、以下の更なる詳細な説明への前置きとして簡単な形式でいくつかのコンセプトを提供することである。
【０００５】
開示するアーキテクチャは、タスク又はジョブを共有ノートブックに公開することができる技術であり、１つのノートブッククライアントインスタンスだけによって同期は行われ、それによりユーザの介入の必要性を取り除き、そのノートブッククライアントの１つのインスタンスだけがそのタスクを行うことを保証する。
【０００６】
このアーキテクチャは、共有電子ノートブックに関連し、共有ノートブック情報に対して処理されるジョブのトラッキング情報を作成して維持するジョブトラッキングコンポーネントと、そのトラッキング情報に基づいた共有ノートブック情報に対してクライアントインスタンスによって新しいジョブを同期させるスケジューリングコンポーネントとを含むことができる。そのクライアントインスタンスは、共有電子ノートブックとインターラクションを行うことができる又は行っている多くのクライアントインスタンスのうちの１つであることができる。
【０００７】
トラッキング情報は、階層データコレクションのルートレベルに保存されたファイルとすることができ、ここで、階層データコレクションは電子ノートブックを表す。ファイルは、処理されたジョブに関係するプロパティを含む。プロパティは、新しいジョブが処理されると更新される。ジョブスケジューリングは、共有ノートブック情報に対する全ファイル更新及び／又は増分の更新を含む。
【０００８】
電子ノートブックをサポートし、またどんな数のユーザについての規模をなす記憶機構に対しても、このアーキテクチャを適用することができる。ユーザインターラクションは要求されず、処理はバックグラウンドで生ずる。
【０００９】
上述の、及び関連する目標を達成するために、特定の図示の態様が次の詳細な説明及び添付図面と関連して本明細書で説明される。それらの態様は本明細書で開示された原理を実施する様々な方法を示し、全ての態様及びそれらの等価なものは請求項に記載した構成の範囲内にあることが意図される。他の利点及び新規な特徴は図面と共に考慮することで次の詳細な説明から明らかになる。
【図面の簡単な説明】
【００１０】
【図１】開示したアーキテクチャによる、コンピュータ実装のジョブスケジューリングシステムを示す図である。
【図２】ジョブスケジューリングシステムの代替実施形態を示す図である。
【図３】ジョブスケジューリングのための共有仮想電子ノートブックアーキテクチャの例のビジュアル説明を示す図である。
【図４】開示したアーキテクチャの一実施形態による、全ファイルノートブックジョブスケジューリングシステムを示す図である。
【図５】開示したアーキテクチャの一実施形態による、セルベースの電子ノートブックジョブジョブスケジューリングシステムを示す図である。
【図６】ジョブスケジューリングの方法を示す図である。
【図７】図６の方法の追加の態様を示す図である。
【図８】全ファイルジョブのためのジョブスケジューリング及び実行を表す状態図である。
【図９】リビジョンジョブのためのジョブスケジューリング及び実行を表す状態図である。
【図１０】開示したアーキテクチャによる、電子ノートブック用のジョブを実行可能なコンピューティングシステムのブロック図である。
【図１１】仮想電子ノートブックジョブスケジューリング及び同期のためのコンピューティング環境の略ブロック図である。
【発明を実施するための形態】
【００１１】
開示したアーキテクチャは、多くのノートブッククライアントがクライアント間での直接の通信又は調整なしに共有可能な電子ノートブックに対してスケジュールされたジョブを実行することを可能にする。書き込み可能なファイル（トラッキング情報と称される）は共有可能なノートブックと関連して配置され、ノートブッククライアントはノートブックとの同期中においてファイルに保証したアトミックロックを掛けることができる。ファイルはルートにおいてノートブック内にプロパティを保存することができ、クライアントインスタンスのジョブに同期させるために用いられる。プロパティはジョブの最後の実行の時間（例えば、ＵＴＣ協定世界時間）及び望まれる他のプロパティを含むことができる。
【００１２】
参照は図面に対して行われ、類似の参照符号が明細書中に亘って類似の要素を参照するため用いられる。次の詳細な説明において、説明の目的のために、多くの特定の詳細はその完璧な理解を与えるために記述されている。しかしながら、新規の実施形態をそれらの特定の詳細なしに実施することができることは明白である。他の例において、良く知られた構成及び装置はそれの説明を容易にするためにブロック図形式で示されている。本発明は、請求項の構成の趣旨及び範囲内に入る全ての変更、等価、及び代替を含むものである。
【００１３】
図１は、開示したアーキテクチャによる、コンピュータ実装のジョブスケジューリングシステム１００を示している。システム１００は、共有電子ノートブック１０４に関連し、共有ノートブック情報１１０に対して処理されるジョブ１０８のトラッキング情報１０６を作成して維持するジョブトラッキングコンポーネント１０２を含んでいる。また、システム１００は、トラッキング情報１０６に基づいて共有ノートブック情報１１０に対してクライアントインスタンス１１６によって新しいジョブ１１４を同期させるスケジューリングコンポーネント１１２を含んでいる。クライアントインスタンス１１６は共有電子ノートブック１０４とインターラクション可能な又はインターラクションしている多くのクライアントインスタンス１１８の１つであることができる。
【００１４】
トラッキング情報１０６は階層データコレクションのルートレベルに保存されたファイルであることができ、ここで、階層データコレクションはノートブックを表す。そのファイルは処理されたジョブに関係したプロパティを含む。プロパティは新しいジョブが処理されると更新される。クライアントインスタンス１１６は、スケジューリングコンポーネント１１２がクライアントインスタンス１１６からの新しいジョブ１１４を共有ノートブック情報１１０に同期させるとき共有ノートブック情報１１０についてアトミックロックを得る。その新しいジョブはノートブックの全ファイルを扱う新しい全ファイルジョブであることができる。又はその新しいジョブはファイルのデータの部分だけが同期のために処理されるような増加分のジョブである。
【００１５】
電子ノートブックは、ファイルシステムにおけるファイル及びディレクトリに類似した、ファイル及びディレクトリのコレクションとして説明することができる。全ファイル構造として、ノートブックはファイル全体として保存される。ノートブックの１つのセクションは１つのファイルにマッピングされ、ファイルは変更がされる毎に変更のサイズに関係なくファイル全体としてアクセスされる。全ファイルノートブックはノートブックセクションをファイルにマッピングし、ノートブックフォルダをディレクトリにマッピングする。ルートディレクトリはノートブックのトップである。電子機器におけるビューのビジュアル的な説明例がファイル及びディレクトリのノートブックコレクションがどのようにファイルシステムに変換されるかについて本明細書で以下に提供される。
【００１６】
アトミックファイルロックが処理され、その際、全ノートブックファイルへのアクセスは全ファイルが中断できない１つの動作において行われる。全ファイルロックが得られると、ノートブッククライアントインスタンスは全ファイルへの排他的なアクセスを持つことを保証され、他の全てのクライアントインスタンスは他のクライアントがロックを有している間においてアクセスを拒否される。
【００１７】
図２は、ジョブスケジューリングシステム２００の代替実施形態を示している。システム２００は増加分の更新コンポーネント２０２の実施を介してクライアントノートブックデータ（ジョブ）の増加分の同期を容易にすることを含んでいる。ジョブ１０８は１つの更新から他（又はデルタ変更）への変更であることができ、本明細書で説明される全ファイル更新ではない。
【００１８】
システム２００は、共有電子ノートブック１０４と関連し、共有ノートブック情報１１０に対して処理されたジョブ１０８（今、増加分の更新）のトラッキング情報１０６を作成して維持するジョブトラッキングコンポーネント１０２を含むことができる。また、システム２００はトラッキング情報１０６に基づいて共有ノートブック情報１１０に対してクライアントインスタンス１１６によって新しいジョブ１１４（今、新しい増加分のジョブ）を同期させるスケジューリングコンポーネント１１２を含んでいる。クライアントインスタンス１１６は共有電子ノートブック１０４とインターラクション可能な又はインターラクションしている多くのクライアントインスタンス１１８の１つであることができる。
【００１９】
前述の通り、トラッキング情報１０６は階層データコレクションのルートレベルに保存されたファイルであることができ、ここで、階層データコレクションはノートブック１０４を表す。増加分の実施形態において、トラッキング情報１０６は処理されたジョブに関係したプロパティを含む。トラッキング情報１０６のプロパティは新しいジョブが処理されると更新される。
【００２０】
ジョブは、ユーザが行った変更毎に全ファイルに代えて増加可能なサーバへのファイルの増加分更新（リビジョンと称される）である。例えば、テキスト文書の１つの文字を変更し協調サーバへ保存する場合にはその全テキスト文書は全ファイル実装において更新される必要がある。逆に、増加互換性のあるサーバは変更がされたことを説明する小さなデータのパケットを受け入れるだけである。クライアントは全ファイル実装においては説明されたアトミックファイルロックを用いない。
【００２１】
リビジョンは、小さな文書編集が行われたとき全ファイルに代えて送信される変更のパケットを説明するために用いられる。セルのリビジョンの全ては一緒にグループ化されたときにページ又はセクションを作り出す。セルはそれ自身で意味をなす文書の一部である。例えば、セルで最小単位はページであることができ、これに対し、全ファイルノートブックでは最小単位はセクション（それはファイルである）である。
【００２２】
言い換えれば、ジョブスケジューリングシステム２００は、共有電子ノートブック１０４と関連し、共有ノートブック情報１１０に対して処理されたジョブのトラッキング情報１０６を作成して維持するジョブトラッキングコンポーネント１０２を含む。トラッキング情報１０６はノートブック１０４を表す階層データコレクションのルートレベルに保存され、トラッキング情報１０６は処理されたジョブに関連したプロパティを含む。また、システム２００は、トラッキング情報１０６に基づいてクライアントインスタンス１１６からの新しいジョブ１１４を共有ノートブック情報１１０に同期させるスケジューリングコンポーネント１１２を含み、そのトラッキング情報１０６は新しいジョブ１１４の最後の実行の時間情報を含んでいる。
【００２３】
新しいジョブ１１４は前記ファイルジョブであることでき、クライアントインスタンス１１６はスケジューリングコンポーネント１１２が全ファイルジョブを共有ノートブック情報１１０に同期させるとき共有ノートブック情報１１０についてのファイルロックを得る。スケジューリングコンポーネント１１２は同時ジョブ実行でクライアントインスタンスによる試みを和らげるために新しいジョブ１１４にランダム追加時間を加える。
【００２４】
システム２００は共有ノートブック情報１１０への増加分更新として新しいジョブ１１４を受信する増加分更新コンポーネント２０２を更に含むことができる。新しいジョブ１１４は変更されるデータにだけ関係した変更のパケットである。
【００２５】
図３は、ジョブスケジューリングのための共有仮想電子ノートブックアーキテクチャの例のビジュアル説明を示している。仮想電子ノートブックはファイルシステムにおけるちょうどファイル及びディレクトリのようなファイル及びディレクトリのコレクションを含んでいる。全ファイルノートブックはノートブックセクションをファイルにマッピングし、ノートブックフォルダをディレクトリにマッピングする。ルートディレクトリはノートブックのトップである。ビジュアル説明３００はノートブックユーザインターフェースビュー３０２の一例を示し、そのビュー３０２が以下のファイルシステム３０４においてどのようにファイル及びフォルダへ変換可能であるかを示している。そのビュー３０２はミーティングノート(Meeting Notes)、プロジェクトＡ(Project A)、プロジェクトＢ(Project B)、リサーチ(Research)、及びフォルダ(Folder)を備えるワークノートブックを含むノートブックを示している。そのフォルダはトラベル(Travel)、プランニング(Planning)、ミセレイニアス(Miscellaneous)と名付けられたノートブックファイルを含むように拡張する。
【００２６】
単に便宜的に、トラッキング情報はシステムファイルリストでジョブ＿トークン(job_token)ファイルとしてルートレベルに含まれる。開示したアーキテクチャはプロパティを保存するノートブックのルートレベルにファイルを配置する。ジョブ＿トークンファイルは、ジョブを同期させるために用いられ、また、そのプロパティ、ジョブの最後の実行の時間（例えば、ＵＴＣ）及び望まれる他のプロパティに応じて追跡させるために用いられる。
【００２７】
全ファイル実装のために、クライアントインスタンスは同期が取れたときジョブ＿トークンファイルについて中断不可能なアトミックファイルロックを設定する。そのロックが得られと、クライアントインスタンスに排他的アクセスを有することが保証される。
【００２８】
開示したアーキテクチャはクライアント間で直接的な通信及び調整なしに共有ノートブックに対してスケジューリングしたジョブを実行する能力を多くのノートブッククライアントに提供する。
【００２９】
図４は、開示したアーキテクチャの一実施形態による、全ファイルノートブックジョブスケジューリングシステム４００を示している。そのシステム４００は、共有ノートブック１０４とインターラクションを行うためにクライアントベースのオペレーティングシステム４０２を介して動作するノートブッククライアントインスタンスを含んでいる。
【００３０】
共有ノートブック１０４は他のファイル及びフォルダを用いることができるけれども２つのセクションファイル４０４を含むとして表されている。加えて、トラッキング情報ファイル４０６（ジョブ＿トークンファイルと記された）は共有ノートブックファイル４０４のルートレベルにおいて作成されて、保存され、維持される。示されたように、その共有ノートブック１０４はファイルサーバ４０８に保存維持される。ファイルサーバ４０８例えば、ＬＤＡＰ（lightweight directory access protocol:ライトウエイトディレクトリアクセスプロトコル）ファイルサーバであることができる。
【００３１】
図５は、開示したアーキテクチャの一実施形態による、セルベースの電子ノートブックジョブスケジューリングシステム５００を示している。システム５００は、ファイルサーバ４０８上で共有ノートブック１０４とインターラクションを行うためにクライアントベースのオペレーティングシステム４０２に対して増加分更新コンポーネント２０２を介して動作するノートブッククライアントインスタンス１１６を含んでいる。
【００３２】
ここで、共有ノートブック１０４は、他のセルを用いることができるけれども、２つのセクションセル５０２を含むとして表されている。加えて、トラッキング情報セル５０４（ジョブ＿トークンセルと記された）は共有ノートブックセル５０２のルートレベルにおいて作り出され、保存され、維持される。示されたように、その共有ノートブック１０４はファイルサーバ４０８に保存維持され得る。ファイルサーバ４０８例えば、ＬＤＡＰ（ライトウエイトディレクトリアクセスプロトコル）ファイルサーバであることができる。
【００３３】
本明細書において、開示したアーキテクチャの新規の態様を実行するために方法例を表すフローチャートのセットが含まれている。説明の簡略化のために、本明細書で示された手１以上の方法、例えば、フローチャート又はフロー図の形式で、一連の動作として示され、説明される一方、その方法は、いくつかの動作がそれに応じて異なる順に及び／又は本明細書で示されかつ説明されたこと以外の他の動作と同時に起きても良いように動作の順によっては限定されないことが理解及び評価されるべきである。例えば、方法は状態図におけるように一連の相互に関係した状態又はイベントとして代替的に表され得ることをこの分野の当業者は理解及び評価できる。更に、方法において示された全ての動作が新規の実施のために要求されなくても良い。
【００３４】
図６は、ジョブスケジューリングの方法を示している。６００では共有ノートブック情報に対して処理されたジョブのトラッキング情報が作り出されて維持される。６０２ではジョブはその共有ノートブック情報に対して同期をとるためにスケジューリング処理される。６０８ではスケジューリング処理したジョブがトラッキング情報に基づいて共有ノートブック情報と同期をとられる。
【００３５】
図７は、図６の方法の追加の態様を示している。７００では、トラッキング情報はファイルサーバの共有ノートブック情報のルートレベルにデータとして保存される。７０２では、全ファイルジョブは共有ノートブック情報との全ファイルの同期化のためにスケジューリング処理される。７０４では、リビジョンジョブは共有ノードブック情報に対する部分的な更新の同期化のためにスケジューリング処理される。７０６では、前のリビジョンに従ったトラッキング情報についてのテイクロックリビジョンが出力される。７０８では、ジョブを実行する前に所定の制限時間の待機が行われる。７１０では、トラッキング情報は最後の実行ジョブについての時間情報を得るためにアクセスされる。
【００３６】
図８は、全ファイルジョブについてのジョブスケジューリング及び実行を表す状態図８００を示している。８０２では、ジョブ＿トークンファイルの形式のトラッキング情報がジョブを処理するために読み取られる。前に処理したジョブがあるならば、そのファイルはサーバリソース位置から読み取られ、最後に実行したジョブの時間が得られる。８０４では、ランダム追加時間がジョブのスケジューリングに加えられる。その最後に実行したジョブは記憶され（又はデフォルト値を使用する）、加えられたランダム追加時間である。これはクライアントが同時にジョブを実行する試みを軽減又は防止することである。８０６では、所定の制限を越えてジョブ時間のいずれかを待つためにバックグラウンド待機状態に入ることがされる。ジョブを処理する時間を最終的にマッチングさせるためにカウントダウンが行われる。これはジョブが異なる回数又は頻繁（例えば、１時間当たり１度に１ジョブ及び１日当たり１度に他のジョブ）に実行されることを可能にする。
【００３７】
ジョブの時間が終わったならば、フローは次の状態８０８に移行し、８０８では、ノートブックのルートにおけるジョブ＿トークンファイルについてファイルロックが行われる。ロックが失敗したならば、フローは８０２に戻る。ロックが成功したならば、ジョブ＿トークンファイルの別のコピーがサーバから取り出される。これは他のジョブがロックを得て新しいトラッキング情報が得られるためである。８１０では、最後の実行ジョブの時間がジョブ＿トークンファイルから得られロックしたときにジョブが実行されたか否かを確かにする。最後のジョブが実行されてから十分の時間が経過していないならば、ロックが解放され、フローは８０２に戻る。
【００３８】
ジョブが実行されていないならば、フローは８１０から８１２に移行してジョブを実行する。ジョブの実行が成功したならば、フローは８１４に移行してジョブ＿トークンファイルを更新する。ジョブの実行を失敗したならば、フローは８１２から８１６に移行してジョブを中止する。ジョブ成功又は失敗のいずれの場合においてもフローは８１８に移行してジョブ＿トークンファイルについてのロックを解放する。そして、フローは８１８から８０４に戻って再開してランダム追加時間を加える。
【００３９】
図９は、リビジョンジョブのためのジョブスケジューリング及び実行を表す状態図９００を示している。９０２では、全てのジョブ＿トークンファイルセルリビジョンがファイルサーバの共有ノートブックから要求される。最後のジョブの時間と、他のクライアントがセルについて現ロックを有するか否かはそれらのリビジョンにあると考えられる。以前に処理したジョブがあるならば、ファイルはサーバリソース位置から読み取られ、最後に実行したジョブの時間が得られる。９０４では、ランダム追加時間がジョブのスケジューリングに加えられる。最後に実行したジョブは記憶され（又はデフォルト値を使用する）、加えられたランダム追加時間である。これはクライアントが同時にジョブを実行する試みを防止することである。９０６では、所定の制限を越えてジョブ時間のいずれかを待つためにバックグラウンド待機状態に入ることがされる。ジョブを処理する時間を最終的にマッチングさせるためにカウントダウンが行われる。これはジョブが異なる回数又は頻繁（例えば、１時間当たり１度に１ジョブ及び１日当たり１度に他のジョブ）に実行されることを可能にする。
【００４０】
ジョブの時間が終わったならば、フローは次の状態９０８に移行し、９０８では、前のリビジョンに従ってテイクロックリビジョンを出力する。これはセルの最終リビジョンが変更したならば（それは一般に他のクライアントがロックを行ったことを意味する）、この現在のテイクロックは失敗することを確かにする。ロックテイクが失敗したならば、フローは９０２に戻る。ロックテイクが成功したならば、フローは９０８から９１０に移行し、９１０で全てのセルリビジョンのコピーがサーバから得られる。９１０では、最後に実行したジョブの時間がジョブ＿トークンセルから得られてジョブがロックしているときに実行されなかったことを確かにする。最後のジョブが実行されてから十分の時間が系かしてないならば、ロックは解放され、フローは９１０から９０２に戻る。
【００４１】
ジョブ実行の時間が来たならば、フローは９１０から９１２に移行してジョブを実行する。ジョブ実行が成功したならば、フローは９１４に移行してジョブ＿トークンセルプロパティを更新する。そのプロパティについての新しいリビジョンを出力することによってジョブが実行された時間がジョブ＿トークンセルにおいて更新される。ジョブ実行が失敗したならば、フローは９１２から９１６に移行してジョブを中止する。ジョブ成功又は失敗のいずれの場合においてもフローは９１８に移行してジョブ＿トークンセルについてのロックを解放する。そして、フローは９１８から９０４に戻って再開してランダム追加時間を加える。
【００４２】
ユーザに情報を表示するある方法がスクリーンショットとしてある図について示されかつ説明されるが、関連分野の当業者は、様々な他の代替方法を用いることができることを認識することができる。用語の「スクリーン」、「スクリーンショット」、「ウェブページ」、「ドキュメント（文書）」、及び「ページ」は通常、本明細書では交互に用いられる。ページ又はスクリーンは、ディスプレイ説明として、グラフィカルユーザインターフェースとして、又はレイアウト及びページ上に表示されるべき情報又はコンテンツがメモリ、データベース、又は他の記憶設備に保存される（例えば、パーソナルコンピュータ、ＰＤＡ、モバイル電話、又は他の適切な装置等の）スクリーン上に情報を描画する他の方法によって保存及び／又は送信される。
【００４３】
本出願において用いられるように、用語の「コンポーネント」及び「システム」はコンピュータに関連した実体物、いずれかのハードウエア、ハードウエアとソフトウエアとの組み合わせ、ソフトウエア、又は実行中のソフトウエアを参照しているつもりである。例えば、コンポーネントは限定されないが、プロセッサ上で動作する処理、プロセッサ、ハードディスクドライブ、複数の記憶装置（光学式、半導体、及び／又は磁気記憶媒体）、オブジェクト、実行ファイル、実行のスレッド、プログラム、及び/又はコンピュータであることができる。図示を介してサーバ上で動作するアプリケーション及びそのサーバの両方はコンポーネントであることができる。１以上のコンポーネントは実行の処理及び／又はスレッド内に存在することができ、コンポーネントは１つのコンピュータにあっても及び／又は２以上のコンポーネント間に分散されても良い。言葉の「模範例（exemplary)」は本明細書では１つの例、インスタンス、例示として供する意味として用いられている。本明細書てで「模範例」として説明された態様又は設計は他の態様又は設計以上の好ましいこと又は利点として必ずしも解釈されるべきではない。
【００４４】
図１０を参照すると、開示したアーキテクチャに応じて電子ノートブック用のジョブを実行可能なコンピューティングシステム１０００のブロック図が示されている。それの様々な態様についての追加のコンテキストを提供するために、図１０及び次の記載は様々な態様を実施することができる適切なコンピューティングシステム１０００の短い一般的な説明を提供するつもりである。上記した説明は１以上のコンピュータで動作することができるコンピュータ実行可能な命令の一般的なコンテキスト中にあるが、他のプログラムモジュールとの組み合わせにおいて及び／又はハードウエア及びソフトウエアの組み合わせとして新規の実施形態を実施することができることをこの分野の当業者は認識することができる。
【００４５】
様々な態様を実施するコンピューティングシステム１０００は処理ユニット１００４、システムメモリ１００６、及びシステムバス１００８を有するコンピュータ１００２を含んでいる。処理ユニット１００４は、シングルプロセッサ、マルチプロセッサ、シングルコアプロセッサ、及びマルチコアプロセッサ等の様々な市販のプロセッサのいずれかであることができる。更に、この分野の当業者は、その新規方法を、ミニコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ（例えば、デスクトップ、ラップトップ等）、ハンドヘルドコンピューティング装置、マイクロプロセッサベースの又はプログラマブル家電等を含む他のコンピュータシステム構成で実施することができ、それらの各々を１以上の関連装置と動作上で結合することができることを理解できる。
【００４６】
システムメモリ１００６は、揮発性（ＶＯＬ）メモリ１０１０（例えば、ＲＡＭ（ランダムアクセスメモリ））及び不揮発性（ＮＯＮ−ＶＯＬ）メモリ１０１２（例えば、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等）を含むことができる。不揮発性メモリ１０１２は基本入力／出力システム（ＢＩＯＳ）を保存することができ、基本入力／出力システム（ＢＩＯＳ）はコンピュータ１００２内のコンポーネント間のデータ及び信号の通信を容易にするスタートアップ等の基本ルーチンを含んでいる。揮発性メモリ１０１０はデータキャッシュを行うスタテックＲＡＭ等の高速ＲＡＭを含むことができる。
【００４７】
システムバス１００８は限定されないが、メモリサブシステム１００６ないし処理ユニット１００４を含むシステムコンポーネントのためのインターフェースを提供する。システムバス１００８は、様々な市販のバスアーキテクチャのいずれかを用いて、メモリバス（メモリコントローラと共に又はなしで）、及び周辺バス（例えば、ＰＣＩ，ＰＣＩｅ，ＡＧＰ，ＬＰＣ等）と更に相互接続することができる何種類かのバス構成のいずれかであることができる。
【００４８】
コンピュータ１００２は、記憶サブシステム１０１４と、記憶サブシステム１０１４をシステムバス１００８及び他の所望のコンピュータコンポーネントにインターフェース接続する記憶インターフェース１０１６とを更に含んでいる。記憶サブシステム１０１４は、例えば、ハードディスクドライブ（ＨＤＤ）、磁気フロッピーディスクドライブ（ＦＤＤ）、及び／又は光ディスク記憶装置（例えば、ＣＤ−ＲＯＭドライブ、ＤＶＤドライブ）のうちの１以上を含むことができる。記憶インターフェース１０１６は例えば、ＥＩＤＥ、ＡＴＡ、ＳＡＴＡ、及びＩＥＥＥ１３９４等のインターフェース技術を含むことができる。
【００４９】
メモリサブシステム１００６、リムーバブルメモリサブシステム１０１８（例えば、フラッシュドライブフォームファクタ技術）、及び／又は記憶サブシステム１０１４（例えば、光、磁気、半導体）は、オペレーティングシステム１０２０、１以上のアプリケーションプログラム１０２２、他のプログラムモジュール１０２４、及びプログラムデータ１０２６を含む１以上のプログラム及びデータを保存することができる。
【００５０】
コンピュータ１００２がクライアントベースの機器である場合には、１以上のアプリケーションプログラム１０２２、他のプログラムモジュール１０２４、及びプログラムデータ１０２６は、例えば、図１のクライアントインスタンス１１８、ジョブ１０８、及び新しいジョブ１１４、図２の増加分更新コンポーネント２０２、図３のビュー３０２、図４のオペレーティングシステム４０３、及び図６〜９のフローチャート及び状態図に示されたステップの１以上を含むことができる。
【００５１】
コンピュータ１００２がクライアントベースの機器である場合には、１以上のアプリケーションプログラム１０２２、他のプログラムモジュール１０２４、及びプログラムデータ１０２６は、例えば、図１のジョブトラッキングコンポーネント１０２、トラッキング情報１０６、スケジューリングコンポーネント１１２、ジョブ１０８、新しいジョブ１１４、共有電子ノートブック１０４及び共有ノートブック情報１１０、図３のファイルシステム３０４、図４のファイルサーバ４０８、共有ノートブックファイル４０４及びトラッキング情報ファイル４０６、図５の共有ノートブックファイル５０２及びトラッキング情報セル５０４、図６〜図９のフローチャート及び状態図に示されたステップの１以上を含むことができる。
【００５２】
一般的に、プログラムは、特定のタスクを実行する又は、特定のアブストラクトデータタイプを実施するルーチン、方法、データストラクチャ、他のソフトウエアコンポーネント等を含む。また、例えば、揮発性メモリ１０１０等のメモリはオペレーティングシステム１０２０、アプリケーションプログラム１０２２、プログラムモジュール１０２４、及び／又はデータ１０２６の全て又は一部をキャッシュすることができる。開示したアーキテクチャを様々な市販のオペレーティングシステム又はオペレーティングシステムの組み合わせ（例えば、仮想マシンのような）で実施することができることは理解されるべきである。
【００５３】
記憶サブシステム１０１４及びメモリサブシステム（１０１６及び１０１８）は、揮発性及びデータ、データ構造、コンピュータ実行可能な命令等の揮発及び不揮発性記憶装置のコンピュータ読み取り可能な媒体としての機能を果たす。コンピュータ読み取り可能な媒体はコンピュータ１００２によってアクセスが可能ないくつかの有用な媒体であることができ、揮発性及び不揮発性媒体、リムーバブル及び非リムーバブル媒体を含む。コンピュータ１００２のために、媒体はいくつかの適切なディジタルフォーマットでデータの記憶場所を提供する。開示したアーキテクチャの新規の方法を実行するためのコンピュータ実行可能命令を保存するＺＩＰドライブ、磁気テープ、フラッシュメモリカード、カートリッジ等のコンピュータ読み取り可能な媒体の他の種類を用いることができることはその分野の当業者によって理解されるべきである。
【００５４】
ユーザは、キーボードやマウス等の外部ユーザ入力装置１０２８を用いてコンピュータ１００２、プログラム、及びデータとのインターラクションを行うことができる。他の外部ユーザ入力装置１０２８はマイクロホン、ＩＲ（赤外線）リモートコントロール、ジョイスティック、ゲームパッド、カメラ認識システム、スタイラスペン、タッチスクリーン、ジェスチャーシステム（例えば、目の動き、頭の動き等）等を含むことができる。ユーザは、タッチパッド、マイクロホン、キーボード等のオンボードユーザ入力装置１０３０を用いてコンピュータ１００２、プログラム、及びデータとインターラクションを行うことができ、ここでコンピュータ１００２は例えば、ポータブルコンピュータである。それらの及び他の入力装置はシステムバス１００８を経て入出力（Ｉ／Ｏ）装置インターフェース１０３２を介して処理ユニット１００４と接続されているが、パラレルポート、ＩＥＥＥ１３９４シリアルポート、ゲームポート、ＵＳＢポート、ＩＲインターフェース等の他のインターフェースによって接続されても良い。また、Ｉ／Ｏ装置インターフェース１０３２は、プリンタ、オーディオ装置、カメラ装置等、サウンドカード及び／又はオンボードオーディオ処理機能等の出力周辺機器１０３４の使用を容易にする。
【００５５】
１以上のグラフィックスインターフェース１０３６（通常、グラフィックス処理ユニット（ＧＰＵ）と称する）は、コンピュータ１００２と外部ディスプレイ１０３８（例えば、ＬＣＤ、プラズマ）及び／又はオンボードディスプレイ１０４０（例えば、ポータブルコンピュータ用）との間でグラフィックス及びビデオ信号を提供する。また、そのグラフィックスインターフェース１０３６をコンピュータシステムボードの一部として製造することができる。
【００５６】
コンピュータ１００２は１以上のネットワーク及び／又は他のコンピュータとの有線／無線通信サブシステム１０４２を介したロジカル接続を用いてネットワーク環境（例えば、ＩＰ）で動作することができる。他のコンピュータはワークステーション、サーバ、ルータ、パーソナルコンピュータ、マイクロプロセッサベースのエンターテインメント電化製品、ピア装置又は他の共通ネットワークノードを含むことができ、また、一般的に、コンピュータ１００２に関係して説明されたエレメントの多く又は全てを含むことができる。ロジカル接続はＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（ワイドエリアネットワーク）、ホットスポット等への有線／無線接続を含むことができる。ＬＡＮ及びＷＡＮネットワーク環境は事務所及び会社における通常であり、その全てがインターネット等のグローバル通信ネットワークに接続することができるイントラネット等の企業規模コンピュータネットワークを容易にする。
【００５７】
ネットワーク環境で使用されるとき、コンピュータ１００２は有線／無線通信サブシステム１０４２（例えば、ネットワークインターフェースアダプタ、オンボードトランシーバサブシステム等）を介してネットワークに接続して有線／無線ネットワーク、有線／無線プリンタ、有線／無線入力装置１０４４等と通信する。コンピュータ１００２はモデムを含む、又はネットワークを介して通信を確立する他の手段を有することができる。ネットワーク環境においては、コンピュータ１００２に関係したプログラム及びデータを、分散システムと関連しているようにリモートメモリ／記憶装置に保存することができる。示されたネットワーク接続は例であり、コンピュータ間で通信リンクを確立する他の手段を用いることができる。
【００５８】
コンピュータ１００２は、例えば、プリンタ、スキャナー、デスクトップ及び／又はポータブルコンピュータ、パーソナルディジタルアシスタント（ＰＤＡ）、通信衛星、無線検出可能なタグ（例えば、キオスク、ニューススタンド、レストルーム）と関連した機器又は場所の一部、及び電話との無線通信（例えば、ＩＥＥＥ８０２．１１無線変調技術）において動作可能に設けられた無線装置等の規格のＩＥＥＥ８０２．ｘｘファミリ等の高周波技術を用いて有線／無線装置又は実体と通信するために動作可能である。これは、ホットスポットのためのＷｉ−Ｆｉ（又はワイヤレス・フィデリティー）、ＷｉＭａｘ、及びブルートゥース（商標）無線技術を少なくとも含む。よって、通信は従来のネットワーク又は少なくとも２つの装置間の単なる特別な通信のように所定の構造であることができる。Ｗｉ−ＦｉネットワークはＩＥＥＥ８０２．１１ｘ（ａ，ｂ，ｇ等）と呼ばれる無線技術を用いて安全で信頼性ある高速無線接続を提供する。コンピュータを互いに、インターネットに、及び有線ネットワーク（それはＩＥＥＥ８０２．３に関係した媒体及び機能を使用する）に接続するためにＷｉ−Ｆｉネットワークを用いることができる。
【００５９】
また、所定のタスクが通信ネットワークを介してリンクされているリモート処理装置によって実行される分散コンピューティング環境において図示した態様を実施することができる。分散コンピューティング環境において、プログラムモジュールをローカル及び／又はリモート記憶装置及び／又はメモリシステムに配置することができる。
【００６０】
図１１を参照すると、仮想電子ノートブックジョブスケジューリング及び同期のためのコンピューティング環境の略ブロック図が示されている。環境１１００は１以上のクライアント１１０２を含んでいる。そのクライアント１１０２はハードウエア及び／又はソフトウエア（例えば、スレッド、プロセス、コンピューティング装置）であることができる。クライアント１１０２は例えば、クッキー及び／又は関連したコンテキスト情報を含むことができる。
【００６１】
また、環境１１００は１以上のサーバ１１０４を含んでいる。また、サーバ１１０４はハードウエア及び／又はソフトウエア（例えば、スレッド、プロセス、コンピューティング装置）であることができる。サーバ１１０４はスレッドを含んで例えば、アーキテクチャを用いることによって変換を行うことができる。クライアント１１０２とサーバ１１０４との間の１つの可能性ある通信は、２以上のコンピュータ処理間で送信されるために適応されるデータパケットの形式であることができる。そのデータパケットは例えば、クッキー及び／又は関連したコンテキスト情報を含むことができる。環境１１００はクライアント１１０２とサーバ１１０４との間の通信を容易にするために使用可能な通信フレームワーク１１０６（例えば、インターネット等のグローバル通信ネットワーク）を含んでいる。
【００６２】
有線（光ファイバを含む）技術及び／又は無線技術を通して通信を容易にすることができる。クライアント１１０２は、クライアント１１０２の地域情報（例えば、クッキー及び／又は関連したコンテキスト情報）を保存するために使用可能な１以上のクライアントデータストア１１０８に動作可能に接続されている。同様に、サーバ１１０４は、サーバ１１０４の地域情報を保存するために使用可能な１以上のサーバデータストア１１１０に動作可能に接続されている。
【００６３】
上記したことは開示したアーキテクチャの例を含んでいる。勿論、コンポーネント及び／又は方法の考えられる全ての組み合わせを説明することは不可能であるが、その分野の当業者は、多くの更なる組み合わせ及び置換が可能であることを認識することができる。よって、新規のアーキテクチャは請求項の精神及び範囲内に入る修正、変更及び変形の全てを包含するつもりである。更に、用語「includes（含む）」が詳細な説明又は請求の範囲で用いられる限りにおいては、そのような用語は、「comprising（備える）」が請求項で転換語として用いられたとき解釈されるように用語「comprising」に同様に含んだつもりである。
【図１】
0005744846.tif 000002
【図２】
0005744846.tif 000003
【図３】
0005744846.tif 000004
【図４】
0005744846.tif 000005
【図５】
0005744846.tif 000006
【図６】
0005744846.tif 000007
【図７】
0005744846.tif 000008
【図８】
0005744846.tif 000009
【図９】
0005744846.tif 000010
【図１０】
0005744846.tif 000011
【図１１】
0005744846.tif 000012