JP3626662B2 - How to provide application services - Google Patents

How to provide application services Download PDF

Info

Publication number
JP3626662B2
JP3626662B2 JP2000131795A JP2000131795A JP3626662B2 JP 3626662 B2 JP3626662 B2 JP 3626662B2 JP 2000131795 A JP2000131795 A JP 2000131795A JP 2000131795 A JP2000131795 A JP 2000131795A JP 3626662 B2 JP3626662 B2 JP 3626662B2
Authority
JP
Japan
Prior art keywords
data
application
server
application program
authentication
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.)
Expired - Lifetime
Application number
JP2000131795A
Other languages
Japanese (ja)
Other versions
JP2001312403A (en
Inventor
将夫 森田
Original Assignee
Necネクサソリューションズ株式会社
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
Application filed by Necネクサソリューションズ株式会社 filed Critical Necネクサソリューションズ株式会社
Priority to JP2000131795A priority Critical patent/JP3626662B2/en
Publication of JP2001312403A publication Critical patent/JP2001312403A/en
Application granted granted Critical
Publication of JP3626662B2 publication Critical patent/JP3626662B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、アプリケーション・サービスを提供する方法及びシステムに関するものである。
【0002】
【発明の背景】
アプリケーション・サービスを提供するとは、コンピュータネットワークを介してアプリケーションプログラムを有償でユーザに利用させること、若しくはコンピュータネットワークを介していわゆる商用サービスをユーザに提供することをいう。
【0003】
ここで、コンピュータネットワークとは、例えば、インターネット(Internet)、広域通信網(WAN:Wide Area Network)等である。インターネットとは、良く知られるように、通信プロトコルTCP/IP(Transmission Control Protocol/Internet Protocol)を用いて全世界のネットワークを相互に接続した巨大なコンピュータネットワークである。また、TCP/IPとはインターネット、イントラネットで標準的に使われるプロトコルであり、TCP/IPはHTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)等の基盤となるプロトコルである。
尚、HTTPとはWebサーバとWebブラウザとの間でデータ(HTML文書、画像ファイル、音楽ファイル、映像ファイル等)を送受信するのに使われるプロトコルであり、HTTPは1つのHTML文書毎にTCP/IPの接続・データ転送(HTML文書のほか、このHTML文書に関連付けられている画像ファイル等)・切断を行うステートレスのプロトコルである。HTTPは、IETF(Internet Engineering Task Force)が公開している技術文書rfc(Request For Comments)2616で定義されている(http://www.ietf.org/rfc/rfc2616.txt)。
【0004】
また、WebサーバとはWebブラウザからのリクエストに応じてサーバ上のリソース(HTML文書、画像ファイル、音楽ファイル、映像ファイル等)をWebブラウザに送信するものである。ここで、Webサーバには、サーバ上のHTML文書等を単に送信するもののほか、サーバ上のアプリケーションプログラムを実行しその出力結果に基づいて生成されたHTML文書等を送信するものも含む。尚、アプリケーションプログラムの出力結果に基づいてHTML文書を生成するアプリケーションプログラムは、例えば、Perl(Practical Extraction and Report Language)、Java等のプログラム言語で作成されている。Perlで作成されたアプリケーションプログラムは、良く知られるように、CGI(Common Gateway Interface)技術を用いて動的なHTML文書を生成できる。
一方、Webブラウザとはサーバ上のリソースをWebブラウザから受信してリソースを解析してユーザ端末のディスプレイ又はスピーカに表示又は再生するものである。加えて、Webブラウザはユーザからの入力を受け取ってWebサーバに送信することもできる。ここで、Webブラウザには、Netscape Communications社のNetscape Navigator(Communicator)、Microsoft社のInternet Explorer等がある。
【0005】
ところで、現在、アプリケーション・サービスを提供する事業者、即ちアプリケーション・サービス・プロバイダ(ASP:Application Service Provider)と言えば、自らアプリケーションプログラムを開発するベンダーである。即ち、ベンダー自らがアプリケーションプログラムを開発するとともに、業務プロセスプログラム(ユーザ認証プログラム、課金処理プログラム等)を開発して、業務プロセスプログラムを組み込んだアプリケーションプログラムをコンピュータネットワークを介して有償でユーザに利用させている。
【発明が解決しようとする課題】
現在のアプリケーション・サービスを提供する方法及びシステムには次のような問題があった。
【0006】
例えば、複数のユーザが同一のアプリケーションプログラムを同時に利用することも当然に生じ得る。この場合、アプリケーションプログラムは複数のユーザのそれぞれに対するHTML文書等のデータを生成する必要があるので、アプリケーションプログラムの処理速度が低下することになる。
【0007】
ここで、アプリケーションプログラムの処理速度の低下を防ぐためには、アプリケーションプログラムが格納されるサーバ(以下、「アプリケーションサーバ」とも言う。)の処理能力を高くすれば解決する。
ところが、アプリケーションサーバのコストは処理能力が高くなるに伴って飛躍的に高くなるのが現状である。具体的に言えば、アプリケーションサーバのコストは、演算速度に依存するCPU(Central Processing Unit) のクロック周波数、データの送信速度に依存するルータの通信速度等が2倍になると2倍以上になることは言うまでもない。また、現在の技術ではCPUのクロック周波数等には上限があるのが現状である。従って、アプリケーションサーバの処理能力を高くすることには限界があるので、ある程度の数のユーザが同一のアプリケーションプログラムを同時に利用する場合には、アプリケーションプログラムの処理速度の低下を防ぐことができるが、非常に多くの数のユーザが同一のアプリケーションプログラムを同時に利用する場合、アプリケーションプログラムの処理速度が低下することになる。
【0008】
また、アプリケーションプログラムの処理速度の低下を防ぐためには、アプリケーションサーバを複数台設置することによっても解決する。即ち、アプリケーションプログラムを複数のアプリケーションサーバに分散させて、一台のアプリケーションサーバに格納されるアプリケーションプログラムを利用するユーザの数を分散させる。これにより、アプリケーションプログラムの処理速度の低下を防止することができる。
結果として、例えば、同一のユーザが同一のアプリケーションプログラムを複数のアプリケーションサーバで利用することも当然に生じ得る。即ち、同一のユーザが同一のアプリケーションプログラムをあるアプリケーションサーバで利用し始め、利用を一旦中止する(一時退避)。しかる後に同一のユーザが同一のアプリケーションプログラムを別のアプリケーションサーバで利用を再開することも当然に生じ得る。この場合、業務プロセスプログラムのそれぞれがアプリケーションプログラム(ユーザ認証プログラム、課金処理プログラム等)に組み込まれているので、アプリケーションサーバ単位で同一のユーザのユーザ認証がされ、同一のユーザに課金処理がされることになる。
【0009】
従って、アプリケーション・サービス・プロバイダ(ASP)が同一のユーザに対して利用代金の支払いを求める場合、アプリケーション・サービス・プロバイダを行う事業者は同一のユーザに対する課金処理の結果をアプリケーションサーバのそれぞれで収集して利用代金の額を算出することになる。尚、課金処理の結果である利用代金の額は、アプリケーション・サービス・プロバイダを行う事業者とユーザとの契約でユーザが利用したアプリケーションプログラムの実績データ(利用時間、利用回数等)に基づいて算出されている。
【0010】
ここで、アプリケーション・サービス・プロバイダ(ASP)とユーザとの間の契約で利用代金の額が、ユーザの利用時間(実績データ)に線形である場合、アプリケーションサーバ単位の課金処理の結果である利用代金の額を単に足すだけでよい。一例を挙げれば、契約で利用代金の額が、1000円/1時間当たり(ユーザの利用時間)であるとする。A(ユーザ)さんがA(アプリケーションプログラム)をAサーバ(アプリケーションサーバ)で1時間利用し、しかる後にAさんがAをBサーバで2時間利用したとする。Aサーバは課金処理の結果として利用代金の額を1000円であると算出し、Bサーバは課金処理の結果として利用代金の額を2000円であると算出する。これに対し、課金処理の結果である利用代金の額のそれぞれを単に足すだけでよい(1000円+2000円)。
【0011】
しかしながら、アプリケーション・サービス・プロバイダ(ASP)とユーザとの間の契約で利用代金の額が、ユーザの利用時間(実績データ)に線形でない場合、アプリケーションサーバ単位の課金処理の結果である利用代金の額を単に足すことはできない。一例を挙げれば、契約で利用代金の額が、合計利用時間が1時間までは1000円/1時間当たりであり、合計利用時間が1時間以降2時間までは2000円/1時間当たりであるとする。先程と同様に、AさんがAをAサーバで1時間利用し、しかる後にAさんがAをBサーバで2時間利用したとする。Aサーバは課金処理の結果として利用代金の額を1000円であると算出し、Bサーバは課金処理の結果として利用代金の額を3000円(1000円+2000円)であると算出する。これに対し、課金処理の結果である利用代金の額のそれぞれを単に足すと4000円(1000円+3000円)。一方、契約ではAさんがAを3時間利用すると、契約の利用代金の額は5000円(1000×1+2000×2)である。
【0012】
即ち、契約の利用代金の額がユーザの利用時間(実績データ)に線形でない場合、アプリケーションサーバ単位の課金処理の結果である利用代金の額を単に足すことはできない。従って、AさんはAをAサーバで1時間利用し、しかる後にAさんはAを再びAサーバで2時間利用しなければならない。即ち、同一のユーザが同一のアプリケーションプログラムを同一のアプリケーションサーバで利用しなければならない。結果として、アプリケーションプログラムを複数のアプリケーションサーバに分散させても、一台のアプリケーションサーバに格納されるアプリケーションプログラムを利用するユーザの数を分散できない場合がある。これにより、アプリケーションプログラムの処理速度が低下することになる。
【0013】
本発明は現在のアプリケーション・サービスを提供する方法及びシステムにおける問題に鑑みてなされたものであって、アプリケーションプログラムの処理速度の低下を防止することができるアプリケーション・サービスを提供する方法及びシステムを提供することを課題とする。
【0014】
【課題を解決するための手段】
前記課題を解決する請求項1の発明は、複数のアプリケーションサーバに格納されるアプリケーションプログラムのそれぞれのうち一のアプリケーションプログラムに対する会話要求データと予め認証された認証証明書データと、ユーザ端末から前記一のアプリケーションプログラムが格納される一のアプリケーションサーバに送受信する第1のステップと、前記予め認証された認証証明書データとデータサーバに予め格納される認証証明書データと前記一のアプリケーションサーバにおいて比較一致する場合に、前記一のアプリケーションプログラムによって前記会話要求データに対する会話返答データと利用実績データとを作成し、且つ前記一のアプリケーションサーバが再度認証した認証証明書データと前記会話返答データとを、前記一のアプリケーションサーバから前記ユーザ端末に送受信する第2のステップと、前記利用実績データ、前記一のアプリケーションプログラムに組み込んだ課金APIから前記データサーバに送受信する第3のステップとを含むことを特徴とするアプリケーション・サービスを提供する方法である。
【0015】
したがって請求項1の発明によれば、複数のアプリケーションサーバのそれぞれが、受信した認証証明書データとデータサーバに予め格納される認証証明書データとを比較して、受信した認証証明書データの正当性の確認を行うことができる。即ち、複数のアプリケーションサーバのそれぞれが、同一のユーザを識別することができる。換言すれば、複数のアプリケーションサーバ間でユーザ管理の統一性を実現することができる。これにより、アプリケーションプログラムを複数のアプリケーションサーバに分散させて、アプリケーションプログラムの処理速度の低下を防止することができるという利点がある。
【0016】
また、請求項2の発明は、前記第3のステップ後に前記複数のアプリケーションサーバに格納されるアプリケーションプログラムのそれぞれのうち他のアプリケーションプログラムに対する会話要求データと前記再度認証された認証証明書データと、前記ユーザ端末から前記他のアプリケーションプログラムが格納される他のアプリケーションサーバに送受信する第4のステップと、前記再度認証された認証証明書データと前記予め格納された認証証明書データと前記他のアプリケーションサーバにおいて比較一致する場合に、前記会話要求データに対する会話返答データと利用実績データと、前記他のアプリケーションプログラムによって作成、且つ前記会話返答データと前記他のアプリケーションサーバによって再度認証された認証証明書データと、前記他のアプリケーションサーバから前記ユーザ端末に送受信する第5のステップと、前記利用実績データ、前記他のアプリケーションプログラムに組み込んだ課金APIから前記データサーバに送受信する第6のステップとを含むことを特徴とする請求項1に記載のアプリケーション・サービスを提供する方法である。
【0017】
したがって請求項2の発明によれば、請求項1の発明の利点があるとともに、ユーザは一のアプリケーションプログラムによって再度認証された認証証明書データを他のアプリケーションプログラムに送信することにより、他のアプリケーションプログラムを利用することができる。結果として、ユーザは同一のアプリケーションプログラムを他のアプリケーションサーバで利用することもでき、また、異なるアプリケーションプログラムを契約の範囲内で自由に利用することができる。このように、ユーザが同一のアプリケーションサーバだけに制限されることがないので、ユーザが複数のアプリケーションサーバに分散することになる。これにより、アプリケーションプログラムの処理速度の低下を防止することができるという利点がある。
【0018】
また、請求項3の発明は、前記第3のステップ又は前記第6のステップ後に、前記第4のステップ、前記第5のステップ及び前記第6のステップを1回以上繰り返して実行する第7のステップを含むことを特徴とする請求項1又は請求項2に記載のアプリケーション・サービスを提供する方法である。
【0019】
したがって請求項3の発明によれば、請求項1又は請求項2の発明の利点があるとともに、ユーザは一のアプリケーションサーバから他のアプリケーションサーバに接続した後、再び一のアプリケーションサーバに格納される同一のアプリケーションプログラムを利用することができる。例えば、ユーザが他のアプリケーションサーバに接続を切り換えたとしても、必ずしも他のアプリケーションサーバに格納される他のアプリケーションプログラムの処理速度が速いとは限らない。従って、他のアプリケーションプログラムの処理速度が遅い場合には、ユーザが一のアプリケーションプログラムの利用を再開することにより、他のアプリケーションプログラムの処理速度の更なる低下を防止することができる。
【0020】
また、請求項4の発明は、前記一のアプリケーションプログラムに組み込んだ課金API及び/又は前記他のアプリケーションプログラムに組み込んだ課金APIから受信した利用実績データに基づく利用代金の額データ、前記データサーバにおいて作成するステップを含むことを特徴とする請求項1から請求項3の何れか一に記載のアプリケーション・サービスを提供する方法である。
【0021】
したがって請求項4の発明によれば、請求項1から請求項3の何れか一の発明の利点があるとともに、利用実績データがアプリケーションサーバのそれぞれからデータサーバに送信されるので、契約の利用代金の額がユーザの利用時間(実績データ)に線形でない場合であっても、データサーバで利用実績データを収集して、課金処理を行って利用代金の額を算出することができる。即ち、複数のアプリケーションサーバ間で課金管理の統一性を実現することができるという利点がある。
【0022】
また、請求項5の発明は、アプリケーションプログラムの応答時間データ、前記複数のアプリケーションサーバのそれぞれから前記データサーバに定期的に送受信する監視ステップと、前記第1のステップ前にアプリケーションプログラムに対する接続要求データとユーザ識別データと、前記ユーザ端末から前記複数のアプリケーションサーバのうち何れか一のアプリケーションサーバに送受信するログインステップと、前記ユーザ識別データと前記データサーバに予め格納されるユーザ識別データと前記何れか一のアプリケーションサーバにおいて比較一致する場合に、前記第1のステップに係る予め認証された認証証明書データ、前記データサーバに格納、前記応答時間データのそれぞれ前記データサーバから前記何れか一のアプリケーションサーバに送受信して、前記応答時間データのそれぞれのうち最も応答時間が短いアプリケーションプログラムが格納される最速アプリケーションサーバを指定するメニューデータを作成し、且つ前記予め認証された認証証明書データと前記メニューデータと、前記何れか一のアプリケーションサーバから前記ユーザ端末に送受信する認証ステップとを含み、前記メニューデータに基づいて前記ユーザ端末から前記最速アプリケーションサーバに接続するとともに、前記第1のステップに係る一のアプリケーションサーバが前記最速アプリケーションサーバとして前記第1のステップ実行することを特徴とする請求項1から請求項4の何れか一に記載のアプリケーション・サービスを提供する方法である。
【0023】
したがって請求項5の発明によれば、請求項1から請求項4の何れか一の発明の利点があるとともに、アプリケーションプログラムの応答時間データが監視されているので、アプリケーションプログラムの処理速度の低下を確実に防止することができるという利点がある。
【0024】
また、請求項6の発明は、前記第2のステップ及び/又は前記第5のステップは、前記認証証明書データと前記予め格納された認証証明書データと比較一致する場合に、前記予め格納される認証証明書データ、新たな認証証明書データに前記一のアプリケーションサーバ及び/又は前記他のアプリケーションサーバにおいて変更、且つ前記新たな認証証明書データ、前記データサーバに格納するステップを含み、前記再度認証された認証証明書データ、前記新たな認証証明書データとして送受信することを特徴とする請求項1から請求項5の何れか一に記載のアプリケーション・サービスを提供する方法である。
【0025】
また、請求項7の発明は、前記第1のステップに係る認証証明書データが、予め暗号化された暗号化済認証証明書データであり、前記第2のステップ及び/又は前記第5のステップは、前記予め認証された認証証明書データを、前記一のアプリケーションサーバ及び/又は前記他のアプリケーションサーバにおいて暗号化し暗号化済認証証明書データを生成し、且つ前記暗号化済認証証明書データを前記データサーバに格納するステップを含み、前記再度認証された認証証明書データとして前記暗号化済認証証明書データ送受信することを特徴とする請求項1から請求項6の何れか一に記載のアプリケーション・サービスを提供する方法である。
【0026】
したがって請求項6又は請求項7の発明によれば、認証証明書データの偽造を防止することができるという利点がある。
【0036】
尚、現在のアプリケーション・サービスを提供する方法及びシステムには次のような問題もあった。
【0037】
ベンダー自ら業務プロセスプログラム(ユーザ認証プログラム、課金処理プログラム等)を開発する必要があるので、業務プロセスプログラムの開発に必要な設備(プログラム開発者、プログラム開発用サーバ等)を導入する必要がある。即ち、ベンダー自らが業務プロセスプログラムの開発に必要な設備を導入し、業務プロセスを運用する必要がある。この設備の導入コスト及び業務プロセスの運用コストは高額であるので、事実上多くの資本を有する大手ベンダーのみがアプリケーション・サービス・プロバイダ(ASP)となっている。従って、ベンダーがアプリケーション・サービス・プロバイダの事業に容易に参入できないという問題があった。
【0038】
また、業務プロセスプログラムの開発に必要な設備の導入コスト及び業務プロセスの運用コストは高額であるので、大手ベンダーでさえアプリケーションプログラムを高価格でユーザに利用させて、初めて導入コスト及び運用コストの採算が取れているのが現状である。従って、ユーザが利用可能なアプリケーションプログラムの数若しくは種類が事実上少ないという問題があった。
【0039】
更に、大手ベンダーが個々にアプリケーション・サービス・プロバイダ(ASP)となるので、ユーザはアプリケーション・サービス・プロバイダ(ASP)毎に予め契約を結び、且つアプリケーションプログラムの利用代金を支払う必要がある。従って、ユーザは契約、利用代金の支払い等の事務手続が煩雑であるという問題があった。
【0040】
また請求項13は、認証システムによって予め認証された認証証明書データが、アプリケーションプログラムに入力され、
前記予め認証された認証証明書データが、認証API(Application Program Interface)を介して前記認証システムに入力され、
且つ前記認証システムによって再度認証された認証証明書データが、前記認証APIを介して前記アプリケーションプログラムに出力されるステップを含むこと特徴とする認証関数プログラムによるユーザの認証方法である。
【0041】
また請求項14は、請求項13に記載のステップを実行させるための認証関数プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0042】
したがって請求項13又は請求項14の発明によれば、アプリケーションプログラムに認証API(Application Program Interface)を組み込むだけで、アプリケーションプログラムはユーザの管理ができる。即ち、アプリケーションプログラムを開発するだけで、ユーザ認証プログラムを開発する必要がなくなる。これにより、ベンダーがアプリケーション・サービス・プロバイダの事業に容易に参入できるという利点がある。
【0043】
また請求項15は、アプリケーションプログラムに対する会話要求データが、前記アプリケーションプログラムに入力される第1のステップと、
前記会話要求データに対する会話応答データが、前記アプリケーションプログラムによって作成される第2のステップと、
前記会話要求データに対する利用実績データが、前記アプリケーションプログラムによって作成される第3のステップと、
前記利用実績データが、課金APIを介して課金システムに入力される第4のステップと、を含むこと特徴とする課金関数プログラムによるユーザの課金方法である。
【0044】
したがって請求項15の発明によれば、アプリケーションプログラムに課金API(Application Program Interface)を組み込むだけで、アプリケーションプログラムはユーザの課金ができる。即ち、アプリケーションプログラムを開発するだけで、課金処理プログラムを開発する必要がなくなる。これにより、ベンダーがアプリケーション・サービス・プロバイダの事業に容易に参入できるという利点がある。
【0045】
また請求項16は、前記第1のステップ後前記第2のステップ前に処理開始時刻が、前記アプリケーションプログラムによって作成されるステップと、
前記第2のステップ後前記第3のステップ前に処理終了時刻が、前記アプリケーションプログラムによって作成されるステップと、を含み、
前記第3のステップは、前記処理開始時刻及び前記処理終了時刻に基づいて前記利用実績データが作成されることを特徴とする請求項15に記載の課金関数プログラムによるユーザの課金方法である。
【0046】
また請求項17は、前記第3のステップは、前記会話要求データ及び前記会話応答データに基づく課金項目に基づき前記利用実績データが作成されることを特徴とする請求項15又は請求項16に記載の課金関数プログラムによるユーザの課金方法である。
【0047】
また請求項18は、請求項15から請求項17の何れか一に記載の全てのステップを実行させるための課金関数プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0048】
したがって請求項16から請求項18の何れか一の発明によれば、アプリケーションプログラムはユーザの利用態様に応じて課金ができる。
【0049】
また請求項19は、認証システムによって予め認証された認証証明書データが、ユーザ端末からアプリケーションプログラムに受信され、
前記予め認証された認証証明書データが、前記認証APIを介して前記認証システムに入力され、
且つ前記認証システムによって再度認証された認証証明書データが、前記認証APIを介して前記アプリケーションプログラムからユーザ端末に送信されるステップとを含むこと特徴とするアプリケーションプログラムによるユーザの認証方法である。
【0050】
また請求項20は、アプリケーションプログラムに対する会話要求データが、ユーザ端末から前記アプリケーションプログラムに受信される第1のステップと、
前記会話要求データに対する会話応答データが、前記アプリケーションプログラムによって作成される第2のステップと、
前記会話要求データに対する利用実績データが、前記アプリケーションプログラムによって作成される第3のステップと、
前記利用実績データが、課金APIを介して前記アプリケーションプログラムから課金システムに入力される第4のステップと、を含むこと特徴とするアプリケーションプログラムによるユーザの課金方法である。
【0051】
また請求項21は、前記第1のステップ後前記第2のステップ前に処理開始時刻が、前記アプリケーションプログラムによって作成されるステップと、
前記第2のステップ後前記第3のステップ前に処理終了時刻が、前記アプリケーションプログラムによって作成されるステップと、を含み、
前記第3のステップは、前記処理開始時刻及び前記処理終了時刻に基づいて前記利用実績データが作成されることを特徴とする請求項20に記載のアプリケーションプログラムによるユーザの課金方法である。
【0052】
また請求項22は、前記第3のステップは、前記会話要求データ及び前記会話応答データに基づく課金項目に基づき前記利用実績データが作成されることを特徴とする請求項20又は請求項21に記載のアプリケーションプログラムによるユーザの課金方法である。
【0053】
また請求項23は、請求項19に記載のステップと、
請求項20から請求項22の何れか一に記載の全てのステップと、を含むことを特徴とするユーザの課金及び課金方法である。
【0054】
また請求項24は、請求項19から請求項23の何れか一に記載の全てのステップを実行させるためのアプリケーションプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0055】
したがって請求項19から請求項24の何れか一の発明によれば、認証API及び/又は課金APIを組み込んだアプリケーションプログラムを作成するだけで、アプリケーションプログラムはユーザの認証及び/又課金はができる。即ち、認証API及び/又は課金APIを組み込んだアプリケーションプログラムを開発するだけで、ユーザ認証及び/又は課金処理プログラムを開発する必要がなくなる。これにより、ベンダーがアプリケーション・サービス・プロバイダの事業に容易に参入できるという利点がある。
【0056】
また請求項25は、ユーザ識別データが、ユーザ端末からアプリケーションサーバに格納される認証システムに受信されるログインステップと、
前記ユーザ識別データが、前記認証システムによって認証され、
前記認証システムによって予め認証された認証証明書データが、前記認証システムから前記ユーザ端末に送信される認証ステップと、
アプリケーションプログラムに対する会話要求データと前記予め認証された認証証明書データとが、前記ユーザ端末から前記アプリケーションプログラムに受信される第1のステップと、
前記予め認証された認証証明書データが、前記アプリケーションプログラムに組み込まれた認証APIを介して前記認証システムに入力され、
前記予め認証された認証証明書データが、前記認証システムによって再度認証され、
前記認証システムによって再度認証された認証証明書データが、認証APIを介して前記アプリケーションプログラムに出力される再認証ステップと、
前記会話要求データに対する会話応答データが、前記アプリケーションプログラムによって作成される第2のステップと、
前記会話要求データに対する利用実績データが、前記アプリケーションプログラムによって作成される第3のステップと、
前記再度認証された認証証明書データと前記会話応答データとが、前記アプリケーションプログラムからユーザ端末に送信されるステップと、
前記利用実績データが、課金APIを介して前記アプリケーションプログラムからデータサーバに格納される課金システムに入力される第4のステップと、を含むこと特徴とするアプリケーションサーバによるユーザの認証及び課金方法である。
【0057】
また請求項26は、請求項25に記載の全てのステップを実行させるためのアプリケーションサーバに格納されるアプリケーションプログラム及び認証システムプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0058】
したがって請求項25又は請求項26の発明によれば、認証API及び課金APIを組み込んだアプリケーションプログラムと認証システムとをアプリケーションサーバに格納するだけで、ベンターはアプリケーション・サービスを提供することができる。即ち、ベンダーがアプリケーション・サービス・プロバイダの事業に容易に参入できるという利点がある。
【0059】
また請求項27は、ユーザ識別データが、ユーザ端末からアプリケーションサーバに格納される認証システムに送受信されるログインステップと、
前記ユーザ識別データが、前記認証システムによって認証され、
前記認証システムによって予め認証された認証証明書データが、前記認証システムから前記ユーザ端末に送信される認証ステップと、
アプリケーションプログラムに対する会話要求データと前記予め認証された認証証明書データとが、前記ユーザ端末から前記アプリケーションプログラムに送受信される第1のステップと、
前記予め認証された認証証明書データが、前記アプリケーションプログラムに組み込まれた認証APIを介して前記認証システムに入力され、
前記予め認証された認証証明書データが、前記認証システムによって再度認証され、
前記認証システムによって再度認証された認証証明書データが、認証APIを介して前記アプリケーションプログラムに出力される再認証ステップと、
前記会話要求データに対する会話応答データが、前記アプリケーションプログラムによって作成される第2のステップと、
前記会話要求データに対する利用実績データが、前記アプリケーションプログラムによって作成される第3のステップと、
前記再度認証された認証証明書データと前記会話応答データとが、前記アプリケーションプログラムからユーザ端末に送受信されるステップと、
前記利用実績データが、課金APIを介して前記アプリケーションプログラムからデータサーバに格納される課金システムに入力される第4のステップと、を含むこと特徴とするアプリケーション・サービスを提供する方法である。
【0060】
したがって請求項27の発明によれば、認証API及び課金APIを組み込んだアプリケーションプログラムと認証システムとをアプリケーションサーバに格納するだけで、ベンターはアプリケーション・サービスを提供することができる。即ち、ベンダーがアプリケーション・サービス・プロバイダの事業に容易に参入できるという利点がある。
【0061】
また、ベンダーはユーザ認証及び課金処理プログラムを開発する必要がなくなるので、新たなアプリケーションプログラムを開発することができる。この場合、この新たなアプリケーションプログラムをアプリケーションサーバに格納するだけで、ベンターは複数のアプリケーション・サービスを提供することができる。即ち、ユーザが利用可能なアプリケーションプログラムの数若しくは種類が多くなるという利点がある。
ここで、複数のアプリケーションプログラムがそれぞれ認証APIを介して一の認証システムによって、ユーザを識別することができる。換言すれば、複数のアプリケーションプログラム間でユーザ管理の統一性を実現することができる。
【0062】
更に、別のベンダーが別のアプリケーションプログラムを開発した場合、複数のアプリケーションプログラムと一の認証システムとをアプリケーションサーバに別のアプリケーションプログラムを格納するだけで、別のベンダーもアプリケーション・サービスを提供することができる。即ち、アプリケーションサーバは複数のベンダーのアプリケーションプログラムをユーザに有償で利用させることができる。
ここで、複数のベンダーのアプリケーションプログラムがそれぞれ課金APIを介して一の課金システムによって、利用実績データを集計して利用金額を算出することができる。換言すれば、複数のベンダーの間で課金管理の統一性を実現することができる。課金システムはユーザ別に利用金額を算出してユーザに支払いを求める一方、課金システムはベンダー別に利用金額を算出してベンダーに支払う。これにより、ユーザは利用代金の支払い等の事務手続が煩雑でないという利点がある。
【0063】
また請求項28は、前記再認証ステップは、前記予め認証された認証証明書データと認証データ保持システムに予め格納された認証証明書データとが前記認証システムによって比較されて一致する場合に、
前記予め格納される認証証明書データが、新たな認証証明書データに前記認証システムによって変更され、
且つ前記新たな認証証明書データが、前記データサーバに格納される認証データ保持システムに格納されるステップを含み、
前記再度認証された認証証明書データが、前記新たな認証証明書データとして出力されることを特徴とする請求項27に記載のアプリケーション・サービスを提供する方法である。
【0064】
また請求項29は、前記認証ステップに係る認証証明書データが、前記認証システムによって予め暗号化された暗号化済認証証明書データであり、
前記再認証ステップは、前記予め認証された認証証明書データと認証データ保持システムに予め格納された認証証明書データとが前記認証システムによって比較されて一致する場合に、
前記予め格納される認証証明書データが、新たな暗号化済認証証明書データに前記認証システムによって暗号化され、
且つ前記新たな暗号化済認証証明書データが、前記データサーバに格納される認証データ保持システムに格納されるステップを含み、
前記再度認証された認証証明書データが、前記新たな暗号化済認証証明書データとして出力されることを特徴とする請求項27又は請求項28に記載のアプリケーション・サービスを提供する方法である。
【0065】
したがって請求項28又は請求項29の発明によれば、認証証明書データの偽造を防止することができるという利点がある。
【0066】
また請求項30は、ユーザ識別データをユーザ端末から受信し、
前記ユーザ識別データを認証して予め認証された認証証明書データをユーザ端末に送信し、
前記予め認証された認証証明書データをアプリケーションプログラムから前記アプリケーションプログラムに組み込まれた認証APIを介して入力され、
前記予め認証された認証証明書データを再度認証して再度認証された認証証明書データを前記アプリケーションプログラムに前記認証APIを介して出力する認証システムと、
前記会話要求データと前記予め認証された認証証明書データとを前記ユーザ端末から受信し、
前記予め認証された認証証明書データを前記認証システムに入力し、
前記再度認証された認証証明書データを前記認証システムから出力され、
前記会話要求データに対する会話応答データと利用実績データとを作成し、
前記前記再度認証された認証証明書データと前記会話返答データとを前記ユーザ端末に送信し、
前記利用実績データを課金APIを介してデータサーバに格納される課金システムに入力するアプリケーションプログラムと、備えることを特徴とするアプリケーションサーバである。
【0067】
また請求項31は、アプリケーションサーバに格納される認証システムによって予め認証された認証証明書データを前記認証システムから格納され、
前記認証システムによって再度認証された認証証明書データを前記認証システムから格納される認証データ保持システムと、
利用実績データを前記アプリケーションサーバに格納されるアプリケーションから前記アプリケーションプログラムに組み込まれる認証APIを介して入力される課金システムと、を備えるデータサーバである。
【0068】
また請求項32は、請求項30に記載のアプリケーションサーバと、請求項31に記載のデータサーバと、から構成されてなるアプリケーション・サービスを提供するシステムである。
【0069】
したがって請求項30から請求項32何れか一の発明によれば、認証API及び課金APIを組み込んだアプリケーションプログラムと認証システムとをアプリケーションサーバに格納するだけで、ベンターはアプリケーション・サービスを提供することができる。即ち、ベンダーがアプリケーション・サービス・プロバイダの事業に容易に参入できるという利点がある。
【0070】
また、ベンダーはユーザ認証及び課金処理プログラムを開発する必要がなくなるので、新たなアプリケーションプログラムを開発することができる。この場合、この新たなアプリケーションプログラムをアプリケーションサーバに格納するだけで、ベンターは複数のアプリケーション・サービスを提供することができる。即ち、ユーザが利用可能なアプリケーションプログラムの数若しくは種類が多くなるという利点がある。
ここで、複数のアプリケーションプログラムがそれぞれ認証APIを介して一の認証システムによって、ユーザを識別することができる。換言すれば、複数のアプリケーションプログラム間でユーザ管理の統一性を実現することができる。
【0071】
更に、別のベンダーが別のアプリケーションプログラムを開発した場合、複数のアプリケーションプログラムと一の認証システムとをアプリケーションサーバに別のアプリケーションプログラムを格納するだけで、別のベンダーもアプリケーション・サービスを提供することができる。即ち、アプリケーションサーバは複数のベンダーのアプリケーションプログラムをユーザに有償で利用させることができる。
ここで、複数のベンダーのアプリケーションプログラムがそれぞれ課金APIを介して一の課金システムによって、利用実績データを集計して利用金額を算出することができる。換言すれば、複数のベンダーの間で課金管理の統一性を実現することができる。課金システムはユーザ別に利用金額を算出してユーザに支払いを求める一方、課金システムはベンダー別に利用金額を算出してベンダーに支払う。これにより、ユーザは利用代金の支払い等の事務手続が煩雑でないという利点がある。
【0072】
尚、現在のアプリケーション・サービスを提供する方法及びシステムには次のような問題もあった。
【0073】
[アプリケーションプログラムの負荷分散]
あるアプリケーションプログラムAに複数のユーザからの接続の要求のそれぞれが同時期に集中すると、このアプリケーションプログラムAを格納するサーバAの負荷が高くなる。この場合、アプリケーションプログラムAの処理速度が低下するので、アプリケーションプログラムAは複数のユーザに対する応答時間のそれぞれが遅くなり、サーバAのネットワークトラフック量は減少することになる。この時、ロードバランサー(従来のアプリケーションプログラムの負荷を分散する装置)が複数のサーバのネットワークトラフック量を計測し、且つ最も少ないネットワークトラフック量がサーバAである場合には、ロードバランサーはあるユーザの接続をサーバAのアプリケーションプログラムAに振り向けることになる。
即ち、アプリケーションプログラムの負荷が高くても、ユーザがこのアプリケーションプログラムに接続することもあるので、アプリケーションプログラムの負荷の分散が必ずしも正確にできないという問題があった。
【0074】
[待機するアプリケーションプログラムへの切替]
また、ロードバランサー、クラスタリング(従来の待機するアプリケーションプログラムへの切り替え装置)によっても、正常稼動を確認するための通信はサーバ単位で実行しているので、障害時の待機系への切り替えはサーバ単位に行っていることになる。従って、例えば、あるサーバAのアプリケーションプログラムAに障害が発生し、且つサーバAのアプリケーションプログラムBが正常稼動している場合、サーバAに障害が発生したことになるので、待機するサーバBに切り替わることになる。この時、サーバAで正常稼動しているアプリケーションプログラムBを利用するユーザは、サーバAのアプリケーションプログラムBを強制的に終了させられる、又はサーバAから待機するサーバBに切り替わる間にアプリケーションプログラムBを利用することができない。
即ち、接続するサーバのアプリケーションプログラムが正常稼動していても、待機するサーバのアプリケーションプログラムに切り替わることもあるので、待機するアプリケーションプログラムへの切替が必ずしも正確にできないという問題があった。
【0075】
また請求項33は、アプリケーションプログラムに対する会話要求データが、アプリケーションプログラムに入力される第1のステップと、
前記第1のステップ後に処理開始時刻が、前記アプリケーションプログラムによって作成される第2のステップと、
前記会話要求データに対する会話応答データが、前記アプリケーションプログラムから出力される第3のステップと、
前記第3のステップ後に処理終了時刻が、前記アプリケーションプログラムによって作成される第4のステップと、
前記アプリケーションプログラムの応答時間データが、前記処理開始時刻及び前記処理終了時刻に基づいて前記アプリケーションプログラムによって作成される第5のステップと、
前記応答時間データが、前記アプリケーションプログラムから監視API(Application Program Interface)に入力される第6のステップと、監視要求データが、監視システム(エージェント)から前記監視APIに入力される第7のステップと、
前記応答時間データが、前記監視APIから前記監視システム(エージェント)に出力される第8のステップと、を含むことを特徴とする監視関数プログラムによるアプリケーションプログラムの監視方法である。
【0076】
したがって請求項33の発明によれば、アプリケーションプログラムの応答時間を監視することができるので、アプリケーションプログラムに対する接続の要求等の負荷が一のアプリケーションプログラムに集中する場合、複数のアプリケーションプログラムのうち応答時間が短い他のアプリケーションプログラムに負荷を処理させることができる。即ち、一のアプリケーションプログラムの処理速度の低下を防ぐことができる。換言すれば、アプリケーションプログラムの負荷分散を正確に行うことができるという利点がある。
【0077】
また請求項34は、前記第8のステップ前に前記第1のステップ、前記第2のステップ、前記第3のステップ、前記第4のステップ、前記第5のステップ、及び前記第6のステップ、及び前記第7のステップの一連のステッップがN(Nは1以上)回以上繰り返して実行される第9のステップを含み、
前記第8のステップは、前記第9のステップが実行される結果として、
前記監視APIに入力される前記N個の応答時間データに基づく平均応答時間データが、前記第8のステップに係る応答時間データとして出力されることを特徴とする請求項33に記載の監視関数プログラムによるアプリケーションプログラムの監視方法である。
【0078】
したがって請求項34の発明によれば、請求項33の発明の利点があるとともに、アプリケーションプログラムの応答時間を正確に監視することができる。これにより、アプリケーションプログラムの負荷分散を更に正確に行うことができるという利点がある。
【0079】
また請求項35は、請求項33又は請求項34に記載の全てのステップを実行させるための監視関数プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0080】
したがって請求項35の発明によれば、アプリケーションプログラムに監視APIを組み込むだけで、アプリケーションプログラムの応答時間を監視することができる。これにより、アプリケーションプログラムの負荷分散を更に正確に行うことができるという利点がある。
【0081】
また請求項36は、アプリケーションプログラムに対する会話要求データが、ユーザ端末からアプリケーションプログラムに受信される第1のステップと、
前記第1のステップ後に処理開始時刻が、前記アプリケーションプログラムによって作成される第2のステップと、
前記会話要求データに対する会話応答データが、前記アプリケーションプログラムから前記ユーザ端末に送信される第3のステップと、
前記第3のステップ後に処理終了時刻が、前記アプリケーションプログラムによって作成される第4のステップと、
前記アプリケーションプログラムの応答時間データが、前記処理開始時刻及び前記処理終了時刻に基づいて前記アプリケーションプログラムによって作成される第5のステップと、
前記応答時間データが、前記アプリケーションプログラムから監視APIに入力される第6のステップと、
監視要求データが、監視システム(エージェント)から前記監視APIに入力される第7のステップと、
前記応答時間データが、前記監視APIから前記監視システム(エージェント)に出力される第8のステップと、を含むことを特徴とするアプリケーションプログラムによるアプリケーションプログラムの監視方法である。
【0082】
また請求項37は、前記第8のステップ前に前記第1のステップ、前記第2のステップ、前記第3のステップ、前記第4のステップ、前記第5のステップ、及び前記第6のステップ、及び前記第7のステップの一連のステッップがN(Nは1以上)回以上繰り返して実行される第9のステップを含み、
前記第8のステップは、前記第9のステップが実行される結果として、
前記監視APIに入力される前記N個の応答時間データに基づく平均応答時間データが、前記第8のステップに係る応答時間データとして出力されることを特徴とする請求項36に記載のアプリケーションプログラムによるアプリケーションプログラムの監視方法である。
【0083】
また請求項38は、請求項36又は請求項37に記載の全てのステップを実行させるためのアプリケーションプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0084】
したがって請求項36から請求項38の何れか一の発明によれば、アプリケーションプログラムの応答時間を監視することができるので、アプリケーションプログラムに対する接続の要求等の負荷が一のアプリケーションプログラムに集中する場合、複数のアプリケーションプログラムのうち応答時間が短い他のアプリケーションプログラムに負荷を処理させることができる。即ち、一のアプリケーションプログラムの処理速度の低下を防ぐことができる。換言すれば、アプリケーションプログラムの負荷分散を正確に行うことができるという利点がある。
【0085】
また請求項39は、アプリケーションサーバに格納されるアプリケーションプログラムに対する会話要求データが、ユーザ端末からアプリケーションプログラムに受信される第1のステップと、
前記第1のステップ後に処理開始時刻が、前記アプリケーションプログラムによって作成される第2のステップと、
前記会話要求データに対する会話応答データが、前記アプリケーションプログラムから前記ユーザ端末に送信される第3のステップと、
前記第3のステップ後に処理終了時刻が、前記アプリケーションプログラムによって作成される第4のステップと、
前記アプリケーションプログラムの応答時間データが、前記処理開始時刻及び前記処理終了時刻に基づいて前記アプリケーションプログラムによって作成される第5のステップと、
前記応答時間データが、前記アプリケーションプログラムから前記アプリケーションプログラムに組み込まれた監視APIに入力される第6のステップと、
監視要求データが、前記アプリケーションサーバに格納される監視システム(エージェント)から前記監視APIに入力される第7のステップと、
前記応答時間データが、前記監視APIから前記監視システム(エージェント)に出力される第8のステップと、を含むことを特徴とするアプリケーションサーバによるアプリケーションプログラムの監視方法である。
【0086】
また請求項40は、前記第8のステップ前に前記第1のステップ、前記第2のステップ、前記第3のステップ、前記第4のステップ、前記第5のステップ、及び前記第6のステップ、及び前記第7のステップの一連のステッップがN(Nは1以上)回以上繰り返して実行される第9のステップを含み、
前記第8のステップは、前記第9のステップが実行される結果として、
前記監視APIに入力される前記N個の応答時間データに基づく平均応答時間データが、前記第8のステップに係る応答時間データとして出力されることを特徴とする請求項39に記載のアプリケーションサーバによるアプリケーションプログラムの監視方法である。
【0087】
したがって請求項39又は請求項40の発明によれば、アプリケーションプログラムの応答時間を監視することができる。これにより、アプリケーションプログラムの負荷分散を正確に行うことができるという利点がある。
【0088】
また請求項41は、前記第1のステップ、前記第2のステップ、前記第3のステップ、前記第4のステップ、前記第5のステップ、及び前記第6のステップ、前記第7のステップ、前記第9のステップ、及び前記第8のステップの一連のステッップがM(Mは1以上)回以上繰り返して実行される第10のステップと、
前記第9のステップが実行される結果として、
前記第8のステップに係る平均応答時間データが、前記監視システム(エージェント)に前記M回出力されない場合、
前記アプリケーションプログラムに障害が発生した旨の障害発生データが、前記監視システム(エージェント)によって作成される第11のステップと、を含むことを特徴とする請求項40に記載のアプリケーションサーバによるアプリケーションプログラムの監視方法である。
【0089】
したがって請求項41の発明によれば、請求項39又は請求項40の発明の利点があるとともに、アプリケーションプログラム単位で障害の発生を監視することができる。これにより、アプリケーションサーバに障害の発生が発生したアプリケーションプログラムと正常稼動する他のアプリケーションとが格納される場合、障害の発生が発生したアプリケーションプログラムを利用するユーザのみを待機するアプリケーションプログラムへ切り替えることができる。一方、正常稼動する他のアプリケーションを利用するユーザは、引き続き他のアプリケーションを利用し続けることができる。これにより、待機するアプリケーションプログラムへの切替を正確に行うことのできるという利点がある。
【0090】
また、請求項42は、請求項39から請求項41の何れか一に記載の全てのステップを実行させるためのアプリケーションサーバに格納されるアプリケーションプログラム及び監視システム(エージェント)プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0091】
したがって請求項42の発明によれば、アプリケーションプログラム及び監視システム(エージェント)をアプリケーションサーバに格納することにより、アプリケーションプログラムの応答時間を監視することができる。これにより、アプリケーションプログラムの負荷分散を正確に行うことができるという利点がある。
また、アプリケーションプログラム単位で障害の発生を監視することができる。これにより、待機するアプリケーションプログラムへの切替を正確に行うことのできるという利点がある。
【0092】
また請求項43は、複数のアプリケーションサーバに格納されるアプリケーションプログラムのそれぞれに対する会話要求データが、ユーザ端末からアプリケーションプログラムのそれぞれに送受信される第1のステップと
前記第1のステップ後に処理開始時刻が、前記アプリケーションプログラムのそれぞれによって作成される第2のステップと
前記会話要求データのそれぞれに対する会話応答データが、前記アプリケーションプログラムのそれぞれから前記ユーザ端末に送受信される第3のステップと
前記第3のステップ後に処理終了時刻が、前記アプリケーションプログラムのそれぞれによって作成される第4のステップと
前記アプリケーションプログラムのそれぞれの応答時間データが、前記処理開始時刻及び前記処理終了時刻に基づいて前記アプリケーションプログラムのそれぞれによって作成される第5のステップと
前記応答時間データが、前記アプリケーションプログラムから前記アプリケーションプログラムに組み込まれた監視APIのそれぞれに入力される第6のステップと
監視要求データが、前記アプリケーションサーバに格納される監視システム(エージェント)のそれぞれから前記監視APIに入力される第7のステップと、
前記応答時間データが、前記監視APIのそれぞれから前記監視システム(エージェント)のそれぞれに出力される第8のステップと
前記応答時間データが、前記監視システム(エージェント)のそれぞれからデータサーバに格納されるサーバリストのそれぞれに格納される第9のステップとから成る監視ステップと、
前記アプリケーションプログラムのそれぞれのうち何れか一のアプリケーションプログラムに対する接続要求データが、あるユーザ端末から前記何れか一のアプリケーションプログラムが格納される何れか一のアプリケーションサーバに格納される動的メニュー生成システムに送受信されるステップと、
前記サーバリストのそれぞれに格納される応答時間データが、前記データサーバから前記動的メニュー生成システムに入力され、
前記応答時間データのそれぞれのうち最も応答時間が短いアプリケーションプログラムが格納される最速アプリケーションサーバを特定し得るメニューデータが、前記動的メニュー生成システムによって作成され、
且つ前記メニューデータが、前記動的メニュー生成システムから前記あるユーザ端末に送受信される動的メニューステップと、を含むことを特徴とするアプリケーション・サービスを提供する方法である。
【0093】
したがって請求項43の発明によれば、アプリケーションプログラムの応答時間データが監視されているので、あるユーザを最速アプリケーションサーバに振り向けることができる。これにより、アプリケーションプログラムの負荷分散を正確に行うことができるという利点がある。
【0094】
また請求項44は、前記監視ステップは、前記第8のステップ前に前記第1のステップ、前記第2のステップ、前記第3のステップ、前記第4のステップ、前記第5のステップ、及び前記第6のステップ、及び前記第7のステップの一連のステッップがN(Nは1以上)回以上繰り返して実行される第10のステップから成り、
前記第8のステップは、前記第10のステップが実行される結果として、
前記監視APIのそれぞれに入力される前記N個の応答時間データに基づく平均応答時間データが、前記第8のステップに係る応答時間データのそれぞれとして出力され、
前記第9のステップに係るサーバリストは、前記平均応答時間データのそれぞれが応答時間データのそれぞれとして格納され、
前記動的メニューステップは、前記平均応答時間データのそれぞれが、前記動的メニューステップに係る応答時間データのそれぞれとして前記データサーバから出力され、
且つ前記メニューデータは、前記平均応答時間データのそれぞれが前記動的メニューステップに係る応答時間データのそれぞれとして作成されることを特徴とする請求項43に記載のアプリケーション・サービスを提供する方法である。
【0095】
したがって請求項44の発明によれば、請求項43の発明の利点があるとともに、アプリケーションプログラムの応答時間データを正確に監視することができる。これにより、アプリケーションプログラムの負荷分散を更に正確に行うことができるという利点がある。
【0096】
また、請求項45は、前記監視ステップは、前記第1のステップ、前記第2のステップ、前記第3のステップ、前記第4のステップ、前記第5のステップ、及び前記第6のステップ、前記第7のステップ、前記第10のステップ、及び前記第8のステップの一連のステッップがM(Mは1以上)回以上繰り返して実行される第11のステップと、
前記第10のステップが実行される結果として、
前記第8のステップに係る平均応答時間データが、前記監視APIのうちある監視APIから前記監視システム(エージェント)に前記M回出力されない場合、前記ある監視APIが組み込まれたあるアプリケーションプログラムに障害が発生した旨の障害発生データが、前記あるアプリケーションプログラムが格納されるあるアプリケーションサーバに格納されるある監視システム(エージェント)によって作成される第12のステップと、
前記障害発生データが、前記ある監視システム(エージェント)から前記サーバリストのうちあるサーバリストに格納される第13のステップと、から成り、
前記動的メニューステップは、前記あるサーバリストに格納される障害発生データが、前記データサーバから前記動的メニュー生成システムに入力される場合、前記メニューデータは、前記障害発生データを作成したあるアプリケーションサーバを除外した最速アプリケーションサーバを特定し得るものであることを特徴とする請求項44に記載のアプリケーション・サービスを提供する方法である。
【0097】
したがって請求項45の発明によれば、請求項43又は請求項44の発明の利点があるとともに、アプリケーションプログラム単位で障害の発生を監視することができる。これにより、アプリケーションサーバに障害の発生が発生したアプリケーションプログラムと正常稼動する他のアプリケーションとが格納される場合、障害の発生が発生したアプリケーションプログラムを利用するユーザのみを待機するアプリケーションプログラムへ切り替えることができる。一方、正常稼動する他のアプリケーションを利用するユーザは、引き続き他のアプリケーションを利用し続けることができる。これにより、待機するアプリケーションプログラムへの切替を正確に行うことのできるという利点がある。
【0098】
また請求項46は、アプリケーションプログラムの応答時間データが、前記複数のアプリケーションサーバのそれぞれから前記データサーバに定期的に送受信される監視ステップと、
前記アプリケーションプログラムのそれぞれのうち何れか一のアプリケーションプログラムに対する接続要求データが、あるユーザ端末から前記何れか一のアプリケーションプログラムが格納される何れか一のアプリケーションサーバに送受信されるステップと、
前記応答時間データのそれぞれが、前記データサーバから前記何れか一のアプリケーションサーバに送受信され、
且つ前記応答時間データのそれぞれのうち最も応答時間が短いアプリケーションプログラムが格納される最速アプリケーションサーバを特定し得るメニューデータが、前記何れか一のアプリケーションサーバから前記あるユーザ端末に送受信されるステップと、を含むアプリケーションプログラムの監視方法である。
【0099】
したがって請求項46の発明によれば、アプリケーションプログラムの応答時間データが監視されているので、あるユーザを最速アプリケーションサーバに振り向けることができる。これにより、アプリケーションプログラムの負荷分散を正確に行うことができるという利点がある。
【0100】
【発明の実施の形態】
以下に本発明の実施の形態のアプリケーション・サービスを提供する方法及びシステムにつき図面を参照して説明する。
【0101】
(実施の形態1)
まず、本発明の実施の形態1のアプリケーション・サービスを提供するシステムにつき、図5を参照して、説明する。
図5は本発明の実施の形態1のアプリケーション・サービスを提供するシステムの構成例を示すブロック図である。
【0102】
先ず、図5を参照するに、本実施の形態1のアプリケーション・サービスを提供するシステムは、アプリケーションプログラムを利用するユーザ端末(100)と、アプリケーションプログラムが動作する複数のアプリケーションサーバ(300,400,...)と、各種のデータを格納するデータサーバ(500)と、から構成されてなる。
ここで、ユーザ端末(100)と、複数のアプリケーションサーバ(300,400,...)のそれぞれとは、コンピュータネットワーク(200)を介して相互に接続可能に構成されている。また、データサーバ(500)と、1以上のアプリケーションサーバ(300,400,...)とは、主として同一組織内で用いられる総合的な情報通信ネットワーク(LAN:Local Area Network)、公衆回線、又は専用線等を介して相互に接続可能に構成されている。尚、ユーザ端末(100)と、複数のアプリケーションサーバ(300,400,...)と、データサーバ(500)とが、コンピュータネットワーク(200)を介して相互に接続可能に構成されていてもよい。
また、コンピュータネットワーク(200)とは、例えば、インターネット(Internet)、広域通信網(WAN:Wide Area Network)等である。更に、コンピュータネットワーク(200)、LAN等は、有線、無線を問わず、ユーザ端末(100)とアプリケーションサーバ(300,400,...)との間、ユーザ端末(100)とデータサーバ(500)との間、アプリケーションサーバ(300,400,...)とデータサーバ(500)との間、及びユーザ端末(100)とアプリケーションサーバ(300,400,...)とデータサーバ(500)との間のぞれぞれでデータを送受信するためのものであればよい。
【0103】
ユーザ端末(100)は、コンピュータネットワーク(200)を介してホームページへのアクセス等を可能とするWebブラウザ(101)と、ホームページを表示可能とする表示手段(図示せず)と、文字・記号等を入力するキーボード(ボタン)、マウス等の入力手段(図示せず)と、を備える。
ここで、ユーザ端末(100)は、例えば、パソコン(デスクトップ型パソコン、ノート型パソコン)、携帯電話機等である。
【0104】
複数のアプリケーションサーバ(300,400,...)のそれぞれは、HTML文書データ等のリソースデータ(図示せず)を格納する記憶手段と、ユーザを認証する認証システム(301)と、ユーザ個別のメニューを動的に生成する動的メニュー生成システム(302)と、コンピュータネットワーク(200)を介して有償で提供するアプリケーションプログラムA(310,...)と、Webサーバ(390)と、を備える。
また、アプリケーションプログラムA(310)のそれぞれは、認証API(303)と課金API(304)と、を備える。
更に、Webサーバ(390)は、ユーザ端末(100)のWebブラウザ(101)とHTTPで通信する。即ち、Webサーバ(390)は、認証システム(301)、動的メニュー生成システム(302)、及びアプリケーションプログラムA(310)のそれぞれと、Webブラウザ(101)と、の通信を中継する。
ここで、アプリケーションサーバ(300,400,...)は、例えば、いわゆるサーバ(ハード・ディスク等の記憶手段の容量が大きいオフコン)、パソコン等である。
【0105】
データサーバ(500)は、ユーザ認証に必要なデータ(ユーザID、パスワード、端末識別子等を含む。)を格納する認証データ保持システム(501)と、ユーザごとにあらかじめ合意した利用可能アプリケーションプログラムのリストを格納するメニューデータ保持システム(502)と、利用実績データを蓄積してユーザ別アプリケーションプログラム別請求書を作成する課金システム(503)と、を備える。
ここで、データサーバ(500)は、例えば、いわゆるサーバ、パソコン等である。
【0106】
尚、本実施の形態1のアプリケーション・サービスを提供するシステムの構成要素のうち、認証システム(301)と、動的メニュー生成システム(302)と、認証API(303)と、課金API(304)と、認証データ保持システム(501)と、メニューデータ保持システム(502)と、課金システム(503)とが本発明の機能を有し、これらの構成要素をASP基盤システムという。
【0107】
次に、本発明の実施の形態のアプリケーション・サービスを提供する方法及びシステムの前提となるアプリケーション・サービスを提供するための準備をするシステム及び方法につき、図1〜図4を参照して、説明する。尚、アプリケーション・サービスを提供するための準備をするシステム方法は、アプリケーションプログラムを準備する方法(ステップA1〜A5)と、アプリケーションプログラムを利用するユーザの登録方法(ステップB1〜B5)と、から成る。
図1はアプリケーション・サービスを提供するための準備をするシステムの構成例を示すブロック図である。図2はアプリケーションプログラムを準備する方法を説明するためのフローチャート図である。
【0108】
予め、ASP基盤システムのうち認証システム(301)と、動的メニュー生成システム(302)と、認証API(303)と、課金API(304)とが、アプリケーションサーバ1(300)に格納されている。また、ASP基盤システムの残りの認証データ保持システム(501)と、メニューデータ保持システム(502)と、課金システム(503)とが、アプリケーションサーバ1(300)に格納されている。尚、ASP基盤システムが格納されるサーバはアプリケーションサーバ1(300)に限られず、ASP基盤システムが格納できるサーバであればよい。
加えて、開発されたアプリケーションプログラムが、ベンダー端末(700)に格納されている。
【0109】
[ステップA1]
(アプリケーションプログラムを準備する方法)
アプリケーションサーバ1(300)に係るASP基盤システム(認証システム(301)、動的メニュー生成システム(302)、認証API(303)、課金API(304))が、公衆回線若しくは専用線(220)、又は光磁気ディスク(MO:Magneto Optical disk)、光ディスク(CD:Compact Disk,DVD:Digital Versatile Disk) 、フロッピーディスク (FD:Floppy Disk) 等の補助記憶媒体(230)を介してアプリケーションサーバ1(300)からベンダー端末(700)に提供されて格納される。
【0110】
[ステップA2]
開発されたアプリケーションプログラムをASP基盤システムに適合されるため、提供された認証API(303)及び課金API(304)が、ベンダー端末(700)によって開発されたアプリケーションプログラムに組み込まれる。
【0111】
[ステップA3]
アプリケーションサーバ2(400)でもアプリケーションプログラムのサービスを行うため、提供された認証システム(301)及び動的メニュー生成システム(302)が、LAN(210)介してベンダー端末(700)からアプリケーションサーバ2(400)にインストールされて格納される。尚、ここで、ASP基盤システムの認証システム(301)及び動的メニュー生成システム(302)が、公衆回線等(220,230)を介してアプリケーションサーバ2(400)にインストールされてもよいことは言うまでもない。
【0112】
[ステップA4]
認証API(303)及び課金API(304)が組み込まれたアプリケーションプログラム(310)が、ベンダー端末(700)からアプリケーションサーバ1(300)及びアプリケーションサーバ2(400)にLAN等(210,220,230)を介してインストールされて格納される。
【0113】
[ステップA5]
アプリケーションサーバ1(300)及びアプリケーションサーバ2(400)に格納されるアプリケーションプログラム(310)のアプリケーション情報(機能概要、詳細説明、デモプログラムへのリンク、契約条件(料金表を含む))が、データサーバ(500)に登録されて格納される。
【0114】
尚、複数のアプリケーションサーバ(300,400,...)のそれぞれに複数のアプリケーションプログラム(310,320,...)が格納される場合には、アプリケーションプログラム(310,320,...)のそれぞれに対するアプリケーション情報がデータサーバ(500)に登録されて格納される。
【0115】
また、図3はアプリケーションプログラムを利用するユーザの登録方法を説明するためのフローチャート図である。
【0116】
[ステップB1]
(アプリケーションプログラムを利用するユーザの登録方法)
先ず、ユーザ端末(100)はデータサーバ(500)に接続する。
【0117】
[ステップB2]
これに対し、データサーバ(500)はアプリケーション情報をユーザ端末(100)に送信する。尚、データサーバ(500)は、ユーザ端末(100)から入力される検索条件とアプリケーション情報に含まれる機能概要の一部とが一致するアプリケーション情報を検索し、検索条件に一致するアプリケーション情報をユーザ端末(100)に送信する手段を備える。
【0118】
[ステップB3]
ユーザ端末(100)は検索条件を入力してアプリケーション情報を受信してユーザ端末(100)の表示手段(図示せず)に表示する。ここで、例えば、図4に示すアプリケーション情報表示画面が、ユーザ端末(100)の表示手段に表示される。
図4を参照するに、表示されるアプリケーション情報表示画面は、アプリケーション名称(例えば、日英翻訳、百科事典)、機能概要の一覧である。ここで、ユーザは表示手段に表示される「詳細表示ボタン」、「デモ表示ボタン」、及び「料金表示ボタン」のそれぞれのボタンをマウスでクリックすることができる。「詳細表示ボタン」がクリックされると、アプリケーションプログラムの機能詳細説明画面(図示せず)が表示手段に表示される。また、「デモ表示ボタン」がクリックされると、アプリケーションプログラムのアプリケーションプログラムのデモプログラムが実行され、アプリケーションデモ画面(図示せず)が表示手段に表示される。加えて、「詳細表示ボタン」がクリックされると、料金表等の契約条件を表す契約条件画面(図示せず)が表示手段に表示される。
【0119】
[ステップB4]
ユーザは、利用するアプリケーションプログラム(百科事典)を決めたら、当該アプリケーションプログラムの「ラジオボタン(選択)」をチェックして(図4中の●)、「契約申し込みボタン」をクリックする。
その後、ユーザ登録画面(図示せず)がユーザ端末(100)の表示手段に表示され、ユーザは登録に必要なユーザ情報(企業名、責任者名、住所、電話番号、決済方法、端末識別子等)を入力してデータサーバ(500)に送信する。ここで、端末識別子とは、ユーザ端末(100)のIPアドレス(IP address)若しくはフル・クォリファイド・ドメイン・ネイム(FQDN:Full Qualified Domain Name)である。例えば、IPアドレスは192.168.01.001であり、FQDNはwww.○○○.co.jpである。
【0120】
[ステップB5]
これに対し、データサーバ(500)は必要なユーザ情報をユーザ端末(100)から受信し、利用に必要なユーザ情報(ユーザID(ユーザ識別データ)、パスワード)を発行する。データサーバ(500)は、登録に必要なユーザ情報に前記利用に必要なユーザ情報を加えたユーザ情報(ユーザID、パスワード、企業名、責任者名、住所、電話番号、決済方法、端末識別子等)を登録して格納する。
【0121】
[ステップB6]
データサーバ(500)は、利用に必要な情報(ユーザID、パスワード)をユーザ端末(100)に送信して通知する。
【0122】
次に、本発明の実施の形態のアプリケーション・サービスを提供する方法につき、図5を参照して、説明する。
【0123】
[ステップC1:ログインステップ]
アプリケーションプログラムに対する接続要求データが、ユーザ端末(100)から複数のアプリケーションサーバ(300,400,...)のうち何れか一のアプリケーションサーバ1(300)に送受信される。ここで、アプリケーションサーバ1(300)は、接続要求データをWebサーバ(390)を介して認証システム(301)で受信している。これに対し、アプリケーションサーバ1(300)は、ログイン画面データをWebサーバ(390)を介して認証システム(301)からユーザ端末(100)に送信する。
一方、ユーザ端末(100)は、Webブラウザ(101)を介してログイン画面データを受信すると、ログイン画面がユーザ端末(100)の表示手段に表示される。次に、ユーザは、ログインID(ユーザ識別データ)とパスワードとを入力してアプリケーションサーバ1(300)に送信する。これに対し、アプリケーションサーバ1(300)は、ログインID(ユーザ識別データ)とパスワードとをWebサーバ(390)を介して認証システム(301)に入力する。
【0124】
尚、ログインID(ユーザ識別データ)とパスワードとのパケットデータがユーザ端末(100)からアプリケーションサーバ1(300)にIPプロトコルで送受信されるているので、パケットデータは常に送信元(ユーザ端末(100)のIPアドレス)と送信先(アプリケーションサーバ1(300)のIPプロトコル)とが格納されている。
従って、アプリケーションサーバ1(300)は、ログインID(ユーザ識別データ)とパスワードとを受信するとともに、ユーザ端末(100)のIPアドレス(端末識別子)をパケットデータから抽出して認証システム(301)に入力することもできる。
【0125】
[ステップC2:認証ステップ]
次に、承認システム(301)は、入力されたログインID(ユーザ識別データ)及びパスワードと、認証データ保持システム(501)に予め格納されるユーザID(ユーザ識別データ)及びパスワードと、を比較する。この比較の結果として、入力されたログインID及びパスワードと、予め格納されるユーザID及びパスワードと、が一致する場合に、認証システム(301)は、ユーザ端末(100)のユーザを認証する。この時、認証システム(301)は、ユーザIDと認証した時刻とを含む認証証明書データを作成して認証データ保持システム(501)に格納する。
ここで、認証証明書データが認証した時刻を含むことにより、認証証明書データに有効期限を持たせることができる。また、認証証明書データがユーザIDとともに認証した時刻を含むことにより、承認時に毎回異なるユニークな認証証明書データを作成することができる。認証証明書データが有効期限で時間で管理される、又は認証証明書データが承認時に毎回異なるので、認証証明書データの偽造を防止することができるという利点がある。加えて、認証システム(301)が暗号化した認証証明書データを作成することにより、認証証明書データの偽造を防止を強化することができる。
【0126】
尚、認証システム(301)は、IPアドレス(端末識別子)が入力される場合には、入力されたIPアドレス(端末識別子)と、予め格納される端末識別子と、を更に比較することができる。この比較の結果として、入力されたログインID、パスワード、及び端末識別子と、予め格納されるユーザID、パスワード、及び端末識別子と、が完全に一致する場合に、認証システム(301)は、ユーザ端末(100)のユーザを認証することもできる。これにより、認証システム(301)は、仮に入力されたログインID及びパスワードが偽造されたものであっても、正規なユーザのみを正確に認証することができる。
【0127】
[ステップC3]
次に、認証システム(301)は、動的メニュー生成システム(302)を起動し、認証証明書データを動的メニュー生成システム(302)に入力する。
【0128】
[ステップC4]
これに対し、動的メニュー生成システム(302)は、入力された認証証明書データのユーザIDをキーとして、予め当該ユーザが利用契約したアプリケーションプログラムリストをメニューデータ保持システム(702)から取得する。
次に、動的メニュー生成システム(302)は、取得したアプリケーションプログラムリストのアプリケーションプログラム名をキーとしてサーバリストをメニューデータ保持システム(702)から取得する。
ここで、取得したサーバリストが複数ある場合、動的メニュー生成システム(302)は、エラーステータス及び平均応答時間を複数のサーバリストから取得する。
次に、動的メニュー生成システム(302)は、抽出したエラーステータスがサービス中であり、且つ抽出した平均応答時間が最小であるサーバリストを選択する。
次に、動的メニュー生成システム(302)は、選択したサーバリストに係るプログラムファイル名及びサーバ端末識別名を取得する。
次に、動的メニュー生成システム(302)は、取得したプログラムファイル名及びサーバ端末識別名に基づいてURI(Universal Resource Identifire)情報を含むメニューデータを動的に作成する。
尚、URIは、IETFが公開している技術文書rfc2396で定義されている(http://www.ietf.org/rfc/rfc2396.txt)。また、URIはURL(Universal Resource Locator)と同義である。
【0129】
[ステップC5]
次に、動的メニュー生成システム(302)は、メニューデータと認証証明書データとをWebサーバ(390)を介してユーザ端末(100)に送信する。尚、認証証明書データが暗号化されている場合には、暗号化された認証証明書データのみがユーザ端末(100)に送信される。
これに対し、ユーザ端末(100)は、メニューデータと認証証明書データとをWebブラウザー(101)を介してWebサーバ(390)から受信する。ここで、Webブラウザー(101)は、認証証明書データをクッキー(Cookie)として一次保持する。
【0130】
[ステップC6]
ユーザが、ユーザ端末(100)でアプリケーションプログラムA(310)を選択すると、メニューデータのURIに従って、ユーザ端末(100)は、アプリケーションサーバ1(300)に格納されるアプリケーションプログラムA(310)に対する会話要求データ(メッセージ)をWebブラウザー(101)を介してアプリケーションプログラムA(310)に送信する。この時、ユーザ端末(100)は、認証証明書データをクッキー(Cookie)として送信する。
これに対し、アプリケーションプログラムA(310)は、会話要求データ(メッセージ)と認証証明書データとをWebサーバ(390)を介してアプリケーションプログラムA(310)で受信する。
【0131】
[ステップC7]
アプリケーションプログラムA(310)は、認証証明書データをアプリケーションプログラムA(310)に組み込まれた認証API(303)にセットする。ここで、API(Application Program Interface)とは、認証システム(301)、課金システムプログラム(503)等の外部プログラムをアプリケーションプログラムA(310)内部から使用するための仕組みである。尚、具体的に言えば、APIはクラス名、メソッド名、引数の並びで規定されている。
即ち、アプリケーションプログラムA(310)は、認証証明書データを認証API(303)を介して認証システム(301)に入力する。ここで、認証API(303)は、認証証明書データを認証システム(301)に送り、認証証明書データの正当性を確認している。
【0132】
[ステップC8:再認証ステップ]
これに対し、認証システム(301)は、認証API(303)を介して入力された認証証明書データと、予め認証した認証証明書データと、を比較する。この比較の結果として、入力された認証証明書データと、予め格納した認証証明書データと、が一致する場合に、認証システム(301)は、ユーザ端末(100)のユーザを再度認証する。この時、認証システム(301)は、ユーザIDと再度認証した時刻とを含む認証証明書データを作成して認証データ保持システム(501)に格納する。即ち、認証システム(301)は、認証証明書の認証時刻を更新して、認証データ保持システム(501)に格納する。
次に、認証システム(301)は、再度認証された認証証明書データを認証API(303)を介してアプリケーションプログラムA(310)に出力する。
【0133】
[ステップC9]
次に、アプリケーションプログラムA(310)は、会話要求データ(メッセージ)に対する会話返答データ(メッセージ)を作成する。
次に、アプリケーションプログラムA(310)は、作成した会話返答データ(メッセージ)と再度認証された認証証明書とをWebサーバ(390)を介してユーザ端末(100)に送信する。
これに対し、ユーザ端末(100)は、作成された会話返答データ(メッセージ)と再度認証された認証証明書とをWebブラウザー(101)を介してWebサーバ(390)から受信する。ここで、再度認証された認証証明書は、Webサーバ(390)からWebブラウザー(101)にクッキー(Cookie)として送受信されている。
この後、ユーザ端末(100)とアプリケーションA(310)の間でメッセージの送受信があるたびに、認証証明書データの認証及び更新を行う。これらにより、認証証明書データの偽造を防止を更に強化することができる。
【0134】
[ステップC10]
ユーザがアプリケーションプログラムA(310)の利用を終了すると、利用実績データを課金API(304)を介して課金システム(503)に出力する。
【0135】
[ステップC11]
前記ステップC6のメニューデータに含まれるURIは、アプリケーションサーバ1(300)に格納されるアプリケーションプログラムA(310)を特定し得るものであった。即ち、ステップC4において、アプリケーションサーバ1(300)に格納されるアプリケーションプログラムA(310)の平均応答時間が最小であったので、URIは、アプリケーションサーバ1(300)に格納されるアプリケーションプログラムA(310)を特定し得るものであった。
ところが、アプリケーションサーバ2(400)に格納されるアプリケーションプログラムA(310)の平均応答時間が最小である場合、動的メニュー生成システム(302)が作成するメニューデータに係るURIは、アプリケーションサーバ2(400)に格納されるアプリケーションプログラムA(310)を特定し得るものになる。
この場合、ユーザが、ユーザ端末(100)でアプリケーションプログラムA(310)を選択すると、メニューデータのURIに従って、ユーザ端末(100)は、アプリケーションサーバ2(400)に格納されるアプリケーションプログラムA(310)に対する会話要求データ(メッセージ)をWebブラウザー(101)を介してアプリケーションプログラムA(310)に送信する。この時、ユーザ端末(100)は、認証証明書データをクッキー(Cookie)として送信する。
これに対し、アプリケーションサーバ2(400)に格納されるアプリケーションプログラムA(310)は、会話要求データ(メッセージ)と認証証明書データとをWebサーバ(390)を介してアプリケーションプログラムA(310)で受信する。
【0136】
[ステップC12]
アプリケーションプログラムA(310)は、認証証明書データを認証API(303)を介して認証システム(301)に入力する。
【0137】
[ステップC13]
これに対し、認証システム(301)は、認証API(303)を介して入力された認証証明書データと、予め認証した認証証明書データと、を比較する。この比較の結果として、入力された認証証明書データと、予め格納した認証証明書データと、が一致する場合に、認証システム(301)は、ユーザ端末(100)のユーザを再度認証する。この時、認証システム(301)は、ユーザIDと再度認証した時刻とを含む認証証明書データを作成して認証データ保持システム(501)に格納する。
次に、認証システム(301)は、再度認証された認証証明書データを認証API(303)を介してアプリケーションプログラムA(310)に出力する。
【0138】
このように、アプリケーションサーバ1(300)及びアプリケーションサーバ2(400)は、認証証明書データをクッキーの仕組みで受信し、認証システム(301)を介して認証データ保持システム(501)に格納される認証証明書データと比較して受信した認証証明書データの正当性の確認を行うことができる。即ち、最初にユーザがログインしたアプリケーションサーバ1(300)に格納されるアプリケーションプログラムA(310)のほか、最初にログインしたアプリケーションサーバ1(300)と異なるアプリケーションサーバ2(400)に格納されるアプリケーションプログラムA(310)も同一のユーザを識別することができる。換言すれば、複数のアプリケーションサーバ間でユーザ管理の統一性を実現することができる。
【0139】
[ステップC14]
ユーザがアプリケーションプログラムA(310)の利用を終了すると、利用実績データを課金API(304)を介して課金システム(503)に出力する。
尚、アプリケーションプログラムが独自の利用実績データ出力機能を持っているときは、統一性のある利用実績データのフォーマットに変換して課金システム(503)にファイル転送で送信する機能を有する。
【0140】
次に、本発明の実施の形態のアプリケーション・サービスを提供する方法につき、図6〜図8を参照して、簡単に説明する。
図6はユーザがアプリケーションサーバ1(300)に格納されるアプリケーションプログラムを利用した場合の流れ図である。
[ステップD1]
ユーザ端末(100)は、アプリケーションサーバ1(300)に接続する。
[ステップD2]
アプリケーションサーバ1(300)は、ユーザ端末(100)にログイン画面を送信する。
[ステップD3]
ユーザ端末(100)は、アプリケーションサーバ1(300)にユーザIDとパスワードとを送信する。
[ステップD4]
アプリケーションサーバ1(300)は、ユーザIDとパスワードと必要に応じてユーザ端末(100)の端末識別子をチェックし、正当と判断すれば、ユーザが利用契約したアプリケーションプログラムの一覧をメニューとして送信する。
[ステップD5]
ユーザ端末(100)は、アプリケーションプログラムを選択するとURIに従ってアプリケーションサーバ1(300)に接続する。
[ステップD6]
アプリケーションサーバ1(300)は、URIに従って選択されたアプリケーションプログラムを起動する。
[ステップD7]
ユーザは、ユーザ端末(100)でアプリケーションプログラムを利用し、終了する。
[ステップD8]
ユーザが、アプリケーションサーバ1(300)でアプリケーションプログラムが終了すると、利用実績データを蓄積する。
【0141】
図7はユーザがアプリケーションサーバ2(400)に格納されるアプリケーションプログラムを利用した場合の流れ図である。
[ステップE1〜E4]
ステップD1〜D4と同じである。
[ステップE5]
ユーザ端末(100)は、アプリケーションプログラムを選択するとURIに従ってアプリケーションサーバ2(400)に接続する。
[ステップE6]
アプリケーションサーバ2(400)は、URIに従って選択されたアプリケーションプログラムを起動する。
[ステップE7]
ユーザは、ユーザ端末(100)でアプリケーションプログラムを利用し、終了する。
[ステップE8]
ユーザが、アプリケーションサーバ2(400)でアプリケーションプログラムが終了すると、利用実績データを蓄積する。
【0142】
図8は課金の流れ図である。
[ステップF1]
データサーバ(500)は、定期的に蓄積した利用実績データをユーザ別アプリケーション別に集計する。
[ステップF2]
データサーバ(500)は、課金処理を実行して請求書を発行し、ユーザに電子メール、郵便等で送付する。
[ステップF3]
ユーザは、利用料金をデータサーバ(500)に電子マネー、クレジットカード、口座振込等で支払う。
[ステップF4]
データサーバ(500)は、ベンダー別アプリケーション利用料金を集計する。
[ステップF5]
データサーバ(500)は、ベンダー端末(700)にアプリケーション利用料金を電子マネー、口座振込等で支払う。
【0143】
次に、[ステップA2]に係る認証API(303)及び課金API(304)をアプリケーションプログラムに組み込む方法につき、図9及び図10を参照して、説明する。
図9は認証API(303)をアプリケーションプログラムに組み込む方法を示すフローチャートである。このフローチャートで認証API(303)をアプリケーションプログラムに組み込むを方法を説明する。
まず組み込む前の一般的なアプリケーションプログラムの入力メッセージを処理するフローを説明する。
【0144】
[ステップG1]
アプリケーションプログラムは、ユーザ端末(100)からメッセージ(会話要求データ)を受信する。
[ステップG2]
アプリケーションプログラムは、受信したメッセージIDが処理IDに等しいか比較する。受信したメッセージIDが処理1に等しければ該当する処理1を実行する(ステップG5へ)。受信したメッセージIDが処理1に等しくなければ次の処理IDに等しいか比較する(ステップG3へ)。
[ステップG3]
アプリケーションプログラムは、受信したメッセージIDが処理2に等しいか比較する。受信したメッセージIDが処理2に等しければ該当する処理2を実行する(ステップG6へ)。受信したメッセージIDが処理2に等しくなければ次の処理IDに等しいか比較する(ステップG4へ)。
[ステップG4]
アプリケーションプログラムは、受信したメッセージIDが処理nに等しいか比較する。受信したメッセージIDが処理nに等しければ該当する処理nを実行する(ステップG7へ)。受信したメッセージIDが処理nに等しくなければエラー処理を行う(ステップG8へ)。
[ステップG5]
アプリケーションプログラムは、受信したメッセージを処理1して結果をHTML文書形式にしてユーザ端末(100)に送信する。
[ステップG6]
アプリケーションプログラムは、受信したメッセージを処理2して結果をHTML文書形式にしてユーザ端末(100)に送信する。
[ステップG7]
アプリケーションプログラムは、受信したメッセージを処理nして結果をHTML文書形式にしてユーザ端末(100)に送信する。
[ステップG8]
アプリケーションプログラムは、受信したメッセージIDが最後の処理IDと一致しなければエラーメッセージをユーザ端末(100)に送信する。
【0145】
次に認証API(303)をアプリケーションプログラムに組み込む方法を説明する。
ステップG1とステップG2の間に次に示すステップH1〜H6を挿入する。
尚、ステップC5において、動的メニュー生成システム(302)が暗号化された認証証明書データをユーザ端末(100)に送信され、ステップC6において、暗号化された認証証明書データがユーザ端末(100)からアプリケーションプログラムに送信されているとする。
[ステップH1]
アプリケーションプログラムは、暗号化された認証証明書データをクッキーとしてユーザ端末(100)から受信する。
[ステップH2]
アプリケーションプログラムは、暗号化された認証証明書データを認証API(303)の引数にセットする。
[ステップH3]
アプリケーションプログラムは、認証API(303)を呼び出す。
[ステップH4]
アプリケーションプログラムは、認証API(303)から戻された値をチェックする。無効コードならステップH5へ行く。
[ステップH5]
アプリケーションプログラムは、エラーメッセージとログイン画面を表示する。
[ステップH6]
アプリケーションプログラムは、認証API(303)から戻された新しい暗号化された認証証明書データをクッキーとしてユーザ端末(100)に送信する。
尚、ステップH1〜ステップH6を実行させるためのプログラムを認証関数プログラムという。
【0146】
図10は課金API(304)をアプリケーションプログラムに組み込む方法を示すフローチャートである。このフローチャートで認証API(303)をアプリケーションプログラムに組み込むを方法を説明する。
ステップI2が本来のアプリケーションの処理であり、図9のステップH5〜H7が示す処理である。ステップI2(ステップH5〜H7)の直前にステップH1を挿入し、ステップI2の後ろにステップI3〜ステップI5を挿入する。
[ステップI1]
アプリケーションプログラムは、ステップI2の直前に処理開始時刻としてマシン時間を取得する。
[ステップI2]
アプリケーションプログラムは、処理をするとともに、課金対象となる使用量を計測する。
[ステップI3]
アプリケーションプログラムは、ステップI2の直後に処理終了時刻としてマシン時間を取得する。
[ステップI4]
アプリケーションプログラムは、利用実績データ(ユーザ識別名、処理開始時刻、処理時間(=処理終了時刻−処理開始時刻)、ステップI2で採取した課金対象となる使用量等を含む。)を作成する。(図15に示す利用実績データ(503−2)を参照。)
[ステップI5]
アプリケーションプログラムは、課金API(304)を呼び出す。
尚、ステップI1〜ステップI5を実行させるためのプログラムを課金関数プログラムという。
【0147】
(実施の形態2)
次に、本発明の実施の形態2のアプリケーション・サービスを提供する方法及びシステムにつき、図12を参照して、説明する。
図12は本発明の実施の形態2のアプリケーション・サービスを提供するシステムの構成例を示すブロック図である。
図5に示す本発明の実施の形態1のシステムは複数のアプリケーションサーバ(300,400,...)から構成されていたが、図12に示す実施の形態2のシステムは一のアプリケーションサーバ1(300)から構成されてなる。
【0148】
次に、本発明の実施の形態のアプリケーション・サービスを提供する方法につき、図12、図13〜図15を参照して、説明する。
尚、ステップC1〜ステップC14に相当するものである。
【0149】
[ステップL1]
ユーザは、ユーザ端末(100)のWebブラウザ(101)を使用してコンピュータネットワーク(200)上に開設しているアプリケーションサーバ1(300)に接続する。
【0150】
[ステップL2]
認証システム(301)が、Webサーバ(390)を介してログイン画面データをユーザ端末(100)に送出する。
【0151】
[ステップL3]
ユーザは、ユーザ端末(100)の表示手段に表示されたログイン画面からログインID(ユーザ識別データ)とパスワードとを入力する。
【0152】
[ステップL4]
認証システム(301)は、ユーザ端末(100)から受信したログインIDとパスワードとユーザ端末(100)の端末識別子とをWebサーバ(390)から受け取る。ユーザ識別名、パスワード、端末識別子のすべてまたはあらかじめ決めてあるそれらの内のいくつかの組み合わせと、認証データ保持システム(501)からログインIDをキーにして受信した認証データ(ユーザID、パスワード、端末識別子を含む。図13.認証データ501−1参照。)を突き合わせて一致するか比較する。一致すれば正常、一致しなければ以上と判断する。
【0153】
[ステップL5]
認証システム(301)の認証結果が正常なら、認証したときの時刻(年月日時分秒)をマシン時間から取得する。次に、認証システム(301)は、ユーザIDと認証したときの時刻とを含む認証証明書データを作成する。同時に、認証システム(301)は、認証証明書データを暗号化し、暗号化した認証証明書データを作成する。
次に、認証システム(301)は、暗号化した認証証明書をキーとしてユーザ認証データ保持システム(501)に暗号化前の認証証明書データと暗号化した認証証明書と(図13.認証証明書データ501−2参照。)を保存する。そして認証システム(301)は動的メニュー生成システム(302)を起動し、ユーザIDと暗号化した認証証明書を引き渡す。ここで、認証証明書の暗号化には、第三者に解読不可能な一方向暗号アルゴリズムを使用する。たとえば要約関数MD5(RFC1321で定義されている)を使う。尚、MD5の出力結果はバイナリなのでネットワーク透過にするためBASE64でエンコードするしたものを暗号化した認証証明書データとする。
【0154】
[ステップL6]
動的メニュー生成システム(302)は、ユーザIDをキーとしてメニューデータ保持システム(502)から当該ユーザが利用可能なアプリケーションプログラムのリスト(図14.アプリケーションプログラムリスト502−1参照。)と各アプリケーションプログラムが動作可能なサーバのリスト(図14.サーバリスト502−2参照。)を受信する。アプリケーションプログラムリスト(502−1)は、ユーザIDとアプリケーションプログラム名とを含む。また、サーバリスト(502−2)は、アプリケーションプログラム名とサーバ端末識別名とプログラムファイル名とを含む。
【0155】
[ステップL7]
動的メニュー生成システム(302)はクッキー化した、且つ暗号化した認証証明書データと当該ユーザが利用可能なアプリケーションプログラムのリストをURI形式に合成し、メニューデータを生成する。動的メニュー生成システム(302)は生成したメニューデータをWebサーバ(390)を介してユーザ端末(100)に送出する。
【0156】
[ステップL8]
ユーザが、メニュー画面からアプリケーションA(310)を選択すると、Webブラウザ(101)はアプリケーションA(310)のURIを使って選択されたアプリケーションに接続する。このとき、ユーザ端末(100)は、ステップL7で受信した暗号化された認証証明書データをクッキーとして送出する。
【0157】
[ステップL9]
アプリケーションA(310)は、Webサーバ(390)を介してクッキーとして暗号化された認証証明書データを受信する。アプリケーションA(310)は、この暗号化された認証証明書データを引数に格納して認証API(303)を呼び出す。認証API(303)は、認証システム(310)に暗号化された認証証明書データを送出し、正当性確認を要求する。
【0158】
[ステップL10]
認証システム(301)は、暗号化された認証証明書データをキーとして認証データ保持システム(501)から認証証明書データを取り出す。認証証明書データに含まれる認証時刻が、現在のマシン時刻を基点としてあらかじめ決めておいた無通信タイムアウト時間より過去であれば、この暗号化された認証証明書は無効であると判定する。認証システム(301)は、データ保持システム(501)から取り出した認証証明書データを再度暗号化したものが受信した暗号化された認証証明書データと一致すれば有効、一致しなければ無効と判定する。認証システム(301)の認証結果が有効であれば、認証システム(301)は、認証証明書の認証時刻を現在のマシン時刻に変更して認証証明書データを更新する。次に、認証システム(301)は、新しい認証証明書データを暗号化する。認証システム(301)は、この暗号化した認証証明データをキーとして新しい認証証明データを認証データ保持システム(401)に登録し、古い認証証明データは削除する。
【0159】
[ステップL11]
認証システム(301)は、認証API(303)を介してアプリケーションA(310)に認証結果を応答する。認証システム(301)の認証結果が有効なら、ユーザIDと新しい暗号化された認証証明書データを返し、無効なら無効を意味するコードを返す。
【0160】
[ステップL12]
アプリケーションA(310)は、認証システム(301)の認証結果が正常なら、ユーザ端末(100)とアプリケーションレベルの会話(メッセージ)を開始する。このとき、アプリケーションA(310)は、ユーザ端末(100)からWebサーバ(390)を介してデータを受信すると、必ず暗号化された認証証明書データがクッキーとして送られてくるので、毎回ステップL9〜ステップL11の手順で正当性を確認する。アプリケーションA(310)は、ユーザ端末(100)にWebサーバ(390)を介してHTML文書データを送信するときはステップL11で返された新しい暗号化された認証証明書データをクッキーとして送信する。
【0161】
[ステップL13]
一連のアプリケーションレベルの会話(メッセージ:会話要求データ、会話返送データ)の途中、又はアプリケーションA(310)の終了時に、アプリケーションA(310)は利用実績データ(503−2)としてユーザ識別名、時刻、利用機能、各アプリケーションプログラムで決めた課金対象となるアプリケーション利用量等を課金API(304)を介して課金システム(503)に送出する。課金システム(503)は、受信した利用実績データを蓄積し、定期的に集計して、認証データ保持システム(501)に格納しているユーザ別アプリケーション別各アプリケーション利用量単価(図15.単価マスタ503−1参照。)にユーザ別アプリケーション別アプリケーション利用量を積算し、利用料金の額を算出して請求書を作成する。
【0162】
(実施の形態3)
次に、本発明の実施の形態3のアプリケーション・サービスを提供する方法及びシステムにつき、図16を参照して、説明する。
図16は本発明の実施の形態3のアプリケーション・サービスを提供するシステムの構成例を示すブロック図である。
図16に示す実施の形態3のシステムは、図5に示す本発明の実施の形態1のシステムに、監視システム(エージェーント(306),サーバ(704))を追加し、更にアプリケーションプログラム(310,410)のそれぞれに監視API(305)を組み込む。尚、認証システム(301)、認証データ保持システム(701)、課金システム(703)、認証API(303)及び課金課金API(304)については図示を省略する。
【0163】
複数のアプリケーションサーバ(300,400,...)のそれぞれは、アプリケーションプログラム(310,410,...)のそれぞれに組み込んだ監視API(305)に定期的に稼動状況を問い合わせる監視システム(エージェント)(303)を更に備える。
また、監視API(305)は、アプリケーションプログラムの負荷状況と障害状況とのデータを採取する。
データサーバ(500)は、監視システム(エージェント)(303)が採取したアプリケーションプログラムの稼動状況データを蓄積する監視システム(サーバ)(704)を更に備える。
【0164】
先ず、監視API(305)をアプリケーションプログラムに組み込む方法につき、図11を参照して、説明する。
図11は監視API(305)をアプリケーションプログラムに組み込む方法を示すフローチャートである。このフローチャートで監視API(305)をアプリケーションプログラムに組み込むを方法を説明する。
【0165】
まず組み込む前の一般的なアプリケーションプログラムの処理フローを説明する。
[ステップJ1]
アプリケーションプログラムは、端末からのデータ受信等のイベントを入力する。
[ステップJ2]
アプリケーションプログラムは、入力したイベントがアプリケーションプログラムの終了イベントならステップJ4へ行く。
[ステップJ3]
アプリケーションプログラムは、入力したイベントに対応する業務処理を実行する。終われば次のイベント入力を待つ。
[ステップJ4]
アプリケーションプログラムは、終了イベントを入力したら終了処理を行う。
【0166】
次に監視API(305)をアプリケーションプログラムに組み込む方法を説明する。
[ステップK1]
アプリケーションプログラムは、ステップJ1の前に、初期処理として監視API(305)のインスタンスを生成する。
[ステップK2]
アプリケーションプログラムは、ステップJ3の直前でマシン時刻を取得し処理開始時刻として一時退避する。
[ステップK3]
アプリケーションプログラムは、ステップJ3の直後でマシン時刻を取得し、ステップK2の処理開始時刻を減算して処理時間を算出し、処理時間を応答時間として監視API(305)に渡す。
また、業務処理(ステップJ3)でエラーが発生していれば、エラーコードとエラーメッセージとを監視API(305)に渡す。
【0167】
先ず、監視API(305)は、渡された応答時間を規定n回数分(例えばn=10:nは1以上の自然数)だけ応答時間データ(305−1)に保持する。即ち、監視API(305)は、最近の10個の応答時間を格納する(図19応答時間データ(305−1)参照)。
監視API(305)は、応答時間を渡される毎に渡された応答時間を最新の応答時間1として応答時間データ(305−1)に格納する。これと同時に、監視API(305)は、応答時間1であった応答時間を応答時間2として応答時間データ(305−1)に格納し、応答時間2であった応答時間を応答時間3として応答時間データ(305−1)に格納し、・・・、応答時間9であった応答時間を応答時間10(n)として応答時間データ(305−1)に格納し、応答時間10であった応答時間を応答時間データ(305−1)から破棄する。
また、監視API(305)は、応答時間を渡される毎に応答時間データ(305−1)に格納された応答時間1、応答時間2・・・応答時間10(n)の平均応答時間を算出し、平均応答時間(現在)としてを応答時間データ(305−1)に格納する。
更に、監視API(305)は、エラーコードとエラーメッセージとを渡される毎にこれらを応答時間データ(305−1)に格納する。尚、監視API(305)は、監視API(305)を組み込むアプリケーションプログラム名を応答時間データ(305−1)に格納する。
加えて、監視API(305)は、監視要求データを監視システム(エージェント)(305)から入力された場合、応答時間データ(305−1)に格納する平均応答時間(現在)、エラーコード、及びエラーメッセージを監視システム(エージェント)(305)に出力する。
【0168】
[ステップK4]
アプリケーションプログラムは、ステップJ4の後ろに、終了処理として監視API(305)のインスタンスを消去する。
尚、ステップK1〜ステップK4を実行させるためのプログラムを監視関数プログラムという。
【0169】
次に、本発明の実施の形態のアプリケーション・サービスを提供する方法につき、図16〜図20を参照して、説明する。
【0170】
[ステップM1]
アプリケーションサーバ1(300)の監視システム(エージェント)(305)は、起動するとともに、データベースサーバ(500)のメニューデータ保持システム(502)からアプリケーションサーバ1(300)に関するサーバリスト(502−2)(図18参照)を読み込み、アプリケーションパフォーマンスリスト(306−1)(図19参照)を内部テーブルとして生成する。即ち、監視システム(エージェント)(305)は、アプリケーションサーバ1(300)のサーバ端末識別名をキーとしてサーバリスト(502−2)を抽出し、抽出したサーバリスト(502−2)の平均応答時間をアプリケーションパフォーマンスリスト(306−1)の平均応答時間(現在)に格納する。
尚、図18に示すように、サーバリスト(502−2)は、例えば、アプリケーションプログラム名と、サーバ端末識別名と、プログラム名と、エラーステータスと、平均応答時間とから成る。また、図19に示すように、アプリケーションパフォーマンスリスト(306−1)は、例えば、アプリケーションプログラム名と、エラーコードと、エラーメッセージと、平均応答時間(現在)と、平均応答時間(前回)と、応答時間1と、・・・応答時間nとから成る。
【0171】
次に、監視システム(エージェント)(305)は、定期的(たとえば10秒毎)にアプリケーションサーバ1(300)に格納されるアプリケーションプログラムのそれぞれに組み込まれた監視API(305)に監視状況の問い合わせを行う。即ち、監視システム(エージェント)(305)は、監視要求データを監視API(305)に定期的に入力する。これに対し、監視API(305)は、応答時間データ(305−1)に格納するアプリケーションプログラムの平均応答時間(現在)を監視システム(エージェント)(305)に出力する。
これに対し、監視システム(エージェント)(305)は、アプリケーションプログラムの平均応答時間(現在)をアプリケーションパフォーマンスリスト(306−1)に格納する。これと同時に、監視システム(エージェント)(305)は、平均応答時間(現在)であった平均応答時間を平均応答時間(前回)として格納し、平均応答時間(前回)であった平均応答時間を破棄する。
【0172】
[ステップM2]
ところで、アプリケーションプログラムにエラーが発生した場合、監視API(305)は、エラーコードとエラーメッセージとをアプリケーションプログラムから渡される。この場合、監視API(305)は平均応答時間(現在)とエラーコードとエラーメッセージとを監視システム(エージェント)(305)に出力するので、監視システム(エージェント)(305)はアプリケーションパフォーマンスデータ(504−1)を作成してデータサーバ(500)に格納する(図20参照)。
また、アプリケーションプログラムに重大なエラーが発生した場合、アプリケーションが動作しないので、監視API(305)も動作しなくなる。従って、監視システム(エージェント)(305)が監視要求データを監視API(305)に入力しても、監視API(305)は何も出力することができない。そこで、監視システム(エージェント)(305)は、予め決めた回数(例えば4回)連続して、監視APIから応答がない場合、監視システム(エージェント)(305)は、応答がない監視API(305)のアプリケーションプログラムにサービス不可能な障害が発生したと判断する。
この場合、監視システム(エージェント)(305)は、データサーバに格納されるアプリケーションパフォーマンスデータ(504−1)の時刻と、エラーコードと、エラーメッセージとを更新する。これと同時に、監視システム(エージェント)(305)は、メニューデータ保持システム(502)のサーバリスト(502−2)のエラーステータスをサービス中止として格納する。
【0173】
[ステップM3]
また、アプリケーションプログラムの処理能力が低下した場合、又はアプリケーションプログラムの処理能力が向上した場合、監視API(305)は、長い平均応答時間(現在)、又は短い平均応答時間(現在)をアプリケーションプログラムから渡される。従って、アプリケーションプログラムの処理能力の状況を反映させるため、監視システム(エージェント)(305)は、アプリケーションパフォーマンスリスト(306−1)の平均応答時間(現在)と平均応答時間(前回)を毎回比較して、平均応答時間(現在)が平均応答時間(前回)よりもより予め決めた値以上に変動した場合、監視システム(エージェント)(305)は、メニューデータ保持システム(502)のサーバリスト(502−2)の平均応答時間を平均応答時間(現在)として格納する。
【0174】
[ステップM4]
一方、アプリケーションプログラムに対する接続要求データが、ユーザ端末(100)から複数のアプリケーションサーバ(300,400,...)のうち何れか一のアプリケーションサーバ1(300)に送受信され、(実施の形態1)のステップC1〜C3が実行される。
【0175】
[ステップM5]
動的メニュー生成システム(302)は、サーバリスト(502−2)をメニューデータ保持システム(702)から取得する。次に、動的メニュー生成システム(302)は、エラーステータス及び平均応答時間を複数のサーバリストから取得する。
次に、動的メニュー生成システム(302)は、抽出したエラーステータスがサービス中であり、且つ抽出した平均応答時間が最小であるサーバリストを選択する。
次に、動的メニュー生成システム(302)は、選択したサーバリストに係るプログラムファイル名及びサーバ端末識別名を取得する。
次に、動的メニュー生成システム(302)は、取得したプログラムファイル名及びサーバ端末識別名に基づいてURI(Universal Resource Identifire)情報を含むメニューデータを動的に作成する。
ここで、一例を挙げれば、図17に示すようなメニューデータである。URI(http://アプリケーションサーバ2/アプリケーションA.asp)は、プログラムファイル名(アプリケーションA.asp)及びサーバ端末識別名(アプリケーションサーバ2)に基づいて作成される。
【0176】
[ステップM6]
動的メニュー生成システム(301)は、ステップM5で作成したURIのリスト作成から図17に示すようなメニュー画面用のHTML文書ファイルをユーザ端末にメニュー画面用のHTML文書ファイルを送出する。
【0177】
[ステップM7]
ユーザはユーザ端末(100)のWebブラウザ(101)を使用してメニュー画面からアプリケーションプログラムAを選択すると、選択したURIが示すアプリケーションサーバ2(400)のWebサーバ(390)に接続する。
【0178】
[ステップM8]
これに対し、アプリケーションサーバ2(400)に格納されるアプリケーションプログラムA(310)は、ユーザが接続したURIに従ってアプリケーションサーバ2(400)のWebサーバ(390)から起動される。これ以降、ユーザ端末(100)はアプリケーションサーバ2(400)のアプリケーションプログラムA(310)と会話する。
【0179】
[ステップM9]
また、ステップM7でユーザがメニュー画面からアプリケーションプログラムBを選択した場合は、選択したURLが示すアプリケーションサーバ1(300)のWebサーバ(390)に接続する。
【0180】
[ステップM10]
ステップM7ではなく、ステップM9が実行された場合、アプリケーションサーバ1(300)上にあるアプリケーションプログラムB(320)は、ユーザが接続したURIに従ってアプリケーションサーバ1(300)のWebサーバ(390)から起動される。これ以降、ユーザ端末(100)はアプリケーションサーバ1(300)のアプリケーションプログラムB(320)と会話する。
【0181】
【発明の効果】
本発明のアプリケーション・サービスを提供する方法及びシステムによれば、複数のアプリケーションサーバのそれぞれが、受信した認証証明書データとデータサーバに予め格納される認証証明書データとを比較して、受信した認証証明書データの正当性の確認を行うことができる。即ち、複数のアプリケーションサーバのそれぞれが、同一のユーザを識別することができる。換言すれば、複数のアプリケーションサーバ間でユーザ管理の統一性を実現することができる。これにより、アプリケーションプログラムを複数のアプリケーションサーバに分散させて、アプリケーションプログラムの処理速度の低下を防止することができるという効果がある。
【0182】
また、利用実績データがアプリケーションサーバのそれぞれからデータサーバに送信されるので、契約の利用代金の額がユーザの利用時間(実績データ)に線形でない場合であっても、データサーバで利用実績データを収集して、課金処理を行って利用代金の額を算出することができる。即ち、複数のアプリケーションサーバ間で課金管理の統一性を実現することができるという効果がある。
更に、アプリケーションプログラムの応答時間データが監視されているので、アプリケーションプログラムの処理速度の低下を確実に防止することができるという効果がある。
【図面の簡単な説明】
【図1】実施の形態1のアプリケーション・サービスを提供するための準備をするシステムの構成例を示すブロック図である。
【図2】実施の形態1のアプリケーションプログラムを準備する方法を説明するためのフローチャート図である。
【図3】実施の形態1のアプリケーションプログラムを利用するユーザの登録方法を説明するためのフローチャート図である。
【図4】実施の形態1のアプリケーション情報表示画面である。
【図5】実施の形態1のアプリケーション・サービスを提供するシステムの構成例を示すブロック図である。
【図6】実施の形態1のアプリケーションサーバ1のアプリケーションプログラムを利用した場合の流れ図である。
【図7】実施の形態1のアプリケーションサーバ2のアプリケーションプログラムを利用した場合の流れ図である。
【図8】実施の形態1の課金の流れ図である。
【図9】実施の形態1の認証APIをアプリケーションプログラムに組み込む方法を示すフローチャートである。
【図10】実施の形態1の課金APIをアプリケーションプログラムに組み込む方法を示すフローチャートである。
【図11】実施の形態3の監視APIをアプリケーションプログラムに組み込む方法を示すフローチャートである。
【図12】実施の形態2のアプリケーション・サービスを提供するシステムの構成例を示すブロック図である。
【図13】実施の形態2の認証データ保持システムが保持するデータ例である。
【図14】実施の形態2のメニューデータ保持システムが保持するデータ例1である。
【図15】実施の形態2の課金システムが保持するデータ例である。
【図16】実施の形態3のアプリケーション・サービスを提供するシステムの構成例を示すブロック図である。
【図17】実施の形態3のメニュー画面のソース例である。
【図18】実施の形態3のメニューデータ保持システムが保持するデータ例2である。
【図19】実施の形態3の監視API及び監視システム(エージェント)が管理するデータ例である。
【図20】実施の形態3の監視システム(サーバ)が管理するデータ例である。
【符号の説明】
100 ユーザ端末
101 Webブラウザ
200 コンピュータネットワーク
210 LAN
220 公衆回線または専用線
230 補助記憶媒体
300、400 アプリケーションサーバ
301 認証システム
302 動的メニュー生成システム
303 認証API
304 課金API
305 監視API
305−1 応答時間データ
306 監視システム(エージェント)
310、320 アプリケーションプログラム
390 Webサーバ
500 データサーバ
501 認証データ保持システム
501−1 認証データ
501−2 認証証明書データ
502 メニューデータ保持システム
502−1 アプリケーションプログラムリスト
502−2 サーバリスト
503 課金システム
503−1 単価マスタ
503−2 利用実績データ
504 監視システム(サーバ)
504−1 アプリケーションパフォーマンスデータ
700 ベンダー端末
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method and system for providing application services.
[0002]
BACKGROUND OF THE INVENTION
Providing an application service means allowing a user to use an application program for a fee via a computer network, or providing a user with a so-called commercial service via a computer network.
[0003]
Here, the computer network is, for example, the Internet or a wide area network (WAN). As is well known, the Internet is a huge computer network in which networks all over the world are connected to each other using a communication protocol TCP / IP (Transmission Control Protocol / Internet Protocol). TCP / IP is a standard protocol used in the Internet and Intranet, and TCP / IP is a protocol that serves as a basis for HTTP (Hyper Text Transfer Protocol), FTP (File Transfer Protocol), and the like.
Note that HTTP is a protocol used for transmitting and receiving data (HTML documents, image files, music files, video files, etc.) between a Web server and a Web browser. HTTP is a TCP / TCP for each HTML document. This is a stateless protocol for IP connection / data transfer (in addition to an HTML document, an image file associated with the HTML document) / disconnection. HTTP is defined in a technical document rfc (Request For Comments) 2616 published by IETF (Internet Engineering Task Force) (http://www.ietf.org/rfc/rfc2616.txt).
[0004]
The Web server transmits resources (HTML document, image file, music file, video file, etc.) on the server to the Web browser in response to a request from the Web browser. Here, the Web server includes not only a server that simply transmits an HTML document or the like on the server but also a server that executes an application program on the server and transmits an HTML document or the like generated based on the output result. An application program that generates an HTML document based on the output result of the application program is created in a program language such as Perl (Practical Extraction and Report Language), Java, or the like. As is well known, an application program created in Perl can generate a dynamic HTML document using a CGI (Common Gateway Interface) technique.
On the other hand, the web browser receives resources on the server from the web browser, analyzes the resources, and displays or reproduces them on the display or speaker of the user terminal. In addition, the Web browser can also receive input from the user and transmit it to the Web server. Here, examples of Web browsers include Netscape Navigator (Communicator) from Netscape Communications, Internet Explorer from Microsoft, and the like.
[0005]
By the way, a provider that provides an application service, that is, an application service provider (ASP), is a vendor who develops an application program. In other words, vendors themselves develop application programs, develop business process programs (user authentication programs, billing processing programs, etc.), and allow users to use application programs that incorporate business process programs for a fee via a computer network. ing.
[Problems to be solved by the invention]
Current methods and systems for providing application services have the following problems.
[0006]
For example, a plurality of users may naturally use the same application program at the same time. In this case, since the application program needs to generate data such as an HTML document for each of a plurality of users, the processing speed of the application program decreases.
[0007]
Here, in order to prevent a decrease in the processing speed of the application program, the problem can be solved by increasing the processing capability of a server (hereinafter also referred to as “application server”) in which the application program is stored.
However, at present, the cost of the application server is drastically increased as the processing capability is increased. Specifically, the cost of the application server is more than doubled when the CPU (Central Processing Unit) clock frequency, which depends on the calculation speed, and the router communication speed, etc., which depend on the data transmission speed, double. Needless to say. Further, in the current technology, there is an upper limit on the CPU clock frequency and the like. Therefore, since there is a limit to increasing the processing capacity of the application server, when a certain number of users use the same application program at the same time, a decrease in the processing speed of the application program can be prevented. When a very large number of users use the same application program at the same time, the processing speed of the application program decreases.
[0008]
Further, in order to prevent a decrease in the processing speed of the application program, it can be solved by installing a plurality of application servers. That is, the application program is distributed to a plurality of application servers, and the number of users who use the application program stored in one application server is distributed. Thereby, it is possible to prevent a decrease in the processing speed of the application program.
As a result, for example, the same user may naturally use the same application program on a plurality of application servers. That is, the same user starts using the same application program on a certain application server, and the use is temporarily stopped (temporary saving). After that, it may naturally occur that the same user resumes using the same application program on another application server. In this case, since each business process program is incorporated in an application program (user authentication program, billing processing program, etc.), the same user is authenticated in units of application servers, and billing processing is performed for the same user. It will be.
[0009]
Therefore, when the application service provider (ASP) requests payment of the usage fee for the same user, the provider that performs the application service provider collects the result of the charging process for the same user at each of the application servers. Thus, the amount of the usage fee is calculated. In addition, the amount of the usage fee, which is the result of the billing process, is calculated based on the actual data (usage time, number of times used, etc.) of the application program used by the user in the contract between the service provider and user Has been.
[0010]
Here, when the amount of the usage fee in the contract between the application service provider (ASP) and the user is linear with the usage time (actual data) of the user, the usage that is the result of the accounting processing for each application server Simply add the price. As an example, it is assumed that the amount of the usage fee in the contract is 1000 yen per hour (user usage time). Assume that A (user) uses A (application program) on the A server (application server) for 1 hour, and then A uses A on the B server for 2 hours. The server A calculates the amount of usage fee as 1000 yen as a result of the charging process, and the server B calculates the amount of usage fee as 2000 yen as a result of the charging process. On the other hand, it is only necessary to simply add each of the usage charges as a result of the accounting process (1000 yen + 2000 yen).
[0011]
However, in the contract between the application service provider (ASP) and the user, when the amount of the usage fee is not linear with respect to the usage time (actual data) of the user, the usage fee as a result of the accounting processing for each application server You cannot simply add the forehead. For example, the amount of the usage fee in the contract is 1000 yen / hour for a total usage time of up to 1 hour, and 2000 yen / hour for a total usage time of 1 hour to 2 hours. To do. As before, it is assumed that Mr. A uses A for 1 hour on the A server, and then Mr. A uses A for 2 hours on the B server. The server A calculates the amount of the usage fee as 1000 yen as a result of the charging process, and the server B calculates the amount of the usage fee as 3000 yen (1000 yen + 2000 yen) as a result of the charging process. On the other hand, simply adding each of the usage charges as a result of the billing process is 4000 yen (1000 yen + 3000 yen). On the other hand, if Mr. A uses A for 3 hours in the contract, the contract usage fee is 5000 yen (1000 × 1 + 2000 × 2).
[0012]
That is, when the contract usage fee is not linear with the user usage time (actual data), it is not possible to simply add the usage fee, which is the result of the accounting processing for each application server. Therefore, Mr. A must use A on the A server for 1 hour, and then Mr. A must use A again on the A server for 2 hours. That is, the same user must use the same application program on the same application server. As a result, even if the application program is distributed to a plurality of application servers, the number of users who use the application program stored in one application server may not be distributed. As a result, the processing speed of the application program decreases.
[0013]
The present invention has been made in view of the problems in the current method and system for providing an application service, and provides a method and system for providing an application service capable of preventing a decrease in processing speed of an application program. The task is to do.
[0014]
[Means for Solving the Problems]
The invention of claim 1 that solves the above-described problem includes: conversation request data for one application program among application programs stored in a plurality of application servers; authentication certificate data that has been authenticated in advance; The And transmission / reception from the user terminal to one application server in which the one application program is stored Do A first step, the authentication certificate data authenticated in advance, and authentication certificate data stored in advance in a data server; The In the one application server Leave Comparison Shi If it matches, The conversation response data and usage record data for the conversation request data are created by the one application program, and the authentication certificate data and the conversation response data that are authenticated again by the one application server, Transmission / reception to / from the user terminal from the one application server Do Second step and the usage record data The The one application Billing API built into the program To and from the data server Do And a third step of providing an application service.
[0015]
Therefore, according to the first aspect of the present invention, each of the plurality of application servers compares the received authentication certificate data with the authentication certificate data stored in advance in the data server to verify the validity of the received authentication certificate data. Sexuality can be confirmed. That is, each of the plurality of application servers can identify the same user. In other words, user management uniformity can be realized among a plurality of application servers. Accordingly, there is an advantage that the application program can be distributed to a plurality of application servers to prevent a decrease in the processing speed of the application program.
[0016]
According to a second aspect of the present invention, there is provided: conversation request data for another application program among the application programs stored in the plurality of application servers after the third step, and the authentication certificate data re-authenticated. The The user terminal transmits / receives the other application program to another application server. Do A fourth step, the authentication certificate data re-authenticated, and the authentication certificate data stored in advance. The To the other application server Leave Comparison Shi If they match, the conversation response data and usage record data for the conversation request data The The other application program Created by Shi And the conversation response data and authentication certificate data re-authenticated by the other application server; The , Send and receive from the other application server to the user terminal Do Fifth step and the usage record data The The other application Billing API built into the program To and from the data server Do 6. A method for providing an application service according to claim 1, comprising a sixth step.
[0017]
Therefore, according to the invention of claim 2, there is the advantage of the invention of claim 1, and the user transmits the authentication certificate data re-authenticated by one application program to another application program, so that another application You can use the program. As a result, the user can use the same application program on another application server, and can freely use different application programs within the scope of the contract. In this way, since the user is not limited to the same application server, the user is distributed to a plurality of application servers. Thereby, there is an advantage that a decrease in the processing speed of the application program can be prevented.
[0018]
Further, the invention of claim 3 is characterized in that after the third step or the sixth step. In addition, the fourth step, the fifth step and the sixth step are performed once. Run repeatedly 7th step to A method for providing an application service according to claim 1, wherein the method provides an application service.
[0019]
Therefore, according to the invention of claim 3, there is the advantage of the invention of claim 1 or claim 2, and after the user connects from one application server to another application server, the user is stored again in one application server. The same application program can be used. For example, even if the user switches the connection to another application server, the processing speed of other application programs stored in the other application server is not necessarily high. Therefore, when the processing speed of the other application program is low, the user can prevent further reduction in the processing speed of the other application program by resuming the use of the one application program.
[0020]
The invention of claim 4 is the application according to the first aspect. Billing API built into the program And / or said other applications Billing API built into the program Amount data based on usage data received from The To the data server Leave Create Do The method for providing an application service according to any one of claims 1 to 3, further comprising a step.
[0021]
Therefore, according to the invention of claim 4, there is an advantage of any one of the inventions of claims 1 to 3, and usage result data is transmitted from each of the application servers to the data server. Even if the amount is not linear with the user's usage time (actual data), the actual usage data can be collected by the data server and charged, and the amount of usage can be calculated. That is, there is an advantage that the uniformity of billing management can be realized among a plurality of application servers.
[0022]
Further, the invention of claim 5 is the response time data of the application program. The Periodically transmit / receive to / from the data server Do A monitoring step, connection request data for the application program and user identification data before the first step; The And transmission / reception to / from any one of the plurality of application servers from the user terminal Do A login step, the user identification data, and user identification data stored in advance in the data server; The In any one of the application servers Leave Comparison Shi If they match, the authentication certificate data authenticated in advance according to the first step The Stored in the data server Shi , Each of the response time data The Transmission / reception from the data server to any one of the application servers do it Of the response time data each The fastest application server that stores the application program with the shortest response time specify Menu data Create And the previously authenticated authentication certificate data and the menu data The And transmission / reception to / from the user terminal from any one of the application servers Do Authentication step, and based on the menu data Connect to the fastest application server from the user terminal A first application server according to the first step is the first step as the fastest application server. The Execution Do The method for providing an application service according to any one of claims 1 to 4, wherein the application service is provided.
[0023]
Therefore, according to the invention of claim 5, there is the advantage of any one of the inventions of claims 1 to 4, and the response time data of the application program is monitored, so that the processing speed of the application program is reduced. There is an advantage that it can be surely prevented.
[0024]
According to a sixth aspect of the present invention, in the second step and / or the fifth step, the authentication certificate data, the authentication certificate data stored in advance, The Comparison Shi If they match, the authentication certificate data stored in advance The New authentication certificate data to the one application server and / or the other application server Leave Change Shi And the new authentication certificate data The Stored in the data server Do Authentication certificate data re-authenticated, including a step The , Send and receive as the new authentication certificate data Do 6. A method for providing an application service according to claim 1, wherein the application service is provided.
[0025]
The invention of claim 7 is that the authentication certificate data according to the first step is encrypted authentication certificate data encrypted in advance, and the second step and / or the fifth step. Is The above In advance Authentication Authentication certificate data The above To one application server and / or the other application server Leave encryption Generating encrypted authentication certificate data, and generating the encrypted authentication certificate data Store in the data server Do Authentication certificate data re-authenticated, including a step As , Said Encrypted authentication certificate data The Send and receive Do The method for providing an application service according to claim 1, wherein the application service is provided.
[0026]
Therefore Claim 6 Or Claim 7 According to the invention, there is an advantage that forgery of authentication certificate data can be prevented.
[0036]
The current method and system for providing application services also have the following problems.
[0037]
Since it is necessary for vendors themselves to develop business process programs (user authentication programs, billing processing programs, etc.), it is necessary to install facilities (program developers, program development servers, etc.) necessary for developing business process programs. That is, it is necessary for vendors themselves to install facilities necessary for developing business process programs and operate business processes. Since the installation cost of this equipment and the operational cost of business processes are high, only major vendors with a substantial amount of capital are application service providers (ASPs). Therefore, there has been a problem that vendors cannot easily enter the application service provider business.
[0038]
In addition, since the installation cost and business process operation cost required for the development of business process programs are expensive, even major vendors are able to use application programs at a high price for the first time. The current situation is that Therefore, there is a problem that the number or types of application programs available to the user is practically small.
[0039]
Furthermore, since major vendors individually become application service providers (ASPs), the user needs to make a contract in advance for each application service provider (ASP) and pay the application program usage fee. Therefore, there is a problem that the user has complicated administrative procedures such as contracts and payment of usage fees.
[0040]
In claim 13, authentication certificate data previously authenticated by the authentication system is input to the application program,
The pre-authentication authentication certificate data is input to the authentication system via an authentication API (Application Program Interface),
A method for authenticating a user using an authentication function program includes the step of outputting authentication certificate data re-authenticated by the authentication system to the application program via the authentication API.
[0041]
A fourteenth aspect of the present invention is a computer-readable recording medium on which an authentication function program for executing the steps according to the thirteenth aspect is recorded.
[0042]
Therefore, according to the invention of claim 13 or claim 14, the application program can be managed by the user only by incorporating an authentication API (Application Program Interface) into the application program. That is, it is not necessary to develop a user authentication program simply by developing an application program. This has the advantage that vendors can easily enter the business of application service providers.
[0043]
Further, claim 15 is a first step in which conversation request data for an application program is input to the application program;
A second step in which conversation response data for the conversation request data is created by the application program;
A third step in which usage record data for the conversation request data is created by the application program;
And a fourth step in which the usage record data is input to a charging system via a charging API.
[0044]
Therefore, according to the fifteenth aspect of the present invention, the application program can charge the user only by incorporating a charging API (Application Program Interface) into the application program. That is, it is not necessary to develop a billing processing program simply by developing an application program. This has the advantage that vendors can easily enter the business of application service providers.
[0045]
According to a sixteenth aspect of the present invention, a process start time is created by the application program after the first step and before the second step.
A process end time is created by the application program after the second step and before the third step,
16. The user billing method by a billing function program according to claim 15, wherein the third step creates the usage record data based on the process start time and the process end time.
[0046]
Further, according to claim 17, in the third step, the usage record data is created based on a charge item based on the conversation request data and the conversation response data. This is a user charging method using the charging function program.
[0047]
An eighteenth aspect is a computer-readable recording medium on which a charging function program for executing all the steps according to any one of the fifteenth to seventeenth aspects is recorded.
[0048]
Therefore, according to any one of claims 16 to 18, the application program can charge according to the usage mode of the user.
[0049]
Further, according to claim 19, authentication certificate data previously authenticated by the authentication system is received from the user terminal by the application program,
The pre-authenticated authentication certificate data is input to the authentication system via the authentication API;
And authentication certificate data re-authenticated by the authentication system is transmitted to the user terminal from the application program via the authentication API.
[0050]
Further, claim 20 is a first step in which conversation request data for an application program is received by the application program from a user terminal;
A second step in which conversation response data for the conversation request data is created by the application program;
A third step in which usage record data for the conversation request data is created by the application program;
And a fourth step in which the usage record data is input from the application program to the billing system via a billing API.
[0051]
Further, in the twenty-first aspect, a process start time is created by the application program after the first step and before the second step.
A process end time is created by the application program after the second step and before the third step,
21. The charging method for a user by an application program according to claim 20, wherein the third step creates the usage record data based on the processing start time and the processing end time.
[0052]
Further, according to claim 22, in the third step, the usage record data is created based on a charge item based on the conversation request data and the conversation response data. This is a user charging method using the application program.
[0053]
Further, claim 23 is the step according to claim 19,
All the steps as described in any one of Claims 20-22 are included, It is a user's charge and the charge method characterized by the above-mentioned.
[0054]
A twenty-fourth aspect is a computer-readable recording medium on which an application program for executing all the steps according to any one of the nineteenth to twenty-third aspects is recorded.
[0055]
Therefore, according to any one of claims 19 to 24, the application program can authenticate the user and / or charge only by creating the application program incorporating the authentication API and / or the charging API. That is, it is not necessary to develop a user authentication and / or billing processing program simply by developing an application program incorporating the authentication API and / or billing API. This has the advantage that vendors can easily enter the business of application service providers.
[0056]
Further, the present invention provides a log-in step in which user identification data is received from a user terminal to an authentication system stored in an application server;
The user identification data is authenticated by the authentication system;
An authentication step in which authentication certificate data previously authenticated by the authentication system is transmitted from the authentication system to the user terminal;
A first step in which conversation request data for an application program and the pre-authenticated authentication certificate data are received from the user terminal by the application program;
The pre-authenticated authentication certificate data is input to the authentication system via an authentication API embedded in the application program;
The pre-authenticated authentication certificate data is re-authenticated by the authentication system;
A re-authentication step in which authentication certificate data re-authenticated by the authentication system is output to the application program via an authentication API;
A second step in which conversation response data for the conversation request data is created by the application program;
A third step in which usage record data for the conversation request data is created by the application program;
The re-authentication authentication certificate data and the conversation response data are transmitted from the application program to a user terminal;
And a fourth step of inputting the usage record data from the application program to a charging system stored in the data server via a charging API, and a user authentication and charging method by the application server. .
[0057]
A twenty-sixth aspect is a computer-readable recording medium in which an application program and an authentication system program stored in an application server for executing all the steps according to the twenty-fifth aspect are recorded.
[0058]
Therefore, according to the invention of claim 25 or claim 26, the vendor can provide the application service only by storing the application program incorporating the authentication API and the billing API and the authentication system in the application server. That is, there is an advantage that the vendor can easily enter the business of the application service provider.
[0059]
In addition, a login step in which user identification data is transmitted and received from the user terminal to the authentication system stored in the application server,
The user identification data is authenticated by the authentication system;
An authentication step in which authentication certificate data previously authenticated by the authentication system is transmitted from the authentication system to the user terminal;
A first step in which conversation request data for an application program and the pre-authenticated authentication certificate data are transmitted and received from the user terminal to the application program;
The pre-authenticated authentication certificate data is input to the authentication system via an authentication API embedded in the application program;
The pre-authenticated authentication certificate data is re-authenticated by the authentication system;
A re-authentication step in which authentication certificate data re-authenticated by the authentication system is output to the application program via an authentication API;
A second step in which conversation response data for the conversation request data is created by the application program;
A third step in which usage record data for the conversation request data is created by the application program;
The authentication certificate data re-authenticated and the conversation response data are transmitted and received from the application program to the user terminal;
And a fourth step in which the usage record data is input to a charging system stored in a data server from the application program via a charging API.
[0060]
Therefore, according to the invention of claim 27, the vendor can provide the application service only by storing the application program incorporating the authentication API and the charging API and the authentication system in the application server. That is, there is an advantage that the vendor can easily enter the business of the application service provider.
[0061]
Further, since the vendor does not need to develop a user authentication and billing processing program, a new application program can be developed. In this case, the vendor can provide a plurality of application services only by storing the new application program in the application server. That is, there is an advantage that the number or types of application programs available to the user increases.
Here, each of the plurality of application programs can identify the user by one authentication system via the authentication API. In other words, user management uniformity can be realized among a plurality of application programs.
[0062]
Furthermore, when another vendor develops another application program, another vendor also provides an application service by simply storing another application program on the application server with a plurality of application programs and one authentication system. Can do. In other words, the application server can allow a user to use application programs of a plurality of vendors for a fee.
Here, the application programs of a plurality of vendors can calculate the usage amount by totaling the usage record data by a single charging system via the charging API. In other words, the uniformity of billing management can be realized among a plurality of vendors. The accounting system calculates the usage amount for each user and asks the user to pay, while the accounting system calculates the usage amount for each vendor and pays the vendor. Thereby, the user has an advantage that office procedures such as payment of a usage fee are not complicated.
[0063]
Further, in the re-authentication step, the re-authentication step includes a case where the pre-authentication authentication certificate data and the authentication certificate data pre-stored in the authentication data holding system are compared and matched by the authentication system.
The authentication certificate data stored in advance is changed to new authentication certificate data by the authentication system,
And the new authentication certificate data is stored in an authentication data holding system stored in the data server,
28. The method for providing an application service according to claim 27, wherein the re-authenticated authentication certificate data is output as the new authentication certificate data.
[0064]
Further, in claim 29, the authentication certificate data related to the authentication step is encrypted authentication certificate data encrypted in advance by the authentication system,
In the re-authentication step, when the authentication certificate data pre-authenticated and the authentication certificate data pre-stored in the authentication data holding system are compared and matched by the authentication system,
The pre-stored authentication certificate data is encrypted by the authentication system into new encrypted authentication certificate data,
The new encrypted authentication certificate data is stored in an authentication data holding system stored in the data server,
The method for providing an application service according to claim 27 or 28, wherein the re-authenticated authentication certificate data is output as the new encrypted authentication certificate data.
[0065]
Therefore, according to the invention of claim 28 or claim 29, there is an advantage that forgery of authentication certificate data can be prevented.
[0066]
The thirty-third aspect receives user identification data from a user terminal,
Authenticate the user identification data and send pre-authenticated authentication certificate data to the user terminal;
The pre-authenticated authentication certificate data is input from an application program via an authentication API incorporated in the application program,
An authentication system for re-authenticating the pre-authenticated authentication certificate data and outputting the re-authenticated authentication certificate data to the application program via the authentication API;
Receiving the conversation request data and the pre-authenticated authentication certificate data from the user terminal;
Inputting the pre-authenticated authentication certificate data into the authentication system;
The re-authenticated authentication certificate data is output from the authentication system,
Create conversation response data and usage record data for the conversation request data,
Transmitting the authentication certificate data and the conversation response data that are re-authenticated to the user terminal;
An application server comprising: an application program for inputting the usage record data to a charging system stored in a data server via a charging API.
[0067]
The claim 31 stores authentication certificate data previously authenticated by the authentication system stored in the application server from the authentication system,
An authentication data holding system in which authentication certificate data re-authenticated by the authentication system is stored from the authentication system;
And a billing system for inputting usage record data from an application stored in the application server via an authentication API incorporated in the application program.
[0068]
A thirty-second aspect is a system for providing an application service comprising the application server according to the thirty-third aspect and the data server according to the thirty-first aspect.
[0069]
Therefore, according to any one of claims 30 to 32, the vendor can provide the application service only by storing the application program incorporating the authentication API and the charging API and the authentication system in the application server. it can. That is, there is an advantage that the vendor can easily enter the business of the application service provider.
[0070]
Further, since the vendor does not need to develop a user authentication and billing processing program, a new application program can be developed. In this case, the vendor can provide a plurality of application services only by storing the new application program in the application server. That is, there is an advantage that the number or types of application programs available to the user increases.
Here, each of the plurality of application programs can identify the user by one authentication system via the authentication API. In other words, user management uniformity can be realized among a plurality of application programs.
[0071]
Furthermore, when another vendor develops another application program, another vendor also provides an application service by simply storing another application program on the application server with a plurality of application programs and one authentication system. Can do. In other words, the application server can allow a user to use application programs of a plurality of vendors for a fee.
Here, the application programs of a plurality of vendors can calculate the usage amount by totaling the usage record data by a single charging system via the charging API. In other words, the uniformity of billing management can be realized among a plurality of vendors. The accounting system calculates the usage amount for each user and asks the user to pay, while the accounting system calculates the usage amount for each vendor and pays the vendor. Thereby, the user has an advantage that office procedures such as payment of a usage fee are not complicated.
[0072]
The current method and system for providing application services also have the following problems.
[0073]
[Load distribution of application programs]
When connection requests from a plurality of users concentrate on a certain application program A at the same time, the load on the server A storing the application program A increases. In this case, since the processing speed of the application program A is reduced, the response time for the application program A for a plurality of users is delayed, and the network traffic amount of the server A is reduced. At this time, if the load balancer (a device that distributes the load of the conventional application program) measures the network traffic amount of a plurality of servers and the smallest network traffic amount is the server A, the load balancer It will be directed to the application program A of the server A.
In other words, even if the load on the application program is high, the user may connect to the application program, so that there is a problem that the load on the application program cannot always be accurately distributed.
[0074]
[Switch to standby application program]
In addition, because load balancers and clustering (conventional device for switching to a standby application program) perform communication for checking normal operation on a server basis, switching to a standby system in the event of a failure is performed on a server basis. Will be going. Therefore, for example, when a failure occurs in the application program A of a certain server A and the application program B of the server A is operating normally, a failure has occurred in the server A, so the server B switches to the standby server B. It will be. At this time, the user who uses the application program B normally operating on the server A can forcibly terminate the application program B on the server A or change the application program B while the server A switches to the standby server B. It cannot be used.
That is, even if the application program of the server to be connected is operating normally, the application program of the standby server may be switched, so that there is a problem that switching to the standby application program cannot always be performed accurately.
[0075]
The claim 33 is a first step in which conversation request data for an application program is input to the application program;
A second step in which a processing start time is created by the application program after the first step;
A third step in which conversation response data for the conversation request data is output from the application program;
A fourth step in which a processing end time is created by the application program after the third step;
A fifth step in which response time data of the application program is created by the application program based on the processing start time and the processing end time;
A sixth step in which the response time data is input from the application program to a monitoring API (Application Program Interface); a seventh step in which the monitoring request data is input from the monitoring system (agent) to the monitoring API; ,
And an eighth step of outputting the response time data from the monitoring API to the monitoring system (agent).
[0076]
Therefore, according to the invention of claim 33, the response time of the application program can be monitored. Therefore, when loads such as connection requests to the application program are concentrated on one application program, the response time of a plurality of application programs It is possible to cause other application programs to handle the load. That is, a decrease in the processing speed of one application program can be prevented. In other words, there is an advantage that load distribution of the application program can be performed accurately.
[0077]
Further, the 34th aspect of the present invention includes the first step, the second step, the third step, the fourth step, the fifth step, and the sixth step before the eighth step, And a ninth step in which a series of steps of the seventh step is repeated N (N is 1 or more) times,
The eighth step is a result of the ninth step being executed,
The monitoring function program according to claim 33, wherein average response time data based on the N response time data input to the monitoring API is output as response time data according to the eighth step. Is a method for monitoring an application program.
[0078]
Therefore, according to the invention of claim 34, there are advantages of the invention of claim 33, and the response time of the application program can be accurately monitored. Thereby, there is an advantage that load distribution of the application program can be performed more accurately.
[0079]
A thirty-fifth aspect is a computer-readable recording medium on which a monitoring function program for executing all the steps according to the thirty-third or thirty-fourth aspects is recorded.
[0080]
Therefore, according to the invention of claim 35, the response time of the application program can be monitored only by incorporating the monitoring API into the application program. Thereby, there is an advantage that load distribution of the application program can be performed more accurately.
[0081]
Further, claim 36 is a first step in which conversation request data for the application program is received from the user terminal to the application program;
A second step in which a processing start time is created by the application program after the first step;
A third step in which conversation response data for the conversation request data is transmitted from the application program to the user terminal;
A fourth step in which a processing end time is created by the application program after the third step;
A fifth step in which response time data of the application program is created by the application program based on the processing start time and the processing end time;
A sixth step in which the response time data is input to the monitoring API from the application program;
A seventh step in which monitoring request data is input to the monitoring API from a monitoring system (agent);
An application program monitoring method using an application program, comprising: an eighth step in which the response time data is output from the monitoring API to the monitoring system (agent).
[0082]
Further, the 37th aspect includes the first step, the second step, the third step, the fourth step, the fifth step, and the sixth step before the eighth step, And a ninth step in which a series of steps of the seventh step is repeated N (N is 1 or more) times,
The eighth step is a result of the ninth step being executed,
The application program according to claim 36, wherein average response time data based on the N response time data input to the monitoring API is output as response time data according to the eighth step. This is an application program monitoring method.
[0083]
A thirty-eighth aspect is a computer-readable recording medium on which an application program for executing all the steps according to the thirty-sixth or thirty-seventh aspect is recorded.
[0084]
Therefore, according to the invention of any one of claims 36 to 38, the response time of the application program can be monitored. Therefore, when loads such as connection requests to the application program are concentrated on one application program, The load can be processed by another application program having a short response time among the plurality of application programs. That is, a decrease in the processing speed of one application program can be prevented. In other words, there is an advantage that load distribution of the application program can be performed accurately.
[0085]
The claim 39 is a first step in which conversation request data for the application program stored in the application server is received from the user terminal by the application program;
A second step in which a processing start time is created by the application program after the first step;
A third step in which conversation response data for the conversation request data is transmitted from the application program to the user terminal;
A fourth step in which a processing end time is created by the application program after the third step;
A fifth step in which response time data of the application program is created by the application program based on the processing start time and the processing end time;
A sixth step in which the response time data is input from the application program to a monitoring API embedded in the application program;
A seventh step in which monitoring request data is input to the monitoring API from a monitoring system (agent) stored in the application server;
An application program monitoring method by an application server, comprising: an eighth step in which the response time data is output from the monitoring API to the monitoring system (agent).
[0086]
In addition, the 40th aspect includes the first step, the second step, the third step, the fourth step, the fifth step, and the sixth step before the eighth step, And a ninth step in which a series of steps of the seventh step is repeated N (N is 1 or more) times,
The eighth step is a result of the ninth step being executed,
The application server according to claim 39, wherein average response time data based on the N response time data input to the monitoring API is output as response time data according to the eighth step. This is an application program monitoring method.
[0087]
Therefore, according to the invention of claim 39 or claim 40, the response time of the application program can be monitored. Thereby, there is an advantage that the load distribution of the application program can be accurately performed.
[0088]
Further, the 41st aspect includes the first step, the second step, the third step, the fourth step, the fifth step, the sixth step, the seventh step, A ninth step and a tenth step in which a series of steps of the eighth step is repeated M (M is 1 or more) times or more;
As a result of execution of the ninth step,
When the average response time data according to the eighth step is not output M times to the monitoring system (agent),
The failure occurrence data indicating that a failure has occurred in the application program includes an eleventh step created by the monitoring system (agent). It is a monitoring method.
[0089]
Therefore, according to the invention of claim 41, there is the advantage of the invention of claim 39 or claim 40, and the occurrence of a failure can be monitored in units of application programs. As a result, when an application program in which a failure has occurred and another application that operates normally are stored in the application server, it is possible to switch to an application program that waits only for a user who uses the application program in which a failure has occurred. it can. On the other hand, a user who uses another application that operates normally can continue to use the other application. As a result, there is an advantage that switching to the standby application program can be performed accurately.
[0090]
Further, claim 42 is a computer readable recording of an application program and a monitoring system (agent) program stored in an application server for executing all the steps according to any one of claims 39 to 41. Recording medium.
[0091]
Therefore, according to the invention of claim 42, the response time of the application program can be monitored by storing the application program and the monitoring system (agent) in the application server. Thereby, there is an advantage that the load distribution of the application program can be accurately performed.
Further, the occurrence of a failure can be monitored for each application program. As a result, there is an advantage that switching to the standby application program can be performed accurately.
[0092]
A 43rd aspect is the first step in which the conversation request data for each of the application programs stored in the plurality of application servers is transmitted / received from the user terminal to each of the application programs;
A second step in which a processing start time is created by each of the application programs after the first step;
A third step in which conversation response data for each of the conversation request data is transmitted and received from each of the application programs to the user terminal;
A fourth step in which a processing end time is created by each of the application programs after the third step;
A fifth step in which each response time data of the application program is created by each of the application programs based on the processing start time and the processing end time;
A sixth step in which the response time data is input from the application program to each of the monitoring APIs embedded in the application program;
A seventh step in which monitoring request data is input to the monitoring API from each of the monitoring systems (agents) stored in the application server;
An eighth step in which the response time data is output from each of the monitoring APIs to each of the monitoring systems (agents);
A monitoring step comprising: a ninth step in which the response time data is stored in each of the server lists stored in the data server from each of the monitoring systems (agents);
A dynamic menu generation system in which connection request data for any one of the application programs is stored in any one application server in which any one application program is stored from a certain user terminal. Steps sent and received,
Response time data stored in each of the server lists is input from the data server to the dynamic menu generation system,
Menu data that can identify the fastest application server in which the application program with the shortest response time is stored among each of the response time data is created by the dynamic menu generation system,
The menu data includes a dynamic menu step transmitted and received from the dynamic menu generating system to the certain user terminal. A method for providing an application service, comprising:
[0093]
Therefore, according to the invention of claim 43, since the response time data of the application program is monitored, a certain user can be directed to the fastest application server. Thereby, there is an advantage that the load distribution of the application program can be accurately performed.
[0094]
According to a 44th aspect of the present invention, the monitoring step includes the first step, the second step, the third step, the fourth step, the fifth step, and the eighth step before the eighth step. A sixth step and a tenth step in which a series of steps of the seventh step is repeatedly executed N (N is 1 or more) times,
As a result of the execution of the tenth step, the eighth step is
Average response time data based on the N response time data input to each of the monitoring APIs is output as each of the response time data according to the eighth step,
In the server list according to the ninth step, each of the average response time data is stored as each of response time data,
In the dynamic menu step, each of the average response time data is output from the data server as each of response time data related to the dynamic menu step,
44. The method of claim 43, wherein the menu data is created as each of the average response time data as response time data according to the dynamic menu step. .
[0095]
Therefore, according to the invention of claim 44, there are advantages of the invention of claim 43, and response time data of the application program can be accurately monitored. Thereby, there is an advantage that load distribution of the application program can be performed more accurately.
[0096]
Further, the monitoring step includes the first step, the second step, the third step, the fourth step, the fifth step, and the sixth step, An eleventh step in which a series of steps of the seventh step, the tenth step, and the eighth step is repeated M (M is 1 or more) times;
As a result of the execution of the tenth step,
If the average response time data according to the eighth step is not output M times from a certain monitoring API among the monitoring APIs to the monitoring system (agent), there is a failure in an application program in which the certain monitoring API is incorporated. A twelfth step in which failure occurrence data indicating that a failure has occurred is created by a monitoring system (agent) stored in a certain application server in which the certain application program is stored;
The failure occurrence data comprises a thirteenth step in which the failure data is stored in a server list of the server list from the certain monitoring system (agent);
In the dynamic menu step, when failure occurrence data stored in the certain server list is input from the data server to the dynamic menu generation system, the menu data is an application that created the failure occurrence data. 45. The method for providing an application service according to claim 44, wherein the fastest application server excluding the server can be specified.
[0097]
Therefore, according to the invention of claim 45, there is the advantage of the invention of claim 43 or claim 44, and the occurrence of a failure can be monitored in units of application programs. As a result, when an application program in which a failure has occurred and another application that operates normally are stored in the application server, it is possible to switch to an application program that waits only for a user who uses the application program in which a failure has occurred. it can. On the other hand, a user who uses another application that operates normally can continue to use the other application. As a result, there is an advantage that switching to the standby application program can be performed accurately.
[0098]
Further, the monitoring step in which response time data of an application program is periodically transmitted and received from each of the plurality of application servers to the data server;
Connection request data for any one of the application programs is transmitted / received from any user terminal to any one application server storing the any application program;
Each of the response time data is transmitted and received from the data server to any one of the application servers,
And the menu data which can specify the fastest application server in which the application program with the shortest response time is stored among each of the response time data is transmitted and received from the any one application server to the certain user terminal, Is an application program monitoring method including
[0099]
Therefore, according to the invention of claim 46, since the response time data of the application program is monitored, a certain user can be directed to the fastest application server. Thereby, there is an advantage that the load distribution of the application program can be accurately performed.
[0100]
DETAILED DESCRIPTION OF THE INVENTION
A method and system for providing an application service according to an embodiment of the present invention will be described below with reference to the drawings.
[0101]
(Embodiment 1)
First, a system for providing an application service according to the first embodiment of the present invention will be described with reference to FIG.
FIG. 5 is a block diagram showing a configuration example of a system that provides an application service according to the first embodiment of the present invention.
[0102]
First, referring to FIG. 5, a system for providing an application service according to the first embodiment includes a user terminal (100) that uses an application program and a plurality of application servers (300, 400,. And a data server (500) for storing various data.
Here, the user terminal (100) and each of the plurality of application servers (300, 400,...) Are configured to be mutually connectable via the computer network (200). The data server (500) and the one or more application servers (300, 400,...) Are mainly composed of a comprehensive information communication network (LAN) used in the same organization, a public line, Alternatively, they can be connected to each other via a dedicated line or the like. The user terminal (100), the plurality of application servers (300, 400,...), And the data server (500) can be connected to each other via the computer network (200). Good.
The computer network (200) is, for example, the Internet, a wide area network (WAN), or the like. Further, the computer network (200), the LAN, etc., regardless of wired or wireless, between the user terminal (100) and the application server (300, 400,...), The user terminal (100) and the data server (500) ), Between the application server (300, 400,...) And the data server (500), and between the user terminal (100), the application server (300, 400,...), And the data server (500). As long as it is for transmitting and receiving data to and from each other.
[0103]
The user terminal (100) includes a Web browser (101) that enables access to the home page via the computer network (200), display means (not shown) that can display the home page, characters, symbols, and the like Input means (not shown) such as a keyboard (button) and a mouse.
Here, the user terminal (100) is, for example, a personal computer (desktop personal computer, notebook personal computer), a mobile phone, or the like.
[0104]
Each of the plurality of application servers (300, 400,...) Includes storage means for storing resource data (not shown) such as HTML document data, an authentication system (301) for authenticating the user, A dynamic menu generation system (302) that dynamically generates a menu; an application program A (310,...) Provided for a fee via a computer network (200); and a Web server (390). .
Each of the application programs A (310) includes an authentication API (303) and a charging API (304).
Further, the web server (390) communicates with the web browser (101) of the user terminal (100) by HTTP. That is, the Web server (390) relays communication between the authentication system (301), the dynamic menu generation system (302), and the application program A (310), and the Web browser (101).
Here, the application server (300, 400,...) Is, for example, a so-called server (an office computer having a large storage capacity such as a hard disk), a personal computer, or the like.
[0105]
The data server (500) includes an authentication data holding system (501) for storing data necessary for user authentication (including a user ID, password, terminal identifier, etc.) and a list of available application programs agreed in advance for each user. And a billing system (503) for accumulating usage record data and creating a bill for each user application program.
Here, the data server (500) is, for example, a so-called server or a personal computer.
[0106]
Of the components of the system that provides the application service according to the first embodiment, the authentication system (301), the dynamic menu generation system (302), the authentication API (303), and the accounting API (304) The authentication data holding system (501), the menu data holding system (502), and the charging system (503) have the functions of the present invention, and these components are called ASP-based systems.
[0107]
Next, a system and method for preparing to provide an application service as a premise of the method and system for providing an application service according to an embodiment of the present invention will be described with reference to FIGS. To do. The system method for preparing to provide an application service includes a method for preparing an application program (steps A1 to A5) and a method for registering a user who uses the application program (steps B1 to B5). .
FIG. 1 is a block diagram showing a configuration example of a system for preparing for providing an application service. FIG. 2 is a flowchart for explaining a method for preparing an application program.
[0108]
An authentication system (301), a dynamic menu generation system (302), an authentication API (303), and a billing API (304) are stored in the application server 1 (300) in advance. . The remaining authentication data holding system (501), menu data holding system (502), and billing system (503) of the ASP base system are stored in the application server 1 (300). The server storing the ASP infrastructure system is not limited to the application server 1 (300), but may be any server that can store the ASP infrastructure system.
In addition, the developed application program is stored in the vendor terminal (700).
[0109]
[Step A1]
(How to prepare an application program)
An ASP infrastructure system (authentication system (301), dynamic menu generation system (302), authentication API (303), billing API (304)) related to the application server 1 (300) is a public line or dedicated line (220), Alternatively, the application server 1 (300) is provided via an auxiliary storage medium (230) such as a magneto-optical disk (MO: Magneto Optical disk), an optical disk (CD: Compact Disk, DVD: Digital Versatile Disk), a floppy disk (FD: Floppy Disk), or the like. ) To the vendor terminal (700).
[0110]
[Step A2]
In order to adapt the developed application program to the ASP platform system, the provided authentication API (303) and charging API (304) are incorporated into the application program developed by the vendor terminal (700).
[0111]
[Step A3]
Since the application server 2 (400) also provides application program services, the provided authentication system (301) and dynamic menu generation system (302) are connected from the vendor terminal (700) via the LAN (210) to the application server 2 ( 400) and stored. Here, the authentication system (301) and the dynamic menu generation system (302) of the ASP base system may be installed in the application server 2 (400) via the public line (220, 230). Needless to say.
[0112]
[Step A4]
An application program (310) in which an authentication API (303) and a charging API (304) are incorporated is transferred from the vendor terminal (700) to the application server 1 (300) and the application server 2 (400) via a LAN or the like (210, 220, 230). ) Installed and stored via.
[0113]
[Step A5]
Application information (function outline, detailed explanation, link to demo program, contract conditions (including price list)) of application program (310) stored in application server 1 (300) and application server 2 (400) is data It is registered and stored in the server (500).
[0114]
When a plurality of application programs (310, 320,...) Are stored in each of the plurality of application servers (300, 400,...), The application programs (310, 320,...) Are stored. Application information for each of these is registered and stored in the data server (500).
[0115]
FIG. 3 is a flowchart for explaining a user registration method using an application program.
[0116]
[Step B1]
(Registering users who use application programs)
First, the user terminal (100) connects to the data server (500).
[0117]
[Step B2]
On the other hand, the data server (500) transmits application information to the user terminal (100). The data server (500) searches for application information in which the search condition input from the user terminal (100) matches a part of the function outline included in the application information, and the application information that matches the search condition is retrieved by the user. A means for transmitting to the terminal (100) is provided.
[0118]
[Step B3]
The user terminal (100) inputs search conditions, receives application information, and displays it on display means (not shown) of the user terminal (100). Here, for example, the application information display screen shown in FIG. 4 is displayed on the display means of the user terminal (100).
Referring to FIG. 4, the displayed application information display screen is a list of application names (for example, Japanese-English translation, encyclopedia) and function outlines. Here, the user can click each button of “detail display button”, “demo display button”, and “charge display button” displayed on the display means with the mouse. When the “detail display button” is clicked, a function detail explanation screen (not shown) of the application program is displayed on the display means. When the “demo display button” is clicked, the application program demo program is executed, and an application demo screen (not shown) is displayed on the display means. In addition, when the “detail display button” is clicked, a contract condition screen (not shown) indicating contract conditions such as a fee table is displayed on the display means.
[0119]
[Step B4]
When the user decides the application program (encyclopedia) to be used, the user checks the “radio button (selection)” of the application program (● in FIG. 4) and clicks the “contract application button”.
Thereafter, a user registration screen (not shown) is displayed on the display means of the user terminal (100), and the user is required to register user information (company name, responsible person name, address, telephone number, payment method, terminal identifier, etc.) ) Is transmitted to the data server (500). Here, the terminal identifier is the IP address (IP address) or the fully qualified domain name (FQDN) of the user terminal (100). For example, the IP address is 192.168.001.001, and the FQDN is www. ○○○. co. jp.
[0120]
[Step B5]
On the other hand, the data server (500) receives necessary user information from the user terminal (100) and issues user information (user ID (user identification data), password) necessary for use. The data server (500) includes user information (user ID, password, company name, responsible person name, address, telephone number, payment method, terminal identifier, etc.) added to the user information necessary for registration plus the user information necessary for use. ) Is registered and stored.
[0121]
[Step B6]
The data server (500) sends information necessary for use (user ID, password) to the user terminal (100) for notification.
[0122]
Next, a method for providing an application service according to the embodiment of the present invention will be described with reference to FIG.
[0123]
[Step C1: Login step]
Connection request data for the application program is transmitted / received from the user terminal (100) to any one of the plurality of application servers (300, 400,...). Here, the application server 1 (300) receives the connection request data via the Web server (390) by the authentication system (301). On the other hand, the application server 1 (300) transmits login screen data from the authentication system (301) to the user terminal (100) via the Web server (390).
On the other hand, when the user terminal (100) receives the login screen data via the Web browser (101), the login screen is displayed on the display means of the user terminal (100). Next, the user inputs a login ID (user identification data) and a password, and transmits them to the application server 1 (300). On the other hand, the application server 1 (300) inputs a login ID (user identification data) and a password to the authentication system (301) via the Web server (390).
[0124]
Since packet data of login ID (user identification data) and password is transmitted / received from the user terminal (100) to the application server 1 (300) by the IP protocol, the packet data is always transmitted from the transmission source (user terminal (100 ) And the transmission destination (IP protocol of the application server 1 (300)).
Therefore, the application server 1 (300) receives the login ID (user identification data) and the password, and extracts the IP address (terminal identifier) of the user terminal (100) from the packet data to the authentication system (301). You can also enter it.
[0125]
[Step C2: Authentication step]
Next, the approval system (301) compares the input login ID (user identification data) and password with the user ID (user identification data) and password stored in advance in the authentication data holding system (501). . As a result of this comparison, when the input login ID and password match the user ID and password stored in advance, the authentication system (301) authenticates the user of the user terminal (100). At this time, the authentication system (301) creates authentication certificate data including the user ID and the time of authentication, and stores it in the authentication data holding system (501).
Here, when the authentication certificate data includes the authentication time, the authentication certificate data can have an expiration date. Further, by including the time when the authentication certificate data is authenticated together with the user ID, unique authentication certificate data that is different every time at the time of approval can be created. There is an advantage that the authentication certificate data can be prevented from being counterfeited because the authentication certificate data is managed in time by the expiration date, or the authentication certificate data is different every time at the time of approval. In addition, by creating authentication certificate data encrypted by the authentication system (301), it is possible to enhance prevention of forgery of authentication certificate data.
[0126]
When the IP address (terminal identifier) is input, the authentication system (301) can further compare the input IP address (terminal identifier) with the terminal identifier stored in advance. As a result of this comparison, when the input login ID, password, and terminal identifier exactly match the user ID, password, and terminal identifier stored in advance, the authentication system (301) It is also possible to authenticate (100) users. As a result, the authentication system (301) can correctly authenticate only a legitimate user even if the login ID and password that are temporarily input are forged.
[0127]
[Step C3]
Next, the authentication system (301) activates the dynamic menu generation system (302) and inputs authentication certificate data to the dynamic menu generation system (302).
[0128]
[Step C4]
On the other hand, the dynamic menu generation system (302) acquires from the menu data holding system (702) an application program list that the user has contracted in advance with the user ID of the input authentication certificate data as a key.
Next, the dynamic menu generation system (302) acquires the server list from the menu data holding system (702) using the application program name of the acquired application program list as a key.
Here, when there are a plurality of acquired server lists, the dynamic menu generation system (302) acquires the error status and the average response time from the plurality of server lists.
Next, the dynamic menu generation system (302) selects a server list in which the extracted error status is in service and the extracted average response time is the minimum.
Next, the dynamic menu generation system (302) acquires a program file name and a server terminal identification name related to the selected server list.
Next, the dynamic menu generation system (302) dynamically creates menu data including URI (Universal Resource Identifier) information based on the acquired program file name and server terminal identification name.
The URI is defined in the technical document rfc2396 published by IETF (http://www.ietf.org/rfc/rfc2396.txt). Further, URI is synonymous with URL (Universal Resource Locator).
[0129]
[Step C5]
Next, the dynamic menu generation system (302) transmits the menu data and the authentication certificate data to the user terminal (100) via the Web server (390). When the authentication certificate data is encrypted, only the encrypted authentication certificate data is transmitted to the user terminal (100).
On the other hand, the user terminal (100) receives the menu data and the authentication certificate data from the Web server (390) via the Web browser (101). Here, the Web browser (101) primarily holds the authentication certificate data as a cookie.
[0130]
[Step C6]
When the user selects the application program A (310) on the user terminal (100), the user terminal (100) communicates with the application program A (310) stored in the application server 1 (300) according to the URI of the menu data. Request data (message) is transmitted to the application program A (310) via the Web browser (101). At this time, the user terminal (100) transmits the authentication certificate data as a cookie.
On the other hand, the application program A (310) receives the conversation request data (message) and the authentication certificate data by the application program A (310) via the Web server (390).
[0131]
[Step C7]
The application program A (310) sets the authentication certificate data in the authentication API (303) incorporated in the application program A (310). Here, the API (Application Program Interface) is a mechanism for using an external program such as an authentication system (301) and a charging system program (503) from within the application program A (310). More specifically, the API is defined by a sequence of class name, method name, and argument.
That is, the application program A (310) inputs the authentication certificate data to the authentication system (301) via the authentication API (303). Here, the authentication API (303) sends the authentication certificate data to the authentication system (301) and confirms the validity of the authentication certificate data.
[0132]
[Step C8: Re-authentication step]
On the other hand, the authentication system (301) compares the authentication certificate data input via the authentication API (303) with the authentication certificate data authenticated in advance. If the input authentication certificate data matches the authentication certificate data stored in advance as a result of this comparison, the authentication system (301) authenticates the user of the user terminal (100) again. At this time, the authentication system (301) creates authentication certificate data including the user ID and the time of re-authentication and stores the authentication certificate data in the authentication data holding system (501). In other words, the authentication system (301) updates the authentication time of the authentication certificate and stores it in the authentication data holding system (501).
Next, the authentication system (301) outputs the re-authenticated authentication certificate data to the application program A (310) via the authentication API (303).
[0133]
[Step C9]
Next, the application program A (310) creates conversation response data (message) for the conversation request data (message).
Next, the application program A (310) transmits the created conversation response data (message) and the re-authenticated authentication certificate to the user terminal (100) via the Web server (390).
On the other hand, the user terminal (100) receives the created conversation response data (message) and the re-authenticated authentication certificate from the Web server (390) via the Web browser (101). Here, the re-authenticated authentication certificate is transmitted and received as a cookie from the Web server (390) to the Web browser (101).
Thereafter, every time a message is transmitted / received between the user terminal (100) and the application A (310), authentication certificate data is authenticated and updated. Accordingly, it is possible to further strengthen the prevention of forgery of authentication certificate data.
[0134]
[Step C10]
When the user finishes using the application program A (310), the usage record data is output to the charging system (503) via the charging API (304).
[0135]
[Step C11]
The URI included in the menu data in step C6 can specify the application program A (310) stored in the application server 1 (300). That is, in step C4, since the average response time of the application program A (310) stored in the application server 1 (300) is minimum, the URI is stored in the application program A (300) stored in the application server 1 (300). 310) could be specified.
However, when the average response time of the application program A (310) stored in the application server 2 (400) is minimum, the URI related to the menu data created by the dynamic menu generation system (302) is the application server 2 ( 400), the application program A (310) stored can be specified.
In this case, when the user selects the application program A (310) on the user terminal (100), the user terminal (100) is stored in the application server 2 (400) according to the URI of the menu data. ) Is sent to the application program A (310) via the Web browser (101). At this time, the user terminal (100) transmits the authentication certificate data as a cookie.
On the other hand, the application program A (310) stored in the application server 2 (400) sends the conversation request data (message) and the authentication certificate data to the application program A (310) via the Web server (390). Receive.
[0136]
[Step C12]
The application program A (310) inputs the authentication certificate data to the authentication system (301) via the authentication API (303).
[0137]
[Step C13]
On the other hand, the authentication system (301) compares the authentication certificate data input via the authentication API (303) with the authentication certificate data authenticated in advance. If the input authentication certificate data matches the authentication certificate data stored in advance as a result of this comparison, the authentication system (301) authenticates the user of the user terminal (100) again. At this time, the authentication system (301) creates authentication certificate data including the user ID and the time of re-authentication and stores the authentication certificate data in the authentication data holding system (501).
Next, the authentication system (301) outputs the re-authenticated authentication certificate data to the application program A (310) via the authentication API (303).
[0138]
As described above, the application server 1 (300) and the application server 2 (400) receive the authentication certificate data by the mechanism of the cookie and store it in the authentication data holding system (501) via the authentication system (301). The validity of the received authentication certificate data can be confirmed in comparison with the authentication certificate data. That is, in addition to the application program A (310) stored in the application server 1 (300) to which the user first logged in, the application stored in the application server 2 (400) different from the application server 1 (300) that logged in first. Program A (310) can also identify the same user. In other words, user management uniformity can be realized among a plurality of application servers.
[0139]
[Step C14]
When the user finishes using the application program A (310), the usage record data is output to the charging system (503) via the charging API (304).
When the application program has a unique usage record data output function, the application program has a function of converting to a unified usage record data format and transmitting it to the billing system (503) by file transfer.
[0140]
Next, a method for providing an application service according to an embodiment of the present invention will be briefly described with reference to FIGS.
FIG. 6 is a flowchart when the user uses an application program stored in the application server 1 (300).
[Step D1]
The user terminal (100) is connected to the application server 1 (300).
[Step D2]
The application server 1 (300) transmits a login screen to the user terminal (100).
[Step D3]
The user terminal (100) transmits a user ID and a password to the application server 1 (300).
[Step D4]
The application server 1 (300) checks the user ID, the password, and the terminal identifier of the user terminal (100) as necessary.
[Step D5]
When the user terminal (100) selects an application program, the user terminal (100) connects to the application server 1 (300) according to the URI.
[Step D6]
The application server 1 (300) starts the application program selected according to the URI.
[Step D7]
The user uses the application program on the user terminal (100) and ends.
[Step D8]
When the user terminates the application program on the application server 1 (300), usage result data is accumulated.
[0141]
FIG. 7 is a flowchart when the user uses an application program stored in the application server 2 (400).
[Steps E1 to E4]
The same as steps D1 to D4.
[Step E5]
When the user terminal (100) selects an application program, the user terminal (100) connects to the application server 2 (400) according to the URI.
[Step E6]
The application server 2 (400) activates the application program selected according to the URI.
[Step E7]
The user uses the application program on the user terminal (100) and ends.
[Step E8]
When the user terminates the application program on the application server 2 (400), usage result data is accumulated.
[0142]
FIG. 8 is a flowchart of charging.
[Step F1]
The data server (500) totals the usage record data that is periodically accumulated for each application for each user.
[Step F2]
The data server (500) executes billing processing, issues an invoice, and sends it to the user by e-mail, mail or the like.
[Step F3]
The user pays the usage fee to the data server (500) by electronic money, a credit card, an account transfer or the like.
[Step F4]
The data server (500) totals application usage fees for each vendor.
[Step F5]
The data server (500) pays the application usage fee to the vendor terminal (700) by electronic money, account transfer or the like.
[0143]
Next, a method for incorporating the authentication API (303) and the charging API (304) according to [Step A2] into the application program will be described with reference to FIG. 9 and FIG.
FIG. 9 is a flowchart showing a method of incorporating the authentication API (303) into the application program. A method of incorporating the authentication API (303) into the application program will be described with reference to this flowchart.
First, a flow for processing an input message of a general application program before installation will be described.
[0144]
[Step G1]
The application program receives a message (conversation request data) from the user terminal (100).
[Step G2]
The application program compares whether the received message ID is equal to the process ID. If the received message ID is equal to the process 1, the corresponding process 1 is executed (to step G5). If the received message ID is not equal to process 1, it is compared whether it is equal to the next process ID (to step G3).
[Step G3]
The application program compares whether the received message ID is equal to process 2. If the received message ID is equal to the process 2, the corresponding process 2 is executed (to step G6). If the received message ID is not equal to process 2, it is compared with the next process ID (to step G4).
[Step G4]
The application program compares whether the received message ID is equal to the process n. If the received message ID is equal to the process n, the corresponding process n is executed (to step G7). If the received message ID is not equal to the process n, an error process is performed (to step G8).
[Step G5]
The application program processes the received message 1 and sends the result to the user terminal (100) in the HTML document format.
[Step G6]
The application program processes the received message 2 and sends the result to the user terminal (100) in the HTML document format.
[Step G7]
The application program processes the received message and sends the result to the user terminal (100) in the HTML document format.
[Step G8]
If the received message ID does not match the last process ID, the application program transmits an error message to the user terminal (100).
[0145]
Next, a method for incorporating the authentication API (303) into the application program will be described.
The following steps H1 to H6 are inserted between step G1 and step G2.
In step C5, the dynamic menu generation system (302) transmits the encrypted authentication certificate data to the user terminal (100). In step C6, the encrypted authentication certificate data is transmitted to the user terminal (100). ) To the application program.
[Step H1]
The application program receives the encrypted authentication certificate data from the user terminal (100) as a cookie.
[Step H2]
The application program sets the encrypted authentication certificate data as an argument of the authentication API (303).
[Step H3]
The application program calls the authentication API (303).
[Step H4]
The application program checks the value returned from the authentication API (303). If it is an invalid code, go to Step H5.
[Step H5]
The application program displays an error message and a login screen.
[Step H6]
The application program transmits the new encrypted authentication certificate data returned from the authentication API (303) to the user terminal (100) as a cookie.
A program for executing steps H1 to H6 is referred to as an authentication function program.
[0146]
FIG. 10 is a flowchart showing a method of incorporating the charging API (304) into the application program. A method of incorporating the authentication API (303) into the application program will be described with reference to this flowchart.
Step I2 is the process of the original application, and is the process shown by steps H5 to H7 in FIG. Step H1 is inserted immediately before step I2 (steps H5 to H7), and steps I3 to I5 are inserted after step I2.
[Step I1]
The application program acquires the machine time as the processing start time immediately before step I2.
[Step I2]
The application program processes and measures the usage amount to be charged.
[Step I3]
The application program acquires the machine time as the processing end time immediately after step I2.
[Step I4]
The application program creates usage record data (including user identification name, process start time, process time (= process end time-process start time), usage amount to be charged, etc. collected in step I2). (Refer to utilization result data (503-2) shown in FIG. 15.)
[Step I5]
The application program calls the billing API (304).
A program for executing steps I1 to I5 is referred to as a charging function program.
[0147]
(Embodiment 2)
Next, a method and system for providing an application service according to the second embodiment of the present invention will be described with reference to FIG.
FIG. 12 is a block diagram showing a configuration example of a system that provides an application service according to the second embodiment of the present invention.
Although the system according to the first embodiment of the present invention shown in FIG. 5 is composed of a plurality of application servers (300, 400,...), The system according to the second embodiment shown in FIG. (300).
[0148]
Next, a method for providing an application service according to an embodiment of the present invention will be described with reference to FIGS. 12 and 13 to 15.
Incidentally, this corresponds to Step C1 to Step C14.
[0149]
[Step L1]
The user connects to the application server 1 (300) established on the computer network (200) using the Web browser (101) of the user terminal (100).
[0150]
[Step L2]
The authentication system (301) sends login screen data to the user terminal (100) via the Web server (390).
[0151]
[Step L3]
The user inputs a login ID (user identification data) and a password from the login screen displayed on the display means of the user terminal (100).
[0152]
[Step L4]
The authentication system (301) receives the login ID and password received from the user terminal (100) and the terminal identifier of the user terminal (100) from the Web server (390). All or a combination of all of the user identification name, password, and terminal identifier, and authentication data (user ID, password, terminal received) from the authentication data holding system (501) using the login ID as a key The identifier is included (see FIG. 13. Authentication data 501-1). If they match, it is judged as normal, and if they do not match, it is judged as above.
[0153]
[Step L5]
If the authentication result of the authentication system (301) is normal, the authentication time (year / month / day / hour / minute / second) is acquired from the machine time. Next, the authentication system (301) creates authentication certificate data including the user ID and the time when authentication was performed. At the same time, the authentication system (301) encrypts the authentication certificate data and creates encrypted authentication certificate data.
Next, the authentication system (301) sends the authentication certificate data before encryption and the encrypted authentication certificate to the user authentication data holding system (501) using the encrypted authentication certificate as a key (FIG. 13. Authentication certificate). Document data 501-2). Then, the authentication system (301) activates the dynamic menu generation system (302) and delivers the user ID and the encrypted authentication certificate. Here, a one-way encryption algorithm that cannot be decrypted by a third party is used to encrypt the authentication certificate. For example, the digest function MD5 (defined in RFC1321) is used. Since the output result of MD5 is binary, the data encoded by BASE64 is used as encrypted authentication certificate data in order to make the network transparent.
[0154]
[Step L6]
The dynamic menu generation system (302) uses a user ID as a key to list a list of application programs that can be used by the user from the menu data holding system (502) (see FIG. 14. Application program list 502-1) and each application program. Is received (see FIG. 14, server list 502-2). The application program list (502-1) includes a user ID and an application program name. The server list (502-2) includes an application program name, a server terminal identification name, and a program file name.
[0155]
[Step L7]
The dynamic menu generation system (302) generates menu data by combining the authentication certificate data that has been converted into a cookie and the list of application programs that can be used by the user into a URI format. The dynamic menu generation system (302) sends the generated menu data to the user terminal (100) via the Web server (390).
[0156]
[Step L8]
When the user selects application A (310) from the menu screen, the web browser (101) connects to the selected application using the URI of application A (310). At this time, the user terminal (100) sends out the encrypted authentication certificate data received in step L7 as a cookie.
[0157]
[Step L9]
The application A (310) receives the authentication certificate data encrypted as a cookie via the Web server (390). The application A (310) stores the encrypted authentication certificate data as an argument and calls the authentication API (303). The authentication API (303) sends the encrypted authentication certificate data to the authentication system (310), and requests validity confirmation.
[0158]
[Step L10]
The authentication system (301) extracts the authentication certificate data from the authentication data holding system (501) using the encrypted authentication certificate data as a key. If the authentication time included in the authentication certificate data is older than the no-communication timeout time determined in advance with the current machine time as a base point, it is determined that the encrypted authentication certificate is invalid. The authentication system (301) determines that the re-encrypted authentication certificate data extracted from the data holding system (501) is valid if it matches the received encrypted authentication certificate data, and is invalid if it does not match To do. If the authentication result of the authentication system (301) is valid, the authentication system (301) updates the authentication certificate data by changing the authentication time of the authentication certificate to the current machine time. Next, the authentication system (301) encrypts new authentication certificate data. The authentication system (301) registers new authentication certificate data in the authentication data holding system (401) using the encrypted authentication certificate data as a key, and deletes the old authentication certificate data.
[0159]
[Step L11]
The authentication system (301) returns an authentication result to the application A (310) via the authentication API (303). If the authentication result of the authentication system (301) is valid, a user ID and new encrypted authentication certificate data are returned, and if invalid, a code meaning invalid is returned.
[0160]
[Step L12]
If the authentication result of the authentication system (301) is normal, the application A (310) starts an application level conversation (message) with the user terminal (100). At this time, whenever the application A (310) receives data from the user terminal (100) via the Web server (390), the encrypted authentication certificate data is always sent as a cookie. -Validity is confirmed by the procedure of Step L11. When transmitting HTML document data to the user terminal (100) via the Web server (390), the application A (310) transmits the new encrypted authentication certificate data returned in step L11 as a cookie.
[0161]
[Step L13]
In the middle of a series of application level conversations (messages: conversation request data, conversation return data) or at the end of application A (310), application A (310) uses user identification name and time as usage record data (503-2). The usage function, the usage amount of the application to be billed determined by each application program, etc. are sent to the billing system (503) via the billing API (304). The billing system (503) accumulates the received usage record data, periodically totals them, and stores each application usage unit price for each application stored in the authentication data holding system (501) (FIG. 15. Unit price master). 503-1), the application usage amount for each user application is integrated, and the amount of the usage fee is calculated to create a bill.
[0162]
(Embodiment 3)
Next, a method and system for providing an application service according to the third embodiment of the present invention will be described with reference to FIG.
FIG. 16 is a block diagram showing a configuration example of a system for providing an application service according to the third embodiment of the present invention.
The system of Embodiment 3 shown in FIG. 16 adds a monitoring system (agent (306), server (704)) to the system of Embodiment 1 of the present invention shown in FIG. 310, 410) incorporate a monitoring API (305). The authentication system (301), authentication data holding system (701), billing system (703), authentication API (303), and billing billing API (304) are not shown.
[0163]
Each of the plurality of application servers (300, 400,...) Is a monitoring system (agent) that periodically inquires the operation status to the monitoring API (305) incorporated in each of the application programs (310, 410,...). ) (303).
Also, the monitoring API (305) collects data on the load status and failure status of the application program.
The data server (500) further includes a monitoring system (server) (704) that accumulates operation status data of application programs collected by the monitoring system (agent) (303).
[0164]
First, a method for incorporating the monitoring API (305) into the application program will be described with reference to FIG.
FIG. 11 is a flowchart showing a method of incorporating the monitoring API (305) into the application program. A method for incorporating the monitoring API (305) into the application program will be described with reference to this flowchart.
[0165]
First, the processing flow of a general application program before installation will be described.
[Step J1]
The application program inputs an event such as data reception from the terminal.
[Step J2]
If the input event is the end event of the application program, the application program goes to step J4.
[Step J3]
The application program executes a business process corresponding to the input event. When finished, wait for the next event input.
[Step J4]
When the application program inputs a termination event, it performs termination processing.
[0166]
Next, a method for incorporating the monitoring API (305) into the application program will be described.
[Step K1]
The application program generates an instance of the monitoring API (305) as an initial process before step J1.
[Step K2]
The application program acquires the machine time immediately before step J3 and temporarily saves it as the processing start time.
[Step K3]
The application program acquires the machine time immediately after step J3, calculates the processing time by subtracting the processing start time of step K2, and passes the processing time to the monitoring API (305) as a response time.
If an error has occurred in the business process (step J3), an error code and an error message are passed to the monitoring API (305).
[0167]
First, the monitoring API (305) holds the passed response time in the response time data (305-1) for a specified n times (for example, n = 10: n is a natural number of 1 or more). That is, the monitoring API (305) stores the latest 10 response times (see response time data (305-1) in FIG. 19).
The monitoring API (305) stores, in the response time data (305-1), the response time passed every time the response time is passed as the latest response time 1. At the same time, the monitoring API (305) stores the response time of response time 1 as response time 2 in the response time data (305-1) and responds with the response time of response time 2 as response time 3. The response time stored in the time data (305-1),..., The response time that was the response time 9 was stored in the response time data (305-1) as the response time 10 (n), and the response that was the response time 10 The time is discarded from the response time data (305-1).
The monitoring API (305) calculates the average response time of response time 1, response time 2... Response time 10 (n) stored in the response time data (305-1) every time the response time is passed. Then, the average response time (current) is stored in the response time data (305-1).
Further, the monitoring API (305) stores the error code and the error message in the response time data (305-1) each time it is passed. The monitoring API (305) stores the name of the application program in which the monitoring API (305) is incorporated in the response time data (305-1).
In addition, when the monitoring API (305) receives monitoring request data from the monitoring system (agent) (305), the monitoring API (305) stores the average response time (current) stored in the response time data (305-1), an error code, and An error message is output to the monitoring system (agent) (305).
[0168]
[Step K4]
The application program deletes the instance of the monitoring API (305) as the termination process after step J4.
A program for executing steps K1 to K4 is referred to as a monitoring function program.
[0169]
Next, a method for providing an application service according to the embodiment of the present invention will be described with reference to FIGS.
[0170]
[Step M1]
The monitoring system (agent) (305) of the application server 1 (300) is activated, and the server list (502-2) (related to the application server 1 (300) from the menu data holding system (502) of the database server (500). 18) and an application performance list (306-1) (see FIG. 19) is generated as an internal table. That is, the monitoring system (agent) (305) extracts the server list (502-2) using the server terminal identification name of the application server 1 (300) as a key, and the average response time of the extracted server list (502-2) Is stored in the average response time (current) of the application performance list (306-1).
As shown in FIG. 18, the server list (502-2) includes, for example, an application program name, a server terminal identification name, a program name, an error status, and an average response time. As shown in FIG. 19, the application performance list (306-1) includes, for example, an application program name, an error code, an error message, an average response time (current), an average response time (previous), It consists of a response time 1 and a response time n.
[0171]
Next, the monitoring system (agent) (305) inquires of the monitoring status to the monitoring API (305) incorporated in each of the application programs stored in the application server 1 (300) periodically (for example, every 10 seconds). I do. That is, the monitoring system (agent) (305) periodically inputs monitoring request data to the monitoring API (305). On the other hand, the monitoring API (305) outputs the average response time (current) of the application program stored in the response time data (305-1) to the monitoring system (agent) (305).
On the other hand, the monitoring system (agent) (305) stores the average response time (current) of the application program in the application performance list (306-1). At the same time, the monitoring system (agent) (305) stores the average response time (previous) as the average response time (previous), and stores the average response time (previous) as the average response time (current). Discard.
[0172]
[Step M2]
Incidentally, when an error occurs in the application program, the monitoring API (305) passes an error code and an error message from the application program. In this case, since the monitoring API (305) outputs the average response time (current), the error code, and the error message to the monitoring system (agent) (305), the monitoring system (agent) (305) outputs the application performance data (504). -1) is created and stored in the data server (500) (see FIG. 20).
Further, when a serious error occurs in the application program, the application does not operate, and the monitoring API (305) also does not operate. Accordingly, even if the monitoring system (agent) (305) inputs monitoring request data to the monitoring API (305), the monitoring API (305) cannot output anything. Therefore, when the monitoring system (agent) (305) does not respond from the monitoring API continuously for a predetermined number of times (for example, four times), the monitoring system (agent) (305) does not respond to the monitoring API (305). ) It is determined that a failure that cannot be serviced has occurred in the application program.
In this case, the monitoring system (agent) (305) updates the time, error code, and error message of the application performance data (504-1) stored in the data server. At the same time, the monitoring system (agent) (305) stores the error status of the server list (502-2) of the menu data holding system (502) as service suspension.
[0173]
[Step M3]
Further, when the processing capacity of the application program is reduced or when the processing capacity of the application program is improved, the monitoring API (305) obtains a long average response time (current) or a short average response time (current) from the application program. Passed. Therefore, in order to reflect the status of the processing capacity of the application program, the monitoring system (agent) (305) compares the average response time (current) and average response time (previous) of the application performance list (306-1) each time. When the average response time (current) fluctuates more than a predetermined value more than the average response time (previous), the monitoring system (agent) (305) displays the server list (502) of the menu data holding system (502). -2) is stored as the average response time (current).
[0174]
[Step M4]
On the other hand, connection request data for the application program is transmitted / received from the user terminal (100) to any one of the plurality of application servers (300, 400,...), And the first embodiment (first embodiment) Steps C1 to C3) are executed.
[0175]
[Step M5]
The dynamic menu generation system (302) acquires the server list (502-2) from the menu data holding system (702). Next, the dynamic menu generation system (302) acquires an error status and an average response time from a plurality of server lists.
Next, the dynamic menu generation system (302) selects a server list in which the extracted error status is in service and the extracted average response time is the minimum.
Next, the dynamic menu generation system (302) acquires a program file name and a server terminal identification name related to the selected server list.
Next, the dynamic menu generation system (302) dynamically creates menu data including URI (Universal Resource Identifier) information based on the acquired program file name and server terminal identification name.
Here, as an example, the menu data is as shown in FIG. The URI (http: // application server 2 / application A.asp) is created based on the program file name (application A.asp) and the server terminal identification name (application server 2).
[0176]
[Step M6]
The dynamic menu generation system (301) sends out the HTML document file for the menu screen as shown in FIG. 17 to the user terminal from the creation of the URI list created in step M5.
[0177]
[Step M7]
When the user selects the application program A from the menu screen using the Web browser (101) of the user terminal (100), the user connects to the Web server (390) of the application server 2 (400) indicated by the selected URI.
[0178]
[Step M8]
On the other hand, the application program A (310) stored in the application server 2 (400) is started from the Web server (390) of the application server 2 (400) according to the URI connected by the user. Thereafter, the user terminal (100) has a conversation with the application program A (310) of the application server 2 (400).
[0179]
[Step M9]
Further, when the user selects the application program B from the menu screen in step M7, the user connects to the Web server (390) of the application server 1 (300) indicated by the selected URL.
[0180]
[Step M10]
When step M9 is executed instead of step M7, the application program B (320) on the application server 1 (300) is activated from the Web server (390) of the application server 1 (300) according to the URI connected by the user. Is done. Thereafter, the user terminal (100) has a conversation with the application program B (320) of the application server 1 (300).
[0181]
【The invention's effect】
According to the method and system for providing an application service of the present invention, each of a plurality of application servers compares the received authentication certificate data with the authentication certificate data stored in advance in the data server, and receives the authentication certificate data. The validity of the authentication certificate data can be confirmed. That is, each of the plurality of application servers can identify the same user. In other words, user management uniformity can be realized among a plurality of application servers. Thereby, there is an effect that the application program can be distributed to a plurality of application servers to prevent a decrease in the processing speed of the application program.
[0182]
In addition, since the usage record data is transmitted from each of the application servers to the data server, even if the usage fee of the contract is not linear with the user usage time (actual data), the usage record data is stored on the data server. It is possible to collect and perform billing processing to calculate the amount of usage fee. That is, there is an effect that it is possible to realize uniformity of billing management among a plurality of application servers.
Further, since the response time data of the application program is monitored, there is an effect that it is possible to surely prevent a decrease in the processing speed of the application program.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration example of a system that prepares to provide an application service according to a first embodiment;
FIG. 2 is a flowchart for explaining a method of preparing an application program according to the first embodiment.
FIG. 3 is a flowchart for explaining a user registration method using the application program according to the first embodiment;
FIG. 4 is an application information display screen according to the first embodiment.
FIG. 5 is a block diagram illustrating a configuration example of a system that provides an application service according to the first embodiment;
FIG. 6 is a flowchart when the application program of the application server 1 according to the first embodiment is used.
FIG. 7 is a flowchart when the application program of the application server 2 according to the first embodiment is used.
FIG. 8 is a flowchart of charging according to the first embodiment.
FIG. 9 is a flowchart illustrating a method for incorporating the authentication API according to the first embodiment into an application program.
FIG. 10 is a flowchart showing a method for incorporating the charging API according to the first embodiment into an application program;
FIG. 11 is a flowchart illustrating a method for incorporating the monitoring API according to the third embodiment into an application program.
FIG. 12 is a block diagram illustrating a configuration example of a system that provides application services according to the second embodiment;
FIG. 13 is an example of data held by the authentication data holding system according to the second embodiment.
14 is a data example 1 held by the menu data holding system according to the second embodiment. FIG.
FIG. 15 is an example of data held by the charging system according to the second embodiment.
FIG. 16 is a block diagram illustrating a configuration example of a system that provides application services according to the third embodiment;
FIG. 17 is a source example of a menu screen according to the third embodiment.
FIG. 18 is a second example of data held by the menu data holding system according to the third embodiment.
FIG. 19 is an example of data managed by the monitoring API and monitoring system (agent) according to the third embodiment.
FIG. 20 is an example of data managed by the monitoring system (server) according to the third embodiment.
[Explanation of symbols]
100 user terminal
101 Web browser
200 computer network
210 LAN
220 Public or private line
230 Auxiliary storage media
300, 400 Application server
301 Authentication system
302 Dynamic menu generation system
303 Authentication API
304 Billing API
305 Monitoring API
305-1 Response time data
306 Monitoring system (agent)
310, 320 Application program
390 Web server
500 data server
501 Authentication data retention system
501-1 Authentication data
501-2 Authentication certificate data
502 Menu data retention system
502-1 Application Program List
502-2 server list
503 billing system
503-1 Unit price master
503-2 Usage results data
504 Monitoring system (server)
504-1 Application performance data
700 Vendor terminal

Claims (6)

複数のアプリケーションサーバに格納されるアプリケーションプログラムのそれぞれの応答時間データを、前記複数のアプリケーションサーバのそれぞれからデータサーバに定期的に送信するステップと、
前記アプリケーションプログラムに対する接続要求データとユーザ識別データとを、ユーザ端末から前記複数のアプリケーションサーバのうち何れか一のアプリケーションサーバに送信するステップと、
前記ユーザ識別データと前記データサーバに予め格納されるユーザ識別データとを前記何れか一のアプリケーションサーバにおいて比較し一致する場合に、予め認証された認証証明書データを前記データサーバに格納し、前記応答時間データのそれぞれを前記データサーバから前記何れか一のアプリケーションサーバに送信して、前記応答時間データのそれぞれのうち最も応答時間が短いアプリケーションプログラムが格納される最速アプリケーションサーバを指定するメニューデータを作成し、且つ前記予め認証された認証証明書データと前記メニューデータとを、前記何れか一のアプリケーションサーバから前記ユーザ端末に送信するステップと、
前記メニューデータに基づいて前記ユーザ端末から前記最速アプリケーションサーバに接続するとともに、前記最速アプリケーションサーバに格納されるアプリケーションプログラムのそれぞれのうち一のアプリケーションプログラムに対する会話要求データと予め認証された認証証明書データとを、前記ユーザ端末から前記一のアプリケーションプログラムが格納される前記最速アプリケーションサーバに送信する第1のステップと、
前記予め認証された認証証明書データとデータサーバに予め格納される認証証明書データとを前記最速アプリケーションサーバにおいて比較し一致する場合に、前記一のアプリケーションプログラムによって前記会話要求データに対する会話返答データと利用実績データとを作成し、且つ前記最速アプリケーションサーバが再度認証した認証証明書データと前記会話返答データとを、前記最速アプリケーションサーバから前記ユーザ端末に送信する第2のステップと、
前記利用実績データを、前記一のアプリケーションプログラムに組み込んだ課金APIから前記データサーバに送信する第3のステップと、
を含むことを特徴とするアプリケーション・サービスを提供する方法。
Periodically sending response time data of application programs stored in a plurality of application servers from each of the plurality of application servers to the data server;
Transmitting connection request data and user identification data for the application program from a user terminal to any one of the plurality of application servers;
When the user identification data and the user identification data stored in advance in the data server are compared and matched in any one of the application servers, the authentication certificate data authenticated in advance is stored in the data server, Each of the response time data is transmitted from the data server to any one of the application servers, and menu data for designating a fastest application server in which an application program having the shortest response time is stored among the response time data. Creating and transmitting the pre-authenticated authentication certificate data and the menu data from the any one application server to the user terminal;
Based on the menu data, the user terminal is connected to the fastest application server, and the conversation request data for one application program among the application programs stored in the fastest application server and the authentication certificate data authenticated in advance. preparative, a first step of transmitting from the user terminal to the fastest application server the one application program are stored,
When the authentication certificate data pre-authenticated and the authentication certificate data stored in advance in the data server are compared and matched in the fastest application server, conversation response data for the conversation request data by the one application program create a use record data, and the fastest application server has authenticated again with the authentication certificate data said the conversation reply data, a second step of transmitting from the fastest application server to the user terminal,
A third step of transmitting the usage record data to the data server from a billing API embedded in the one application program;
A method for providing an application service comprising:
前記第3のステップ後に前記複数のアプリケーションサーバに格納されるアプリケーションプログラムのそれぞれのうち他のアプリケーションプログラムに対する会話要求データと前記再度認証された認証証明書データとを、前記ユーザ端末から前記他のアプリケーションプログラムが格納される他のアプリケーションサーバに送信する第4のステップと、
前記再度認証された認証証明書データと前記予め格納された認証証明書データとを前記他のアプリケーションサーバにおいて比較し一致する場合に、前記会話要求データに対する会話返答データと利用実績データとを、前記他のアプリケーションプログラムによって作成し、且つ前記会話返答データと前記他のアプリケーションサーバによって再度認証された認証証明書データとを、前記他のアプリケーションサーバから前記ユーザ端末に送信する第5のステップと、
前記利用実績データを、前記他のアプリケーションプログラムに組み込んだ課金APIから前記データサーバに送信する第6のステップと、
を含むことを特徴とする請求項1に記載のアプリケーション・サービスを提供する方法。
Conversation request data for the other application programs and the re-authentication authentication certificate data among the application programs stored in the plurality of application servers after the third step are sent from the user terminal to the other application. A fourth step of sending to another application server where the program is stored;
When the authentication certificate data re-authenticated and the authentication certificate data stored in advance are compared and matched in the other application server, the conversation response data and the usage record data for the conversation request data are A fifth step of transmitting the conversation response data and the authentication certificate data re-authenticated by the other application server from the other application server to the user terminal, created by another application program;
A sixth step of transmitting the usage record data to the data server from a billing API embedded in the other application program;
The method for providing an application service according to claim 1, comprising:
前記第3のステップ又は前記第6のステップ後に、前記第4のステップ、前記第5のステップ及び前記第6のステップを1回以上繰り返して実行する第7のステップを含むことを特徴とする請求項1又は請求項2に記載のアプリケーション・サービスを提供する方法。7. A seventh step of repeatedly executing the fourth step, the fifth step, and the sixth step one or more times after the third step or the sixth step. A method for providing an application service according to claim 1. 前記一のアプリケーションプログラムに組み込んだ課金API及び/又は前記他のアプリケーションプログラムに組み込んだ課金APIから受信した利用実績データに基づく利用代金の額データを、前記データサーバにおいて作成するステップを含むことを特徴とする請求項1から請求項3の何れか一に記載のアプリケーション・サービスを提供する方法。The method includes the step of creating, in the data server, usage amount data based on usage history data received from the accounting API incorporated in the one application program and / or the accounting API incorporated in the other application program. A method for providing an application service according to any one of claims 1 to 3. 前記第2のステップ及び/又は前記第5のステップは、
前記認証証明書データと前記予め格納された認証証明書データとを比較し一致する場合に、前記予め格納される認証証明書データを、新たな認証証明書データに前記最速アプリケーションサーバ及び/又は前記他のアプリケーションサーバにおいて変更し、且つ前記新たな認証証明書データを、前記データサーバに格納するステップを含み、
前記再度認証された認証証明書データを、前記新たな認証証明書データとして送信することを特徴とする請求項1から請求項の何れか一に記載のアプリケーション・サービスを提供する方法。
The second step and / or the fifth step include
When the authentication certificate data and the pre-stored authentication certificate data are compared and matched, the pre-stored authentication certificate data is replaced with the fastest application server and / or the new authentication certificate data. Changing in another application server and storing the new authentication certificate data in the data server,
The method for providing an application service according to any one of claims 1 to 4 , wherein the re-authenticated authentication certificate data is transmitted as the new authentication certificate data.
前記第1のステップに係る認証証明書データが、予め暗号化された暗号化済認証証明書データであり、
前記第2のステップ及び/又は前記第5のステップは、前記予め認証された認証証明書データを、前記最速アプリケーションサーバ及び/又は前記他のアプリケーションサーバにおいて暗号化し暗号化済認証証明書データを生成し、且つ前記暗号化済認証証明書データを前記データサーバに格納するステップを含み、
前記再度認証された認証証明書データとして、前記暗号化済認証証明書データを送信することを特徴とする請求項1から請求項の何れか一に記載のアプリケーション・サービスを提供する方法。
The authentication certificate data according to the first step is encrypted authentication certificate data encrypted in advance;
In the second step and / or the fifth step, the authentication certificate data authenticated in advance is encrypted in the fastest application server and / or the other application server to generate encrypted authentication certificate data. And storing the encrypted authentication certificate data in the data server,
As the authentication certificate data to which the authenticated again, a method for providing application services as claimed in any one of claim 5, wherein the transmitting the encrypted been authenticated certificate data.
JP2000131795A 2000-04-28 2000-04-28 How to provide application services Expired - Lifetime JP3626662B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000131795A JP3626662B2 (en) 2000-04-28 2000-04-28 How to provide application services

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000131795A JP3626662B2 (en) 2000-04-28 2000-04-28 How to provide application services

Publications (2)

Publication Number Publication Date
JP2001312403A JP2001312403A (en) 2001-11-09
JP3626662B2 true JP3626662B2 (en) 2005-03-09

Family

ID=18640623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000131795A Expired - Lifetime JP3626662B2 (en) 2000-04-28 2000-04-28 How to provide application services

Country Status (1)

Country Link
JP (1) JP3626662B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108840A (en) * 2000-09-28 2002-04-12 Toshiba Corp Distributed order-receiving system, receiving server, contents server, method for distributed receiving order and computer program product
JP4592369B2 (en) * 2004-09-10 2010-12-01 株式会社サスライト Service providing server
JP4764112B2 (en) * 2004-09-17 2011-08-31 株式会社リコー Electronic equipment system
JP4944411B2 (en) * 2005-08-31 2012-05-30 株式会社野村総合研究所 Menu generation system, menu generation method, and menu generation program
JP2007148518A (en) * 2005-11-24 2007-06-14 Neo Techno:Kk Usb device
JP5677899B2 (en) * 2011-06-16 2015-02-25 株式会社三菱東京Ufj銀行 Information processing apparatus and information processing method

Also Published As

Publication number Publication date
JP2001312403A (en) 2001-11-09

Similar Documents

Publication Publication Date Title
JP3902136B2 (en) Service provider system, resource counter service provider system, SOAP web service system, method and program including counting / billing mechanism for web services based on SOAP communication protocol
US7530099B2 (en) Method and system for a single-sign-on mechanism within application service provider (ASP) aggregation
EP1794927B1 (en) Apparatus and method for integrated billing management by real-time session management in wire/wireless integrated service network
US6570870B1 (en) Method and system for making a charged telephone call during an Internet browsing session
Patel et al. Ticket based service access for the mobile user
US7299299B2 (en) Shared registration system for registering domain names
US20040186912A1 (en) Method and system for transparently supporting digital signatures associated with web transactions
JP3976472B2 (en) User authentication and billing method and recording medium therefor
US20020194140A1 (en) Metered access to content
US20030069967A1 (en) Shared authorization data authentication method for transaction delegation in service-based computing environments
JP3966711B2 (en) Proxy response method
WO2017088441A1 (en) Identity authentication method, server, and storage medium
JP2002032216A (en) Hosting device for application
CN103023856A (en) Single sign-on method, single sign-on system, information processing method and information processing system
JP3626662B2 (en) How to provide application services
KR100420668B1 (en) System and method for imposing a differential rate according to utilization a wireless network
US20030005049A1 (en) Communication system,relay device, service providing device,relaying method, service providing method and program product
JP3576922B2 (en) Application program monitoring method and application service providing method
Perkins Mobile IP and security issue: an overview
CN1885768B (en) Worldwide web authentication method
JP4979723B2 (en) COMMUNICATION METHOD, COMMUNICATION SYSTEM, SERVICE PROVIDING BASE ACCESS METHOD
JP4065436B2 (en) Method and system for building and communicating data about network access and service transactions in a communication network
JP2001265938A (en) Method and system for charging contents and recording medium with contents charging program recorded thereon
JP3964908B2 (en) Wireless LAN access service system and charging method in wireless LAN access service system
JP4816958B2 (en) Information processing system and communication cost calculation method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040531

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040913

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20040913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040913

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20041026

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: 20041124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041203

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3626662

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20071210

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081210

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20091210

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20091210

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101210

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20101210

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111210

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20111210

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121210

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20121210

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 9

EXPY Cancellation because of completion of term