JP5140001B2 - 予期しないアプリケーションシャットダウン後のアプリケーション状態のキャプチャおよび再構築 - Google Patents

予期しないアプリケーションシャットダウン後のアプリケーション状態のキャプチャおよび再構築 Download PDF

Info

Publication number
JP5140001B2
JP5140001B2 JP2008550343A JP2008550343A JP5140001B2 JP 5140001 B2 JP5140001 B2 JP 5140001B2 JP 2008550343 A JP2008550343 A JP 2008550343A JP 2008550343 A JP2008550343 A JP 2008550343A JP 5140001 B2 JP5140001 B2 JP 5140001B2
Authority
JP
Japan
Prior art keywords
application
data
computer
user
shutdown
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008550343A
Other languages
English (en)
Other versions
JP2009524130A5 (ja
JP2009524130A (ja
Inventor
ダウナー ジョエル
パーヴィーン ナイザー シャヒーダ
デブ サリーン チャイタニヤ
ウー ジシン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/331,405 external-priority patent/US7574591B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009524130A publication Critical patent/JP2009524130A/ja
Publication of JP2009524130A5 publication Critical patent/JP2009524130A5/ja
Application granted granted Critical
Publication of JP5140001B2 publication Critical patent/JP5140001B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake

Description

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

Claims (12)

  1. コンピュータデバイス上で実行されているソフトウェアアプリケーション(以下、「アプリケーション」)の予期しないシャットダウン後にアプリケーションの状態を再構築する方法であって、
    前記アプリケーションの計画的シャットダウンが発生するかどうかを前記コンピュータデバイスが判定するステップと、
    前記判定するステップで、計画的シャットダウンが発生すると判定した場合に、前記コンピュータデバイスが、アプリケーション設定値データのカレント状態をセーブするステップであって、前記アプリケーション設定値のカレント状態は、前記コンピュータデバイスのディスプレイスクリーンに表示された前記アプリケーションのユーザインタフェースコンポーネントの形状、サイズ、位置および向きを含む、ステップと、
    前記判定するステップで、計画的シャットダウンが発生しないと判断された場合に、前記コンピュータデバイスが、前記アプリケーションのオペレーション中に周期的な頻度でアプリケーション設定値データを記憶媒体に格納するステップであって、前記アプリケーション設定値データは、前記コンピュータデバイス上で実行されているアプリケーションの設定値状態を表し、前記アプリケーション設定値状態は、前記コンピュータデバイスのディスプレイスクリーンに表示された前記アプリケーションのユーザインタフェースコンポーネントの位置と、前記表示されたユーザインタフェースコンポーネントのサイズとを表すデータを含む、ステップと、
    前記アプリケーションに予期しないシャットダウンが発生するかどうかを前記コンピュータデバイスが判定するステップであって、前記予期しないシャットダウンは、前記アプリケーションのユーザが当該アプリケーションのシャットダウンを予期しなかった状況で発生するアプリケーションのシャットダウンである、ステップと、
    前記アプリケーションに予期しないシャットダウンが発生するという判定に応答して、前記コンピュータデバイスが、前記アプリケーションのシャットダウン後に自動的にアプリケーションをリスタートするステップと、
    前記アプリケーションに予期しないシャットダウンが発生するという判定に応答してリスタートした後に、前記コンピュータデバイスが、前記アプリケーション設定値データを前記記憶媒体から読み出すステップと、
    前記アプリケーションに予期しないシャットダウンが発生するという判定に応答してリスタートした後に、前記設定値データに基づいて前記表示された如何なるユーザインタフェースコンポーネントをも展開するステップと、
    を含むことを特徴とする方法。
  2. 前記アプリケーションの計画的シャットダウンを実行するステップは、システムアドミニストレータがリスタートマネージャモジュールを使用して前記アプリケーションをシャットダウンするときに、計画的シャットダウンを実行することを特徴とする請求項1に記載の方法。
  3. 前記コンピュータデバイスが、1又は複数のユーザデータのセットを格納するステップをさらに含み、前記リスタートの前に前記アプリケーションを通して展開されている全てのユーザデータを含むことを特徴とする請求項1に記載の方法。
  4. 前記ユーザデータのセットを格納するステップは、前記アプリケーションのオペレーション中に周期的な頻度で前記ユーザデータのセットを格納することを特徴とする請求項に記載の方法。
  5. 前記アプリケーションをリスタートした後に、前記コンピュータデバイスが、前記アプリケーションを通して、前記ユーザデータのセットを展開するステップをさらに含むことを特徴とする請求項に記載の方法。
  6. 前記ユーザデータのセットを展開するステップの前に、前記コンピュータデバイスが、前記ユーザデータのセットを読み出すステップをさらに含むことを特徴とする請求項に記載の方法。
  7. 前記ユーザデータのセットを格納するステップは、電子カレンダデータを電子カレンダデータストレージサイトに格納することを含むことを特徴とする請求項に記載の方法。
  8. コンピュータによって実行されたとき、当該コンピュータに、ソフトウェアアプリケーション(以下、「アプリケーション」)のシャットダウン後のアプリケーションの状態を再構築する方法を実行させるコンピュータ実行可能な命令を備えたコンピュータ読み取り可能な記憶媒体であって、前記方法は、
    前記コンピュータが、前記アプリケーションの計画的シャットダウンが発生するかどうかを前記コンピュータが判定するステップと、
    前記判定するステップで、計画的シャットダウンが発生すると判定した場合に、前記コンピュータが、アプリケーション設定値データのカレント状態をセーブするステップであって、前記アプリケーション設定値のカレント状態は、前記コンピュータのディスプレイスクリーンに表示された前記アプリケーションのユーザインタフェースコンポーネントの形状、サイズ、位置および向きを含む、ステップと、
    前記判定するステップで、計画的シャットダウンが発生しないと判断された場合に、前記コンピュータが、前記アプリケーションのオペレーション中に周期的な頻度でアプリケーション設定値データを記憶媒体に格納するステップであって、前記アプリケーション設定値データはアプリケーションの設定値状態を表し、前記アプリケーション設定値状態は、前記コンピュータのディスプレイスクリーンに表示された前記アプリケーションのユーザインタフェースコンポーネントの位置と、前記表示されたユーザインタフェースコンポーネントのサイズとを表すデータを含む、ステップと、
    前記コンピュータが、1または複数のユーザデータのセットを記憶媒体に格納するステップであって、前記ユーザデータのセットは前記アプリケーションを通して表示される全てのユーザデータを含む、ステップと、
    前記コンピュータが、前記アプリケーションに予期しないシャットダウンが発生するかどうかを判定するステップであって、前記予期しないシャットダウンは、前記アプリケーションのユーザが当該アプリケーションのシャットダウンを予期しなかった状況で発生するアプリケーションのシャットダウンである、ステップと、
    前記アプリケーションに予期しないシャットダウンが発生するという判定に応答して、前記コンピュータデバイスが、前記アプリケーションを前記コンピュータデバイス上においてリスタートするステップと、
    前記アプリケーションに予期しないシャットダウンが発生するという判定に応答してリスタートした後に、前記コンピュータが、前記アプリケーション設定値データを前記記憶媒体から読み出すステップと、
    前記アプリケーションに予期しないシャットダウンが発生するという判定に応答してリスタートした後に、前記コンピュータデバイスが、前記ユーザデータのセットを前記記憶媒体から読み出すステップと、
    前記アプリケーションに予期しないシャットダウンが発生したという判定に応答してリスタートした後に、前記コンピュータデバイスが、前記リスタートされたアプリケーションを通して、前記ユーザデータのセットに含まれるユーザデータを表示するステップと
    を含むことを特徴とするコンピュータ読み取り可能な記憶媒体。
  9. 前記アプリケーション設定値データを格納するステップは、表示された全てのアプリケーションユーザインタフェースコンポーネントを表すデータを表すデータを格納することを含み、該データは、表示された全てのアプリケーションユーザインタフェースコンポーネントの位置、サイズおよび表示された全てのサブコンポーネントを表すデータを含み、
    前記表示するステップは、前記アプリケーションをリスタートした後、前記表示された全てのユーザインタフェースコンポーネントを展開することさらにを含む
    ことを特徴とする請求項に記載のコンピュータ読み取り可能な記憶媒体。
  10. 前記ユーザデータのセットを格納するステップは、電子カレンダデータを電子カレンダデータストレージサイトに格納することを含むことを特徴とする請求項に記載のコンピュータ読み取り可能な記憶媒体。
  11. コンピュータによって実行されたとき、当該コンピュータに、ソフトウェアアプリケーション(以下、「アプリケーション」)のシャットダウン後のアプリケーションの状態を再構築する方法を実行させるコンピュータ実行可能な命令を備えたコンピュータ読み取り可能な記憶媒体であって、前記方法は、
    前記アプリケーションの計画的シャットダウンが発生するかどうかを前記コンピュータが判定するステップと、
    前記判定するステップで、計画的シャットダウンが発生すると判定した場合に、前記コンピュータが、アプリケーション設定値データのカレント状態を電子カレンダデータストレージサイトに格納するステップであって、前記アプリケーション設定値データのカレント状態は、前記コンピュータ上で実行されている電子カレンダアプリケーションのアプリケーション設定値状態を表し、前記アプリケーション設定値データは、
    前記電子カレンダアプリケーションの、表示された第1のユーザインタフェースコンポーネントの位置と、
    前記表示された第1のユーザインタフェースコンポーネントのサイズと、
    を表すデータを含む、ステップと、
    前記コンピュータが、ユーザデータを電子カレンダデータストレージサイトに格納するステップであって、前記ユーザデータは、前記表示された第1のユーザインタフェースコンポーネントの中で前記電子カレンダアプリケーションを通して展開されるデータである、ステップと、
    前記アプリケーション設定値データおよび展開されたユーザデータを格納した後に、前記コンピュータが、前記電子カレンダアプリケーションの計画的シャットダウンを実行するステップであって、前記計画的シャットダウンはシステムアドミニストレータによってスケジューリングされる、ステップと、
    前記電子カレンダアプリケーションがシャットダウンされた後に、前記コンピュータが、前記アプリケーション設定値データを前記電子カレンダデータストレージサイトから読み出すステップと、
    前記コンピュータが、前記ユーザデータを前記電子カレンダデータストレージサイトから読み出すステップと、
    前記コンピュータが、前記電子カレンダアプリケーションを通して、前記ユーザデータを、前記第1のユーザインタフェースコンポーネントの位置の第2のユーザインタフェースコンポーネントにおいて表示するステップであって、前記第2のユーザインタフェースコンポーネントのサイズは、前記第1のユーザインタフェースコンポーネントのサイズである、ステップと
    を含むことを特徴とするコンピュータ読み取り可能な記憶媒体。
  12. 前記判定するステップで、計画的シャットダウンが発生しないと判定した場合に、1または複数のユーザデータのセットを前記電子カレンダアプリケーションのオペレーション中に周期的な頻度で前記電子カレンダデータストレージサイトに格納することを含むことを特徴とする請求項1に記載のコンピュータ読み取り可能な記憶媒体。
JP2008550343A 2006-01-12 2007-01-04 予期しないアプリケーションシャットダウン後のアプリケーション状態のキャプチャおよび再構築 Active JP5140001B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/331,405 2006-01-12
US11/331,405 US7574591B2 (en) 2006-01-12 2006-01-12 Capturing and restoring application state after unexpected application shutdown
US11/507,648 US7716461B2 (en) 2006-01-12 2006-08-21 Capturing and restoring application state after unexpected application shutdown
US11/507,648 2006-08-21
PCT/US2007/000245 WO2007087138A1 (en) 2006-01-12 2007-01-04 Capturing and restoring application state after unexpected application shutdown

Publications (3)

Publication Number Publication Date
JP2009524130A JP2009524130A (ja) 2009-06-25
JP2009524130A5 JP2009524130A5 (ja) 2010-02-25
JP5140001B2 true JP5140001B2 (ja) 2013-02-06

Family

ID=38309543

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008550343A Active JP5140001B2 (ja) 2006-01-12 2007-01-04 予期しないアプリケーションシャットダウン後のアプリケーション状態のキャプチャおよび再構築

Country Status (7)

Country Link
US (1) US7716461B2 (ja)
EP (1) EP1974286B1 (ja)
JP (1) JP5140001B2 (ja)
KR (1) KR101278822B1 (ja)
CN (1) CN101371250B (ja)
TW (1) TWI475484B (ja)
WO (1) WO2007087138A1 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7913113B2 (en) * 2007-03-23 2011-03-22 Microsoft Corporation Self-managed processing device
US8352784B2 (en) * 2007-12-17 2013-01-08 Microsoft Corporation Device settings restore point
US9189250B2 (en) * 2008-01-16 2015-11-17 Honeywell International Inc. Method and system for re-invoking displays
US8296776B2 (en) * 2008-06-06 2012-10-23 Apple Inc. Efficient mechanism for terminating applications
US8024732B2 (en) * 2008-07-28 2011-09-20 Microsoft Corporation State separation for application changes
US7975176B2 (en) * 2008-08-06 2011-07-05 International Business Machines Corporation Application failure recovery
US8291261B2 (en) * 2008-11-05 2012-10-16 Vulcan Technologies Llc Lightweight application-level runtime state save-and-restore utility
US7941700B2 (en) * 2009-03-02 2011-05-10 Microsoft Corporation Operating system-based application recovery
US8429395B2 (en) * 2009-06-12 2013-04-23 Microsoft Corporation Controlling access to software component state
US8898217B2 (en) 2010-05-06 2014-11-25 Apple Inc. Content delivery based on user terminal events
EP2641143B1 (en) * 2010-11-18 2023-06-21 Google LLC Delayed shut down of computer
TW201237630A (en) * 2011-03-01 2012-09-16 Wistron Corp Method and computer system for processing data in a memory
US20120317488A1 (en) * 2011-06-13 2012-12-13 Microsoft Corporation Techniques for adapting an interpretive run time application to multiple clients
US8904373B2 (en) * 2011-08-30 2014-12-02 Samir Gehani Method for persisting specific variables of a software application
US8561157B2 (en) 2011-09-23 2013-10-15 Canon U.S.A., Inc. Method, system, and computer-readable storage medium for establishing a login session
US10509705B2 (en) * 2011-11-04 2019-12-17 Veritas Technologies Llc Application protection through a combined functionality failure manager
US20130179838A1 (en) * 2012-01-05 2013-07-11 Microsoft Corporation Maintanence of terminated applications within the backstack
GB2503439A (en) * 2012-06-26 2014-01-01 Ibm Method of restarting a software system that has unintentional shutdown.
US8924785B2 (en) 2012-09-27 2014-12-30 Apple Inc. Power shutdown prediction for non-volatile storage devices
CN103902357A (zh) * 2012-12-27 2014-07-02 富泰华工业(深圳)有限公司 应用程序管理系统及方法
TWI475402B (zh) * 2013-01-09 2015-03-01 Giga Byte Tech Co Ltd 遠端備份系統及其遠端備份方法
US10200328B2 (en) * 2013-03-14 2019-02-05 Microsoft Technology Licensing, Llc Reminder views for facilitating draft reminders
CN104079368B (zh) * 2013-03-26 2019-03-01 腾讯科技(深圳)有限公司 一种应用软件的测试数据传输方法及服务器
US20140325450A1 (en) * 2013-04-25 2014-10-30 Infobank Corp. Method for executing application, terminal and server thereof
US20150165323A1 (en) * 2013-12-17 2015-06-18 Microsoft Corporation Analog undo for reversing virtual world edits
CN104199676A (zh) * 2014-02-24 2014-12-10 无锡天脉聚源传媒科技有限公司 一种还原界面内容的方法及装置
WO2016023160A1 (zh) * 2014-08-11 2016-02-18 华为技术有限公司 一种加载应用程序视图的方法、装置及电子终端
CN105718791B (zh) * 2014-12-01 2019-08-02 Tcl集团股份有限公司 一种保护应用程序数据的方法和装置
US9886283B2 (en) * 2015-05-01 2018-02-06 GM Global Technology Operations LLC Adaptive boot sequence for vehicle infotainment system
CN105425997B (zh) * 2015-11-11 2019-02-05 Oppo广东移动通信有限公司 一种用户终端重启后的界面显示方法及用户终端
CN105892818A (zh) * 2016-03-31 2016-08-24 北京金山安全软件有限公司 一种信息处理方法、装置及电子设备
US10061661B2 (en) 2016-06-14 2018-08-28 International Business Machines Corporation Managing the execution of software applications running on devices having device functions
US20180088960A1 (en) * 2016-09-23 2018-03-29 International Business Machines Corporation Providing highly available and scalable access to a restricted access service through a restful interface
US10848483B2 (en) * 2016-12-08 2020-11-24 Ricoh Company, Ltd. Shared terminal, communication system, and display control method, and recording medium
CN109976823A (zh) * 2017-12-27 2019-07-05 Tcl集团股份有限公司 一种应用程序启动方法、装置及终端设备
KR102406571B1 (ko) * 2017-12-28 2022-06-08 삼성전자주식회사 디스플레이 장치 및 그 동작방법
US11169815B2 (en) * 2018-01-16 2021-11-09 Bby Solutions, Inc. Method and system for automation tool set for server maintenance actions
JP6874706B2 (ja) * 2018-02-07 2021-05-19 オムロン株式会社 アプリケーションプログラムを生成する方法、装置、プログラム
CN109241765B (zh) * 2018-07-17 2022-06-17 奇酷互联网络科技(深圳)有限公司 移动终端和应用程序的权限管理方法、装置
US10637942B1 (en) * 2018-12-05 2020-04-28 Citrix Systems, Inc. Providing most recent application views from user devices
CN112333497A (zh) * 2020-09-28 2021-02-05 深圳Tcl新技术有限公司 用户数据显示方法、装置、设备及可读存储介质

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4827447A (en) * 1986-06-13 1989-05-02 International Business Machines Corporation Method for selectively returning to the beginning or the previous revision point in document edition
US5317752A (en) 1989-12-22 1994-05-31 Tandem Computers Incorporated Fault-tolerant computer system with auto-restart after power-fall
CA2106280C (en) 1992-09-30 2000-01-18 Yennun Huang Apparatus and methods for fault-tolerant computing employing a daemon monitoring process and fault-tolerant library to provide varying degrees of fault tolerance
JPH06214854A (ja) * 1993-01-18 1994-08-05 Canon Inc 情報処理装置
US5630142A (en) 1994-09-07 1997-05-13 International Business Machines Corporation Multifunction power switch and feedback led for suspend systems
US6393584B1 (en) * 1995-04-26 2002-05-21 International Business Machines Corporation Method and system for efficiently saving the operating state of a data processing system
US5712971A (en) 1995-12-11 1998-01-27 Ab Initio Software Corporation Methods and systems for reconstructing the state of a computation
US6336161B1 (en) * 1995-12-15 2002-01-01 Texas Instruments Incorporated Computer configuration system and method with state and restoration from non-volatile semiconductor memory
US6490594B1 (en) 1997-04-04 2002-12-03 Microsoft Corporation Database computer system with application recovery and dependency handling write cache
US5911060A (en) 1997-09-26 1999-06-08 Symantec Corporation Computer method and apparatus for unfreezing an apparently frozen application program being executed under control of an operating system
US6009258A (en) 1997-09-26 1999-12-28 Symantec Corporation Methods and devices for unwinding stack of frozen program and for restarting the program from unwound state
US6199179B1 (en) 1998-06-10 2001-03-06 Compaq Computer Corporation Method and apparatus for failure recovery in a multi-processor computer system
US6018805A (en) 1997-12-15 2000-01-25 Recipio Transparent recovery of distributed-objects using intelligent proxies
US5996073A (en) 1997-12-18 1999-11-30 Tioga Systems, Inc. System and method for determining computer application state
US6122752A (en) 1998-06-19 2000-09-19 At&T Corporation System and method for characterizing and repairing intelligent systems
TW374870B (en) * 1998-08-26 1999-11-21 Asustek Comp Inc UPS method of suspending, resuming and turning on computers
AU1075101A (en) 1999-10-05 2001-05-10 Ejasent Inc. Virtual resource id mapping
US6662310B2 (en) 1999-11-10 2003-12-09 Symantec Corporation Methods for automatically locating url-containing or other data-containing windows in frozen browser or other application program, saving contents, and relaunching application program with link to saved data
KR100358278B1 (ko) 2000-06-07 2002-10-25 (주) 사이텍소프트 시스템 장애 자가 진단/복구기능을 갖는 컴퓨터 시스템 및그 방법
US6968469B1 (en) * 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
KR20020026814A (ko) 2000-10-02 2002-04-12 포만 제프리 엘 컴퓨터 시스템의 중지 및 재개 동작을 위한 방법 및 장치
US6785783B2 (en) * 2000-11-30 2004-08-31 International Business Machines Corporation NUMA system with redundant main memory architecture
US20030051186A1 (en) 2001-09-11 2003-03-13 Sun Microsystems, Inc. Methods to restore tests execution after unexpected crashes for use in a distributed test framework
JP2003167749A (ja) * 2001-09-18 2003-06-13 Sony Corp ユーザの簡易切り替え機能を備えた情報処理装置及びこれに用いるプログラム
CN1332292C (zh) * 2001-12-07 2007-08-15 株式会社Ntt都科摩 移动通信终端、应用程序执行状态控制方法
US7421490B2 (en) 2002-05-06 2008-09-02 Microsoft Corporation Uniquely identifying a crashed application and its environment
US20030236826A1 (en) * 2002-06-24 2003-12-25 Nayeem Islam System and method for making mobile applications fault tolerant
US7181611B2 (en) * 2002-10-28 2007-02-20 Sandisk Corporation Power management block for use in a non-volatile memory system
US7131011B2 (en) * 2002-10-30 2006-10-31 Microsoft Corporation System and method for preserving state data of a personal computer in a standby state in the event of an AC power failure
US20040153973A1 (en) * 2002-11-21 2004-08-05 Lawrence Horwitz System and method for automatically storing and recalling application states based on application contexts
TW591392B (en) * 2003-01-08 2004-06-11 First Int Computer Inc Data processing method with status recovery function
JP2004252769A (ja) * 2003-02-20 2004-09-09 Nec Corp プログラム実行状態保存・復元情報処理装置、方法、及びプログラム
CN100347991C (zh) * 2003-03-14 2007-11-07 吉林中软吉大信息技术有限公司 数据网集中监控监测系统
US7225448B2 (en) 2003-08-14 2007-05-29 Lenovo (Singapore) Pte. Ltd. System and method for hibernating application state data on removable module
CN1208721C (zh) * 2003-09-19 2005-06-29 清华大学 基于PowerPC处理器结构的分级任务切换方法
US7484220B2 (en) 2004-05-26 2009-01-27 Qualcomm Incorporated Method, software and apparatus for using application state history information when re-launching applications
US7392429B2 (en) * 2004-12-22 2008-06-24 Microsoft Corporation System and method for maintaining persistent state data

Also Published As

Publication number Publication date
CN101371250B (zh) 2011-05-25
WO2007087138A1 (en) 2007-08-02
US7716461B2 (en) 2010-05-11
TWI475484B (zh) 2015-03-01
EP1974286A1 (en) 2008-10-01
CN101371250A (zh) 2009-02-18
EP1974286A4 (en) 2009-04-08
KR101278822B1 (ko) 2013-06-25
JP2009524130A (ja) 2009-06-25
TW200805160A (en) 2008-01-16
US20070162785A1 (en) 2007-07-12
EP1974286B1 (en) 2015-11-18
KR20080083306A (ko) 2008-09-17

Similar Documents

Publication Publication Date Title
JP5140001B2 (ja) 予期しないアプリケーションシャットダウン後のアプリケーション状態のキャプチャおよび再構築
US7574591B2 (en) Capturing and restoring application state after unexpected application shutdown
US8775378B2 (en) Consistent backup of electronic information
US9354982B2 (en) Manipulating electronic backups
US20150373107A1 (en) Managing applications on an electronic device
JP6342070B2 (ja) ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム
CN104216802B (zh) 一种内存数据库恢复方法和设备
JP2015212879A (ja) 情報処理装置及びその制御方法、並びにプログラム
JP5921292B2 (ja) 情報処理装置、制御方法、およびプログラム
JP6305667B1 (ja) 制御装置および編集装置
JP2010140316A (ja) 情報処理端末、モジュールアップデート方法およびプログラム
JP2018045725A (ja) 情報処理装置及びその制御方法、並びにプログラム
CN103309691A (zh) 信息处理设备及其快速启动方法
JP2009265923A (ja) ソフトウェア書き換え装置及びソフトウェア書き換え方法及びソフトウェア書き換えプログラム
JP5149849B2 (ja) システム環境変更・復元・修正履歴管理方法
JP4788233B2 (ja) デバイス管理装置、デバイス管理プログラム
JP5386969B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Garlan Software Architectures for Task-Oriented Computing.
WO2003034191A1 (fr) Processeur d'informations, procede de recuperation et programme de recuperation
JP2011192219A (ja) 復元装置及び復元プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100104

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121009

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121102

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121116

R150 Certificate of patent or registration of utility model

Ref document number: 5140001

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151122

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250