(57)【要約】【課題】  アプリケーションがエラーで中途終了した場合には、中途終了前後での処理の連続性を保って処理を再開することが出来ない。【解決手段】  アプリケーションを実行する制御部と、前記アプリケーションにより生成されるデータを記録する記録部と、を備える情報処理装置において、記録部は、アプリケーションが処理を実行する度にアプリケーションの実行結果を示すデータを記録し、制御部は、アプリケーションが中途終了した後アプリケーションを再起動した場合には、記録部に記録されたアプリケーションの実行結果を示すデータを参照してアプリケーションの再開ポイントを決定し、アプリケーションが中途終了するまでに生成されたデータを用いて処理を再開する。【選択図】  図１
2011107993.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを実行する制御部と、前記アプリケーションにより生成されるデータを記録する記録部と、を備える情報処理装置において、
前記記録部は、前記アプリケーションが処理を実行する度に前記アプリケーションの実行結果を示すデータを記録し、
前記制御部は、前記アプリケーションが中途終了した後前記アプリケーションを再起動した場合には、前記記録部に記録されたアプリケーションの実行結果を示すデータを参照して前記アプリケーションの再開ポイントを決定し、前記アプリケーションが中途終了するまでに生成されたデータを用いて処理を再開することを特徴とする情報処理装置。
【請求項２】
請求項１記載の情報処理装置において、
前記記録部は、前記アプリケーションが処理を実行する度に、前記アプリケーションの実行結果を示すデータとして、前記アプリケーションの処理対象物の個品ＩＤおよび個品状態を組として記録し、
前記制御部は、前記記録部に記録された前記アプリケーションの処理対象物の個品ＩＤおよび個品状態を参照して前記アプリケーションの再開ポイントを決定することを特徴とする情報処理装置。
【請求項３】
請求項２記載の情報処理装置において、
前記個品状態は、前記アプリケーションの前記個品に対する進捗状況を示す情報であることを特徴とする情報処理装置。
【請求項４】
請求項１から３の何れか記載の情報処理装置において、
前記制御部は、前記アプリケーションの前記個品に対する進捗状況を示す情報を表示部に出力することを特徴とする情報処理装置。
【請求項５】
アプリケーションを実行する制御部と、前記アプリケーションにより生成されるデータを記録する記録部と、ユーザからの入力を受け付ける入力部と、を備える情報処理装置において、
前記記録部は、前記アプリケーションが処理を実行する度に前記アプリケーションの実行結果を示すデータを記録し、
前記制御部は、前記アプリケーションが中途終了した後前記アプリケーションを再起動した場合には、前記記録部に記録されたアプリケーションの実行結果を示すデータを表示部に出力し、前記入力部からユーザにより入力された情報に基づいて、前記アプリケーションを中途終了時点から再開するか、前記アプリケーションを初期時点から再開するかを決定することを特徴とする情報処理装置。
【請求項６】
請求項５記載の情報処理装置において、
前記制御部は、前記アプリケーションを中途終了時点から再開する場合には、前記アプリケーションが中途終了するまでに生成されたデータを用いて処理を再開することを特徴とする情報処理装置。
【請求項７】
請求項６記載の情報処理装置において、
前記記録部は、前記アプリケーションが処理を実行する度に、前記アプリケーションの実行結果を示すデータとして、前記アプリケーションの処理対象物の個品ＩＤおよび個品状態を組として記録し、
前記制御部は、前記アプリケーションを中途終了時点から再開する場合には、前記記録部に記録された前記アプリケーションの処理対象物の個品ＩＤおよび個品状態を参照して前記アプリケーションの再開ポイントを決定することを特徴とする情報処理装置。
【請求項８】
請求項７記載の情報処理装置において、
前記個品状態は、前記アプリケーションの前記個品に対する進捗状況を示す情報であることを特徴とする情報処理装置。
【請求項９】
情報処理装置および前記情報処理装置とネットワークを介して接続されたサーバを含むシステムにおいて、
前記情報処理装置は、アプリケーションを実行する制御部、前記アプリケーションにより生成されるデータを記録する記録部および前記サーバとネットワークを介してデータを送受信する通信部を備え、
前記サーバは、前記情報処理装置とネットワークを介してデータを送受信する通信部および前記情報処理装置から受信したデータを記録する記録部を備え、
前記情報処理装置の記録部は、前記アプリケーションが処理を実行する度に前記アプリケーションの実行結果を示すデータを記録し、
前記制御部は、前記アプリケーションが中途終了した後前記アプリケーションを再起動した場合には、前記記録部に記録されたアプリケーションの実行結果を示すデータを参照して前記アプリケーションの再開ポイントを決定し、前記アプリケーションが中途終了するまでに生成されたデータを用いて処理を再開し、
前記情報処理装置の通信部は、前記アプリケーションの実行結果を示すデータを前記サーバに送信し、
前記サーバの通信部は、前記情報処理装置から前記アプリケーションの実行結果を示すデータを受信し、
前記サーバの記録部は、前記アプリケーションの実行結果を示すデータを記録することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびシステムに関し、特に、アプリケーションの再開時の技術に関する。
【背景技術】
【０００２】
特許文献１には、リカバリ・リスタート機能を備えたバッチ処理システムとして、業務データベースに対するバッチジョブの中途終了後の再開始を、中途終了前後で処理の連続性を確保するシステムが記載されている。中途終了後の再開始時に、チェックポイントデータベースに記録されているジョブ進行管理情報に基づいてジョブを開始することでこれを実現している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−８５０２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１に記載のシステムでは、システムは業務データベースの他にチェックポイントデータベースに処理の経過を登録しなくてはならないため、業務データベースとチェックポイントデータベースの間で一定間隔で処理の進捗を同期させている。
【０００５】
しかしながら、特許文献１記載の技術では両者の同期を取ることが出来ない場合がある。例えば、当該一定間隔の同期タイミングの間にエラーが発生して強制終了したような場合には、チェックポイントデータベースには、強制終了の時点からみて１つ前の時点でのチェックポイントが記録された状態となる一方、アプリケーションの処理結果を記録する業務データベースには、当該１つ前のチェックポイント以降の処理結果が記録され、両者の間で整合性を取ることができない。このような状態で処理を再開した場合には、間違った処理結果を生ずるおそれがある。  また、複数のクライアントでアプリケーションを実行し、その処理結果をサーバのデータベースで一括して記録するようなシステムにおいては、複数のクライアントから整合性の取れた処理結果と整合性の取れない処理結果がサーバのデータベースに混在することになるためこの問題が更に顕在化する可能性もある。
【０００６】
本発明は、上記に鑑み、中途終了前後での処理の連続性を保って処理を再開することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は以下の構成を備える。即ち、アプリケーションを実行する制御部と、アプリケーションにより生成されるデータを記録する記録部と、を備える情報処理装置において、記録部は、アプリケーションが処理を実行する度にアプリケーションの実行結果を示すデータを記録し、制御部は、アプリケーションが中途終了した後アプリケーションを再起動した場合には、記録部に記録されたアプリケーションの実行結果を示すデータを参照してアプリケーションの再開ポイントを決定し、アプリケーションが中途終了するまでに生成されたデータを用いて処理を再開する。
【発明の効果】
【０００８】
本発明によれば、中途終了前後での処理の連続性を保って処理を再開することができる。
【図面の簡単な説明】
【０００９】
【図１】第一の実施形態におけるシステムの構成図。
【図２】業務データベースの具体例を示す構成図。
【図３】システムの業務ファイル群の具体例を示す構成図。
【図４】第一の実施形態における、システムの状態判定を基に業務アプリケーションを実行する処理フロー図。
【図５】第一の実施形態における、システムの状態から処理の進捗度を調査する処理フロー図。
【図６】第一の実施形態における、アプリケーションの実行の処理フロー図。
【図７】第一の実施形態における、処理の進捗と次の操作の指示を示すメニュー表示画面。
【図８】第二の実施形態におけるサーバシステムとクライアントシステムの構成図
【図９】サーバシステムのマスタデータベースの具体例を示す構成図。
【図１０】クライアントシステムのクライアント業務データベースの具体例を示す構成図。
【図１１】クライアントシステムの業務ファイル群の具体例を示す構成図。
【図１２】サーバシステムの履歴データベースの具体例を示す構成図。
【図１３】第二の実施形態における、システムの状態判定を基に業務アプリケーションを実行する処理フロー図。
【図１４】第二の実施の形態における、システムの状態から処理の進捗度を調査する処理フロー図。
【図１５】第二の実施の形態における、アプリケーションの実行の処理フロー図。
【図１６】クライアントシステムがサーバシステムからマスタデータを取得する処理フロー図。
【図１７】クライアントシステムがサーバシステムに履歴データを登録する処理フロー図。
【図１８】第二の実施形態における、処理の進捗と次の操作の指示を示すメニュー表示画面。
【発明を実施するための形態】
【００１０】
本発明の実施形態においては、例えば、アプリケーション実行中にエラーが発生するなどして中途終了した後に処理を再開する場合に、業務データベースや業務ファイルに反映されたアプリケーションの処理内容や実行結果を参照することにより、中途終了前後での処理の連続性を保って処理を再開することができる。即ち、実行結果が、業務データベースや業務ファイルにどのように反映されたのかを検索し、それを基にシステムの状態を判定することで、アプリケーションの処理がどこまで進んだか、その進捗度を測定することが可能となる。これが可能となる前提として、アプリケーションの処理が実行されると、その実行結果が業務データベースや業務ファイルに反映されるものとする。ここでいうアプリケーションの処理とは、プロセス単位、スレッド単位、処理内容などに応じて区切られた各処理、アプリケーションの一部または全体の処理等を言う。
【００１１】
なお、中途終了というときは、例えば、アプリケーション実行中にエラーが発生するなどして異常終了した場合や、ユーザ動作その他の要因によりアプリケーションが強制終了した場合など、アプリケーションが予期せぬ形で終了した場合を指すものとする。
【実施例１】
【００１２】
本発明の一実施形態を図１乃至図７を用いて説明する。本実施の形態においては、ユーザによる業務アプリケーションの立ち上げから業務アプリケーションの終了までにシステムが行う処理方法を想定する。業務アプリケーション立ち上げ時に、システムの状態を判定し、業務アプリケーションがどこまで操作され、ユーザが次に何を操作すれば良いのか、その進捗度をメニューに表示するものである。ただし、これにより本発明が限定されるものではなく、システムがシステム自身の状態判定を行って処理を自動的に進めるようにしても良い。この場合には、進捗度をメニュー画面に表示したり、ユーザからの指示を待つ必要はない。
【００１３】
図１は、本発明を実施するための最良の形態において、システムの状態判定を行い、操作の進捗度をメニュー表示するシステム１００の一利用形態における構成図である。システム１００は、業務名の一覧及び次の操作の指示を示したメニューを生成するメニュー生成部１０１と、業務アプリケーションの実行を行うアプリ実行部１０２と、次の操作の指示に必要なシステムの状態判定を行う状態判定部１０３を備える。なお、これらの機能部は、本実施形態のシステム１００の有する機能を実現するプログラム１０４を構成することで実現できる。このプログラム１０４はシステムの適宜な記憶装置（メモリなど）１０５に格納されていて、演算装置たるＣＰＵを含む制御部１０６が読み出して実行する。以下で説明する本実施形態の各動作処理や、各図のフローチャートで示される処理は、演算装置たるＣＰＵを含む制御部１０６により適宜プログラムが読み出されて実行される。また、システム１００は、ユーザからの入力とユーザへの出力を行う入出力部１０７と、業務アプリケーションの実行により更新される業務データベース１０８と、業務ファイル群１０９も備えている。
【００１４】
次に、前記した業務データベース１０８、業務ファイル群１０９についてその詳細を説明する。
【００１５】
図２に業務データベース１０８の例を示す。業務データベース１０８は、主テーブル２００と、履歴テーブル２１０から構成される。主テーブル２００は、システム１００が業務アプリケーションを動作するために情報源として利用するテーブルで、主キーＡ２０１で構成される。主キーＡ２０１には業務アプリケーションが必要とする任意のデータ、例えば業務で扱う商品の商品ＩＤなどを格納する。履歴テーブル２１０は、主キーＢ２１１と、属性２１２で構成される。主キーＢ２１１は履歴テーブル２１０のキーとなるカラムで、例えば商品を個別に識別するための個品ＩＤなどを格納する。属性２１２は主キーＢ２１１で特定された個品の属性を示すもので、例えば商品の個品の状態（輸送開始、輸送終了など）を示す。
【００１６】
図３に業務ファイル群１０９の例を示す。業務ファイル群１０９は、作業ファイル３００から構成される。作業ファイル３００は業務を行う際に生成・更新されるファイルで、例えば、商品の個品ＩＤ、個品の状態を示す。
【００１７】
続いて、本実施の形態における処理動作について説明する。図４は、業務アプリケーションがエラーなどで強制終了されたような場合に、再度業務アプリケーションを再開した際の処理フローを示す。具体的には、業務アプリケーションを起動し、システムの状態を判定して、状態に従って次の操作の指示を示すメニューをユーザに表示し、ユーザの操作を受け付けて前記業務アプリケーションを実行し、前記業務アプリケーションが終了するまでの処理フローである。なお、ここではメニューをユーザに表示し、ユーザの操作を受け付けて業務アプリケーションを実行する例を示すが、ユーザの操作を受け付けることなく業務アプリケーションが自動的に処理を進める構成とすることも出来る。。本処理フローの制御は、演算装置たるＣＰＵを含む制御部１０６がプログラムを読み出して行うものとする。
【００１８】
処理Ｓ４００では、ユーザがシステム１００の入出力部１０７を操作し、業務アプリケーションを起動する。
【００１９】
処理Ｓ４０１では、アプリ実行部１０２が業務アプリケーションの初期画面をポップアップで入出力部１０７に表示する。初期画面は、初期スタートボタンと再スタートボタンで構成される。ユーザは初期画面で、初期スタート、再スタートの何れかのボタンを選択して押下する。
【００２０】
処理Ｓ４０２では、メニュー生成部１０１が処理Ｓ４０１で初期スタート、再スタートのどちらのボタンが押下されたのか判定する。初期スタートボタン押下の場合は処理Ｓ４０３に進み、再スタートボタン押下の場合は処理Ｓ４０４に進む。
【００２１】
処理Ｓ４０３では、アプリ実行部１０２がシステムの状態を初期化する。システムの状態の初期化に際しては、業務データベース１０８、業務ファイル群１０９の初期化を行う。初期化の具体的な例としては、主テーブル２００、履歴テーブル２１０の全レコードを削除し、作業ファイル３００を削除する。処理Ｓ４０５に進む。
【００２２】
処理Ｓ４０４では、状態判定部１０３が業務データベース１０８や業務ファイル群１０９を参照し、システムの状態を判定する。システムの状態を判定することで、業務アプリケーションの処理がどこまで進捗しているか調査できる。システムの状態に応じて、記憶装置１０５に業務アプリケーションの進捗度のパラメータを設定する。
【００２３】
処理Ｓ４０５では、メニュー生成部１０１が業務アプリケーションの進捗度に応じたメニュー画面（図７参照）を生成する。記憶装置１０５に記憶されている進捗度のパラメータを基に、どこまで処理が終了し、どこから処理が未終了なのかを判定する。生成される前記メニュー画面には、処理が終了した項目に関しては「終了」の文字列を表示し、処理が実施されておらず終了していない項目に関しては、「未終了」の文字列を、入出力部１０７に表示する。
【００２４】
処理Ｓ４０６では、アプリ実行部１０２がユーザからの操作を受け付け、業務アプリケーションを実行する。業務アプリケーションの実行中に、業務データベース１０８、業務ファイル群１０９を参照・更新し、ユーザの業務遂行を支援する。なお、アプリケーションの実行においては、新規に実行された場合以外は、処理進捗調査（処理Ｓ４０４）で記憶装置１０５に記憶された進捗度のパラメータに応じて、アプリケーションを途中から実行する。
【００２５】
処理Ｓ４０７では、アプリ実行部１０２がユーザからの業務アプリケーションの操作終了の選択を入出力部１０７で受け付け、業務アプリケーションを終了する。
【００２６】
次に、前記フローに含まれる処理のうち、処理Ｓ４０４について詳細フローを示して詳述する。処理Ｓ４０４での状態判定部１０３の詳細な処理フローを図５に示す。
【００２７】
処理Ｓ５００では、記憶装置１０５の業務アプリケーションの進捗度のパラメータを初期化する。具体的には、例えば、進捗度のパラメータを「業務処理開始」に変更する。
【００２８】
処理Ｓ５０１では、業務データベース１０８の特定のテーブルにデータが存在するか検索する。例えば、主テーブル２００の主キーＡ２０１の何れかのレコードにデータが存在するか検索する。データが存在すれば処理Ｓ５０２に進み、データが存在しなければ処理Ｓ５０３に進む。
【００２９】
処理Ｓ５０２では、記憶装置１０５で保持されている業務アプリケーションの進捗度のパラメータを更新する。具体的には、処理Ｓ５０１でデータが存在していることが判明したので、１番目の業務の処理が終了していると判定して、進捗度のパラメータを「業務処理１終了」に更新する。
【００３０】
処理Ｓ５０３では、業務データベース１０８の特定のテーブルの特定のカラムに、特定の文字列があるか検索する。例えば、履歴テーブル２１０の属性２１２の全てのレコードが「輸送開始」の文字列かどうか検索する。特定の文字列になっていれば、処理Ｓ５０４に進み、そうでなければ、処理Ｓ５０５に進む。
【００３１】
処理Ｓ５０４では、記憶装置１０５で保持されている進捗度のパラメータを更新する。具体的には、処理Ｓ５０３でカラムの文字列が特定の文字列に一致していることが判明したので、２番目の業務の処理が終了していると判定して、進捗度のパラメータを「業務処理２終了」に更新する。
【００３２】
処理Ｓ５０５では、業務ファイル群１０９に特定のファイルが存在するか検索する。例えば、作業ファイル３００が存在するか検索する。特定のファイルが存在すれば処理Ｓ５０６に進み、特定のファイルが存在しなければ処理Ｓ５０７に進む。
【００３３】
処理Ｓ５０６では、記憶装置１０５で保持されている進捗度のパラメータを更新する。具体的には、処理Ｓ５０５で特定のファイルが存在していることが判明したので、３番目の業務の処理が終了していると判定して、進捗度のパラメータを「業務処理３終了」に更新する。
【００３４】
処理Ｓ５０７では、業務ファイル群１０９の特定のファイルに、特定の文字列があるか検索する。例えば、作業ファイル３００の最初のカンマの後が「輸送終了」の文字列かどうか検索する。特定の文字列に一致していれば、処理Ｓ５０８に進み、そうでなければ、処理Ｓ４０４を終了する。
【００３５】
処理Ｓ５０８では、記憶装置１０５で保持されている進捗度のパラメータを更新する。具体的には、処理Ｓ５０７でファイルの文字列が特定の文字列に一致していることが判明したので、４番目の業務の処理が終了していると判定して、進捗度のパラメータを「業務処理４終了」に更新する。処理Ｓ４０４を終了する。以上の一連の処理により、中途終了する前に業務アプリケーションにより実行された業務アプリケーションの進捗度が記録装置１０５に反映される。
【００３６】
続いて、図４で述べたフローに含まれる処理のうち、処理Ｓ４０６について詳細フローを示して詳述する。処理Ｓ４０６でのアプリ実行部１０２の詳細な処理フローを図６に示す。
【００３７】
処理Ｓ６０１で、ユーザの業務アプリケーションの操作が、業務データベース１０８の操作なのか、業務ファイル群１０９の操作なのか、判別する。判別は、ユーザからの指示を受けて判別処理を行っても良く、また、図４および図５で説明した処理進捗調査（Ｓ４０４）の結果に基づいて業務アプリケーションが自動的に判別処理を行っても良い。業務データベース１０８の操作の場合、処理Ｓ６０２に進み、業務ファイル群１０９の操作の場合、処理Ｓ６０３に進む。
【００３８】
処理Ｓ６０２では、業務データベース１０８の任意のテーブルのレコードのカラムに値を書き込む。どのテーブルのレコードのカラムに値を入れるかは、業務に依存する。例えば、輸送開始業務であれば、履歴テーブル２１０の主キーＢ２１１に、輸送業務の対象となる商品の個品ＩＤを書き込み、属性２１２に「輸送開始」という文字列を書き込む。処理Ｓ６０５に進む。
【００３９】
処理Ｓ６０３では、業務ファイル群１０９に任意のファイルを作成する。どのファイルを作成するかは、業務に依存する。例えば、輸送終了業務であれば、作業ファイル３００を作成する。
【００４０】
処理Ｓ６０４では、処理Ｓ６０３で作成された前記ファイルに任意のデータを書き込む。どのようなデータを書き込むのか、データの書き込み方法はファイルへの追記か上書きかは、業務に依存する。例えば、輸送終了業務であれば、作業ファイル３００に、商品の個品ＩＤ・商品の状態「FFC00000 8CF31906 , 輸送終了」を上書きする。
【００４１】
処理Ｓ６０５では、業務処理が全て終わったかどうか判定する。業務処理が全て終わっておらず、残りがある場合は、処理Ｓ６０１に戻る。業務処理が全て終わり、残りがない場合は、処理Ｓ４０６を終了する。
【００４２】
なお、処理Ｓ４０６でのアプリケーションの実行においては、新規に実行された場合以外は、図４および図５で説明した処理進捗調査（処理Ｓ４０４）で記憶装置１０５に記憶された進捗度のパラメータに応じて、アプリケーションを途中から実行する。例えば、処理Ｓ４０４で、進捗度のパラメータが「業務処理開始」であれば処理Ｓ６０１から実行するものとし、進捗度のパラメータが「業務処理１終了」であれば処理Ｓ６０２から実行するものとし、進捗度のパラメータが「業務処理２終了」であれば処理Ｓ６０３から実行するものとし、進捗度のパラメータが「業務処理３終了」であれば処理Ｓ６０４から実行するものとし、進捗度のパラメータが「業務処理４終了」であれば処理Ｓ６０５から実行するものとする。つまり、進捗度のパラメータが、アプリケーションの再開のためのポイント（再開ポイント）となる。
【００４３】
処理Ｓ４０５で生成・表示するメニュー画面は、例えば図７に示す画面となる。図７のメニュー画面は、業務名７０１と、進捗状況７０２で構成される。業務名７０１は、業務のメニュー一覧を示し、ユーザは上から順に業務名を選択して、業務を遂行していく。進捗状況７０２は、業務の進捗度を示し、業務名７０１の業務が終了したものには「終了」と表示し、未実施で終了していないものに関しては「未終了」と表示する。
【００４４】
以上のように、実施例１によれば、中途終了前後での処理の連続性を保って処理を再開することができる。
【実施例２】
【００４５】
本発明の第２の実施形態を図８乃至図１８を用いて説明する。
【００４６】
図８は、業務アプリケーションを実行するクライアントシステム８００と、クライアントシステムとデータを同期するサーバシステム８５０で実現するものであり、その構成図を示したものである。サーバシステム８５０では、業務のマスタデータ（商品情報、業務スケジュールなど）を管理し、クライアントシステム８００がマスタデータをダウンロードして業務アプリケーションに利用する。業務アプリケーションは商品の輸送を管理するアプリケーションで、商品や商品を入れる容器に貼付されたＲＦタグを読み取り、輸送の履歴を残す。輸送の履歴は、輸送が終了した後に、クライアントシステム８００からサーバシステム８５０にアップロードされ、履歴情報としてサーバシステム８５０に格納される。なお、説明を簡単にするため、ここではクライアントシステム８００を１つにしているが、複数のクライアントシステム８００は複数存在し、それぞれがサーバシステム８００にネットワークを介して接続されるようにしても良い。
【００４７】
クライアントシステム８００は、ＲＦタグの読み取りを行うＲＦタグ読取部８０１と、業務名の一覧及び次の操作の指示を示したメニューを生成するメニュー生成部８０２と、業務アプリケーションの実行を行うアプリ実行部８０３と、次の操作の指示に必要なシステムの状態判定を行う状態判定部８０４を備える。ここで、ＲＦタグ読取部８０１は、商品の個品８２０に貼付されたＲＦタグ８２１や、複数の個品８２０を纏めて格納する容器８３０に貼付されたＲＦタグ８３１に格納されたユニークな識別番号などを読み取るものである。なお、これらの機能部は、本実施形態のクライアントシステム８００の有する機能を実現するプログラム８０５を構成するものとできる。このプログラム８０５はシステムの適宜な記憶装置（メモリなど）８０６に格納されていて、演算装置たるＣＰＵを含む制御部８０７が読み出して実行する。以下で説明する本実施形態の各動作処理や、各図のフローチャートで示される処理は、演算装置たるＣＰＵを含む制御部８０７により適宜プログラムが読み出されて実行される。また、クライアントシステム８００は、サーバシステム８５０と通信回線８４０を介して通信を行う通信部８０８と、ユーザからの入力とユーザへの出力を行う入出力部８０９と、業務アプリケーションの実行により更新されるクライアント業務データベース８１０と、業務ファイル群８１１も備えている。
【００４８】
一方、サーバシステム８５０は、クライアントからのアクセス制御を行う認証部８５１と、マスタデータベース８５８からマスタ情報を抽出してクライアントに送信するデータ抽出部８５２と、クライアントから履歴情報を受信し履歴データベース８５９に登録するデータ登録部８５３を備える。なお、これらの機能部は、本実施形態のサーバシステム８５０の有する機能を実現するプログラム８５４を構成するものとできる。このプログラム８５４はシステムの適宜な記憶装置（メモリなど）８５５に格納されていて、演算装置たるＣＰＵを含む制御部８５６が読み出して実行する。以下で説明する本実施形態の各動作処理や、各図のフローチャートで示される処理は、演算装置たるＣＰＵを含む制御部８５６により適宜プログラムが読み出されて実行される。また、サーバシステム８５０は、クライアントシステム８００と通信回線８４０を介して通信を行う通信部８５７と、業務のマスタ情報を格納するマスタデータベース８５８と、業務の履歴情報を格納する履歴データベース８５９も備えている。
【００４９】
次に、前記したマスタデータベース８５８、クライアント業務データベース８１０、業務ファイル群８１１、履歴データベース８５９についてその詳細を説明する。
【００５０】
図９にマスタデータベース８５８の例を示す。マスタデータベース８５８は、輸送スケジュールテーブル９００から構成される。
【００５１】
輸送スケジュールテーブル９００は、サーバシステム８５０に輸送スケジュールを格納するためのテーブルで、商品ＩＤ９０１と、個数９０２と、輸送開始施設９０３と、輸送開始予定時刻９０４と、輸送終了施設９０５と、輸送終了予定時刻９０６で構成される。商品ＩＤ９０１は、輸送業務で取り扱う商品のＩＤを示す。個数９０２は、商品ＩＤ９０１の個数を示す。輸送開始施設９０３は、商品ＩＤ９０１が輸送される際の輸送の開始地点を示す。輸送開始予定時刻９０４は、商品ＩＤ９０１が輸送される際の輸送の開始時刻（予定）を示す。輸送終了施設９０５は、商品ＩＤ９０１が輸送される際の輸送の終了地点を示す。輸送終了予定時刻９０６は、商品ＩＤ９０１が輸送される際の輸送の終了時刻（予定）を示す。
【００５２】
図１０にクライアント業務データベース８１０の例を示す。クライアント業務データベース８１０は、輸送スケジュールテーブル１０００と、容器−個品紐付テーブル１０１０と、輸送実績テーブル１０２０から構成される。
【００５３】
輸送スケジュールテーブル１０００は、クライアントシステム８００がサーバシステム８５０から取得した輸送スケジュールを格納するテーブルで、商品ＩＤ１００１と、個数１００２と、輸送開始施設１００３と、輸送開始予定時刻１００４と、輸送終了施設１００５と、輸送終了予定時刻１００６で構成される。商品ＩＤ１００１は、輸送業務で取り扱う商品のＩＤを示す。個数１００２は、商品ＩＤ１００１の個数を示す。輸送開始施設１００３は、商品ＩＤ１００１が輸送される際の輸送の開始地点を示す。輸送開始予定時刻１００４は、商品ＩＤ１００１が輸送される際の輸送の開始時刻（予定）を示す。輸送終了施設１００５は、商品ＩＤ１００１が輸送される際の輸送の終了地点を示す。輸送終了予定時刻１００６は、商品ＩＤ１００１が輸送される際の輸送の終了時刻（予定）を示す。
【００５４】
容器−個品紐付テーブル１０１０は、商品の個品８２０の容器８３０への格納状況を保持するテーブルで、個品ＩＤ１０１１と、容器ＩＤ１０１２で構成される。個品ＩＤ１０１１は、個品８２０のＲＦタグ８２１に格納されたユニークな識別番号である。また、容器ＩＤ１０１２は、容器８３０のＲＦタグ８３１に格納されたユニークな識別番号である。
【００５５】
輸送実績テーブル１０２０は、輸送業務の履歴情報を格納するテーブルで、個品ＩＤ１０２１と、ステータス１０２２、輸送開始時刻１０２３、輸送終了時刻１０２４で構成される。個品ＩＤ１０２１は、輸送で扱った商品の個品８２０を示す。個品ＩＤには、輸送業務の作業時にＲＦタグ読取部８０１が読み取った容器８３０のＲＦタグ８３１の識別番号を基に、容器−個品紐付テーブル１０１０を検索して、容器ＩＤ１０１２に紐付いた個品ＩＤ１０１１の値を格納する。ステータス１０２２は、個品８２０が輸送業務でどのような状態か（輸送開始か、輸送終了か）を示す。ステータス１０２２は、前記輸送業務の作業によって容器８３０に入っている個品８２０の状態がどのように変化したかを示すもので、輸送開始の作業であれば「輸送開始」を記入し、輸送終了の作業であれば「輸送終了」を記入する。輸送開始時刻１０２３は、ＲＦタグ８３１が読み取られ、ステータス１０２２に「輸送開始」と格納された時刻を記入する。輸送終了時刻１０２４は、ＲＦタグ８３１が読み取られ、ステータス１０２２に「輸送終了」と格納された時刻を記入する。
【００５６】
図１１に業務ファイル群８１１の例を示す。業務ファイル群８１１は、送信ファイル１１００から構成される。送信ファイル１１００は、輸送業務を行う際の作業の履歴を記録したファイルで、各行は、例えば、個品ＩＤ１１０１、ステータス１１０２、輸送開始時刻１１０３、輸送終了時刻１１０４で構成される。個品ＩＤ１１０１は、輸送で扱った商品の個品８２０を示し、輸送実績テーブル１０２０の個品ＩＤ１０２１の値をコピーして作成する。ステータス１１０２は個品８２０がどのような状態か（輸送開始か、輸送終了か）を示し、ステータス１０２２の値をコピーして作成する。輸送開始時刻１１０３は、個品８２０の輸送開始の時刻を示し、輸送開始時刻１０２３の値をコピーして作成する。輸送終了時刻１１０４は、個品８２０の輸送終了の時刻を示し、輸送終了時刻１０２４の値をコピーして作成する。送信ファイル１１００は、クライアントシステム８００からサーバシステム８５０に向けて作業履歴を送信するために、アプリ実行部８０３によって作成される。
【００５７】
図１２に履歴データベース８５９の例を示す。履歴データベース８５９は、輸送実績テーブル１２２０から構成される。
【００５８】
輸送実績テーブル１２２０は、輸送業務の履歴情報を格納するテーブルで、個品ＩＤ１２２１と、ステータス１２２２、輸送開始時刻１２２３、輸送終了時刻１２２４で構成される。個品ＩＤ１２２１は、輸送で扱った商品の個品８２０を示す。ステータス１２２２は、個品８２０が輸送業務でどのような状態か（輸送開始か、輸送終了か）を示す。輸送開始時刻１２２３は、個品８２０の輸送開始の時刻を示す。輸送終了時刻１２２４は、個品８２０の輸送終了の時刻を示す。
【００５９】
続いて、本実施の形態における処理動作について説明する。図１３は、業務アプリケーションがエラーなどで強制終了されたような場合に、再度業務アプリケーションを再開した際の処理フローを示す。具体的には、輸送業務の業務アプリケーションを起動し、システムの状態を判定して、状態に従って次の操作の指示を示すメニューをユーザに表示し、ユーザの操作を受け付けて前記業務アプリケーションを実行し、前記業務アプリケーションが終了するまでの処理フローである。なお、ここではメニューをユーザに表示し、ユーザの操作を受け付けて業務アプリケーションを実行する例を示すが、ユーザの操作を受け付けることなく業務アプリケーションが自動的に処理を進める構成とすることも出来る。本処理フローの制御は制御部８０７が行うものとする。ただし、処理Ｓ１３０６に関しては、制御部８０７と制御部８５６が協調して行うものとする。
【００６０】
処理Ｓ１３００では、ユーザがクライアントシステム８００の入出力部８０９を操作し、業務アプリケーションを起動する。
【００６１】
処理Ｓ１３０１では、アプリ実行部８０３が業務アプリケーションの初期画面をポップアップで入出力部８０９に表示する。初期画面は、初期スタートボタンと再スタートボタンで構成される。ユーザは初期画面で、初期スタート、再スタートの何れかのボタンを選択して押下する。
【００６２】
処理Ｓ１３０２では、メニュー生成部８０２が処理Ｓ１３０１で初期スタート、再スタートのどちらのボタンが押下されたのか判定する。初期スタートボタン押下の場合は処理Ｓ１３０３に進み、再スタートボタン押下の場合は処理Ｓ１３０４に進む。
【００６３】
処理Ｓ１３０３では、アプリ実行部８０３がシステムの状態を初期化する。システムの状態の初期化に際しては、クライアント業務データベース８１０、業務ファイル群８１１の初期化を行う。初期化の具体的な例としては、輸送スケジュールテーブル１０００、容器−個品紐付テーブル１０１０、輸送実績テーブル１０２０の全レコードを削除し、送信ファイル１１００を削除する。処理Ｓ１３０５に進む。
【００６４】
処理Ｓ１３０４では、状態判定部８０４がクライアント業務データベース８１０や業務ファイル群８１１を参照し、システムの状態を判定する。システムの状態を判定することで、業務アプリケーションの処理がどこまで進捗しているか調査できる。システムの状態に応じて、記憶装置８０６に業務アプリケーションの進捗度のパラメータを設定する。
【００６５】
処理Ｓ１３０５では、メニュー生成部８０２が業務アプリケーションの進捗度に応じたメニュー画面（図１８参照）を生成する。記憶装置８０６に記憶されている進捗度のパラメータを基に、どこまで処理が終了し、どこから処理が未終了なのかを判定する。生成される前記メニュー画面には、処理が終了した項目に関しては「終了」の文字列を表示し、処理が実施されておらず終了していない項目に関しては、「未終了」の文字列を、入出力部８０９に表示する。
【００６６】
処理Ｓ１３０６では、アプリ実行部８０３がユーザからの操作を受け付け、業務アプリケーションを実行する。業務アプリケーションの実行中に、クライアント業務データベース８１０、業務ファイル群８１１を参照・更新し、ユーザの業務遂行を支援する。なお、アプリケーションの実行においては、新規に実行された場合以外は、処理進捗調査（処理Ｓ１３０４）で記憶装置８０６に記憶された進捗度のパラメータに応じて、アプリケーションを途中から実行する。また、サーバシステム８５０と通信し、マスタデータベース８５８からのデータ取得や、履歴データベース８５９へのデータ登録を行う。処理Ｓ１３０６でのクライアントシステム８００とサーバシステム８５０との間で行われる具体的な処理は図１５にて後述する。
【００６７】
処理Ｓ１３０７では、アプリ実行部８０３がユーザからの業務アプリケーションの操作終了の選択を入出力部８０９で受け付け、業務アプリケーションを終了する。
【００６８】
次に、前記フローに含まれる処理のうち、処理Ｓ１３０４について詳細フローを示して詳述する。処理Ｓ１３０４での状態判定部８０４の詳細な処理フローを図１４に示す。
【００６９】
処理Ｓ１４００では、記憶装置８０６の輸送業務の業務アプリケーションの進捗度のパラメータを初期化する。具体的には、例えば、進捗度のパラメータを「業務処理開始」に変更する。
【００７０】
処理Ｓ１４０１では、クライアント業務データベース８１０の特定のテーブルにデータが存在するか検索する。例えば、輸送スケジュールテーブル１０００の何れかのレコードにデータ（商品ＩＤ１００１、個数１００２、輸送開始施設１００３、輸送開始予定時刻１００４、輸送終了施設１００５、輸送終了予定時刻１００６の何れかのデータ）が存在するか検索する。データが存在すれば処理Ｓ１４０２に進み、何れのレコードにもデータが存在しなければ処理Ｓ１４０３に進む。
【００７１】
処理Ｓ１４０２では、記憶装置８０６で保持されている輸送業務の業務アプリケーションの進捗度のパラメータを更新する。具体的には、処理Ｓ１４０１でデータが存在していることが判明したので、１番目の業務「データダウンロード」の処理が終了していると判定して、進捗度のパラメータを「データダウンロードまで終了」に更新する。
【００７２】
処理Ｓ１４０３では、クライアント業務データベース８１０の特定のテーブルにデータが存在するか検索する。例えば、容器−個品紐付テーブル１０１０の何れかのレコードにデータ（個品ＩＤ１０１１、容器ＩＤ１０１２の両方のデータ）が存在するか検索する。データが存在すれば処理Ｓ１４０４に進み、何れのレコードにもデータが存在しなければ処理Ｓ１４０５に進む。
【００７３】
処理Ｓ１４０４では、記憶装置８０６で保持されている進捗度のパラメータを更新する。具体的には、処理Ｓ１４０３でデータが存在していることが判明したので、２番目の業務「紐付け」の処理が終了していると判定して、進捗度のパラメータを「紐付けまで終了」に更新する。
【００７４】
処理Ｓ１４０５では、クライアント業務データベース８１０の特定のテーブルの特定のカラムに、特定の文字列があるか検索する。例えば、輸送実績テーブル１０２０のステータス１０２２の全てのレコードが「輸送終了」の文字列かどうか検索する。特定の文字列になっていれば、処理Ｓ１４０６に進み、そうでなければ、処理Ｓ１４０７に進む。
【００７５】
処理Ｓ１４０６では、記憶装置８０６で保持されている進捗度のパラメータを更新する。具体的には、処理Ｓ１４０５でカラムの文字列が特定の文字列に一致していることが判明したので、３番目の業務「輸送終了」の処理が終了していると判定して、進捗度のパラメータを「輸送終了まで終了」に更新する。
【００７６】
処理Ｓ１４０７では、業務ファイル群８１１に特定のファイルが存在するか検索する。例えば、送信ファイル１１００が存在するか検索する。特定のファイルが存在すれば処理Ｓ１４０８に進み、特定のファイルが存在しなければ処理Ｓ１３０４を終了する。
【００７７】
処理Ｓ１４０８では、記憶装置８０６で保持されている進捗度のパラメータを更新する。具体的には、処理Ｓ１４０７で特定のファイルが存在していることが判明したので、４番目の業務「データアップロード」の処理が終了していると判定して、進捗度のパラメータを「データアップロードまで終了」に更新する。処理Ｓ１３０４を終了する。
【００７８】
以上の一連の処理により、中途終了する前に業務アプリケーションにより実行された業務アプリケーションの進捗度が記録装置８０６に反映される。
【００７９】
続いて、図１３で述べたフローに含まれる処理のうち、処理Ｓ１３０６について詳細フローを示して詳述する。処理Ｓ１３０６でのアプリ実行部８０３の詳細な処理フローを図１５に示す。なお、処理Ｓ１５０７は、アプリ実行部８０３の処理フローではなく、サーバシステム８５０の処理フローである。
【００８０】
処理Ｓ１５０１では、アプリ実行部８０３が通信部８０８を介して、サーバシステム８５０からマスタデータを取得する。具体的には、マスタデータベース８５８の輸送スケジュール９００を取得する。
【００８１】
処理Ｓ１５０２では、処理Ｓ１５０１で取得したマスタデータをクライアント業務データベース８１０に格納する。具体的には、輸送スケジュールをクライアント業務データベース８１０の輸送スケジュールテーブル１０００に格納する。格納の際には、サーバシステム８５０のマスタデータベース８５８の輸送スケジュール９００の商品ＩＤ９０１を輸送スケジュールテーブル１０００の商品ＩＤ１００１に格納し、個数９０２を個数１００２に格納し、輸送開始施設９０３を輸送開始施設１００３に格納し、輸送開始予定時刻９０４を輸送開始予定時刻１００４に格納し、輸送終了施設９０５を輸送終了施設１００５に格納し、輸送終了予定時刻９０６を輸送終了予定時刻１００６に格納する。
【００８２】
処理Ｓ１５０３では、ＲＦタグ読取部８０１が、商品の個品８２０のＲＦタグ８２１や、容器８３０のＲＦタグ８３１に書き込まれているユニークな識別番号を読み取る。
【００８３】
処理Ｓ１５０４では、処理Ｓ１５０３で読み取ったデータを基に、クライアント業務データベース８１０のデータを更新する。具体的には、クライアント業務データベース８１０の容器−個品紐付テーブル１０１０の個品ＩＤ１０１１に、ＲＦタグ８２１の識別番号を格納し、容器ＩＤ１０１２にＲＦタグ８３１の識別番号を格納し、個品８２０と容器８３０を紐付ける。また、前記ＲＦタグ８３１の識別番号が、容器−個品紐付テーブル１０１０の容器ＩＤ１０１２と一致している個品ＩＤ１０１１を検索し、前記個品ＩＤ１０１１をクライアント業務データベース８１０の輸送実績テーブル１０２０の個品ＩＤ１０２１に格納するとともに、前記ＲＦタグ８３１の読み取り作業が輸送開始か輸送終了かをユーザから入出力部８０９への入力として受け付ける。入力データが輸送開始ならば、ステータス１０２２に「輸送開始」と格納し、輸送開始時刻１０２３にその際の時刻を格納する。入力データが輸送終了ならば、ステータス１０２２に「輸送終了」と格納し、輸送終了時刻１０２４にその際の時刻を格納する。
【００８４】
処理Ｓ１５０５では、クライアント業務データベース８１０を基に、送信ファイルを作成する。具体的には、クライアント業務データベース８１０の輸送実績テーブル１０２０を基に、業務ファイル群８１１の送信ファイル１１００を作成する。送信ファイル１１００の個品ＩＤ１１０１は輸送実績テーブル１０２０の個品ＩＤ１０２１に対応し、ステータス１１０２はステータス１０２２に対応し、輸送開始時刻１１０３は輸送開始時刻１０２３に対応し、輸送終了時刻１１０４は輸送終了時刻１０２４に対応する。
【００８５】
処理Ｓ１５０６では、通信部８０８を介して送信ファイル１１００をサーバシステム８５０に送信する。
【００８６】
処理Ｓ１５０７では、サーバシステム８５０が、クライアントシステム８００から取得した送信ファイル１１００を、履歴データとして履歴データベース８５９に登録する。具体的には、履歴データベース８５９の輸送実績テーブル１２２０に登録する。
【００８７】
なお、図示はしていないが、本処理フロー（Ｓ１３０６の処理フロー）ではＳ１５０１の処理を開始する前に、図１３の処理進捗調査（Ｓ１３０４）の結果に基づいて、どのステップから処理を開始するかを判定する。例えば、業務アプリケーションの処理が、マスタデータベースから必要なデータのダウンロードまで終了していると判定されたときは、Ｓ１５０１−１５０２を省略してＳ１５０３から処理が開始される。また、ＲＦタグ情報のデータのクライアント業務データベースへの反映まで終了していると判定されたときは、Ｓ１５０１−１５０４を省略し、Ｓ１５０５から処理が開始される。また、マスタデータベースへデータのアップロードまで終了していると判定されたときは、Ｓ１５０７まで処理が終了していることになるので、そのまま本処理フロー（Ｓ１３０６の処理フロー）を終了するものとする。つまり、処理進捗調査（Ｓ１３０４）の結果（進捗度のパラメータ）が、アプリケーションの再開のためのポイント（再開ポイント）となる。
【００８８】
続いて、図１５で述べたフローに含まれる処理のうち、処理Ｓ１５０１について詳細フローを示して詳述する。処理Ｓ１５０１でのクライアントシステム８００のアプリ実行部８０３、サーバシステム８５０の認証部８５１、データ抽出部８５２の詳細な処理フローを図１６に示す。
【００８９】
処理Ｓ１６０１では、アプリ実行部８０３が通信部８０８から通信回線８４０を介してサーバシステム８５０の通信部８５７にアクセスする。
【００９０】
処理Ｓ１６０２では、認証部８５１が、通信部８５７へのアクセスに関して認証を行う。
【００９１】
処理Ｓ１６０３では、データ抽出部８５２が、マスタデータベース８５８からマスタデータを取得する。具体的には、マスタデータベース８５８の輸送スケジュールテーブル９００から、商品ＩＤ９０１、個数９０２、輸送開始施設９０３、輸送開始予定時刻９０４、輸送終了施設９０５、輸送終了予定時刻９０６を抽出する。
【００９２】
処理Ｓ１６０４では、データ抽出部８５２が通信部８５７から通信回線８４０を介してクライアントシステム８００の通信部８０８に、マスタデータを送信する。
【００９３】
処理Ｓ１６０５では、アプリ実行部８０３が、通信部８０８で受け取ったマスタデータを取得する。
【００９４】
続いて、図１５で述べたフローに含まれる処理のうち、処理Ｓ１５０７について詳細フローを示して詳述する。処理Ｓ１５０７でのクライアントシステム８００のアプリ実行部８０３、サーバシステム８５０の認証部８５１、データ登録部８５３の詳細な処理フローを図１７に示す。
【００９５】
処理Ｓ１７０１では、アプリ実行部８０３が通信部８０８から通信回線８４０を介してサーバシステム８５０の通信部８５７にアクセスする。
【００９６】
処理Ｓ１７０２では、認証部８５１が、通信部８５７へのアクセスに関して認証を行う。
【００９７】
処理Ｓ１７０３では、データ登録部８５３が、通信部８５７で受け取った送信ファイル１１００を取得する。
【００９８】
処理Ｓ１７０４では、データ登録部８５３が、送信ファイル１１００を履歴データベース８５９の輸送実績テーブル１２２０に登録する。具体的には、送信ファイル１１００の個品ＩＤ１１０１が輸送実績テーブル１２２０の個品ＩＤ１２２１に対応し、ステータス１１０２がステータス１２２２に対応し、輸送開始時刻１１０３が輸送開始時刻１２２３に対応し、輸送終了時刻１１０４が輸送終了時刻１２２４に対応する。
【００９９】
処理Ｓ１３０５で生成・表示するメニュー画面は、例えば図１８に示す画面となる。図１８のメニュー画面は、業務名１８０１と、進捗状況１８０２で構成される。業務名１８０１は、業務のメニュー一覧を示し、ユーザは上から順に業務名を選択して、業務を遂行していく。進捗状況１８０２は、業務の進捗度を示し、業務名１８０１の業務が終了したものには「終了」と表示し、未実施で終了していないものに関しては「未終了」と表示する。
【０１００】
以上のように、実施例２によれば、中途終了前後での処理の連続性を保って処理を再開することができる。これはクライアントシステム８００が複数存在し、それぞれのクライアントでアプリケーションを実行し、その処理結果をサーバシステム８５０の履歴データベース８５９で一括して管理するようなシステムにおいて特に有用である。
【符号の説明】
【０１０１】
１００  システム
１０１  メニュー生成部
１０２  アプリ実行部
１０３  状態判定部
１０４  プログラム
１０５  記憶装置
１０６  制御部
１０７  入出力部
１０８  業務データベース
１０９  業務ファイル群
８００  クライアントシステム
８０１  ＲＦタグ読取部
８０２  メニュー生成部
８０３  アプリ実行部
８０４  状態判定部
８０５  プログラム
８０６  記憶装置
８０７  制御部
８０８  通信部
８０９  入出力部
８１０  クライアント業務データベース
８１１  業務ファイル群
８２０  商品の個品
８２１  （個品の）ＲＦタグ
８３０  容器
８３１  （容器の）ＲＦタグ
８４０  通信回線
８５０  サーバシステム
８５１  認証部
８５２  データ抽出部
８５３  データ登録部
８５４  プログラム
８５５  記憶装置
８５６  制御部
８５７  通信部
８５８  マスタデータベース
８５９  履歴データベース
【図１】
2011107993.tif 000003
【図２】
2011107993.tif 000004
【図３】
2011107993.tif 000005
【図４】
2011107993.tif 000006
【図５】
2011107993.tif 000007
【図６】
2011107993.tif 000008
【図７】
2011107993.tif 000009
【図８】
2011107993.tif 000010
【図９】
2011107993.tif 000011
【図１０】
2011107993.tif 000012
【図１１】
2011107993.tif 000013
【図１２】
2011107993.tif 000014
【図１３】
2011107993.tif 000015
【図１４】
2011107993.tif 000016
【図１５】
2011107993.tif 000017
【図１６】
2011107993.tif 000018
【図１７】
2011107993.tif 000019
【図１８】
2011107993.tif 000020