特許第5744846号(P5744846)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト コーポレーションの特許一覧

特許5744846電子ノートブックにおける共有ジョブスケジューリング
<>
  • 特許5744846-電子ノートブックにおける共有ジョブスケジューリング 図000002
  • 特許5744846-電子ノートブックにおける共有ジョブスケジューリング 図000003
  • 特許5744846-電子ノートブックにおける共有ジョブスケジューリング 図000004
  • 特許5744846-電子ノートブックにおける共有ジョブスケジューリング 図000005
  • 特許5744846-電子ノートブックにおける共有ジョブスケジューリング 図000006
  • 特許5744846-電子ノートブックにおける共有ジョブスケジューリング 図000007
  • 特許5744846-電子ノートブックにおける共有ジョブスケジューリング 図000008
  • 特許5744846-電子ノートブックにおける共有ジョブスケジューリング 図000009
  • 特許5744846-電子ノートブックにおける共有ジョブスケジューリング 図000010
  • 特許5744846-電子ノートブックにおける共有ジョブスケジューリング 図000011
  • 特許5744846-電子ノートブックにおける共有ジョブスケジューリング 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5744846
(24)【登録日】2015年5月15日
(45)【発行日】2015年7月8日
(54)【発明の名称】電子ノートブックにおける共有ジョブスケジューリング
(51)【国際特許分類】
   G06F 9/48 20060101AFI20150618BHJP
   G06F 9/52 20060101ALI20150618BHJP
【FI】
   G06F9/46 452J
   G06F9/46 472Z
