(57)【要約】  予期しないアプリケーションシャットダウンの期間に、アプリケーション設定値状態がキャプチャされ、表示されているアプリケーション状態はその後のアプリケーションリスタート時に再構築される。シャットダウン以前に表示されていたユーザデータも、シャットダウン以前の状態に再構築されることもある。使用中アプリケーション設定値状態を表わしているデータおよび使用中ユーザデータは定期的に、または差し迫ったアプリケーションシャットダウンの通知を受けたときに格納される。リスタート時に、シャットダウン以前に展開されていたアプリケーションがあれば、そのアプリケーションは、アプリケーションごとに格納されたアプリケーション設定値状態に従って再展開され、使用中ドキュメントまたは他のデータがあれば、これらは格納されたユーザデータに従って再展開される。
2009524130.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションシャットダウン後のアプリケーション状態を再構築する方法であって、
アプリケーション設定値状態を表すデータを格納するステップと、
前記アプリケーションのオペレーションが中止されたとの通知を受信するステップと、
前記アプリケーション設定値状態を表す格納されたデータを読み出すステップと、
前記アプリケーション設定値状態を表す格納されたデータに従って前記アプリケーションを前記アプリケーション設定値状態でリスタートするステップと、
を含むことを特徴とする方法。
【請求項２】
前記アプリケーション設定値状態を表すデータを格納するステップは、表示された如何なるアプリケーションユーザインタフェースコンポーネント何でもを表すデータを格納することを含み、該データの中には、前記表示された如何なるアプリケーションユーザインタフェースコンポーネント何でもの位置、サイズ、および、表示された如何なるサブコンポーネント何でもを表すデータが含まれており、
前記アプリケーション設定値状態を表す格納されたデータに従って前記アプリケーションを前記アプリケーション設定値状態でリスタートするステップは、アプリケーションをリスタートした後、前記表示された如何なるユーザインタフェースコンポーネント何でもを再展開することを含むこと、
を特徴とする請求項１に記載の方法。
【請求項３】
前記アプリケーション設定値状態を表すデータを格納するステップは、前記アプリケーション設定値状態を表すデータを、前記アプリケーションのオペレーション中に定期的周期で格納することを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記アプリケーション設定値状態を表すデータを格納するステップは、前記アプリケーション設定値状態を表すデータを、前記アプリケーションのオペレーションが中止されるとの通知が受信されたとき格納することを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記アプリケーションのオペレーションが中止されたとの通知を受信する前に、前記アプリケーションのオペレーションが中止されるとの通知を受信するステップを含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記アプリケーションのオペレーションが中止されるとの通知を受信するステップは、前記アプリケーションのオペレーションが中止されるとの通知をリスタートマネージャモジュールから受信することを含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記アプリケーションを通して展開された如何なるユーザデータ何でもを、前記アプリケーションのオペレーションが中止されたとの通知を受信する前に格納するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記アプリケーションを通して展開された如何なるユーザデータ何でもを格納するステップは、前記アプリケーションを通して展開された如何なるユーザデータ何でもを、前記アプリケーションのオペレーション中に定期的周期で格納することを含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記アプリケーションを通して展開された如何なるユーザデータ何でもを格納するステップは、前記アプリケーションを通して展開された如何なるユーザデータ何でもを、アプリケーションのオペレーションが中止されるとの通知を受信したとき格納することを含むことを特徴とする請求項７に記載の方法。
【請求項１０】
前記アプリケーション設定値状態を表す格納されたデータに従って前記アプリケーションをアプリケーション設定値状態でリスタートした後、前記アプリケーションのオペレーションが中止されたとの通知を受信する前に、前記アプリケーションを通して展開された前記如何なるユーザデータ何でもを、前記リスタートされたアプリケーションを通して展開することを含むことを特徴とする請求項７に記載の方法。
【請求項１１】
前記アプリケーションのオペレーションが中止されたとの通知を受信する前に前記アプリケーションを通して展開された、前記如何なるユーザデータ何でもを、前記リスタートされたアプリケーションを通して展開する前に、前記格納された如何なるユーザデータ何でもを読み出しすることを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記アプリケーションのオペレーションが中止されたとの通知を受信する前に前記アプリケーションを通して展開された如何なるユーザデータ何でもを格納するステップは、電子カレンダデータを電子カレンダデータストレージサイトに格納することを含むことを特徴とする請求項７に記載の方法。
【請求項１３】
コンピュータによって実行されたとき、アプリケーションシャットダウン後のアプリケーション状態を再構築する方法を実行する、コンピュータ実行可能な命令であって、
アプリケーション設定値状態表すデータを格納するステップと、
前記アプリケーションを通して表示された如何なるユーザデータ何でもを格納するステップと、
前記アプリケーションのオペレーションが中止されたとの通知を受信するステップと、
前記アプリケーション設定値状態を表す格納されたデータを読み出しするステップと、
前記アプリケーションを通して表示された、前記格納された如何なるユーザデータ何でもを読み出しするステップと、
前記アプリケーション設定値状態を表す前記格納されたデータに従って、前記アプリケーションをアプリケーション設定値状態でリスタートするステップと、
前記アプリケーションを通して表示された前記如何なるユーザデータ何でもを、前記リスタートされたアプリケーションを通して表示するステップと、
を含む命令を収めていることを特徴とするコンピュータ可読媒体。
【請求項１４】
前記アプリケーション設定値状態を表すデータを格納するステップは、表示された如何なるアプリケーションユーザインタフェースコンポーネント何でもを表すデータを格納することを含み、該データの中には、前記表示された如何なるアプリケーションユーザインタフェースコンポーネント何でもの位置、サイズおよび表示された如何なるサブコンポーネント何でもを表すデータが含まれており、
前記アプリケーション設定値状態を表す前記格納されたデータに従って前記アプリケーションをアプリケーション設定値状態でリスタートするステップは、前記アプリケーションをリスタートした後、前記表示された如何なるユーザインタフェースコンポーネント何でもを再展開することを含むこと、
を特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
前記アプリケーション設定値状態を表すデータを格納するステップは、前記アプリケーション設定値状態を表すデータを、前記アプリケーションのオペレーション中に定期的周期で格納することを含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１６】
前記アプリケーション設定値状態を表すデータを格納するステップは、アプリケーション設定値状態を表すデータを、前記アプリケーションのオペレーションが中止されるとの通知が受信されたとき格納することを含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１７】
前記アプリケーションを通して表示された如何なるユーザデータ何でもを格納するステップは、電子カレンダデータを電子カレンダデータストレージサイトに格納することを含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１８】
コンピュータによって実行されたとき、アプリケーションシャットダウン後のアプリケーション状態を再構築する方法を実行するコンピュータ実行可能命令であって、
電子カレンダアプリケーションを通して表示された電子カレンダデータを電子カレンダデータストレージサイトに格納するステップと、
前記電子カレンダアプリケーションのオペレーションが中止されたとの通知を受信するステップと、
前記格納された電子カレンダデータを読み出しするステップと、
前記電子カレンダアプリケーションのオペレーションが中止されたとの通知を受信する前に、前記電子カレンダプリケーションを前記電子カレンダに対するアプリケーション設定値状態でリスタートするステップと、
前記格納された電子カレンダデータを、前記リスタートされた電子カレンダアプリケーションを通して表示するステップと、
を含む命令を収めていることを特徴とするコンピュータ可読媒体。
【請求項１９】
前記電子カレンダアプリケーションを通して表示された電子カレンダデータを、電子カレンダデータストレージサイトに格納するステップは、電子カレンダアプリケーションのオペレーションが中止されるとの通知を受信したことに応答して、電子カレンダアプリケーションを通して表示された電子カレンダデータを、電子カレンダデータストレージサイトに格納することを含むことを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
前記電子カレンダアプリケーションを通して表示された電子カレンダデータを、電子カレンダデータストレージサイトに格納するステップは、電子カレンダアプリケーションを通して表示された電子カレンダデータを、電子カレンダアプリケーションのオペレーション中に定期的周期で電子カレンダデータストレージサイトに格納することを含むことを特徴とする請求項１８に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
予期しないアプリケーションシャットダウンとその後のリスタート期間にアプリケーション状態とユーザデータをキャプチャし、再構築する方法に関する。
【背景技術】
【０００２】
コンピュータおよびソフトウェアのユーザは、いくつかの異なるソフトウェアアプリケーションを使用して種々のタスクを実行することに慣れるようになっている。レター、メモランダムおよびその他のドキュメントは、ワードプロセシングアプリケーションを使用して準備されている。プレゼンテーションおよびドローイングは、スライドプレゼンテーションアプリケーションを使用して準備されている。財務報告およびその他のデータ操作は、表計算アプリケーションを使用して準備され、実行されている。電子メール、カレンダ情報、タスクおよびノートは、電子メールおよびカレンダアプリケーションを使用して入力され、やりとりされ、維持され、他の種々のタスクは他のアプリケーションと共に実行されている。
【０００３】
任意のどの時点においても典型的なソフトウェアユーザは、複数のアプリケーションおよび複数のドキュメントを使用中の状態にしており、各々のアプリケーションユーザインタフェースおよび各々の起動ドキュメントが、ユーザのコンピュータディスプレイスクリーン上の１つまたは２つ以上のディスプレイフレームに表示されている。このようなケースでは、展開されたアプリケーションおよび関連ドキュメントは、任意のどの時点においても、ある与えられた状態に置かれている。例えば、展開（deploy）されたワードプロセシングアプリケーションは、メモランダムのページ４を表示しているかもしれない。これと同時に、ユーザの電子メールアプリケーションは、ユーザの連絡先情報を表示するように展開されているかもしれない。表計算ドキュメントが展開されていることもあり、そのユーザがワードプロセシングアプリケーションによって現在表示されているメモランダムを準備している間、ユーザがレビューしているデータを示すように、５枚目のシートのデータが表示されているかもしれない。
【０００４】
残念ながら、コンピュータおよびソフトウェアアプリケーションは、さまざまな理由で予想外にシャットダウンされることがよくある。電源異常が発生すると、コンピュータおよび現在使用中のアプリケーションがあれば、そのアプリケーションがシャットダウンされることがある。オペレーティングシステムまたはソフトウェアアプリケーションが「クラッシュ」することがあり、その場合には、処理中のデータのある側面、またはオペレーティングシステムまたはアプリケーションにおける処理順序付け（processing sequencing）のある側面が問題になり、オペレーティングシステムまたはアプリケーションがシャットダウンされることになる。他方、コンピュータまたはソフトウェアアプリケーションのシャットダウンが意図的であるが、その場合でも、ユーザには予想外であることがある。例えば、ユーザが自分のコンピュータから離れている間に、同じ組織内のコンピュータシステムアドミニストレータがそのユーザが現在使用中の１つまたは２つ以上のアプリケーションにソフトウェアパッチ（更新または他のソフトウェア修正）をロードし、これに続いて、そのパッチを問題のアプリケーションと正しく統合するためにそのユーザのコンピュータをリスタートすることがある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このような意図的または意図外のシャットダウンが起こって、リスタートを行なうと、シャットダウン時にユーザが入力または編集していたデータが消失することがよくある。さらに、このようなシャットダウンが起こってリスタートを行なうと、シャットダウンとその後のリスタート時に使用中であった種々のアプリケーションのカレントアプリケーション状態が失われることがよくある。すなわち、展開されたアプリケーションの数、種々アプリケーションディスプレイフレームが置かれているディスプレイスクリーン上のロケーション、特定ドキュメントまたは他のデータの展開、展開されたドキュメント内の編集中のロケーション、およびその他のアプリケーション設定値状態が失われることになる。シャットダウンとその後のリスタートのあと、ユーザは各アプリケーションおよび関連ドキュメントまたは他のデータを再展開し、展開されたアプリケーションごとにアプリケーションのディスプレイフレームの位置とサイズを変更し、使用中の各ドキュメントまたは他のデータを、シャットダウン以前にそのドキュメントまたはデータが編集中であったドキュメントまたはデータ内の位置に再展開しなければならない。
【０００６】
本発明は上記およびその他の考慮事項に関連してなされたものである。
【課題を解決するための手段】
【０００７】
この簡単な説明は、以下の詳細説明の個所で詳しく説明されている概念のいくつかを選んで簡単に紹介したものである。この簡単な説明は請求項に記載の主題の重要な特徴または基本的特徴を特定するものではなく、請求項に記載の主題の範囲を判断する際の一助となるものでもない。
【０００８】
本発明の実施形態は、アプリケーションのシャットダウンとその後のリスタート期間にアプリケーション設定値状態（application settings states）をキャプチャ（capture）し、再構築（restore）することによって上記問題およびその他の問題を解決している。シャットダウン以前に展開されていたユーザデータもキャプチャされて、その後のアプリケーションリスタート後に再展開されることがある。本発明の一実施形態によれば、使用中アプリケーション（in-use application）は、そのカレント状態を表すデータを定期的にセーブする。例えば、展開されたアプリケーションユーザインタフェースコンポーネントおよびディスプレイフレームのサイズとロケーションを表すデータ、スクロールバーおよび他の表示されたアプリケーションコンポーネントのロケーション、および現在表示されているドキュメントを表すデータと現在表示されているドキュメントの表示位置と編集位置は、定期的にメモリに格納される。
【０００９】
アプリケーション状態データが格納されるほかに、ユーザデータ、例えば、使用中ドキュメントまたはデータの中で現在入力中または編集中のデータが定期的に格納される。一実施形態によれば、ドラフトデータストレージメカニズム（draft data storage mechanism）は、電子カレンダプリケーションのセッション期間に入力中または編集中のドラフトカレンダデータなどのデータを格納するために用意されたものである。
【００１０】
アプリケーション状態データとユーザデータは共に、定期的インターバルで、例えば、１０分ごとに自動的に格納されることもあれば、アプリケーション状態データとユーザデータは、差し迫ったアプリケーションシャットダウンが検出されたとき自動的に格納されることもある。本発明の一実施形態によれば、計画的アプリケーションシャットダウン（planned application shutdown）がスケジュールされているときは、リスタートマネージャモジュール（restart manager module）は、使用中のアプリケーションがあれば、アプリケーション状態データとユーザデータ（もしあれば）を自動的にセーブするようにそのアプリケーションに通知する。
【００１１】
あるアプリケーションが意図的または意図外のシャットダウンのあとリスタートされたときは、そのアプリケーションは、シャットダウン以前にそのアプリケーションに対して格納されていたアプリケーション状態に再展開される。さらに、アプリケーションシャットダウン時に使用中であったドキュメントまたは他のデータがあれば、そのドキュメントまたは他のデータは、アプリケーションシャットダウン以前に最後に格納されたドキュメントまたは他のデータの状態に従って自動的に再展開され、表示される。
【００１２】
上記およびその他の特徴と利点は、以下の詳細説明を読み、関連図面をレビューすることにより明らかになる。以上から理解されるように、上述した概要説明と以下の詳細説明はどちらも、単に例示目的に説明したものであり、請求項に記載の本発明を限定するものではない。
【発明を実施するための最良の形態】
【００１３】
以上簡単に説明したように、本発明の実施形態は、予期しないアプリケーションシャットダウンとその後のリスタート期間にアプリケーション状態とユーザデータをキャプチャし、再構築することを目的としている。使用中アプリケーション設定値状態を表すデータと使用中ユーザデータは、定期的に格納されるか、差し迫ったアプリケーションシャットダウンの通知を受けたとき格納される。リスタート時、シャットダウン以前に展開されていたアプリケーションがあれば、そのアプリケーションは、アプリケーションごとに格納されたアプリケーション設定値状態に従って再展開され、使用中ドキュメントまたは他のデータがあれば、これらは格納されたユーザデータに従って再展開される。本発明の実施形態によれば、アプリケーション設定値状態の格納と再構築およびユーザデータの格納と再構築は、別々に行なわれることがある。すなわち、シャットダウン以前のアプリケーション状態とユーザデータが共にキャプチャされ、再構築されることもあれば、アプリケーション状態だけがリスタート時に自動的にキャプチャされ、再構築されることもあり、シャットダウン以前のユーザデータがあれば、別々に格納されたそのユーザデータに基づいて手作業で、または自動的に再展開されることもある。
【００１４】
以下の詳細説明では、その一部を構成する添付図面が参照され、そこでは特定の実施形態または例が例示されている。これらの実施形態は組み合わされていることもあれば、他の実施形態が利用されていることもあれば、本発明の精神または範囲から逸脱することなく構造上の変更が行なわれていることもある。従って、以下の詳細説明は限定的意味に解釈されるものではなく、本発明の範囲は請求項の記載およびその記載に相当するものによって明確化されている。
【００１５】
以下、図面を参照して本発明の側面および例示コンピューティング動作環境について説明するが、いくつかの図面では類似エレメントは類似参照符号を付けて示されている。図１および以下の説明は、本発明を実現することが可能である適当なコンピューティング環境を概要し、簡単に説明したものである。本発明は、パーソナルコンピュータ上のオペレーティングシステムで稼動しているアプリケーションプログラムに関連して実行されるプログラムモジュールの一般的コンテキストの中で説明されているが、この分野の当業者ならば理解されるように、本発明は他のプログラムモジュールとの組み合わせで実現されることもある。
【００１６】
一般的に、プログラムモジュールには、特定のタスクを実行し、または特定の抽象データ型を実現するルーチン、プログラム、コンポーネント、データ構造、およびその他のタイプの構造が含まれている。さらに、この分野の当業者ならば理解されるように、本発明は他のコンピュータシステム構成で実施されることもあり、その中には、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルコンシューマエレクトロニクス、ミニコンピュータ、メインフレームコンピュータなどが含まれている。本発明は、通信リンクを通してリンクされたリモート処理デバイスによってタスクが実行されるような分散コンピューティング環境で実施されることもある。分散コンピューティング環境では、プログラムモジュールはローカルとリモートの両方のメモリストレージデバイスに置かれていることがある。
【００１７】
本発明の実施形態は、コンピュータプロセス（方法）やコンピュータシステムとして実現されていることも、コンピュータプログラムプロダクトやコンピュータ可読媒体のような製造製品として実現されていることもある。コンピュータプログラムプロダクトは、コンピュータシステムによって読み取り可能で、コンピュータプロセスを実行するための命令からなるコンピュータプログラムを符号化しているコンピュータ記憶媒体であることがある。コンピュータプログラムプロダクトは、コンピューティングシステムによって読み取り可能で、コンピュータプロセスを実行するための命令からなるコンピュータプログラムを符号化している搬送波上の伝播信号であることもある。
【００１８】
図１を参照して説明すると、本発明を実現する１つの例示システムは、コンピューティングデバイス１００のようなコンピューティングデバイスを含んでいる。基本構成では、コンピューティングデバイス１００は、少なくとも１つの処理ユニット１０２とシステムメモリ１０４を装備しているのが典型的である。コンピューティングデバイスの正確な構成とタイプに応じて、システムメモリ１０４は揮発性（ＲＡＭなど）であることも、不揮発性（ＲＯＭ、フラッシュメモリなど）であることも、これらを任意に組み合わせたものであることもある。システムメモリ１０４は、本件特許出願人（Redmond、Washington在）提供のWINDOWS（登録商標）オペレーティングシステムのように、ネットワーク接続パーソナルコンピュータのオペレーションを制御するのに適したオペレーティングシステム１０５を収めているのが代表的である。システムメモリ１０４は、１つまたは２つ以上のソフトウェアアプリケーション１０６を収めていることも、プログラムデータ１０７を収めていることもある。この基本構成は、これらのコンポーネントを破線１０８で囲んで図１に示されている。
【００１９】
本発明の実施形態によれば、アプリケーション１０６は、電子メールプログラム、カレンダプログラム、インターネットブラウジングプログラムなどのような、多数のタイプのソフトウェアアプリケーションを含んでいることがある。このようなプログラムの一例として、本件特許出願人提供のOUTLOOK（登録商標）がある。アプリケーション１０６の中には、いくつかの他のタイプのソフトウェアアプリケーションが含まれていることがあり、その中には、他の多数のタイプの機能を提供する多機能ソフトウェアアプリケーションが含まれている。このような多機能ソフトウェアアプリケーションには、ワードプロセシングプログラム、表計算プログラム、スライドプレゼンテーションプログラム、データベースプログラムなどのような、いくつかのプログラムモジュールが含まれていることがある。このような多機能アプリケーションの一例として、本件特許出願人提供のOFFICE（商標）がある。
【００２０】
コンピューティングデバイス１００は、追加の特徴または機能を備えていることがある。例えば、コンピューティングデバイス１００は、追加のデータストレージデバイス（取り外し可能および/または取り外し不能）を装備していることもあり、そのようなものの例として、磁気ディスク、光ディスクまたはテープがある。このような追加ストレージは、取り外し可能ストレージ１０９と取り外し不能ストレージ１１０として図１に示されている。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報を格納するためのなんらかの方法またはテクノロジで実現されている揮発性および不揮発性の取り外し可能および取り外し不能媒体が含まれていることがある。システムメモリ１０４、取り外し可能ストレージ１０９および取り外し不能ストレージ１１０はいずれもコンピュータ記憶媒体の例である。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリや他のメモリテクノロジ、ＣＤ−ＲＯＭ、ＤＶＤ（digital versatile disk）や他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージや他の磁気ストレージデバイス、または必要とする情報を格納するために使用可能で、コンピューティングデバイス１００によってアクセス可能である他の如何なる媒体何でもが含まれているが、これらに限定されない。このようなコンピュータ記憶媒体はいずれも、デバイス１００の一部になっていることがある。コンピューティングデバイス１００は、キーボード、マウス、ペン、音声インプットデバイス、タッチインプットデバイスなどの、インプットデバイス１１２を備えていることもある。ディスプレイ、スピーカ、プリンタなどのアウトプットデバイス１１４を備えていることもある。これらのデバイスはこの分野では周知であるので、これ以上詳しく説明することは省略する。
【００２１】
コンピューティングデバイス１００は、分散コンピューティング環境におけるネットワーク、例えば、インターネットやイントラネットなどを利用してデバイスが他のコンピューティングデバイス１１８と通信するのを可能にする通信コネクション１１６を備えていることもある。通信コネクション１１６は通信媒体の一例である。通信媒体は、搬送波や他のトランスポートメカニズムなどの変調データ信号の中でコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータによって具現化されているのが代表的であり、その中には、如何なる情報配信媒体何でもが含まれている。ここで「変調データ信号（modulated data signal）」の用語は、信号の中で情報を符号化するような形でその特性の１つまたは２つ以上がセットまたは変更されている信号を意味している。例を挙げると、通信媒体には、ワイヤド（有線）ネットワークまたは直接ワイヤドコネクションのようなワイヤド媒体、および音響、ＲＦ、赤外線および他のワイヤレス（無線）媒体のようなワイヤレス媒体が含まれているが、これらに限定されない。本明細書の中で用いられている「コンピュータ可読媒体（computer readable medium）」の用語には、記憶媒体と通信媒体の両方が含まれている。
【００２２】
図２は、本発明の実施形態によるソフトウェアアプリケーション、ソフトウェアアプリケーションコンポーネントおよびオペレーティングシステム相互間の関係および作用関係を示す簡略ブロック図である。本明細書に説明されているように、本発明の実施形態によれば、アプリケーション状態データおよびユーザデータは定期的におよび／または自動的にメモリに格納され、予期しないアプリケーションシャットダウン後にアプリケーション状態およびユーザデータが再構築されるようにしている。図２に示すように、アプリケーション１０６は如何なるソフトウェアアプリケーション何でも、例えば、アプリケーション状態および関連ユーザデータがアプリケーションシャットダウン以前に格納されていて、その後のリスタート時にシャットダウン以前のアプリケーション状態およびユーザデータ状態が再構築されるようなワードプロセシングアプリケーション、スライドプレゼンテーションアプリケーション、表計算アプリケーション、データベースアプリケーション、カレンダアプリケーション、またはその他のアプリケーションを表わしている。
【００２３】
アプリケーション設定値（application settings）２１０は、予期しないアプリケーションシャットダウン以前の、あるアプリケーションに関連する１つまたは２つ以上のアプリケーション設定値を表わしている。例えば、アプリケーション設定値２１０には、アプリケーションディスプレイフレームの数と展開が含まれている。例えば、ワードプロセシングアプリケーションは、そこにドキュメントが表示されるディスプレイフレームを有していることがある。カレンダアプリケーションは、連絡先データ、電子メールデータ、タスクデータなどを表す１つまたは２つ以上のディスプレイフレームが、ユーザのコンピュータのディスプレイスクリーン上に展開されていることがある。その他のアプリケーション設定値としては、展開されたアプリケーションディスプレイフレームのロケーション、サイズおよび形状がある。さらに、アプリケーション設定値には、ユーザインタフェースコンポーネントをユーザがカスタマイズしたもの、例えば、ツールバーやドロップダウンメニューのような、ユーザインタフェースコンポーネントの中の個々の機能コントロールの挿入、除外および／または展開が含まれている。その他のアプリケーション設定値状態データとしては、あるアプリケーションディスプレイフレームの中のスクロールバーや他のユーザインタフェースコンポーネントの位置のほかに、ユーザインタフェースコンポーネントの背景カラーのような、その他のアプリケーションディスプレイフレームのディスプレイプロパティなどがある。
【００２４】
以上の説明から当然に理解されるように、個々のユーザは種々の異なるソフトウェアアプリケーションを同時に展開することがよくあり、またユーザは、アプリケーションディスプレイフレームおよび表示されたユーザインタフェースコンポーネントなどの、アプリケーションコンポーネントを、さまざまのカストマイズしたロケーション、位置、サイズおよび向きで展開することがよくある。この分野の当業者ならば周知であるように、あるアプリケーションのディスプレイフレーム、または複数の現在使用中アプリケーションのディスプレイフレームは、使用の優先順に従ってディスプレイスクリーン上にスタックされていることがある。例えば、ユーザが現在ワードプロセシングアプリケーションユーザインタフェース、電子メールアプリケーションユーザインタフェースおよび表計算アプリケーションユーザインタフェースを展開していた場合、現在選択されているアプリケーションユーザインタフェースがディスプレイスクリーン上のアプリケーションディスプレイフレームに表示され、それぞれのアプリケーションディスプレイフレームの中の、他の現在展開されているアプリケーションユーザインタフェースコンポーネントは、現在選択されているアプリケーションユーザインタフェースおよび関連ディスプレイフレームの下の位置に展開されることになる。
【００２５】
本発明の実施形態によれば、現在使用中の各アプリケーション１０６は、それぞれのアプリケーションごとの現在のアプリケーション設定値を表すデータをメモリに格納する。アプリケーション設定値の自動格納は、例えば、１０分ごと、５分ごと、１分ごと、といったように定期的インターバルで行なわれるようにユーザのコントロールによって設定されていることがある。別の方法として、例えば、１０分ごとといったように、デフォルトのアプリケーション設定値格納インターバルが設定されることもある。スケジュールされた格納インターバルまたは周期で、使用中の各アプリケーション１０６は、表示されたアプリケーションコンポーネントに関して数、形状、サイズ、位置、ユーザインタフェースコンポーネント設定値とカストマイズ値、表示順序、およびその他のアプリケーション設定値を自動的にメモリに格納する。
【００２６】
代替的実施形態によれば、「クラッシュ」検出モジュールが使用されることがあり、そこでは、あるアプリケーションの予期しない差し迫ったシャットダウンが検出されると、アプリケーション設定値が自動的にセーブされる。すなわち、アプリケーション設定値格納インターバルが１０分後に設定されていても、あるアプリケーションがシャットダウンすることをアプリケーションクラッシュモジュールが検出すると、使用中の各アプリケーションに適用可能なアプリケーション設定値はそのシャットダウンが完了する前に即時に自動的に格納されることがある。
【００２７】
ユーザデータ２１５は、使用中アプリケーション１０６を通して現在展開されているユーザデータを表わしている。例えば、ユーザデータには、ワードプロセシングドキュメント、表計算アプリケーションデータ、スライドプレゼンテーションアプリケーションスライド、ドローイングなど、および電子メールメッセージ、カレンダ情報、タスク情報などを含む電子メールとカレンダ情報が含まれていることがある。すなわち、ユーザデータ２１５は、使用中アプリケーション１０６を通して現在展開されていて、使用中アプリケーション１０６を通してレビュー中、操作中、編集中または他の目的に利用中のすべてのユーザデータを表わしている。アプリケーション設定値２１５に関して上述したように、定期的に、例えば、１０分ごとに、ユーザデータは自動的にメモリに格納され、予期しないアプリケーションシャットダウン後にユーザデータが再構築されるようにしている。例えば、ユーザが雇用者に対するメモランダムを現在準備している場合、定期的に、例えば、１０分ごとに、ユーザの編集、データ入力、またはデータに対する他の修正は、ユーザがデータに対する最近の変更を手作業でセーブすることに失敗している間にアプリケーションが予期せずにシャットダウンしたときに利用されることのあるドラフトバージョンのドキュメントに自動的に格納される。アプリケーション設定値データに関して上述したように、例えば、１０分ごとにユーザデータが定期的に格納されるほかに、電子メールとカレンダデータを含むユーザデータは、下述するように、差し迫ったアプリケーションシャットダウンが検出されたとき自動的に格納されることがある。
【００２８】
本発明の実施形態によれば、電子カレンダアプリケーション１０６、例えば、本件特許出願人提供のOUTLOOK（登録商標）を通して入力または編集されたカレンダ情報のために、改良されたデータストレージおよびドラフトデータ機能が用意されている。この実施形態によれば、アポイントメント、ミーティングリクエスト、タスク、連絡先、および他の電子メールおよびカレンダアプリケーションデータなどの、カレンダ情報は、定期的にドラフトデータフォルダに格納され、予期しないアプリケーションシャットダウンが起ったときデータが再構築されるようにしている。例えば、あるユーザが一人または二人以上の同僚とのミーティングを確立するために電子ミーティングリクエストを、現在自分の電子カレンダアプリケーション１０６に入力している場合、そのユーザが準備中の電子ミーティングリクエストは定期的にドラフトミーティングリクエストフォルダに格納され、予期しないアプリケーションシャットダウン後にそのドラフトミーティングリクエストが再構築されるようにしている。同様に、入力中または編集中のタスク、ノート、連絡先データ、および他の電子メールおよびカレンダアプリケーションデータは、定期的にドラフトデータフォルダに格納され、これらのデータアイテムは、上記電子メールおよびカレンダアプリケーションデータアイテムのいずれかを入力中および／または編集中に予期しないアプリケーションシャットダウンが起った場合、再構築されるようにしている。
【００２９】
引き続き図２を参照して説明すると、アプリケーション再構築モジュール２０５には、予期しない（意図的または意図外の）アプリケーションシャットダウンのあと、格納されたアプリケーション設定値とユーザデータを格納することを指示するための十分なコンピュータ実行可能命令が含まれている。本発明の実施形態によれば、アプリケーション再構築モジュール２０５は、アプリケーション設定値状態データとユーザデータを定期的におよび／または自動的に格納することを指示するためのソフトウェアアプリケーション命令が各アプリケーション１０６と統合されていることを表わしている。代替的実施形態では、アプリケーション再構築モジュール２０５は、アプリケーション設定値状態データとユーザデータを自動的に格納することを指示するために、随時にまたは差し迫ったアプリケーションシャットダウンの検出時に各使用中アプリケーションをコールする独立のソフトウェアアプリケーションとして動作することがある。
【００３０】
本発明の実施形態によれば、アプリケーションリスタートは、オペレーティングシステム１０５を含む、使用中の他のどのアプリケーションのリスタートからも、独立して行なわれることがある。すなわち、あるアプリケーション１０６、例えば、ワードプロセシングアプリケーションには、オペレーティングシステム１０５を含む、使用中の他のアプリケーションが正常な動作条件の下で実行を続けている場合でも予期しないシャットダウンが起ることがある。これとは別に、使用中アプリケーション１０６は、特に関連コンピュータ１００のシャットダウンが起ったため、すべての使用中アプリケーションがシャットダウンしたとき、またはあるアプリケーション１０６のシャットダウンがオペレーティングシステム１０５を通して指示されたとき、オペレーティングシステム１０５と関連してシャットダウンされ、リスタートされることがある。
【００３１】
リスタートマネージャモジュール２２０は、１または２以上のアプリケーション１０６のシャットダウンが起るようにスケジュールされているとき、あるアプリケーションのアプリケーション設定値状態データおよびユーザデータを自動的に格納することを指示するためにオペレーティングシステム１０５と関連して利用されることがある。例えば、ある組織のコンピュータシステムアドミニストレータが１つまたは２つ以上のアプリケーション１０６に対するソフトウェアパッチ（更新または他の修正）をロードすることを望んでいる場合、リスタートマネージャモジュール２２０は、スケジュールされたアプリケーションシャットダウンに先立って各使用中アプリケーション１０６をコールして、アプリケーション設定値２１０とユーザデータ２１５を格納するように指示するために、システムアドミニストレータによって利用されることがある。例えば、あるユーザは、種々のユーザデータを入力、編集またはその他の操作を行なうために１または２以上のアプリケーション１０６を現在使用中のことがある。そのユーザが自分のコンピュータから離れている間に、同じ組織のシステムアドミニストレータは、そのユーザが使用中のアプリケーション１０６に対してソフトウェア更新またはパッチをロードしたい場合がある。
【００３２】
この分野の当業者ならば理解されるように、あるアプリケーション１０６に対するソフトウェアパッチや他の更新または修正をアップロードしたあとよく起ることは、そのソフトウェアパッチまたは他の更新を問題のアプリケーションと正しく統合するためにアプリケーション１０６のシャットダウンとリスタートが要求されることである。ユーザが自分のコンピュータから離れている間にシャットダウンとリスタートが行なわれたが、その間にユーザがソフトウェアアプリケーションとユーザデータを現在展開していた場合は、アプリケーション状態とユーザデータはそのシャットダウンとリスタートのために失われることがある。本発明の実施形態によれば、リスタートマネージャモジュール２２０は、アプリケーション設定値状態データとユーザデータを定期的に格納する時間が経過していなくても、例えば、自動データ格納サイクル間の１０分インターバルが経過していなくても、シャットダウンとリスタートに先立ってアプリケーション設定値状態とユーザデータを自動的に格納するように使用中アプリケーションに指示するためにシステムアドミニストレータによって利用されることがある。
【００３３】
引き続き図２を参照して説明すると、メモリストレージ１０４は、本明細書に説明されているように、アプリケーション設定値状態データとユーザデータが格納されることのあるシステムメモリを表わしている。当然に理解されるように、メモリストレージ１０４は、コンピュータ１００のシステムレジストリ、または本明細書に説明されているアプリケーション設定値状態データとユーザデータを格納するために使用されることのある他の適当なローカルまたはリモート記憶媒体を表わしている。
【００３４】
以上図１と図２を参照して本発明の実施形態のための例示動作環境を説明してきたが、図３は、アプリケーションシャットダウン以前にアプリケーション状態データとユーザデータを格納するオペレーションを示すと共に、意図的または意図外のシャットダウン後にアプリケーションを再構築するオペレーションを示す論理フロー図である。説明の便宜上、例示ユーザが１または２以上のアプリケーションを実行していて、そのユーザが使用中アプリケーション１０６のディスプレイフレームをさまざまなロケーション、向きおよびサイズで展開し、そのユーザがユーザのデータを入力および／または編集するために１つまたは２つ以上のユーザデータアイテム、例えば、ワードプロセシングドキュメント、表計算ドキュメント、スライドプレゼンテーションドキュメント、電子メールとカレンダデータなどを展開していたものとする。
【００３５】
論理フロー３００はスタートブロック３０５から開始し、アプリケーション実行ブロック３１０に進み、そこではユーザは、上述したように１または２以上のアプリケーション１０６を現在実行し、利用している。判定オペレーション３１５において、あるアプリケーションのオペレーションを、計画的アプリケーションシャットダウンとリスタートのために中止させるかどうかの判断が行なわれる。上述したように、アプリケーション１０６の１つおよび／またはオペレーティングシステム１０５に対するソフトウェアアプリケーションパッチをアップロードするために、またはなんらかの他の計画的シャットダウンのために、アプリケーション１０６および／またはオペレーションシステム１０５を計画的条件の下でシャットダウンさせ、リスタートさせる場合には、リスタートマネージャモジュール２２０は、シャットダウンとリスタートが行なわれることを使用中アプリケーション１０６とオペレーティングシステム１０５に通知することがある。
【００３６】
計画的シャットダウンが行われる場合には、論理フローは自動セーブオペレーション３３５に進み、リスタートマネージャモジュール２２０は、上述したようにユーザデータ２１５のカレント状態を自動的にセーブするように各使用中アプリケーションに指示する。例えば、ユーザがワードプロセシングアプリケーション、表計算アプリケーションを現在編集中である場合、または電子メールおよびカレンダアプリケーションデータを入力し、編集中である場合は、リスタートマネージャ２２０は、カレント状態にあるユーザデータを自動的にセーブするように関連アプリケーション１０６に指示し、アプリケーションがリスタートされたあとそのデータがカレント状態に再構築されるようにする。さらに、上述したように、ユーザによって入力中および／または編集中のデータに、ミーティングリクエスト、連絡先情報、アポイントメント情報、タスクまたはノート情報を含む電子カレンダデータが含まれている場合には、関連の電子カレンダアプリケーション１０６は、上述したようにそのデータのカレント状態を該当する記憶媒体１０４に自動的にセーブする。
【００３７】
アプリケーション設定値セーブオペレーション３４０において、リスタートマネージャモジュール２２０は、上述したようにアプリケーション設定値２１０のカレント状態を自動的にセーブするように各使用中アプリケーション１０６および／またはオペレーティングシステム１０５に指示する。例えば、表示されたユーザインタフェース、ディスプレイフレームまたはその他のアプリケーションコンポーネント（表示されたユーザインタフェースコンポーネントおよびディスプレイフレームの形状、サイズ、ロケーションおよび向きを含む）のカレント状態（ユーザインタフェースコンポーネント、例えば、ツールバー、ボタン、コントロール、スクロールバーなどの状態を含む）は自動的に格納される。セーブオペレーション３４５において、ユーザデータおよびアプリケーション設定値状態データはメモリ１０４に格納される。アプリケーションクローズオペレーション３５０において、使用中アプリケーション１０６および／またはオペレーションシステム１０５はシャットダウンされる。
【００３８】
判定オペレーション３１５に戻って説明すると、使用中アプリケーション１０６および／またはオペレーティングシステムの計画的シャットダウンが行なわれない場合は、ルーチンは自動セーブオペレーション３２０に進み、ユーザデータ２１５は、図２を参照して上述したように、定期的に、例えば、１０分ごとに自動的に格納される。自動セーブオペレーション３２５において、如何なる使用中アプリケーション１０６何でもおよび／またはオペレーティングシステム１０５のアプリケーション設定値状態データ２１０は、図２を参照して上述したように、定期的に、例えば、１０分ごとに自動的に格納される。
【００３９】
上述したように、ユーザデータとアプリケーション設定値状態データのどちらの場合も、自動データ格納間のインターバルはユーザの入力によって変更されることもあれば、自動データ格納間のインターバルはデフォルトで設定されることもある。また、アプリケーション設定値データの自動格納とユーザデータの自動格納は、相互に独立して行なわれることもある。例えば、アプリケーション設定値状態データは５分ごとに格納されることがあり、ユーザデータは１０分ごとに格納されることがある。別の例として、自動セーブオペレーション３２０において、ユーザデータの最後の自動セーブ以後にユーザデータの変更が行なわれたかどうかの判断が行なわれることがある。ユーザデータの変更が行われていなかった場合は、ユーザデータの自動セーブは行なわれないはずである。他方、最後の自動セーブサイクル以後にユーザデータの変更が行なわれていなかった場合でも、アプリケーション設定値状態が変更されていることがあり、例えば、ユーザは、ディスプレイフレームをディスプレイスクリーン上のあるロケーションから別のロケーションに移動していることがある。このようなケースでは、アプリケーション設定値状態データの自動セーブはオペレーション３２５で要求されることになる。図２を参照して上述したように、ユーザデータとアプリケーション設定値状態データの自動セーブは、通常の自動セーブインターバルまたは周期外で行なわれることもあれば、アプリケーションシャットダウンがそれぞれのアプリケーション１０６および／またはオペレーティングシステム１０５によって検出された場合には、アプリケーションシャットダウンの直前に行なわれることもある。
【００４０】
判定オペレーション３３０において、あるアプリケーションのオペレーションが計画外アプリケーションシャットダウンのために中止されるかどうかの判断が行なわれる。使用中アプリケーション１０６および／またはオペレーティングシステム１０５のシャットダウンが行われない場合は、ルーチンはアプリケーション実行オペレーション３１０に戻り、上述したように進められる。判定オペレーション３３０で計画外アプリケーションシャットダウンが行なわれると判断された場合は、ルーチンはアプリケーションリスタートオペレーション３３５に進む。当然に理解されるように、アプリケーションリスタートオペレーション３３５は、計画的シャットダウンに関して上述した計画的アプリケーションクロージングオペレーション３５０からも行なわれる。
【００４１】
アプリケーションリスタートオペレーション３３５において、使用中アプリケーション１０６および／またはオペレーティングシステム１０５は、上述したように以前のシャットダウン後に自動的にリスタートされる。設定値読み出しオペレーション（retrieve settings operation）３６０において、使用中アプリケーション１０６および／またはオペレーティングシステム１０５に対して格納されたアプリケーション設定値状態データは、使用中アプリケーション１０６ごとにアプリケーション再構築モジュール２０５によってメモリストレージ１０４から読み出される。当然に理解されるように、アプリケーションシャットダウンが個別的アプリケーション１０６に対するものであった場合は、アプリケーション再構築モジュール２０５はアプリケーション１０６のリスタート時に自動的に呼び出されることがある。他方、アプリケーション再構築モジュール２０５は、特に計画的アプリケーションシャットダウンの場合には、上述したようにリスタートマネージャモジュール２２０の指示を受けて、それぞれの各使用中アプリケーション１０６のリスタートを指示することがある。ユーザデータ読み出しオペレーション３６５において、各使用中アプリケーション１０６について格納されたユーザデータがメモリストレージ１０４から読み出される。
【００４２】
オペレーション３７０において、使用中アプリケーション１０６および／またはオペレーティングシステム１０５がリスタートされ、ユーザインタフェースコンポーネント、例えば、アプリケーションディスプレイフレーム、ユーザインタフェースコンポーネント、スクロールバー設定値などが、格納されたアプリケーション設定値状態データに従ってユーザのコンピュータディスプレイスクリーンから表示されるように自動的にドローイングされる。すなわち、各ディスプレイフレームは以前のロケーション、以前のサイズに再ドローイングされ、シャットダウン以前に表示されていたユーザインタフェースコンポーネントを、シャットダウン以前に格納されたアプリケーション設定値状態データに従って含むようにドローイングされる。
【００４３】
オペレーション３７５において、ユーザデータは、アプリケーションシャットダウン以前にセーブされたユーザデータに従って表示されるようにドローイングされる。例えば、ユーザがワードプロセシングドキュメントを編集中で、そのワードプロセシングドキュメントのページ５が、ユーザデータがアプリケーションシャットダウン以前にセーブされた時点で２つの特定ワード間に展開された編集挿入ポイントと共に表示されていた場合は、そのドキュメントは、アプリケーションシャットダウン以前に最後にセーブされたユーザデータに従って特定ページと編集挿入ポイントを含むようにドローイングされる。
【００４４】
表示オペレーション３８０において、アプリケーションディスプレイフレーム、ユーザインタフェースおよびユーザデータがユーザのディスプレイスクリーンから表示され、ユーザに起ったことは、アプリケーションシャットダウン以前に格納された最後のアプリケーション設定値状態データおよびユーザデータに等しいポイントに再構築される。
【００４５】
代替的実施形態によれば、アプリケーション設定値状態データとユーザデータは、ユーザのアクションによって格納されることがある。例えば、ユーザがいくつかのアプリケーションを使用中で、ディスプレイフレームがユーザの望み通りに編成されていて、ユーザがいくつかのユーザデータアイテム、例えば、ワードプロセシングドキュメント、表計算ドキュメント、スライドプレゼンテーションドキュメントおよび種々の電子メールとカレンダデータを現在編集中の場合、ユーザは、ユーザが自分のコンピュータから離れている間に、例えば、休暇中の間にユーザがコンピュータと使用中アプリケーションを手作業でシャットダウンできるようにアプリケーション設定値状態データとユーザデータのセーブを手作業で強行したい場合がある。
【００４６】
この実施形態によれば、ユーザはカレントアプリケーション設定値状態データと現在のユーザデータを選択的にセーブしたあとで、使用中アプリケーション１０６および／またはオペレーティングシステム１０５を手作業でシャットダウンすることがある。ユーザがそのあとでコンピュータをリスタートしたいときは、ユーザはアプリケーション１０６とユーザデータを、シャットダウン以前にユーザによって格納されていたアプリケーション１０６の状態とユーザデータに選択的に戻すことができる。従って、ユーザは、アプリケーションとユーザデータがユーザの意図的シャットダウン以前に表示されていたときのアプリケーション設定値状態と表示されたユーザデータ状態に効率的にかつ自動的に戻ることができる。一実施形態によれば、ユーザは、リスタートマネージャモジュール２２０を通して計画的（意図的）シャットダウンとデータセーブオペレーションを実行することがある。ルーチンはオペレーション３９５で終了する。
【００４７】
この分野の当業者ならば明らかであるように、本発明は、本発明の範囲または精神から逸脱しない限り種々の改良または変更を行なうことが可能である。この分野の当業者ならば、本明細書に開示されている本発明の仕様と実施を考慮することにより本発明の他の実施形態も自明である。
【図面の簡単な説明】
【００４８】
【図１】例示コンピューティング動作環境を示す図である。
【図２】ソフトウェアアプリケーション、ソフトウェアアプリケーションコンポーネントおよびコンピュータのオペレーティングシステム相互間の関係と作用関係を示す簡略ブロック図である。
【図３】アプリケーションシャットダウン以前にアプリケーション状態データとユーザデータを格納するプロセスを示し、意図的シャットダウンまたは意図外シャットダウン後にアプリケーションを再構築するプロセスを示す論理フロー図である。
【図１】
2009524130.tif 000003
【図２】
2009524130.tif 000004
【図３】
2009524130.tif 000005
【国際調査報告】
2009524130.tif 000006
2009524130.tif 000007