(57)【要約】【課題】  アプリケーションを起動させたあとに、そのソフトウェアを更新した場合には、ユーザはその更新後、煩わしい認証のための入力作業を行なう必要がなく、すぐに本来の作業を続行することができるプログラム実行システムを提供する。【解決手段】  プログラム実行システムは、プログラムを実行する旨の指示を受け取った場合に、実行しようとしているプログラムが更新されたものであるか否かを判断して、更新されたことに起因する起動である場合は、前回の起動時に入力した認証情報を利用して認証確認の処理を行なう。【選択図】  図１
2005032236.tif 000002
【特許請求の範囲】
【請求項１】
認証情報を記憶する記憶手段と、
プログラムを起動する指示を取得する起動指示取得手段と、
前記プログラムの一部を更新する更新手段と、
前記起動指示取得手段により取得された指示が、前記更新手段による更新に起因する指示であるか否かを判断する判断手段と、
前記判断手段によって判断された場合は、前記記憶手段に記憶している認証情報が正当であるか否か確認する認証手段と、
前記認証手段により認証情報が正当であると確認された場合に、前記プログラムを実行する実行手段と
を備えることを特徴とするプログラム実行システム。
【請求項２】
前記プログラム実行システムは、更に、自システムの外部から認証情報を取得する認証情報取得手段を備え、
前記認証手段は、更に、前記判断手段によって否定的に判断された場合に、前記認証情報取得手段により認証情報を取得し、取得した認証情報が正当であるか否か確認する
ことを特徴とする請求項１記載のプログラム実行システム。
【請求項３】
前記認証情報取得手段は、認証情報を取得したときに、取得した認証情報を前記記憶手段に記憶し、
前記判断手段は、前記記憶手段に前記プログラムと対応する認証情報が記憶されている場合には、肯定的に判断し、前記記憶手段に、前記対応する認証情報が記憶されていない場合には、否定的に判断する
ことを特徴とする請求項２記載のプログラム実行システム。
【請求項４】
前記記憶手段に記憶されている認証情報には、所定の時を特定できる時間情報が含まれ、
前記判断手段は、前記記憶手段に前記対応する認証情報が記憶されている場合であって、前記起動指示取得手段による指示が、前記対応する認証情報に含まれる前記時間情報で示される時間から所定時間が経過する前に行われた場合には、肯定的に判断する
ことを特徴とする請求項３記載のプログラム実行システム。
【請求項５】
認証情報を記憶する記憶手段と、
プログラムを起動する指示を取得する起動指示取得手段と、
前記プログラムの一部を更新する更新手段と、
前記起動指示取得手段により取得された指示が、前記更新手段による更新に起因する指示であるか否かを判断する判断手段と、
前記判断手段によって肯定的に判断された場合は、前記プログラムを実行し、否定的に判断された場合は、自システムの外部から認証情報を取得し、取得した認証情報が正当であると確認された場合に、前記プログラムを実行する認証実行手段と
を有することを特徴とするプログラム実行システム。
【請求項６】
前記プログラム実行システムは、更に、前記更新手段によってプログラムが更新されたか否かを示す更新情報を記憶する更新情報記憶手段を備え、
前記更新手段は、前記プログラムの一部を更新したときに、前記更新情報に更新した旨の情報を設定し、
前記判断手段は、前記更新情報に基づいて、前記起動指示取得手段によって取得した指示が前記更新手段による更新に起因する指示であるか否かを判断する
ことを特徴とする請求項１または５記載のプログラム実行システム。
【請求項７】
プログラムを実行する方法であって、
認証情報をメモリに記憶する記憶ステップと、
プログラムを起動する指示を取得する起動指示取得ステップと、
前記プログラムの一部を更新する更新ステップと、
前記起動指示取得ステップにより取得された指示が、前記更新ステップによる更新に起因する指示であるか否かを判断する判断ステップと、
前記判断ステップにより、肯定的に判断された場合は、前記メモリに記憶している認証情報が正当であるか否か確認する認証ステップと、
前記認証ステップにより認証情報が正当であると確認された場合に、前記プログラムを実行する実行ステップと
を含むことを特徴とするプログラム実行方法。
【請求項８】
プログラムの実行を行なわせるためのコンピュータプログラムであって、
認証情報をメモリに記憶する記憶ステップと、
プログラムを起動する指示を取得する起動指示取得ステップと、
前記プログラムの一部を更新する更新ステップと、
前記起動指示取得ステップにより取得された指示が、前記更新ステップによる更新に起因する指示であるか否かを判断する判断ステップと、
前記判断ステップにより、肯定的に判断された場合は、前記メモリに記憶している認証情報が正当であるか否か確認する認証ステップと、
前記認証ステップにより認証情報が正当であると確認された場合に、前記プログラムを実行する実行ステップと
を含むことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実行する際にユーザの認証確認を必要とするプログラムの更新処理に関し、特に、更新後のプログラムを実行する際の利便性を向上させる技術に関する。
【背景技術】
【０００２】
アプリケーション・ソフトウェアには、その実行に際し、ユーザに使用権限があるか否かの認証確認をするために、例えば、パスワードの入力を要求するものがある。そのアプリケーションで扱うデータ等が、不特定多数の者に漏洩するのを防止することなどが目的である。
また、アプリケーション・ソフトウェアは、その不具合の修正や機能追加等のために、そのプログラムの改訂版が提供され、ユーザは、その都度、自分が現在使用しているアプリケーション・ソフトウェアを、その改訂版に更新する必要がある。
【０００３】
この更新に際し、ユーザは自分が使用しているアプリケーションの改訂版が出ているかどうかを調べる手間が必要である。
この手間を解消する為に、近年のアプリケーション・ソフトウェアには、起動したときに、改訂版があれば知らせてくれて、更新できるものがある。よって、ユーザは、自ら調べることなく改訂版があることを知り、すぐに更新をすることができる。
【０００４】
また、ネットワークシステムにおいては、ユーザ端末のネットワークが何らかの原因で切れてしまった場合には、ユーザの手を煩わせずに、ネットワークサーバが自動的に回線切断を検知して、再接続するものがある（特許技術文献１参照）。
【特許文献１】特開平６−２５９３５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、このアプリケーション・ソフトウェアの更新は、前述のネットワークシステムの再接続のように、ユーザの手間が不要なものではなく、更新されたアプリケーションの再起動の際に、再度パスワードの入力等を行なうという手間が必要となる。
すなわち、アプリケーション・ソフトウェアの更新を行なうには、動いているアプリケーションを終了させた後に、ソフトウェアの更新を行い、再度アプリケーションを起動することになる。アプリケーションを実行しているときに、そのアプリケーション・ソフトウェアの更新を行なうことは、原則としてできないからである。
【０００６】
たとえ、更新後のアプリケーションの起動を自動的に行ない、ユーザの再起動の手間を省いたとしても、ユーザは認証確認のために、再度パスワードの入力等を行なわなければならない。
このことは、一旦、パスワードの入力等をして認証確認を行い、アプリケーションを起動したにもかかわらず、２度目の認証確認の為の手間が必要となることを意味する。この手間によって、アプリケーション更新の際の利便性が損なわれ、またさらに、本来の作業が中断されてしまうという不都合がある。
【０００７】
そこで、本発明は、認証の必要なアプリケーションを起動させたあとに、そのソフトウェアを更新した場合には、ユーザはその更新後、煩わしい認証のための入力作業を行なう必要がなく、すぐに本来の作業を続行することができるプログラム実行システムの提供を目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決する為に、本発明のプログラム実行システムは、認証情報を記憶する記憶手段と、プログラムを起動する指示を取得する起動指示取得手段と、前記プログラムの一部を更新する更新手段と、前記起動指示取得手段により取得された指示が、前記更新手段による更新に起因する指示であるか否かを判断する判断手段と、前記判断手段によって判断された場合は、前記記憶手段に記憶している認証情報が正当であるか否か確認する認証手段と、前記認証手段により認証情報が正当であると確認された場合に、前記プログラムを実行する実行手段と  を備えることを特徴とする。
【発明の効果】
【０００９】
また、前記プログラム実行システムは、更に、自システムの外部から認証情報を取得する認証情報取得手段を備え、前記認証手段は、更に、前記判断手段によって否定的に判断された場合に、前記認証情報取得手段により認証情報を取得し、取得した認証情報が正当であるか否か確認することとしてもよい。
またさらに、本発明のプログラム実行システムは、認証情報を記憶する記憶手段と、プログラムを起動する指示を取得する起動指示取得手段と、前記プログラムの一部を更新する更新手段と、前記起動指示取得手段により取得された指示が、前記更新手段による更新に起因する指示であるか否かを判断する判断手段と、  前記判断手段によって肯定的に判断された場合は、前記プログラムを実行し、否定的に判断された場合は、自システムの外部から認証情報を取得し、取得した認証情報が正当であると確認された場合に、前記プログラムを実行する認証実行手段とを備えることを特徴とすることとしてもよい。
【００１０】
本発明に係るプログラム実行システムは、上述の構成を備えることにより、ユーザの起動指示を受けたときに、起動されたアプリケーションの起動が、プログラムが更新されたことに起因するものであるか否かの判断ができるようになるので、更新されたあとの再起動であれば、ユーザに、パスワードの入力等の手間をかけることなく、アプリケーションを起動することができるようになる。
【００１１】
また、前記認証情報取得手段は、認証情報を取得したときに、取得した認証情報を前記記憶手段に記憶し、前記判断手段は、前記記憶手段に前記プログラムと対応する認証情報が記憶されている場合には、肯定的に判断し、前記記憶手段に、前記対応する認証情報が記憶されていない場合には、否定的に判断することとしてもよい。
これにより、ユーザが認証情報を入力したときに、認証情報が記憶されるので、認証情報が記憶されている場合は、既に１度認証情報を受け付けていることがわかるので、再度、認証情報をユーザに要求しないようにできるようになる。
【００１２】
また、前記記憶手段に記憶されている認証情報には、所定の時を特定できる時間情報が含まれ、前記判断手段は、前記記憶手段に前記対応する認証情報が記憶されている場合であって、前記起動指示取得手段による指示が、前記対応する認証情報に含まれる前記時間情報で示される時間から所定時間が経過する前に行われた場合には、肯定的に判断することとしてもよい。
【００１３】
これにより、前回の起動の時から一定時間内に再起動されたかがわかるので、再起動を自動で行なわずにユーザに任せた場合であっても、一定時間内に再起動しない場合には、最初の起動であると判断し、認証情報を要求するようにすることができるようになる。
また、前記プログラム実行システムは、更に、前記更新手段によってプログラムが更新されたか否かを示す更新情報を記憶する更新情報記憶手段を備え、前記更新手段は、前記プログラムの一部を更新したときに、前記更新情報に更新した旨の情報を設定し、前記判断手段は、前記更新情報に基づいて、前記起動指示取得手段によって取得した指示が前記更新手段による更新に起因する指示であるか否かを判断することとしてもよい。
【００１４】
これにより、クライアント端末においてアプリケーションのプログラムが更新されたときに、更新された旨の情報が設定されるので、この情報を参照することにより、今回の起動がプログラムの更新が行なわれた後の再起動であるか否かの判断をすることができるようになる。
【発明を実施するための最良の形態】
【００１５】
＜概要＞
本発明に係るプログラム実行システムは、プログラムを実行する旨の指示を受け取った場合に、実行しようとしているプログラムが更新されたものであるか否か、すなわち、受け取ったプログラム実行指示が、プログラムの更新に伴う指示であるか否かを判断して、更新された直後の起動に際しては、通常の認証確認の処理は行なわないようにするものである。
【００１６】
本実施形態では、更新後のプログラムは、その更新後、直ちに自動的に再起動される。
＜構成＞
以下、本発明に係るプログラム実行システムについて、図1を用いて説明する。
図１は、プログラム実行システムの構成を示す機能ブロック図である。
本システムは、クライアント装置１０００とサーバ装置５０００から構成され、それらはネットワークで結ばれている。尚、複数のクライアント装置１０００が、サーバ装置５０００に接続されているものとする。
【００１７】
クライアント装置１０００は、起動指示受付部１１００、認証情報受付部１２００、送受信部１３００及びアプリケーション２０００から構成される。
ここで、クライアント装置１０００は、いわゆるディスプレイ装置、キーボード、マウス等の入力デバイス等を備え、通常のコンピュータの機能であるユーザインターフェース機能等を備えているものとする。尚、これらの機能等は、図示していない。
【００１８】
まず、起動指示受付部１１００は、ユーザからのアプリケーション２０００を起動する旨の指示を受け付け、該当するアプリケーションに制御を渡す機能を有する。例えば、ユーザは、クライアント装置１０００のディスプレイに表示されているアプリケーション２０００のアイコンを、マウスでクリックすることで、起動の指示を出す。
認証情報受付部１２００は、ユーザに対してパスワード等の認証情報の入力を要求し、認証情報を受け取る機能を有する。例えば、ユーザＩＤとパスワードを入力できるウィンドウを表示する。
【００１９】
送受信部１３００は、サーバ装置５０００とのデータのやり取りを行なう機能を有する。
次に、アプリケーション２０００は、ワープロソフトやデータベースソフトなどの、特定の仕事を行なうためのソフトウェアをいう。
アプリケーション２０００は、制御部２１００、更新判断部２１１０、プログラム実行部２２００、プログラム更新処理部２３００、認証処理部２４００、プログラム記憶部２５００及び認証情報記憶部２６００で構成される。
【００２０】
制御部２１００は、アプリケーションの実行を制御する機能を有する。具体的には、アプリケーションの実行に必要な資源の確保などの初期処理を行なった後、各機能部に指示を出すことで、アプリケーションの実行を行なう。
この制御部２１００は、起動指示受付部１１００から起動の指示を受けて動き始める。また、制御部２１００は、アプリケーションの再起動時には、後述の別プロセスからの起動の指示を受けて動き始める。
【００２１】
更新判断部２１１０は、アプリケーションの機能を実現するプログラムが更新されたか否かを判断する機能を有する。すなわち、制御部２１００が受け取った起動指示は、起動指示受付部１１００から受け取ったものか、後述の別プロセスから受け取ったものか、すなわち、プログラムが更新された後の起動指示であるか否かの判断を行なう。
制御部２１００は、この更新判断部２１１０の判断によって、各機能部に出す指示及び順序を変えることになる。
【００２２】
次に、各機能部の1つであるプログラム実行部２２００は、アプリケーションの具体的な機能を実現するプログラムを実行する機能を有する。
このプログラムは、プログラム記憶部２５００に記憶されている。プログラム記憶部２５００は、これらのプログラムを管理し、記憶しておく機能を有する。このプログラム記憶部２５００は、外部メモリ等にあり、アプリケーションの起動、終了に関係なく存在する。尚、本実施形態のプログラムは、実行可能なモジュール、いわゆるオブジェクトモジュールであるとする。
【００２３】
また、プログラム更新処理部２３００は、プログラム記憶部２５００に記憶されているプログラムの更新履歴を管理する機能と、それらのプログラムの更新を行う機能とを有する。
プログラムの更新履歴を管理する機能とは、それぞれのプログラムが更新された日時である更新情報を記憶しておき、それぞれのプログラムの改訂版があるか否かの判断を行なう。その判断は、後述するサーバ装置５０００から最新のプログラム更新情報等を受け取り、その更新情報と内部に記憶している更新情報とに基づいて判断する。
【００２４】
また、プログラムの更新を行う機能とは、最新のプログラムをサーバ装置５０００に要求し、受け取り、プログラム記憶部２５００に記憶されているプログラムと置き換えることをいう。
次に、認証処理部２４００は、ユーザが入力したパスワード等の認証情報を、認証情報受付部１２００から受け取り、サーバ装置５０００に認証を依頼するとともに、認証情報記憶部２６００に保存を依頼する機能を有する。
【００２５】
認証情報記憶部２６００は、認証処理部２４００から受け取った認証情報を記憶し、管理する機能を有する。
この認証情報記憶部２６００は、最初の起動において認証情報を保存するときに存在し、最初に起動されたアプリケーション終了後、２度目に起動された場合に参照できるものであればよい。本実施形態では、ファイルとする。このファイルの名前は、システムで決まっているものとする。ファイル名を基に、参照できるからである。尚、アプリケーションが複数ある場合には、アプリケーション毎にファイル名を変えてもよい。
【００２６】
このファイルは、最初の起動時の認証情報を保存する処理において作成され、２度目に起動されたアプリケーションの終了処理において削除される。ユーザが、認証情報を入力したときに、その認証情報が書き込まれる。
従って、最初の起動のときは、認証情報を記憶しているファイルは存在せず、更新後の再起動の時は、認証情報が書き込まれたファイルが存在する。
【００２７】
尚、このファイルに書き込まれている認証情報は、セキュリティの観点から暗号化されているものとする。但し、以下の説明において、暗号化及び復号化の処理の説明は省くものとする。
次に、サーバ装置５０００の説明を行なう。
サーバ装置５０００は、最新プログラム記憶部５１００、最新プログラム管理部５２００、認証部５３００及び送受信部５４００で構成される。
【００２８】
最新プログラム記憶部５１００は、クライアント装置１０００で動いているアプリケーションの最新のプログラムを記憶しておく機能を有する。すなわち、アプリケーションの不具合を修正したものや新しい機能を追加したもの等である改訂版を保存している。
この最新プログラム記憶部５１００で記憶しているアプリケーションは1つとは限らず、複数のアプリケーションのプログラムを記憶していてもよい。同様に、クライアント装置でのアプリケーションも１つとは限らず、複数のアプリケーションを使用していてもよい。
【００２９】
次に、最新プログラム管理部５２００は、前述した最新プログラム記憶部５１００に記憶されているプログラムの更新履歴を管理する機能と、クライアント装置１０００からの要求に応じて、プログラムの更新情報および最新プログラム記憶部５１００から読み出したプログラムを送り返す機能を有する。
認証部５３００は、クライアント装置１０００から送られてくる認証情報が、アプリケーションの使用権限を有するものであるか否かを判断する機能を有する。認証の方法は生体認証など様々なものがあるが、本実施形態では、ユーザＩＤとパスワードをいうものとする。ユーザごとにユーザＩＤを割り当て、そのユーザしか知り得ない文字列であるパスワードをユーザIDとともに、認証部５３００内部のメモリ（図示していない。）に記録しておく。認証時にこれらの組み合わせをユーザに入力させ、その組合せをクライアント装置１０００から受け取り、認証を行なうものとする。
【００３０】
送受信部５４００は、クライアント装置１０００とのデータのやり取りを行なう機能を有する。
尚、クライアント装置１０００及びサーバ装置５０００の各機能は、それぞれの装置のメモリ又はハードディスク（図示していない。）に格納されているプログラムをＣＰＵが実行することにより実現される。
【００３１】
＜データ＞
以下、本プログラム実行システムで用いる主なデータについて、図２及び３を用いて説明する。
図２は、クライアント装置の更新情報の構成及び内容例を示す。
アプリケーションは、複数のプログラムで構成されており、この更新情報は、アプリケーションおよびプログラムの更新履歴を表すものである。
【００３２】
更新情報は、アプリケーション更新情報２３１０とプログラム更新情報２３５０の２種類の情報で構成される。このデータは、プログラム更新処理部２３００の中のメモリに記憶されている（図示していない。）。
まず、アプリケーション更新情報２３１０は、アプリケーション名２３１１と更新日時２３１２とで構成される。
【００３３】
例でいえば、アプリケーション名「ＡＰＰＬＩ−Ａ」のアプリケーションが更新された直近の日時は、更新日付「2003/02/07  12:45:33」で表される２００３年２月７日の１２時４５分３３秒である。この更新日時２３１２は、このアプリケーションの全部が更新された場合のみならず、アプリケーションの一部、すなわち、いくつかのプログラムが更新された場合にも更新される。
【００３４】
また、プログラム更新情報２３５０は、プログラム名２３５１と更新日時２３５２とで構成される。
このプログラム名２３５１は、アプリケーション名２３１１で示されているアプリケーションを構成しているプログラムの名前を表している。また、更新日時２３５２は、それぞれ対応するプログラム名２３５１で示されるプログラムが更新された直近の日時をいう。ここでいう直近の日時とは、クライアント装置のプログラムを更新した時の日時ではなく、更新したプログラムがサーバ装置で更新された日時をさす。いわゆる改訂版が作成された日時である。
【００３５】
例でいえば、アプリケーション名「ＡＰＰＬＩ−Ａ」のアプリケーションは、プログラム名「Ａ−ＰＲＯＧ０１」、「Ａ−ＰＲＯＧ０２」等で示されるプログラム群で構成されており、それぞれの更新日付は、「2003/02/07  12:45:33」、「2003/02/05  21:22:12」等である。また、プログラム名「Ａ−ＰＲＯＧ０１」のプログラムの更新日時２３５２は、アプリケーション名「ＡＰＰＬＩ−Ａ」の更新日時２３１２と同じであることから、これらのプログラムの中で最も最近に更新されたのは、プログラム名「Ａ−ＰＲＯＧ０１」のプログラムであることがわかる。
【００３６】
次に、図３は、サーバ装置の更新情報の構成及び内容例を示す。
サーバ装置の更新情報は、クライアント装置の更新情報と同じ構成をしている。
すなわち、更新情報は、アプリケーション更新情報５２１０とプログラム更新情報５２５０の２種類の情報で構成される。
アプリケーション更新情報５２１０は、アプリケーション名５２１１と更新日時５２１２とで構成され、プログラム更新情報５２５０は、プログラム名５２５１と更新日時５２５２とで構成されている。それぞれの項目の意味するところも、クライアント装置の更新情報と同じである。
【００３７】
この更新情報は、最新プログラム管理部５２００の中のメモリに記憶されている（図示していない。）。
例でいえば、アプリケーション名「ＡＰＰＬＩ−Ａ」のアプリケーションが更新された直近の日時は、更新日付「2003/02/08  19:26:04」で表される２００３年２月８日の１９時２６分４秒である。
【００３８】
また、アプリケーション名「ＡＰＰＬＩ−Ａ」のアプリケーションを構成している、プログラム名「Ａ−ＰＲＯＧ０１」、「Ａ−ＰＲＯＧ０２」等で示されるプログラムのそれぞれの更新日付は、「2003/02/07  12:45:33」、「2003/02/08
19:26:04」等である。
＜動作＞
以下、上述したプログラム実行システムの動作について図４から図７を用いて説明する。
【００３９】
図４は、クライアント装置１０００においてアプリケーション２０００を実行する処理を示すフローチャートである。
まず、ユーザは、クライアント装置１０００のディスプレイに表示されているアイコンをクリックする。このアイコンは、クリックされることによって、アプリケーション２０００を実行するものであるとする。
【００４０】
起動指示受付部１１００は、該当するアイコンがクリックされたことを検知し（ステップＳ１１）、アプリケーション２０００の制御部２１００に、その旨を通知する。
実行する旨の通知を受けた制御部２１００は、アプリケーションの起動処理を行なう（ステップＳ１２）。この起動処理の中で、プログラムの更新を行い、プログラムの再起動を自動的に行なう。この起動処理の詳細は、後述する。
【００４１】
起動されたアプリケーションは、ユーザの指示に従い、アプリケーション本来の目的であるワープロ作業や表計算作業などの、特定の仕事を行なう（ステップＳ１３）。
ユーザは、作業が終了したら、アプリケーションに対して終了の指示を出す。この終了の指示を受けたアプリケーションは、データの保存やウインドウを閉じる等の終了処理を行なう（ステップＳ１４）。
【００４２】
次に、図５はアプリケーションの起動処理を示すフローチャートである。
起動指示を受けた制御部２１００は、アプリケーションを実行するための、初期処理を行なう（ステップＳ２１）。具体的には、アプリケーションで必要なメモリやデバイス等の資源の確保等を行なう。
初期処理を終えて、アプリケーションを実行する環境が整ったところで、ユーザの認証処理を行なう。
【００４３】
制御部２１００は、更新判断部２１１０に、この起動指示がプログラムの更新後のものであるか否かの判断を依頼する。
更新されたものであるか否かの判断の依頼を受けた更新判断部２１１０は、認証情報記憶部２６００に認証情報が記憶されているか、すなわち、該当ファイルが存在するか否かを、認証処理部２４００を介して問い合わせる。
【００４４】
この起動指示は、最初の起動指示であることから、該当ファイルは存在していない。従って、認証処理部２４００は、該当ファイルは存在しない旨、すなわち、認証情報は記憶されていない旨を、更新判断部２１１０に返すことになる。
認証情報が記憶されていない旨の返答を得た更新判断部２１１０は、この起動指示が更新後のものではない、すなわち最初の起動指示であると判断し、その旨を制御部２１００に返す（ステップＳ２２：Ｎ）。
【００４５】
更新判断部２１１０から、この起動指示が更新後のものではない旨の返答を受けた制御部２１００は、認証処理部２４００に、認証情報を確認するよう指示を出す。
認証情報を確認するよう依頼された認証処理部２４００は、まず、認証情報受付部１２００に認証情報の取得を依頼し、ユーザからの認証情報を受け取る（ステップＳ２３）。
詳細には、依頼を受けた認証情報受付部１２００は、ディスプレイに認証情報の入力を要求するウィンドウを表示し、ユーザが入力した認証情報を認証処理部２４００に返す。図６は、認証情報の入力を要求するウィンドウの構成及び内容例である。例えば、図６に示すようなウィンドウをディスプレイに表示する。この例では、ユーザＩＤ「ＵＳＲ００１」とパスワードが５文字入力されている。パスワードは、実際には「ａｂｃ１２」と入力されているが、表示は「＊＊＊＊＊」となっているものとする。
【００４６】
認証処理部２４００は、認証情報受付部１２００から受け取った認証情報を、認証情報記憶部２６００に保存する（ステップＳ２４）。すなわち、ファイルを作成し、そのファイルに保存する。
その後、認証処理部２４００は、送受信部１３００を介して、サーバ装置５０００にこの認証情報の認証を依頼する（ステップＳ２５）。
【００４７】
この依頼に際し、認証処理部２４００は、認証情報と、アプリケーション名２３１１（図２参照）を送信する（ステップＳ２６）。例でいえば、アプリケーション名２３１１「ＡＰＰＬＩ−Ａ」、ユーザＩＤ「ＵＳＲ００１」及びパスワード「ａｂｃ１２」が送信される。尚、アプリケーション名は、アプリケーションを示すものであればよく、数字等であってもよい（以下、同様。）。
【００４８】
サーバ装置５０００の認証部５３００は、送受信部５４００を介して、クライアント装置１０００から送られてきた認証情報等を受け取る。
認証情報等を受け取った認証部５３００は、送信されてきたアプリケーション名のアプリケーションを、送信されてきたユーザＩＤのユーザが使用できる権限があるか否かを判断し、使用できる権限があれば、パスワードが正しいか否かの判断を行なう（ステップＳ２７）。認証部５３００は、ユーザに使用権限があり、パスワードが正しい場合には、認証できた旨を送受信部５４００を介して、クライアント装置１０００に送信する。一方、使用権限がなかったり、パスワードが正しくなかった場合には、認証できなかった旨を送信する（ステップＳ２８）。
【００４９】
サーバ装置５０００から、認証の結果を受け取った認証処理部２４００は、その結果を制御部２１００に渡す。
認証結果を受け取った制御部２１００は、認証されなかった旨の結果の場合には、その旨をユーザに伝える処理をし、起動処理を中止する（この処理は、フローチャートに図示していない。）。
【００５０】
認証された旨の結果を受け取った制御部２１００は、次に、プログラムの更新処理を行なう。
このプログラムの更新処理は、制御部２１００からプログラム更新処理部２３００に更新依頼がなされることにより、実行される。
制御部２１００からプログラムの更新処理を行なう旨の依頼を受けたプログラム更新処理部２３００は、まず、送受信部１３００を介してサーバ装置５０００に、アプリケーションの更新情報、すなわち、改訂版があるか否かを判断するための情報を要求する（ステップＳ２９）。
【００５１】
この要求に際して、プログラム更新処理部２３００は、アプリケーション名を送信する（ステップＳ３０）。
送信されたアプリケーション名は、サーバ装置５０００の最新プログラム管理部５２００に送受信部５４００を介して、渡される。
アプリケーション名を受け取った最新プログラム管理部５２００は、受け取ったアプリケーション名で示されるアプリケーションの更新情報を内部メモリから読み出し、クライアント装置１０００のプログラム更新処理部２３００に送信する（ステップＳ３１）。
【００５２】
この送信される更新情報は、アプリケーション更新情報５２１０とプログラム更新情報５２５０とである（ステップＳ３２、図３参照）。
更新情報を受け取ったプログラム更新処理部２３００は、送られてきた更新情報と、自らの内部メモリに記憶している更新情報とを比較し、更新が必要か否かを判断する（ステップＳ３３）。
【００５３】
具体的には、記憶している更新情報（図２参照）のアプリケーション更新情報２３１０の更新日時２３１２と、送られてきた更新情報（図３参照）のアプリケーション更新情報５２１０の更新日時５２１２とを比較し、送られてきた更新情報の更新日時５２１２が、記憶している更新情報の更新日時２３１２より新しければ、更新が必要となると判断する。
【００５４】
例でいえば、送られてきた更新情報の更新日時５２１２「2003/02/08    19:26:04」は、記憶している更新情報の更新日時２３１２「2003/02/07  12:45:33」より新しいため、更新が必要であると判断される。
更新が必要であると判断された場合、更新が必要なプログラムを選択するため、プログラム更新情報を比較し、更新の必要なプログラムを判断する。
【００５５】
この更新の必要なプログラムの判断の方法は、更新の必要なアプリケーションの判断と同様である。すなわち、記憶している更新情報（図２参照）のプログラム更新情報２３５０の更新日時２３５２と、送られてきた更新情報（図３参照）のプログラム更新情報５２５０の更新日時５２５２とを比較し、送られてきた更新情報の更新日時５２５２が、記憶している更新情報の更新日時２３５２より新しければ、更新が必要となると判断する。
【００５６】
例でいえば、プログラム名２３５１「Ａ―ＰＲＯＧ０２」は、更新が必要であることがわかる。
アプリケーションのプログラムが最新のものではないと判断したプログラム更新処理部２３００は、最新プログラムの送信をサーバ装置５０００に要求し、送信されてきた最新のプログラムと、プログラム記憶部２５００に記憶しているプログラムとを置き換える（ステップＳ３４）。
【００５７】
詳細には、プログラム更新処理部２３００は、アプリケーションとは別のプロセスを生成し、その後、アプリケーションの終了を制御部２１００に依頼し、アプリケーションを一旦終了させる。ここで、プロセスとは、ＯＳ（オペレーションシステム）が管理する実行の単位である。
この生成されたプロセスが、プログラム更新処理部２３００の処理を引き継ぐことになる。すなわち、プログラム更新処理部２３００は、生成したプロセスに、更新が必要と判断したプログラム名２３５１の一覧を渡し、プログラムの更新及び再起動を依頼する。従って、実際の更新処理及び再起動の処理は、この別プロセスが行なう。
【００５８】
この別プロセスのプログラム更新処理部２３００は、受け取ったプログラム名２３５１の一覧をサーバ装置５０００の最新プログラム管理部５２００に送信し、最新のプログラムを送信するよう要求する（ステップＳ３５）。
プログラム名の一覧を受信した最新プログラム管理部５２００は、該当するプログラムを最新プログラム記憶部５１００から読み出し、別プロセスのプログラム更新処理部２３００に送信する（ステップＳ３７）。
【００５９】
最新のプログラムを受け取った別プロセスのプログラム更新処理部２３００は、プログラム記憶部２５００に記憶しているプログラムを最新のものに置き換える。
すべての必要な更新が完了したら、アプリケーションを再起動し、自分である別プロセスを消滅させる。
その後、アプリケーションの起動が行われ、初期処理が開始される（ステップＳ２１）。
【００６０】
初期処理の実行後、認証処理が行われる。この認証処理は、一回目の認証処理とほとんど同じであるが、認証情報をユーザに要求して取得するのではなく、認証情報記憶部２６００、すなわち認証情報を記憶しているファイルから読み出して認証処理を行なう点が異なる。
詳細には、初期処理を終えて、制御部２１００は、更新判断部２１１０に、この起動指示がプログラムの更新後のものであるか否かの判断を依頼する。
【００６１】
更新されたか否かの判断の依頼を受けた更新判断部２１１０は、認証情報記憶部２６００に認証情報が記憶されているかを、認証処理部２４００を介して問い合わせる。
この起動指示は、更新後の起動指示であることから、ファイルが存在し、最初の起動処理で入力された認証情報がこのファイル、すなわち、認証情報記憶部２６００に記憶されている。従って、認証処理部２４００は、認証情報は記憶されている旨を、更新判断部２１１０に返すことになる。
【００６２】
認証情報が記憶されている旨の返答を得た更新判断部２１１０は、この起動指示が更新後のもの、すなわち２度目の起動指示であると判断し、その旨を制御部２１００に返す（ステップＳ２２：Ｙ）。
更新判断部２１１０から、この起動指示が更新後のものである旨の返答を受けた制御部２１００は、認証処理部２４００に、認証情報記憶部２６００に記憶されている認証情報を確認するよう指示を出す。
【００６３】
依頼を受けた認証処理部２４００は、認証情報記憶部２６００から認証情報を読み出す（ステップＳ３８）。
その後、読み出した認証情報をもとに、認証処理を行なう（ステップＳ２５〜ステップＳ２８）。
認証処理を終えた後、制御部２１００は、更新処理を行なう。
【００６４】
この更新処理は、最初の起動処理の時に行われたものと同じである（ステップＳ２９〜ステップ３４）。ただし、クライアント装置１０００のアプリケーションは最新のものに更新されているため、プログラムの更新は必要ないと判断され（ステップＳ３３：Ｙ）、制御部２１００によって、プログラム実行部２２００に対して実行要求が出され、プログラム実行部２２００によりプログラムが実行される（ステップＳ３９）。
【００６５】
尚、プログラムの更新は必要であると判断された場合には、更新処理が行なわれることになる（ステップＳ３４〜ステップＳ３７）。
アプリケーション終了時に行なわれる終了処理において、認証情報が保存されているファイルを削除する（図４：ステップＳ１４）。詳細には、制御部２１００からファイル削除の指示を受けた認証処理部２４００が、本ファイルを削除する。
【００６６】
＜補足＞
以上、本発明に係るプログラム実行システムについて実施形態に基づいて説明したが、部分的に変形することもでき、本発明は上述の実施形態に限られないことは勿論である。
（１）実施形態では、プログラムの更新は、アプリケーションの起動時に行なうこととしているが、ユーザがアプリケーションを使用して作業をしている途中であっても、ユーザの指示により更新することができるとしてもよい。
【００６７】
この場合、アプリケーションのプログラムで実行しているものものがあれば実行を停止する旨を制御部２１００がプログラム実行部２２００に通知し、プログラムの実行を停止した後、更新を行なう。また、停止前に、ユーザのファイル等は、保存する処理を行なっておく必要がある。
（２）実施形態では、プログラムの更新は、自動で行なうこととしているが、ユーザの許可を得た場合のみ、更新を行なうこととしてもよい。
【００６８】
例えば、図７に示すような、更新を行なうか否かの問い合わせのウィンドウを表示し、ユーザの許可を得ることになる。この場合、クライアント装置１０００は、図７に示すようなウィンドウを表示してユーザの入力を得る機能を有する更新許可受付部を備え、制御部２１００が更新許可の問い合わせを行い、許可があった場合には、プログラム更新処理部２３００に更新を依頼することになる。
【００６９】
また、ユーザの許可を得た場合のみ、更新を行なうこととした場合であっても、アプリケーションの使用に際してプログラムの更新が必要である場合には、自動で更新処理を行なうこととしてもよい。例えば、データベースのテーブル構造の変更等が行なわれ、そのテーブルを参照するプログラムを新しくする必要が生じた場合である。
（３）実施形態では、更新後の起動指示、すなわち２度目の起動指示においてもプログラムが最新であるか否かの判断を行なうこととしているが、この２度目の更新処理を行なわないこととしてもよい。
【００７０】
この場合、２度目の起動にかかる時間が短くなるという利点がある。一方、２度目の起動指示においても更新処理を行なう場合には、常に最新のプログラムにすることができるという利点がある。
（４）実施形態では、プログラムの更新処理後、すぐに自動で再起動を行なうこととしているが、更新処理後の所定時間内、例えば１０分以内に起動した場合には、ユーザに認証情報を要求する処理は行なわないこととしてもよい。
【００７１】
ユーザは、更新処理の間、必ずしもクライアント装置の前にいて再起動を待っているとは限らないからである。例えば、更新処理に時間がかかる場合などは、更新処理の間、ユーザは本来の作業ができないためである。
この場合は、更新処理を終了したら、一旦アプリケーションを終了することとする。但し、この際、アプリケーションが終了しても消えないファイル等に、認証情報を暗号化等して保存しておく必要がある。再起動時に、このファイルを読み出し、復号後、認証処理を行なう。
【００７２】
また、このファイルには、認証情報のみならず認証情報を入力した時刻等も暗号化し、保存しておく必要がある。この時刻と再起動時の時刻とを比較し、所定時間内に起動したか否かを判断する必要があるからである。
尚、この更新処理後の所定時間は、更新処理完了からの時間に限らず、前回の起動指示時からの時間、認証情報の入力時からの時間など、前回の起動を示す時間であればよい。
【００７３】
更新処理後の所定時間内に起動を行なう場合の処理について、図８を用いて説明する。図８は、所定時間内の再起動の処理を示すフローチャートである。
実施形態での処理（図５参照）とほぼ同じであるが、再起動であるか否かを判断する処理（ステップＳ８１、ステップＳ８２）と認証に使用する認証情報の求め方（ステップＳ８３）とが異なる。
【００７４】
起動指示を受けた制御部２１００は、初期処理（ステップＳ２１）を行なった後、この起動指示がプログラムの更新後のものであるか否かの判断を更新判断部２１１０に依頼する。
更新されたか否かの判断の依頼を受けた更新判断部２１１０は、認証情報記憶部２６００の認証情報を読み出すよう、認証処理部２４００に依頼する。
【００７５】
依頼を受けた認証処理部２４００は、認証情報記憶部２６００から認証情報を読み出し（ステップＳ８１）、更新判断部２１１０に返す。
認証情報を受け取った更新判断部２１１０は、受け取った認証情報の中に含まれている時刻を取り出して、現在の時刻が取り出した時刻から１０分以上経過していれば、この起動指示が更新後のものではない、すなわち最初の起動指示であると判断し、その旨を制御部２１００に返す（ステップＳ８２：Ｎ）。
【００７６】
更新判断部２１１０から、この起動指示が更新後のものではない旨の返答を受けた制御部２１００は、認証処理部２４００に、認証情報を確認するよう指示を出す。以後の処理は、図５での説明とほぼ同じである（ステップ２３〜ステップ２８参照）。異なる点は、ステップＳ２２で保存する認証情報に、保存する認証情報を作成した時の時刻を含ませる点である。
【００７７】
また、更新判断部２１１０は、現在の時刻が取り出した時刻から１０分以内であれば、この起動指示が更新後のものであると判断し、その旨を制御部２１００に返す（ステップＳ８２：Ｙ）。
更新判断部２１１０から、この起動指示が更新後のものである旨の返答を受けた制御部２１００は、認証処理部２４００に、認証情報記憶部２６００から読み出しておいた認証情報を使用して、確認するよう指示を出す（ステップＳ８３）。
【００７８】
依頼を受けた認証処理部２４００は、読み出しておいた認証情報をもとに、認証処理を行なう（ステップＳ２５〜ステップＳ２８）。
認証処理を終えた後、制御部２１００は、更新処理を行なう。
（５）実施形態では、認証情報の認証はサーバ装置で行なうこととしているが、クライアント装置で行なうこととしてもよい。
【００７９】
認証をクライアント装置で行なえば、サーバ装置との通信を行なう時間が不要な分、認証時間が短くて済むという利点がある。一方、認証をサーバ装置で行なう場合は、複数のクライアント装置を一括管理できるという利点がある。例えば、ユーザＩＤによって、アプリケーションを更新するための最新プログラムを送信するか否かを管理することができる。
（６）実施形態では、更新判断部２１１０は、認証情報が認証情報記憶部２６００にあるか否か、すなわち該当するファイルの有無で、プログラムの更新の有無を判断しているが、更新されたか否かを示すフラグを用いて、更新の有無を判断することとしてもよい。
【００８０】
フラグを用いて、更新の有無を判断する場合の処理について、図９を用いて説明する。図９は、フラグを用いて更新の有無を判断する場合の、プログラム実行システムの構成を示す機能ブロック図である。
実施形態で説明したシステムの構成（図１参照）と異なる点は、更新フラグ記憶部３１２０が加えられている点である。
【００８１】
処理の流れは、図５のフローチャートと同様であるが、ステップ２２の処理の内容が異なる。
更新判断部２１１０は、制御部２１００からプログラムが更新されたものであるか否かの判断を依頼されたときに（図５、ステップＳ２２参照）、更新フラグ記憶部３１２０に記録されている情報を基に、プログラムが更新されたものであるか否かを判断する。実施形態では、認証情報記憶部２６００に認証情報が記憶されているか否かを基に判断している点が異なっている。
【００８２】
この更新フラグ記憶部３１２０は、プログラムが、更新後のものであるのか、更新前のものであるのかを区別できる情報を記憶する機能を有する。この区別できる情報とは、１ビットのＯＮ/ＯＦＦ情報、値、文字列などの、更新の前後の区別ができるものであれば足りる。
この区別できる情報は、プログラム更新処理部２３００によって設定される情報である。プログラム更新処理部２３００が、プログラム記憶部２５００に記憶されているプログラムを更新したときに、更新後である旨の情報を設定する。
【００８３】
また、この更新フラグ記憶部３１２０は認証情報記憶部２６００と同様、最初の起動において情報を保存するときに存在し、最初に起動されたアプリケーション終了後、２度目に起動された場合に参照できるものであればよい。
例えば、この更新フラグ記憶部３１２０はファイルであり、この区別できる情報が１ビットの情報であるとする。最初の起動時にファイルを作成し、その中の区別できる情報であるビットをＯＦＦにする。プログラム更新処理部２３００がプログラムを更新したときに、ＯＮにし、その後、再起動されたアプリケーションが終了するときに、ファイルを削除する。尚、ビットがＯＮのときは、プログラムの更新が行なわれたことを意味しており、更新判断部２１１０は、このビットがＯＮのときに、プログラムが更新されていると判断する。
（７）実施形態では、再起動時には、保存されている認証情報で認証処理を行なうこととしているが、再起動時には認証処理を行なわないこととしてもよい。
【００８４】
更新処理後の再起動時には認証処理を行なわない場合の処理について、図１０を用いて説明する。図１０は、再起動時に認証処理を行なわない場合の処理を示すフローチャートである。
実施形態での処理（図５参照）とほぼ同じであるが、再起動であるか否かを判断する処理（ステップＳ９１）において、再起動であると判断された場合（ステップＳ９１：Ｙ）の処理が異なる。
【００８５】
再起動であると判断された場合は、認証処理を行なわずに、更新処理を行なう（ステップＳ２９〜ステップＳ３７）。
実施形態では、この更新処理の前に、認証処理（図５：ステップＳ３８，ステップＳ２５〜ステップＳ２８）を行なう点が異なっている。
（８）実施形態では、アプリケーションのプログラムの更新について説明しているが、ＯＳ（オペレーティングシステム）のプログラムの更新であってもよい。
【００８６】
この場合、ＯＳの終了処理を行う命令の後に、ＯＳの起動を指示するような命令を記載して、再起動が行われるような仕組みを作成しておく必要がある。
（９）実施形態では、認証情報記憶部２６００はファイルとしているが、内部メモリ等であってもよい。
この認証情報記憶部２６００は、２度目に起動された場合に参照する必要がある。従って、例えば、２度目の起動を別プロセスに行なわせることとし、この別プロセス内のメモリに認証情報を記憶しておいて、２度目の起動時にこの認証情報をパラメータにするなどして、アプリケーションに渡す必要がある。
（１０）実施形態では、更新後のアプリケーションの起動を別プロセスにおいて行なわせることとしているが、プログラムの更新がアプリケーションを終了させることなく行なえ、再起動が必要な場合には、ＯＳ（オペレーションシステム）に対して、数秒後にアプリケーションを起動するよう依頼し、アプリケーションを終了することとしてもよい。
【００８７】
この場合、アプリケーション終了の数秒後に、ＯＳによって、アプリケーションの起動が行われ、初期処理がなされることになる。
（１１）実施形態では、プログラムを更新する必要の有無を、その更新日時で判断しているが、バージョンナンバ等の情報で必要の有無を判断することとしてもよい。
（１２）本実施形態では、プログラムは、いわゆるオブジェクトモジュールであるとしているが、ライブラリ形式のモジュール、ソースコード等であってもよい。
【００８８】
この場合、プログラム実行部は、プログラムの種類に応じたものでなければならない。
また、プログラムが、ライブラリ形式のモジュール等であった場合には、そのライブラリの一部のモジュールを更新することとしてもよい。
（１３）実施形態で示したプログラム実行システムの各機能を実現させる為の各制御処理（図４等参照）をＣＰＵに実行させる為のプログラムを、記録媒体に記録し又は各種通信路等を介して、流通させ頒布することもできる。このような記録媒体には、ＩＣカード、光ディスク、フレキシブルディスク、ＲＯＭ、フラッシュメモリ等がある。流通、頒布されたプログラムは、機器におけるＣＰＵで読み取り可能なメモリ等に格納されることにより利用に供され、そのＣＰＵがそのプログラムを実行することにより実施形態で示したプログラム実行システムの各機能が実現される。
（１４）実施形態では、認証はパスワードとユーザＩＤで行なうこととしているが、生体認証等であってもよい。
【００８９】
この場合、記憶する認証情報は、その認証方法に必要な情報となる。
【産業上の利用可能性】
【００９０】
ユーザが使用しているアプリケーション更新時の利便性を高めるだけでなく、認証処理が多くならざるを得ないようなシステムの利便性を向上させるための技術として有用である。
【図面の簡単な説明】
【００９１】
【図１】プログラム実行システムの構成を示す機能ブロック図である。
【図２】クライアント装置の更新情報の構成及び内容例を示す図である。
【図３】サーバ装置の更新情報の構成及び内容例を示す図である。
【図４】クライアント装置１０００においてアプリケーション２０００を実行する処理を示すフローチャートである。
【図５】アプリケーションの起動処理を示すフローチャートである。
【図６】認証情報の入力を要求するウィンドウの構成及び内容例を示す図である。
【図７】更新を行なうか否かの問い合わせのウィンドウの例を示す図である。
【図８】所定時間内の再起動の処理を示すフローチャートである。
【図９】フラグを用いて更新の有無を判断する場合の、プログラム実行システムの構成を示す機能ブロック図である。
【図１０】再起動時に認証処理を行なわない場合の処理を示すフローチャートである。
【符号の説明】
【００９２】
１０００    クライアント装置
１１００    起動指示受付部
１２００    認証情報受付部
１３００    送受信部
２０００    アプリケーション
２１００    制御部
２１１０    更新判断部
２２００    プログラム実行部
２３００    プログラム更新処理部
２３１０    アプリケーション更新情報
２３５１    プログラム名
２３５２    更新日時
２４００    認証処理部
２５００    プログラム記憶部
２６００    認証情報記憶部
３１２０    更新フラグ記憶部
５０００    サーバ装置
５１００    最新プログラム記憶部
５２００    最新プログラム管理部
５２１０    アプリケーション更新情報
５２５０    プログラム更新情報
５３００    認証部
５４００    送受信部
【図１】
2005032236.tif 000003
【図２】
2005032236.tif 000004
【図３】
2005032236.tif 000005
【図４】
2005032236.tif 000006
【図５】
2005032236.tif 000007
【図６】
2005032236.tif 000008
【図７】
2005032236.tif 000009
【図８】
2005032236.tif 000010
【図９】
2005032236.tif 000011
【図１０】
2005032236.tif 000012