【請求項の数】15
【全頁数】18
(21)【出願番号】特願2012-508791(P2012-508791)
(86)(22)【出願日】2010年4月30日
(65)【公表番号】特表2012-525656(P2012-525656A)
(43)【公表日】2012年10月22日
(86)【国際出願番号】US2010033235
(87)【国際公開番号】WO2010127286
(87)【国際公開日】20101104
【審査請求日】2013年4月22日
(31)【優先権主張番号】12/433,907
(32)【優先日】2009年5月1日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】500046438
【氏名又は名称】マイクロソフト コーポレーション
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100153028
【弁理士】
【氏名又は名称】上田 忠
(74)【代理人】
【識別番号】100120112
【弁理士】
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100147991
【弁理士】
【氏名又は名称】鳥居 健一
(74)【代理人】
【識別番号】100119781
【弁理士】
【氏名又は名称】中村 彰吾
(74)【代理人】
【識別番号】100162846
【弁理士】
【氏名又は名称】大牧 綾子
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(74)【代理人】
【識別番号】100138759
【弁理士】
【氏名又は名称】大房 直樹
(74)【代理人】
【識別番号】100091063
【弁理士】
【氏名又は名称】田中 英夫
(72)【発明者】
【氏名】ナサニエル エム.マイヤー
【審査官】 田中 幸雄
(56)【参考文献】
【文献】 特開2006−195972(JP,A)
【文献】 特開平08−255130(JP,A)
【文献】 特表2009−510614(JP,A)
【文献】 中辻裕之,プロトコルから理解する有線LANとの違い,NETWORK WORLD,日本,(株)IDGジャパン,2007年 1月,第12巻 第1号,76−81頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/48
G06F 9/52
(57)【特許請求の範囲】
【請求項1】
コンピュータ実行ジョブスケジューリングシステムであって、
共有電子ノートブックと関連し、前記共有電子ノートブックに対して処理を行うジョブのトラッキング情報を作成して維持するジョブトラッキングコンポーネントと
前記トラッキング情報に基づいて前記共有電子ノートブックにするジョブを実行するスケジューリングコンポーネントとを含み、
前記トラッキング情報は、ジョブが最後に実行された時刻に関する情報を含み、
前記スケジューリングコンポーネントは、
前記ジョブトラッキングコンポーネントが維持する前記トラッキング情報から、前記ジョブが最後に実行された時刻に関する情報を取出し、
前記ジョブが最後に実行された時刻に関する情報にランダムな時間を加算し、
前記ランダムな時間が加算されたジョブが最後に実行された時刻に関する情報を基準としてジョブが実行されるべき時間間隔に相当する時間待ちを行い、
前記ジョブトラッキングコンポーネントが維持する前記トラッキング情報に対してファイルロックを試み、
前記トラッキング情報に対する前記ファイルロックに失敗した場合に、前記トラッキング情報に対する前記ファイルロックを解放して、前記ジョブトラッキングコンポーネントが維持する前記トラッキング情報から、前記ジョブが最後に実行された時刻に関する情報を取出すことから再度行い、
前記トラッキング情報に対する前記ファイルロックに成功した場合に、前記ジョブを実行し、前記トラッキング情報に含まれる、前記ジョブが最後に実行された時刻に関する情報を現在の時刻に更新し、前記トラッキング情報に対する前記ファイルロックを解放することを実行することによって、
同時ジョブ実行の発生を軽減することを特徴とする、
システム。
【請求項2】
前記トラッキング情報は、前記共有電子ノートブックの一部として保存されることを特徴とする請求項1記載のシステム。
【請求項3】
前記トラッキング情報に対する前記ファイルロックに成功した場合に、前記ジョブトラッキングコンポーネントが維持する前記トラッキング情報から、前記ジョブが最後に実行された時刻に関する情報を再度取出し、前記ジョブが最後に実行された時刻から十分の時間が経過していないならば、前記トラッキング情報に対する前記ファイルロックを解放して、前記ジョブトラッキングコンポーネントが維持する前記トラッキング情報から、実行しようとするジョブについての前記ジョブが最後に実行された時刻に関する情報を取出すことから再度行い、前記ジョブが最後に実行された時刻から十分の時間が経過している場合には、前記ジョブを実行することを特徴とする請求項1又は2記載のシステム。
【請求項4】
前記スケジューリングコンポーネントが前記共有電子ノートブックに対して処理を行う前記ジョブを実行するとき、前記共有電子ノートブックについてのアトミックロックを得ることを特徴とする請求項1〜3記載のシステム。
【請求項5】
記ジョブは前記共有電子ノートブックの全ファイルに対して処理を行う全ファイルジョブであることを特徴とする請求項1〜3記載のシステム。
【請求項6】
前記ジョブは前記共有電子ノートブックのファイルのデータの一部分に対して処理を行う増加分ジョブであることを特徴とする請求項1〜3記載のシステム。
【請求項7】
前記共有電子ノートブックのファイルのデータの一部分に対して処理を行う増加分ジョブとして前記ジョブを受け入れる増加分更新コンポーネントを更に含むことを特徴とする請求項記載のシステム。
【請求項8】
前記共有電子ノートブックのファイルのデータの一部分に対して処理を行う増加分ジョブは変更するデータにだけ関係した変更のパケットを含んでいることを特徴とする請求項記載のシステム。
【請求項9】
ジョブスケジューリングのコンピュータ実行方法であって、
共有電子ノートブックに対して処理を行うジョブのトラッキング情報を作成して維持することと
前記トラッキング情報に基づいて前記共有電子ノートブックに対するジョブを実行することとを含み、
前記トラッキング情報は、ジョブが最後に実行された時刻に関する情報を含み、
前記トラッキング情報に基づいて前記共有電子ノートブックに対するジョブを実行することとは、
前記トラッキング情報から、前記ジョブが最後に実行された時刻に関する情報を取出し、
前記ジョブが最後に実行された時刻に関する情報にランダムな時間を加算し、
前記ランダムな時間が加算されたジョブが最後に実行された時刻に関する情報を基準としてジョブが実行されるべき時間間隔に相当する時間待ちを行い、
前記トラッキング情報に対してファイルロックを試み、
前記トラッキング情報に対する前記ファイルロックに失敗した場合に、前記トラッキング情報に対する前記ファイルロックを解放して、前記トラッキング情報から、前記ジョブが最後に実行された時刻に関する情報を取出すことから再度行い、
前記トラッキング情報に対する前記ファイルロックに成功した場合に、前記ジョブを実行し、前記トラッキング情報に含まれる、前記ジョブが最後に実行された時刻に関する情報を現在の時刻に更新し、前記トラッキング情報に対する前記ファイルロックを解放することを含むことによって、
同時ジョブ実行の発生を軽減することを特徴とする、
方法。
【請求項10】
前記トラッキング情報は、前記共有電子ノートブックの一部として保存されることを特徴とする請求項9記載の方法。
【請求項11】
前記トラッキング情報に対する前記ファイルロックに成功した場合に、前記トラッキング情報から、前記ジョブが最後に実行された時刻に関する情報を再度取出し、前記ジョブが最後に実行された時刻から十分の時間が経過していないならば、前記トラッキング情報に対する前記ファイルロックを解放して、前記トラッキング情報から、実行しようとするジョブについての前記ジョブが最後に実行された時刻に関する情報を取出すことから再度行い、前記ジョブが最後に実行された時刻から十分の時間が経過している場合には、前記ジョブを実行することを特徴とする請求項9又は10記載の方法。
【請求項12】
前記共有電子ノートブックに対して処理を行う前記ジョブを実行するとき、前記共有電子ノートブックについてのアトミックロックを得ることを特徴とする請求項9〜11記載の方法。
【請求項13】
前記ジョブは前記共有電子ノートブックの全ファイルに対して処理を行う全ファイルジョブであることを特徴とする請求項9〜11記載の方法。
【請求項14】
前記ジョブは前記共有電子ノートブックのファイルのデータの一部分に対して処理を行う増加分ジョブであることを特徴とする請求項9〜11記載のシステム。
【請求項15】
前記共有電子ノートブックのファイルのデータの一部分に対して処理を行う増加分ジョブは変更するデータにだけ関係した変更のパケットを含んでいることを特徴とする請求項14記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、共有電子ノートブックに関する。
【背景技術】
【0002】
電子的な仮想ノートブックは、多くのユーザが開いて同時に編集することができるように共有することができる。周期的に動作するタスクを有することから恩恵を受けることができるという共有ノートブックの特徴がある。それらのタスク、又はジョブは通常、一度だけ、公開された共有ノートブックを有する1つのクライアント又はマシンだけによって実行されることを必要とする。1人又は1つのインスタンス以上を有するいくつかの場合には、同じタスクを行う試みは、予測できない結果又は潜在的に破損したデータをもたらすことがある。
【0003】
周期的なジョブ動作を利用するという特徴の例は、ノートブックのHTMLビューである。インストールされたノートブッククライアントを有していないが、ウェブブラウザを介してノートブックにアクセスするユーザについて、それらのユーザは、ノートブックコンテンツの読み取りだけのHTMLビューを望むことがある。何らかの値を有するHTMLビューのために、そのビューは周期的に、そして変更があるならば頻繁に、しかしその公開されたノートブックプログラムを有する1つのクライアントによってだけ更新されなければならない。加えて、ノートブックプログラムを実行するどのユーザがそのジョブを行うかの決定は自動的に、そしてユーザの介入又は入力なしに行われるべきである。
【発明の概要】
【0004】
以下の説明は、本明細書で説明するいくつかの新規な実施形態の基本的な理解を与えるために簡単な概要を提供する。この概要は詳細な要約ではなく、主要/重要な要素を識別し又はその範囲を説明することを意図していない。その唯一の目的は、以下の更なる詳細な説明への前置きとして簡単な形式でいくつかのコンセプトを提供することである。
【0005】
開示するアーキテクチャは、タスク又はジョブを共有ノートブックに公開することができる技術であり、1つのノートブッククライアントインスタンスだけによって同期は行われ、それによりユーザの介入の必要性を取り除き、そのノートブッククライアントの1つのインスタンスだけがそのタスクを行うことを保証する。
【0006】
このアーキテクチャは、共有電子ノートブックに関連し、共有ノートブック情報に対して処理されるジョブのトラッキング情報を作成して維持するジョブトラッキングコンポーネントと、そのトラッキング情報に基づいた共有ノートブック情報に対してクライアントインスタンスによって新しいジョブを同期させるスケジューリングコンポーネントとを含むことができる。そのクライアントインスタンスは、共有電子ノートブックとインターラクションを行うことができる又は行っている多くのクライアントインスタンスのうちの1つであることができる。
【0007】
トラッキング情報は、階層データコレクションのルートレベルに保存されたファイルとすることができ、ここで、階層データコレクションは電子ノートブックを表す。ファイルは、処理されたジョブに関係するプロパティを含む。プロパティは、新しいジョブが処理されると更新される。ジョブスケジューリングは、共有ノートブック情報に対する全ファイル更新及び/又は増分の更新を含む。
【0008】
電子ノートブックをサポートし、またどんな数のユーザについての規模をなす記憶機構に対しても、このアーキテクチャを適用することができる。ユーザインターラクションは要求されず、処理はバックグラウンドで生ずる。
【0009】
上述の、及び関連する目標を達成するために、特定の図示の態様が次の詳細な説明及び添付図面と関連して本明細書で説明される。それらの態様は本明細書で開示された原理を実施する様々な方法を示し、全ての態様及びそれらの等価なものは請求項に記載した構成の範囲内にあることが意図される。他の利点及び新規な特徴は図面と共に考慮することで次の詳細な説明から明らかになる。
【図面の簡単な説明】
【0010】
図1】開示したアーキテクチャによる、コンピュータ実装のジョブスケジューリングシステムを示す図である。
図2】ジョブスケジューリングシステムの代替実施形態を示す図である。
図3】ジョブスケジューリングのための共有仮想電子ノートブックアーキテクチャの例のビジュアル説明を示す図である。
図4】開示したアーキテクチャの一実施形態による、全ファイルノートブックジョブスケジューリングシステムを示す図である。
図5】開示したアーキテクチャの一実施形態による、セルベースの電子ノートブックジョブジョブスケジューリングシステムを示す図である。
図6】ジョブスケジューリングの方法を示す図である。
図7図6の方法の追加の態様を示す図である。
図8】全ファイルジョブのためのジョブスケジューリング及び実行を表す状態図である。
図9】リビジョンジョブのためのジョブスケジューリング及び実行を表す状態図である。
図10】開示したアーキテクチャによる、電子ノートブック用のジョブを実行可能なコンピューティングシステムのブロック図である。
図11】仮想電子ノートブックジョブスケジューリング及び同期のためのコンピューティング環境の略ブロック図である。
【発明を実施するための形態】
【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」に同様に含んだつもりである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11