JP3730563B2 - セッション管理装置およびセッション管理方法およびプログラムおよび記録媒体 - Google Patents

セッション管理装置およびセッション管理方法およびプログラムおよび記録媒体 Download PDF

Info

Publication number
JP3730563B2
JP3730563B2 JP2001338090A JP2001338090A JP3730563B2 JP 3730563 B2 JP3730563 B2 JP 3730563B2 JP 2001338090 A JP2001338090 A JP 2001338090A JP 2001338090 A JP2001338090 A JP 2001338090A JP 3730563 B2 JP3730563 B2 JP 3730563B2
Authority
JP
Japan
Prior art keywords
record
session
session management
state information
service
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 - Fee Related
Application number
JP2001338090A
Other languages
English (en)
Other versions
JP2003141068A (ja
Inventor
広之 早川
Original Assignee
キヤノンソフトウェア株式会社
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 キヤノンソフトウェア株式会社 filed Critical キヤノンソフトウェア株式会社
Priority to JP2001338090A priority Critical patent/JP3730563B2/ja
Publication of JP2003141068A publication Critical patent/JP2003141068A/ja
Application granted granted Critical
Publication of JP3730563B2 publication Critical patent/JP3730563B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、分散オブジェクト環境におけるサーバ/クライアント間において、セッション中の状態を保持するセッション管理装置およびセッション管理方法およびプログラムおよび記録媒体に関するものである。
【0002】
【従来の技術】
分散オブジェクト環境におけるクライアント/サーバ間通信のセッション状態には、ステートレスとステートフルの2つがある。
【0003】
以下、図14を参照してステートレスな通信とステートフルな通信について説明する。
【0004】
図14は、クライアント/サーバ間の通信における両者のセッション状態を説明する図である。
【0005】
まず、ステートレスとは、(a)に示すように、クライアントからみて、接続するサーバが1回目とそれ以降の通信において違う場合や、(b)に示すように、サーバからみて、接続されるクライアントが1回目とそれ以降の通信において違う場合で、サーバで発生した情報を何らかの手段無しには維持できない状態をいう。
【0006】
一方、ステートフルとは、(c)に示すように、クライアントとサーバ間の通信において、1回目とそれ以降の通信で処理するサーバプロセスが同じであるため、サーバで発生した情報が維持できる状態をいう。
【0007】
次に、サーバプロセスをライフサイクルから分類し、そのプロセスの通信がステートレスとステートフルのどちらのセッションになるかを述べる。
【0008】
プロセスは、予めシステム空間に常駐してクライアントからのサービス要求を待つもの(タイプI)と、クライアントからのサービス要求時に生成されるもの(後述するタイプII,III)とに分類される。クライアントからのサービス要求時に生成されるものは、さらに、サービス要求毎に生成と消滅を繰り返すもの(タイプII)と、クライアントが要求する一連のサービス要求(処理を実現するために複数のサービス要求で構成される)毎に生成と消滅を繰り返すもの(タイプIII)とに分類される。
【0009】
タイプIとタイプIIは、ステートレスなセッションであり、タイプIIIはステートフルなセッションである。
【0010】
また、タイプIIは、オーバヘッドがかかるプロセスの生成と消滅が頻発するため、このような処理をする製品は少ないと思われるため、以降、ステートレスなセッションを行うプロセスの対象から除外する。
【0011】
分散オブジェクト環境を実現するCORBA(Common Object Request Broker Architecture)準拠の製品には、ステートレスなセッションのみを実現するものや、ステートレスとステートフルの両方のセッションを実現するものがある。
【0012】
なお、CORBAとは、分散オブジェクト技術の規格の一つであり、OMG(Object Management Group)が承認するORB(Object Request Broker)間通信の仕様である。ベンダが提供するCORBA準拠のORB製品を使用することにより、クライアントとサーバが異機種マシンであっても容易に接続することができるようになる。
【0013】
クライアントがサーバにサービスを要求し、サーバからクライアントに応答が返ることをここでは対話という。この対話は、一回で終了することもあれば複数回のやり取りで完結する場合もある。以下の対話(処理)は、複数回のやりとりで完結する場合を指す。
【0014】
以下、対話の例としてショッピングカートを挙げる。
【0015】
(リクエスト1)クライアントは、ある特定のグループの商品一覧を表示するようサーバに要求する。
【0016】
(レスポンス1)サーバは、要求のあった商品一覧を表示する。
【0017】
(リクエスト2)クライアントは、商品一覧から、特定の商品を必要個数分ショッピングカートに入れることと、次の商品グループの商品一覧を表示することをサーバに要求する。
【0018】
(レスポンス2)サーバは要求のあった商品を要求個数分ショッピングカートに格納し、要求のあった商品一覧を表示する。
【0019】
(リクエスト3)クライアントは、特定の商品を必要個数分ショッピングカートに入れることと、ショッピングカートの中の商品を精算することをサーバに要求する。
【0020】
(レスポンス3)サーバは、要求のあった商品を要求個数分ショッピングカートに入れ、ショッピングカートの中の商品種類毎に商品単価と個数を掛け合わせ、全合計金額をクライアントに提示する。
【0021】
ここで、ステートフルな通信の場合、上述したショッピングカート(商品名と購入個数等の情報)は、サーバプロセスの中に持つことが可能である。
【0022】
しかし、ステートレスな通信の場合、対話(リクエスト−レスポンス)が一回毎に切れてしまい、各対話を処理するサーバプロセスが同一とはかぎらないため、ショッピングカート(商品名と購入個数等の情報)をサーバプロセスの中に持たせることはできない。
【0023】
以下、前述の商品名と購入個数を持ったショッピングカートのような状態をセッション状態情報といい、これを対話処理中保持する仕組みをセッション管理という。
【0024】
次に、従来の分散オブジェクト環境におけるクライアント/サーバシステムのセッション管理について、図15〜図17を使用して説明する。これらの図では、クライアントとサーバ間の通信手段としてORB(分散オブジェクト機構)通信を使用し、通信プロトコルとしてIIOP(Internet Inter−ORB Protocol)を使用しているものとする。
【0025】
図15は、クライアントとサーバの双方をCORBAオブジェクトとして実装したクライアント/サーバシステムを示すブロック図である。
【0026】
この図におけるクライアント/サーバ間の通信をステートレスなセッションで実現した場合、サーバへの接続クライアントが大量になっても、プロセスの生成/消滅が無いためオーバヘッドが少なく、システムにかかる負荷がステートフルで実現するより少ない。しかし、セッション状態情報をサーバアプリケーションプロセス中に持ったのではセッション管理ができない。
【0027】
逆にステートフルなセッションで実現した場合、サーバへの接続クライアントが大量な場合、プロセスの生成/消滅が頻発するため、システムにかかる負荷がステートレスで実現するより多い。しかし、セッション状態情報をサーバアプリケーションプロセス中に持つことができる。
【0028】
しかしながら、ステートフルなセッションで実現した場合でも、図15のように、同じクライアントアプリケーション5がORB30(CORBA準拠の通信ミドルウェア)を介して1回目はサーバアプリケーション4aと、2回目はサーバアプリケーション4bというような場合、セッション状態情報をサーバアプリケーションプロセス中に持ったのではセッション管理ができなくなる。
【0029】
このような場合や上述のステートレスなセッションで実現する場合、クライアントアプリケーション側でセッション管理をする方法が考えられる。
【0030】
しかし、クライアントにセッション状態情報を持たせると、セッション状態情報が通信のたびにクライアント/サーバ間を流れ、通信トラフィックが増大し、レスポンス悪化の要因となるという問題点があった。
【0031】
図16は、WWW(World Wide Web)の環境で、クライアントとサーバの双方をCORBAオブジェクトとして実装したクライアント/サーバシステムを示すブロック図である。
【0032】
図に示すように、Webブラウザ32のVM(Virtual Machine)環境で動作するクライアントアプリケーション5は、ORB30の通信で、Webサーバ33経由でサーバアプリケーション4a〜4bのサービスを呼び出す。
【0033】
この場合の、セッション管理方法とその問題は、図15の場合と同じである。さらに、セッション管理方法の問題以外に、サーバ側にファイアウォールを構築した場合、IIOPのTCP/IPポートを開放しなければならず、このことがセキュリティ管理上敬遠される原因となっている。
【0034】
図17は、図16のファイアウォール構築上の問題を踏まえた形態のクライアント/サーバシステムの一例を示すブロック図である。
【0035】
図に示すように、サーバ側のみ、すなわちJava(登録商標)Servlet34とサーバアプリケーション4aとサーバアプリケーション4bをCORBAオブジェクトとして実装する。
【0036】
Webサーバ33内にはServletコンテナがあり、ここでJava(登録商標)Servlet34を稼動させ、Java(登録商標)Servlet34がクライアントアプリケーション5と通信する。Java(登録商標)Servlet34はクライアントアプリケーション5からのリクエストを受けると対応するサーバアプリケーション4a、もしくはサーバアプリケーション4bのサービスを呼び出す。呼び出されたサーバアプリケーション4a、もしくはサーバアプリケーション4bの処理結果がJava(登録商標)Servlet34に返ると、Java(登録商標)Servlet34はレスポンスをクライアントアプリケーション5に返す。
【0037】
すなわち、クライアントアプリケーション5とサーバアプリケーション4a、もしくはサーバアプリケーション4b間の電文情報は、Java(登録商標)Servlet34を経由してやり取りされる。この場合、クライアントアプリケーション5とJava(登録商標)Servlet34間の通信プロトコルはHTTP(Hyper Text Transfer Protocol)になり、Java(登録商標)Servlet34とサーバアプリケーション4a、もしくはサーバアプリケーション4b間の通信はIIOPとなる。
【0038】
この形態は、ファイアウォールを構築する場合、HTTPのポートを開放するのみで済むため、図16に示した場合のセキュリティ管理問題はなくなる。
【0039】
ただし、セッション管理では次のような問題がある。
【0040】
サーバアプリケーションでのセッション管理は、クライアントアプリケーション5/Java(登録商標)Servlet34間の通信プロトコルがHTTPであるがゆえステートレスセッションになる。そのため、Java(登録商標)Setvlet34/サーバアプリケーション4aもしくはサーバアプリケーション4b間の通信がステートフルセッションであるとしてもセッション管理は困難である。
【0041】
また、その他のセッション管理の問題は図15に示した場合と同じである。
【0042】
この形態では、もう1つの方法として、Servlet用に用意されているセッション管理のAPIを使用する方法がある。これを使用するとセッション状態情報をオブジェクト化し保存することができる。このオブジェクトはセッションIDというもので識別する。対話処理中はセッションIDを使用し、セッション情報を管理する。
【0043】
以下、この形態について図17を用いて説明する。
【0044】
Java(登録商標)Servlet34は、クライアントアプリケーション5からリクエストを受けると、クライアントアプリケーション5からの電文情報をサーバアプリケーション4aに渡す。
【0045】
サーバアプリケーション4aは、処理を行った後、処理結果(電文)とセッション状態情報をJava(登録商標)Servlet34に返す。
【0046】
Java(登録商標)Servlet34は、セッション状態情報をセッション管理のAPIを使用してオブジェクト化し、このオブジェクトのセッションIDを得る。Java(登録商標)Servlet34は、クライアントアプリケーション5にセッションIDと電文のレスポンスを返す。Java(登録商標)Servlet34は、セッションIDと電文のリクエストをクライアントアプリケーション5から受ける。
【0047】
Java(登録商標)Servlet34は、セッションIDに対応するオブジェクトからセッション状態情報を得て、電文とセッション状態情報をサーバアプリケーション4bに渡す。同様の処理を以降繰り返す。
【0048】
この方式は、Java(登録商標)Servlet34/サーバアプリケーション4aもしくはサーバアプリケーション4b間のセッションはステートレスとステートフルのどちらでも適用できるため有効ではあるが、WWWの環境という限定された環境においてのみの使用方法になる。
【0049】
以上図15〜図17に示した例が、ORB通信を使用した分散オブジェクト環境で稼動するクライアント/サーバシステムのセッション管理方法である。
【0050】
また、分散オブジェクト環境と限らずに、セッションを管理する方法として外部ディスクファイルやメモリを使用する方法がある。
【0051】
外部ディスクファイルとしては、データベースやインデクス付ファイルを使用する方法が考えられる。
【0052】
以下、データベースを使用するセッション管理方法とその問題を説明する。
【0053】
これは、クライアント毎、すなわち対話処理毎に何らかの方法でユニークなセッションIDを振り、データベースのキーとしてセッションIDを使用する。このキー毎にセッション情報をデータベースレコードに格納する。
【0054】
この方法は有効ではあるが、業務データであるデータベースアクセスの他にこの様なアクセスも行わなければならないのは、パフォーマンス悪化の要因になり得る。
【0055】
次に、メモリを使用する方法について説明する。
【0056】
メモリを使用する方法としては、プロセス内部のメモリを使用する方法と、共有メモリを使用する方法とがある。
【0057】
まず、プロセス内部のメモリを使用する方法では、発生する対話処理に応じてメモリを逐次アロケーションする方法と、予め発生し得る同時期最大対話処理数分メモリを確保しておく方法がある。前者の場合、高トラフィックが発生した場合、システム系によってはメモリ不足を引き起こす要因になる。一方、後者の場合、予め確保しておいたメモリ内で処理が行われるためメモリ不足になる心配はない。しかし、もしトラフィック量が予測した量を超えた場合、確保したメモリが不足し、セッション情報の保証が難しくなる。
【0058】
また、共有メモリを使用する方法は、共有メモリにアクセスするプロセスをサーバ上で稼動させ、サーバアプリケーションはこのプロセスを通じてセッション情報の出し入れを行うもの、又はサーバアプリケーションがシステム提供の共有メモリアクセスAPIを使用してセッション情報の出し入れを行うものがある。これらの場合、高トラフィックが発生した場合、共有メモリを多量に使用し、サーバ性能劣化の要因となり得る。
【0059】
なお、共有メモリを使用してセッション管理をする場合の発展形態である特許出願として、特開2001−14242がある。この発明においては、セッション管理サーバが分散管理サーバの機能を併せもつことにより、高トラフィック時における多量の共有メモリ使用を防ぐことが可能であると思われるが、サーバ側の負荷分散を行うTPモニタ配下で稼動するアプリケーションに適用できるものではない。
【0060】
また、この発明は、WWW環境に限定されるものであり、なおかつサーバアプリケーションの実装がCGI(Common Gateway Interface)という環境を対象とし、かつセッション管理機能としてCGIによる実装に限定されるものであって、その他の環境において稼動するクライアント/サーバシステムに広く適用されるものではない。
【0061】
【発明が解決しようとする課題】
上述したように、クライアント/サーバシステムにおいて、セッション状態情報を管理する場合、クライアントで管理する方法、サーバで管理する方法がある。しかし、双方ともに、通信トラフィックの増大に起因して発生するレスポンスの問題、メモリ管理の問題、適用環境の問題、及びサーバ性能劣化の問題等があった。
【0062】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、分散オブジェクトとして実装されたサーバアプリケーションと連携して、分散オブジェクト環境において対話処理を行うクライアントアプリケーションと前記サーバアプリケーションとの間のセッション管理を行う分散オブジェクトとして実装されるセッション管理プロセスが、該プロセス内にセッション状態情報を格納するセッション管理メモリと、セッション管理を必要とする前記サーバアプリケーションから要求される、前記セッション管理メモリ内にセッション状態情報を格納するレコードを確保するレコード割当サービスと、前記セッション管理メモリの当該レコードからセッション状態情報を取得して前記サーバアプリケーションに送信するレコード読み込みサービスと、前記セッション状態情報を当該レコードに格納するレコード書き込みサービスと、管理する必要が無くなったセッション状態情報が格納されている当該レコードを開放するレコード開放サービスとを備えるレコード制御部と、セッション状態情報数過多により前記セッション管理メモリ内で管理できなくなったセッション状態情報を、前記レコード制御部からの要求により、最も昔にアクセスされたレコードからデータベースへ退避させ、前記レコード制御部で必要となったデータベース中のセッション状態情報を、前記レコード制御部からの要求によりデータベースから前記セッション管理メモリへ戻すことを行うレコード監視部とを備え、前記管理する必要が無くなったセッション状態情報とは、前記クライアントアプリケーションから前記サーバアプリケーションに対話終了要求が送られた場合に前記サーバアプリケーションからされる読み取り要求に対して前記レコード読み取りサービスが前記サーバアプリケーションに送信したセッション状態情報であって、前記サーバアプリケーションから前記レコード開放サービスに対して開放要求があったセッション状態情報をいい、前記レコード開放サービスにより管理する必要が無くなったセッション状態情報が格納されている当該レコードが開放された場合には、前記セッション管理メモリに前記レコード割り当てサービスによるレコードの割り当て、前記レコード読み込みサービス又は前記レコード書き込みサービスによる前記データベースに退避されているレコードの復帰が行われるまで前記開放したレコードを開放した状態とし、前記レコード割り当てサービスによるレコードの割り当て、前記レコード読み込みサービス又は前記レコード書き込みサービスによる前記データベースに退避されているレコードの復帰を行う場合に、前記開放したレコードを含む前記セッション管理メモリ内の開放されているレコードを使用して前記割り当てサービスによるレコードの割り当て、前記読み込みサービス又は前記書き込みサービスによる前記データベースに退避されているレコードの復帰を行うことにより、分散オブジェクト環境におけるクライアント/サーバシステムにおける対話中のセッションをクライアント/サーバシステムの性能を劣化させることなしに管理することができ、また分散オブジェクト環境で稼動するクライアント/サーバシステムのセッション管理をプラットフォームに依存することなくフレキシブルに行うことができるセッション管理装置およびセッション管理方法およびプログラムおよび記録媒体を提供することである。
【0063】
【課題を解決するための手段】
本発明は分散オブジェクトとして実装されるセッション管理プロセスが、分散オブジェクトとして実装されたサーバアプリケーションと連携して、分散オブジェクト環境において対話処理を行うクライアントアプリケーションと前記サーバアプリケーションとの間のセッション管理を行うセッション管理装置において、前記セッション管理プロセスは、該プロセス内にセッション状態情報を格納するセッション管理メモリと、セッション管理を必要とする前記サーバアプリケーションから要求される、前記セッション管理メモリ内にセッション状態情報を格納するレコードを確保するレコード割当サービスと、前記セッション管理メモリの当該レコードからセッション状態情報を取得して前記サーバアプリケーションに送信するレコード読み込みサービスと、前記セッション状態情報を当該レコードに格納するレコード書き込みサービスと、管理する必要が無くなったセッション状態情報が格納されている当該レコードを開放するレコード開放サービスとを備えるレコード制御部と、セッション状態情報数過多により前記セッション管理メモリ内で管理できなくなったセッション状態情報を、前記レコード制御部からの要求により、最も昔にアクセスされたレコードからデータベースへ退避させ、前記レコード制御部で必要となったデータベース中のセッション状態情報を、前記レコード制御部からの要求によりデータベースから前記セッション管理メモリへ戻すことを行うレコード監視部と、を備えるものであり、前記管理する必要が無くなったセッション状態情報とは、前記クライアントアプリケーションから前記サーバアプリケーションに対話終了要求が送られた場合に前記サーバアプリケーションからされる読み取り要求に対して前記レコード読み取りサービスが前記サーバアプリケーションに送信したセッション状態情報であって、前記サーバアプリケーションから前記レコード開放サービスに対して開放要求があったセッション状態情報をいい、前記レコード開放サービスにより管理する必要が無くなったセッション状態情報が格納されている当該レコードが開放された場合には、前記セッション管理メモリに前記レコード割り当てサービスによるレコードの割り当て、前記レコード読み込みサービス又は前記レコード書き込みサービスによる前記データベースに退避されているレコードの復帰が行われるまで前記開放したレコードを開放した状態とし、前記レコード割り当てサービスによるレコードの割り当て、前記レコード読み込みサービス又は前記レコード書き込みサービスによる前記データベースに退避されているレコードの復帰を行う場合に、前記開放したレコードを含む前記セッション管理メモリ内の開放されているレコードを使用して前記割り当てサービスによるレコードの割り当て、前記読み込みサービス又は前記書き込みサービスによる前記データベースに退避されているレコードの復帰を行うことを特徴とする。
【0079】
【発明の実施の形態】
まず、本発明のセッション管理装置の概要を説明する。
【0080】
対話処理を行うクライアント/サーバシステムのサーバが分散オブジェクトとして実装された環境の場合、セッション管理を行う常駐型プロセス(以下、セッション管理プロセスという)を分散オブジェクトのサーバとして実装する。
【0081】
ここでは、CORBA準拠のORB製品を使用して分散オブジェクトとして実装する方法を示す。対話処理を行っているサーバアプリケーションとセッション管理プロセスは、分散オブジェクト環境において連携を行いセッション管理を実現する。
【0082】
セッション管理プロセスは、プロセス内部のメモリとデータベーステーブルを使用し、セッション状態情報を管理する。メモリを使用するのは、セッション管理のスピードを高速化するためであり、データベーステーブルを使用するのはメモリ管理で発生するメモリ不足の問題を解決するためである。
【0083】
対話処理を行っているサーバアプリケーションのセッション管理プロセスへアクセスするインタフェースは、セッション管理プロセスがCORBA準拠の分散オブジェクトとして実装されているため、セッション管理プロセスが分散オブジェクト環境内のどこで稼動しようとも変更する必要が無い。このことは、クライアント/サーバ間の対話処理とは別に、セッション管理プロセスのみの最適化を求めマシンの機種やOS(Operating System)等のプラットフォーム(platform)を選択することができる可能性があることを意味する。例えば、物理メモリのコストパフォーマンスが高いマシンを選択すれば、大量のメモリを消費できるためセッション管理の高速化が実現できる。
【0084】
セッション管理プロセスでは、その内部に、セッション状態情報用エリアを確保する。対話処理毎のセッション状態情報はここで管理される。同時期に発生する対話処理が多くなり、すなわち管理すべきセッション状態情報が多くなり、セッション状態情報用エリアがオーバフローした場合、セッション状態情報用エリアから最も古くに管理されたセッション状態情報を抜き出し、それをデータベースで管理する。これにより、最新のセッション状態情報はメモリで管理され、頻繁なサービス要求を行うクライアントには高速なレスポンスを返すことに貢献する。
【0085】
このセッション状態情報用エリアは、セッション管理プロセス起動時に確保されるため、長時間運転することにより引き起こされるメモリ不足の心配はない。
【0086】
セッション管理のパフォーマンスを最も上げるには、確保するセッション状態情報用エリアのサイズを、システムの性能が許す限り、同時期に発生し得る対話処理の最大数(以下、最大トラフィック量ともいう)を見込んで設定する。万が一、最大トラフィック量を超えたアクセスが発生したとしても、データベースでも管理されるため安全である。また、データベースでも管理されるということは、予想した最大トラフィック量に、更に安全を見込んだ量のエリアを、すなわち冗長なエリアを加えてメモリ中に確保する必要がなくなる。
【0087】
セッション管理プロセスは、対話処理毎にユニークなセッションIDを付与し、このセッションID毎にメモリ内のセッション状態情報エリアとデータベーステーブルのテーブルレコードを使用してセッション状態情報を管理する。さらに、このセッションIDを使用して、対話処理を行うサーバアプリケーションと連携させることによりセッション管理を行う。
【0088】
以下、図面を用いて上述した本発明のセッション管理装置の機能を具体的に説明する。
【0089】
図1は、本発明の一実施形態を示す分散オブジェクト環境で稼動するクライアント/サーバ間のセッション管理装置を適用可能なクライアント/サーバシステムの全体を示すブロック図であり、対話処理とセッション管理プロセスの連携、セッション管理プロセスの構造及びセッション管理プロセスが管理するメモリとデータベーステーブルの構造を示している。
【0090】
図において、200はクライアント装置で、例えばパーソナルコンピュータ,ワークステーション等の情報処理装置で構成される。クライアントアプリケーション5は、このクライアント装置200上で動作する(クライアント装置200の図示しないCPUにより実行される)。また、100はサーバ装置であり、例えばパーソナルコンピュータ,ワークステーション等の情報処理装置で構成される。情報処理装置100,200は、それぞれCPU,ROM,RAM,ハードディスク(HD)等のその他の記録媒体等を有し、該CPUによりROM,その他の記録媒体に格納されたプログラムをRAMにロードして実行することができる。サーバアプリケーション4は、このサーバ装置100上で動作する(サーバ装置100の図示しないCPUにより実行される)。さらに、クライアント装置200とサーバ装置100はLAN,インターネット等のネットワーク31を介して双方向に通信可能に構成される。
【0091】
クライアントアプリケーション5とサーバアプリケーション4を含むクライアント/サーバシステムは、ORB通信を使用した分散オブジェクト環境で稼動するクライアント/サーバシステムであって、従来の技術の欄で図15〜図17に示したいずれの場合であってもよい。
【0092】
サーバ装置100において、1はセッション管理プロセス(サーバ装置100の図示しないCPUにより実行される)で、上述したように対話処理を行うクライアント/サーバシステムのサーバ(サーバアプリケーション4)が分散オブジェクトとして実装されている場合に、CORBA準拠のORB製品により分散オブジェクトのサーバとして実装され、内部にバッファコントローラ2とセッション管理メモリ3を持ちシステム空間に常駐し、ORB30を介してサーバアプリケーション4と双方向に通信可能である。バッファコントローラ2は、メモリ確保部21とレコード制御部22とレコード監視部23の3部から構成される。
【0093】
21はメモリ確保部で、セッション管理プロセス1起動時にセッション管理メモリ3を図示しないRAM内に確保するとともに、図示しないHD上のデータベース6と接続を行いセッション管理テーブル61のテーブルレコードにアクセスする準備を行う。
【0094】
レコード制御部22は、セッション状態情報を管理したいアプリケーション(サーバアプリケーション4)からの要求で、セッション管理メモリ内のレコードをセッションIDに基づいて制御するものであり、ORB30によりサーバアプリケーション4に提供する下記4つのサービス(22a〜22d)を持つ。
【0095】
・レコード割当サービス22a
レコード割当サービス22aは、対話処理毎にユニークなセッションIDを付与することと、セッション管理メモリ3内にセッションIDとセッション状態情報の対を格納するレコードを確保することと、対話処理を行っているサーバアプリケーション4へセッションIDを返すことを行う。
【0096】
・レコード読み込みサービス22b
レコード読み込みサービス22bは、対話処理を行っているサーバアプリケーション4からのセッションIDを基に、セッション管理メモリ3の当該レコードからセッション状態情報を取得することを行う。
【0097】
・レコード書き込みサービス22c
レコード書き込みサービス22cは、対話処理を行っているサーバアプリケーション4からのセッションIDを基に、セッション状態情報を当該レコードに格納することを行う。
【0098】
・レコード開放サービス22d
レコード開放サービス22dは、対話処理を行っているサーバアプリケーション4からのセッションIDを基に、管理する必要が無くなったセッション状態情報が格納されている当該レコードを開放する。
【0099】
レコード監視部23は、次の3つの機能(▲1▼〜▲3▼)を司る。
【0100】
▲1▼セッション状態情報過多によりセッション管理メモリ内で管理できなくなったセッション状態情報(例えば、セッション管理メモリ3中の最も昔にアクセスされたレコード(最後にアクセスされてからの経過時間が最も長いレコード))を、レコード割当サービス22aからの要求により、データベース6のセッション管理テーブル61にセッションIDをキーにして書き出す。書き出されたセッション管理メモリ3の当該レコードを開放する。
【0101】
▲2▼レコード読み込みサービス22bもしくはレコード書き込みサービス22cもしくはレコード開放サービス22dからの要求により、レコード制御部22で必要となったデータベーステーブル中のセッション状態情報(データベース6のセッション管理テーブル61内の要求されたレコード)を、セッション管理メモリ3内の開放されているレコードに書き出す。書き出したセッション管理テーブル61内の当該テーブルレコードは削除する。セッション管理メモリ3内に開放されているレコードが無い場合、セッション管理メモリ3中の最も昔にアクセスされたレコードをセッション管理テーブル61にセッションIDをキーにして書き出し、書き出されたセッション管理メモリ3の当該レコードを開放した後、当該レコードに対してセッション管理テーブル61内の要求されたレコードを書き出す。
【0102】
▲3▼セッション管理メモリ3及びセッション管理テーブル61のレコード上のタイムスタンプからタイムアウトしたレコードを消去する。
【0103】
次に、クライアント装置200において、クライアントアプリケーション5は、ネットワーク31を介してサーバアプリケーション4のサービスを呼び出す(リクエストする)ことができる。なお、サーバアプリケーション4は、ORB30でレコード制御部22の各サービスを呼び出すことによりセッション管理プロセス1との連携を実現し、クライアントアプリケーション5からのリクエストに応じた処理を実行して、該処理結果をレスポンスとしてクライアントアプリケーション5に返信する。
【0104】
なお、セッション管理プロセス1は、CORBA準拠の分散オブジェクトとして実装するため、レコード制御部22の各サービス22a〜22dに対する対話処理を行っているサーバアプリケーション4からのインタフェースは、セッション管理プロセスが分散オブジェクト環境で動作する限り、環境に依存しない。すなわち、稼動マシンに変更があってもインタフェースを実装しているサーバアプリケーションに変更は無い。
【0105】
よって、図1では、サーバアプリケーション4、セッション管理プロセス1、データベース6が、同一のサーバ装置100上で実現される場合について説明したが、サーバアプリケーション4、セッション管理プロセス1、データベース6が異なる装置(どのようなプラットフォームであってもよい)上で実現されるように構成することも可能である。
【0106】
以上のような構成により、従来の通信トラフィックの増大に起因して発生するレスポンスの問題、メモリ管理の問題、適用環境の問題、及びサーバ性能劣化の問題を、セッション管理を行う常駐型プロセスの構築により解決するものであり、対話処理を行う分散オブジェクトとして実装されたサーバアプリケーション4と、システム空間に常駐する分散オブジェクトとして実装されたセッション管理プロセス1との連携によりセッション状態情報の管理を実現することができる。
【0107】
なお、セッション状態情報としては、ショッピングカートのような、セッション中に発生する全ての情報を対象としている。
【0108】
図2は、図1に示したクライアント/サーバシステムのセッション管理の流れを示す図であり、図1と同一のものには同一の符号を付してある。以下、図2をもとに、セッション管理の流れを説明する。
【0109】
セッション管理プロセス1の起動時、バッファコントローラ2内のメモリ確保部21は、サーバ装置100内の図示しないHDに記憶されるプロパティファイル7から、セッション状態情報を格納することができる最大レコード数と、セッション状態情報エリア長を読み込む。
【0110】
次にメモリ確保部21は、セッション管理メモリ3として(最大レコード数×セッション状態情報エリア長)分のエリアを確保する。また、データベース6と接続を行いセッション管理テーブル61のテーブルレコードにアクセスする準備を行う。
【0111】
クライアントアプリケーション5aが、サーバアプリケーション4aと対話を開始すると、サーバアプリケーション4aは、レコード割当サービス22aに対し、レコード割当の依頼を行う。
【0112】
レコード割当サービス22aは、セッション管理メモリ3の中から、現在利用されてないレコードを見つける。図2ではレコード3aを見つけている。レコード割当サービス22aは、セッションIDとしてユニークなキーコードを振る。図2では「1」が振られている。レコード割当サービス22aは、レコード3aのセッションIDエリアにセッションIDの「1」を格納する。レコード割当サービス22aは、セッションIDの「1」をサーバアプリケーション4aに返す。
【0113】
サーバアプリケーション4aは、図示しないデータベースアクセス等の処理(クライアントアプリケーション5からのリクエストに応じた処理)をした後、レコード書き込みサービス22cに対し、セッションIDの「1」とセッション状態情報を渡す。レコード書き込みサービス22cは、セッションIDが「1」であるレコード3aのセッション状態情報エリアに、セッション状態情報を格納する。
【0114】
サーバアプリケーション4aは、クライアントアプリケーション5aにセッションIDの「1」と処理結果を返す。
【0115】
次に、クライアントアプリケーション5aが、サーバアプリケーション4aにセッションIDの「1」を含めたサービス要求を行うと、サーバアプリケーション4aは、レコード読み込みサービス22bにセッションIDの「1」を渡す。
【0116】
レコード読み込みサービス22bはセッションIDが「1」であるレコード3aからセッション状態情報を読み込み、セッション状態情報をサーバアプリケーション4aに返す。
【0117】
サーバアプリケーション4aは、クライアントアプリケーション5からのデータとセッション状態情報を元に処理(クライアントアプリケーション5からのリクエストに応じた処理)を行う。
【0118】
サーバアプリケーション4aは、レコード書き込みサービス22cに対し、セッションIDの「1」とセッション状態情報を渡す。
【0119】
レコード書き込みサービス22cは、セッションIDが「1」であるレコード3aのセッション状態情報エリアに、セッション状態情報を格納する。
【0120】
サーバアプリケーション4aは、クライアントアプリケーション5aにセッションIDの「1」と処理結果を返す。
【0121】
次に、クライアントアプリケーション5aが、サーバアプリケーション4bにIDの「1」を含めたサービス要求を行うと、サーバアプリケーション4bは、レコード読み込みサービス22bにセッションIDの「1」を渡す。
【0122】
レコード読み込みサービス22bは、セッションIDが「1」であるレコード3aからセッション状態情報を読み込み、セッション状態情報をサーバアプリケーション4bに返す。
【0123】
サーバアプリケーション4bは、クライアントアプリケーション5aからのデータとセッション状態情報を元に処理(クライアントアプリケーション5aからのリクエストに応じた処理)を行う。
【0124】
サーバアプリケーション4bは、レコード書き込みサービス22cに対し、セッションIDの「1」とセッション状態情報を渡す。
【0125】
レコード書き込みサービス22cは、セッションIDが「1」であるレコード3aのセッション状態情報エリアに、セッション状態情報を格納する。
【0126】
サーバアプリケーション4bは、クライアントアプリケーション5aにセッションIDの「1」を含めた応答を返す。
【0127】
クライアントアプリケーション5aは、サーバアプリケーション4bにセッションIDの「1」を含めた対話処理の終了要求を行う。
【0128】
サーバアプリケーション4bは、レコード読み込みサービス22bにセッションIDの「1」を渡す。
【0129】
レコード読み込みサービス22bはセッションIDが「1」であるレコード3aからセッション状態情報を読み込み、セッション状態情報をサーバアプリケーション4bに返す。
【0130】
サーバアプリケーション4bは、クライアントアプリケーション5aからのデータとセッション状態情報を元に終了処理を行う。
【0131】
サーバアプリケーション4bは、レコード開放サービス22dにセッションIDの「1」を渡す。
【0132】
レコード開放サービス22dは、セッションIDが「1」であるレコード3aを開放する。
【0133】
サーバアプリケーション4bは、クライアントアプリケーション5aに最終応答を返す。
【0134】
図2の点線は、クライアントアプリケーション5bが、サーバアプリケーション4c及びサーバアプリケーション4dのサービスを呼び出し、サーバアプリケーション4c及びサーバアプリケーション4dがセッション管理プロセス1と連携して、レコード3bに対してセッション状態情報の書き込みや読み込みを行っていることを表わしている。
【0135】
レコード割当サービス22aは、全てのレコードが割当されていて新規に割当することができない場合、レコード監視部23に、レコードを開放するよう要求する。
【0136】
レコード監視部23は、最も昔にアクセスされたレコードの内容をデータベース6のセッション管理テーブル61にセッションIDをキーにして待避させる。そして、当該レコードを開放する。開放した結果をレコード割当サービス22aに返す。
【0137】
レコード割当サービス22aは、処理を続行する。
【0138】
レコード読み込みサービス22b、レコード書き込みサービス22c、レコード開放サービス22dのそれぞれがセッション管理メモリ3にアクセスして、セッションIDに対応するレコードを見つけることができない場合、レコード監視部23に、セッションIDが一致する当該レコードがないかセッション管理テーブル61を検索するよう要求する。
【0139】
レコード監視部23は、セッション管理テーブル61を、セッションIDをキーにして検索する。当該レコードが存在した場合、セッション管理メモリ3の空きレコードに当該レコードを戻す。空きが無い場合は、前述の開放処理を行う。
【0140】
レコード監視部23は、当該レコードがセッション管理メモリ3に戻ったことを要求元に応答する。
【0141】
レコード読み込みサービス22b、レコード書き込みサービス22c、レコード開放サービス22dのそれぞれは処理を続行する。
【0142】
レコード監視部23は、セッション管理メモリ3及びセッション管理テーブル61のレコード上のタイムスタンプを常時監視し、タイムアウトしたレコードを削除する。
【0143】
以上が、セッション管理の流れである。
【0144】
以下、図3〜図10のフローチャートを参照して、図1に示したクライアント/サーバシステムのセッション管理手順について説明する。
【0145】
図3は、本発明の実施形態における第1の制御処理手順の一例を示すフローチャートであり、図1に示したクライアントアプリケーション5における処理に対応する。なお、このフローチャートの処理は、図1に示したクライアント装置200の図示しないCPUにより記録媒体に格納されたプログラムに基づいて実行されるものとする。また、S101〜S108は各ステップを示す。
【0146】
まず、ステップS101において、クライアントアプリケーション5は、サーバアプリケーション4に対話開始要求(開始リクエスト)を送信し、ステップS102において、サーバアプリケーション4からレスポンスとしてセッションIDと処理結果を受信すると、ステップS103において、受信した処理結果を表示する。
【0147】
次に、ステップS104において、対話を終了するか否かを判定し、まだ対話を終了しない場合は、ステップS105において、クライアントアプリケーション5は、サーバアプリケーション4にセッションIDを含めたサービス要求(リクエスト)を行い、ステップS102に戻る。
【0148】
一方、ステップS104で、対話を終了する場合は、ステップS106において、クライアントアプリケーション5は、サーバアプリケーション4にセッションIDを含めた対話処理の終了要求(終了リクエスト)を行う。
【0149】
次に、ステップS107において、サーバアプリケーション4からの最終応答を受信し、ステップS108において、最終処理結果を表示し、処理を終了する。
【0150】
なお、図3のステップS101,S105,S106でサーバアプリケーションに対して行なっているリクエストは、それぞれ異なるサーバアプリケーションに対するものであってもよい(例えば、図2に示したサーバアプリケーション4a〜4b)。但し、リクエストとそのレスポンスは一組となっており、同一のクライアントアプリケーションとサーバアプリケーションとの間で行なわれるものとする。
【0151】
図4〜図6は、本発明の実施形態における第2の制御処理手順の一例を示すフローチャートであり、図1に示したサーバアプリケーション4における処理に対応する。なお、このフローチャートの処理は、図1に示したサーバ装置100の図示しないCPUにより記録媒体に格納されたプログラムに基づいて実行されるものとする。また、S201〜S218は各ステップを示す。
【0152】
まず、ステップS201において、クライアントアプリケーション5からのリクエストを受け、ステップS202において、該リクエストが対話開始要求であるか否かを判定し、対話開始要求であると判定された場合は、ステップS203において、セッション管理プロセス1のレコード割当サービス22aにレコード割当の依頼を行い、ステップS204において、セッション管理プロセスのレコード割当サービス22aからセッションIDを取得する。
【0153】
次に、ステップS205において、クライアントアプリケーション5から対話開始要求時にリクエストされた処理を実行し、ステップS206において、セッション管理プロセス1のレコード書き込みサービス22cにセッションIDとセッション状態情報を送信してセッション状態情報の書き込みを依頼する。
【0154】
次に、ステップS207において、クライアントアプリケーション5に、セッションIDと処理結果を送信し、ステップS201に戻る。
【0155】
また、ステップS202で、クライアントアプリケーション5からのリクエストが対話開始要求でないと判定された場合は、ステップS208において、クライアントアプリケーション5からのリクエストが対話終了要求であるか否かを判定し、対話終了要求でないと判定された場合は、ステップS209において、セッション管理プロセス1のレコード読み込みサービス22bにセッションIDを送信してセッション状態の読み込みを依頼する。
【0156】
ステップS210において、セッション管理プロセス1のレコード読み込みサービス22bからセッション状態情報を取得すると、ステップS211において、クラアントアプリケーション5からリクエストされた処理を実行し、ステップS212において、サーバアプリケーション4は、セッション管理プロセス1のレコード書き込みサービス22cに、セッションIDとセッション状態情報を送信してセッション状態の書き込み依頼を行う。
【0157】
次に、ステップS213において、クライアントアプリケーション5に、セッションIDと処理結果を送信し、ステップS201に戻る。
【0158】
一方、ステップS208で、クライアントアプリケーション5からのリクエストが対話終了要求であると判定された場合は、ステップS214において、セッション管理プロセス1のレコード読み込みサービス22bにセッションIDを送信してレコード(セッション状態)の読み込みを依頼する。
【0159】
ステップS215において、セッション管理プロセス1のレコード読み込みサービス22bからセッション状態情報を取得すると、ステップS216において、終了処理を実行する。
【0160】
次に、ステップS217において、セッション管理プロセス1のレコード開放サービス22dにレコード開放を依頼し、ステップS218において、クライアントアプリケーション5に、最終応答を送信し、ステップS201に戻る。
【0161】
なお、図4〜図6に示したサーバアプリケーションのプロセスは、従来の技術の欄に示したタイプIのように、予めシステム空間に常駐してクライアントからのサービス要求を待つものであっても、従来の技術の欄に示したタイプII,IIIのように、クライアントからのサービス要求時に生成されるものであってもよく、また、クライアントアプリケーションからの開始要求に対する処理であるステップS203〜S207と、開始/終了要求以外の要求に対する処理であるステップS209〜S213と、終了要求に対する処理であるステップS214〜S218とは、同一のサーバアプリケーション(プロセス)で行なってもよいし、図2に示したサーバアプリケーション4a〜4bのように、それぞれ異なるサーバアプリケーション(プロセス)で行なってもよい。
【0162】
以下、図7〜図10を参照してセッション管理プロセス1の各サービスについて説明する。なお、セッション管理プロセス1は、予め起動時にセッションバッファコントローラ2内のメモリ確保部21により、サーバ装置100内の図示しないHDに記憶されるプロパティファイル7から、セッション状態情報を格納することができる最大レコード数と、セッション状態情報エリア長を読み込み、セッション管理メモリ3として(最大レコード数×セッション状態情報エリア長)分のエリアを確保し、さらに、データベース6と接続を行いセッション管理テーブル61のテーブルレコードにアクセスする準備を行っているものとする。
【0163】
図7は、本発明の実施形態における第3の制御処理手順の一例を示すフローチャートであり、図1に示したセッション管理プロセス1のレコード割当サービス22aの処理に対応する。なお、このフローチャートの処理は、図1に示したサーバ装置100の図示しないCPUにより記録媒体に格納されたプログラムに基づいて実行されるものとする。また、S301〜S304は各ステップを示す。
【0164】
サーバアプリケーション4からのレコード割当依頼を受信すると、ステップS301において、レコード割当サービス22aは、セッション管理メモリ3に現在使用していないレコードがあるか否かを判定し、現在使用していないレコードがあると判定された場合は、ステップS303に進む。一方、現在使用していないレコードがないと判定された場合は、ステップS302において、レコード監視部23により、最も昔にアクセスされたレコードをデータベース6に待避させる。
【0165】
次に、ステップS303において、レコード割当サービス22aは、セッションIDとしてユニークなレコードを割り振り、セッション管理メモリ3に格納し、ステップS304において、レコード割当サービス22aは、サーバアプリケーション4にセッションIDを送信し、処理を終了する。
【0166】
図8は、本発明の実施形態における第4の制御処理手順の一例を示すフローチャートであり、図1に示したセッション管理プロセス1のレコード読み込みサービス22bの処理に対応する。なお、このフローチャートの処理は、図1に示したサーバ装置100の図示しないCPUにより記録媒体に格納されたプログラムに基づいて実行されるものとする。また、S401〜S408は各ステップを示す。
【0167】
サーバアプリケーション4からのレコード読み込み依頼を受信すると、ステップS401において、レコード読み込みサービス22bは、セッションIDに対応するレコードがセッション管理メモリ3にあるか否かを判定し、有ると判定された場合は、ステップS406に進む。一方、無いと判定された場合は、ステップS402において、レコード監視部23により、セッションIDに対応するレコードがデータベース6にあるか否かを判定し、無いと判定された場合は、ステップS408において、サーバアプリケーション4にエラー情報を送信し、処理を終了する。
【0168】
一方、ステップS402で、セッションIDに対応するレコードがデータベース6に有ると判定された場合は、ステップS403において、レコード監視部23により、セッション管理メモリ3に現在使用していないレコードがあるか否かを判定し、あると判定された場合は、ステップS405に進む。一方、現在使用していないレコードがないと判定された場合は、ステップS404において、レコード監視部23により、最も昔にアクセスされたレコードをデータベース6に待避させる。
【0169】
次に、ステップS405において、レコード監視部23により、データベース6からセッション管理メモリ3にレコードを戻す。
【0170】
次に、ステップS406において、レコード読み込みサービス22bは、セッションIDに対応するレコードのセッション状態情報を読み込み、ステップS407において、レコード読み込みサービス22bは、サーバアプリケーション4にセッション状態情報を送信し、処理を終了する。
【0171】
図9は、本発明の実施形態における第5の制御処理手順の一例を示すフローチャートであり、図1に示したセッション管理プロセス1のレコード書き込みサービス22cの処理に対応する。なお、このフローチャートの処理は、図1に示したサーバ装置100の図示しないCPUにより記録媒体に格納されたプログラムに基づいて実行されるものとする。また、S501〜S507は各ステップを示す。
【0172】
サーバアプリケーション4からレコード書き込み依頼を受信すると、ステップS501において、レコード書き込みサービス22cは、セッションIDに対応するレコードがセッション管理メモリ3にあるか否かを判定し、有ると判定された場合は、ステップS506に進む。一方、無いと判定された場合は、ステップS502において、レコード監視部23により、セッションIDに対応するレコードがデータベース6にあるか否かを判定し、無いと判定された場合は、ステップS507において、レコード書き込みサービス22cは、サーバアプリケーション4にエラー情報を送信し、処理を終了する。
【0173】
一方、ステップS502で、セッションIDに対応するレコードがデータベース6に有ると判定された場合は、ステップS503において、レコード書き込みサービス22cは、セッション管理メモリ3に現在使用していないレコードがあるか否かを判定し、あると判定された場合は、ステップS505に進む。一方、現在使用していないレコードがないと判定された場合は、ステップS504において、レコード監視部23により、最も昔にアクセスされたレコードをデータベース6に待避させる。
【0174】
次に、ステップS505において、レコード監視部23により、データベース6からセッション管理メモリ3にレコードを戻す。
【0175】
次に、ステップS506において、レコード書き込みサービス22cは、セッションIDに対応するレコードにセッション状態情報を書き込み、処理を終了する。
【0176】
図10は、本発明の実施形態における第6の制御処理手順の一例を示すフローチャートであり、図1に示したセッション管理プロセス1のレコード開放サービス22dの処理に対応する。なお、このフローチャートの処理は、図1に示したサーバ装置100の図示しないCPUにより記録媒体に格納されたプログラムに基づいて実行されるものとする。また、S601〜S605は各ステップを示す。
【0177】
サーバアプリケーション4からレコード開放依頼を受信すると、ステップS601において、レコード開放サービス22dは、セッションIDに対応するレコードがセッション管理メモリ3にあるか否かを判定し、あると判定された場合は、ステップS602において、レコード開放サービス22dは、セッションIDに対応するレコードをセッション管理メモリ3から開放し、処理を終了する。
【0178】
一方、ステップS601で、セッションIDに対応するレコードがセッション管理メモリ3にないと判定された場合は、ステップS603において、レコード監視部23により、セッションIDに対応するレコードがデータベース6にあるか否かを判定し、無いと判定された場合は、ステップS605において、レコード開放サービス22dは、サーバアプリケーション4にエラー情報を送信し、処理を終了する。
【0179】
一方、ステップS603で、セッションIDに対応するレコードがデータベース6に有ると判定された場合は、ステップS604において、レコード監視部23により、セッションIDに対応するレコードをデータベース6から削除する。
【0180】
以下、セッション管理プロセス1とCORBAとの関連について説明する。
【0181】
CORBAには、インタフェース定義言語IDL(Interface Definition Language)が規定されている。IDLには、サーバで使用可能なオぺレーションを記述する。ここでオペレーションとは、メソッドとメソッドの属性とメソッドのパラメータのことであり、図2においては、レコード割当サービス22a、レコード読み込みサービス22b、レコード書き込みサービス22c、レコード開放サービス22dの各サービスがオペレーションになる。
【0182】
IDLをCORBA準拠のIDLコンパイラでコンパイルすると、クライアント用にスタブとサーバ用にスケルトンクラス(以下、スケルトンという)が生成される。
【0183】
スタブは、ORBを介して、クライアントがサーバのオペレーションを呼び出すために使用される。スケルトンは、サーバのオペレーションの属性やパラメータが記述されている。これをクラス継承して、オペレーションを実装する。
【0184】
図11は、IDL定義からスタブとスケルトンを生成する構成について示す図である。
【0185】
図に示すように、セッション管理プロセス1内のレコード制御部22の図2に示した4つのオペレーション(サービス)は、各オペレーションのインタフェースが定義してあるIDL定義20aからIDLコンパイラ20bによってコンパイルされることにより、レコード制御部内各サービススタブ20cとレコード制御部内各サービススケルトン20dが生成される。
【0186】
図12は、図11に示したIDLコンパイルによって生成されたレコード制御部内各サービススタブ20cとレコード制御部内各サービススケルトン20dの使用方法を示す図である。
【0187】
図において、11aはレコード制御部内各サービスアクセスAPIで、サーバアプリケーション4に対してレコード制御部の各サービスを呼び出す手段を提供するものであり、IDLコンパイルによって生成されたレコード制御部内各サービススタブ20cを包含する。
【0188】
11bはレコード制御部内各サービスで、IDLコンパイルによって生成されたレコード制御部内各サービススケルトン20dを継承しており、レコード制御部内の各サービスが実装されている。
【0189】
図に示すように、サーバアプリケーション4は、レコード制御部内各サービスアクセスAPI11aを呼び出すと、ORB30経由で、レコード制御部内各サービス11bを呼び出すことができる。
【0190】
以上説明したように、本実施形態では、分散オブジェクト環境において対話処理を行うクライアントアプリケーション5とサーバアプリケーション4間のセッション管理を、サーバに常駐する分散オブジェクトとして実装したセッション管理プロセス1と連携して行い、セッション管理プロセス1内のバッファコントローラ2は、セッション管理メモリ3とデータベース6内のセッション管理テーブル61の組み合わせでセッション状態情報を管理し、さらに、バッファコントローラ2は、内部にメモリの確保を行うメモリ確保部21と、セッション状態情報が格納されるセッション管理メモリ3内のレコードを管理するレコード制御部22とセッション管理メモリ3とセッション管理テーブル61間でレコードの入出力を行うレコード監視部23を持ち、さらに、レコード制御部22は分散オブジェクトのサービスを内部に持ち、この分散オブジェクトのサービスとして、セッション管理メモリ3内のレコードを割り当てるレコード割当サービス22aと、セッション管理メモリ3から当該レコードを読み込むレコード読み込みサービス22bと、セッション管理メモリ3に当該レコードを書き込むレコード書き込みサービス22cと、セッション管理メモリ3内の当該レコードを開放するレコード開放サービス22dがあり、各サービスは分散オブジェクト環境において、サーバアプリケーション4からサービス要求されるように構成したことにより、WWW環境に限定されない分散オブジェクト環境におけるクライアント/サーバシステムにおいて、クライアント/サーバ間の通信がステートレス,ステートフルのいずれであっても、対話中のセッションを、クライアント/サーバシステムの性能を劣化させずに管理することができる。
【0191】
以上より、本発明は、セッション状態情報の管理をサーバ常駐プロセスのメモリ(図に示したプロセス管理メモリ3)で行うため高速に管理することができる。
【0192】
また、予測した管理すべき状態情報の量が超過した場合においても、超過分は外部記憶装置で管理されるためデータロストの発生を防止して安全に管理を行うことができる。
【0193】
さらに、以下の2つの効果を奏する。
【0194】
1つめは、対話処理サーバプロセス稼動マシン(サーバアプリケーション4が稼動するサーバ装置)と状態情報管理プロセスマシン(セッション管理プロセス1が稼動するセッション管理装置)とを別け、かつ状態情報管理プロセスマシンはこれのみの性能を考慮したマシンにすれば、対話処理サーバプロセス稼動マシンの性能を劣化させずに、高速な状態情報の管理ができる。さらに、状態情報管理プロセスマシンとして、安価なメモリ等の費用対効果が上がるものを選択し、それが結果的に対話処理サーバプロセス稼動マシンと異機種(異OS)になっても、CORBAにより、その連携は容易に構築することができる。
【0195】
2つめは、状態情報管理プロセスマシンの種類に関わらず、状態情報管理プロセスマシンにアクセスする対話処理サーバプロセスの方法は唯一つである。すなわち、状態情報管理プロセスが稼動するマシンに変更があったとしても、対話処理サーバプロセスは全く変更する必要がなくフレキシブルなセッション管理環境を提供することができる。
【0196】
以下、図13に示すメモリマップを参照して本発明に係るセッション管理装置を適用可能なシステムで読み出し可能なデータ処理プログラムの構成について説明する。
【0197】
図13は、本発明に係るセッション管理装置を適用可能なシステムで読み出し可能な各種データ処理プログラムを格納する記録媒体のメモリマップを説明する図である。
【0198】
なお、特に図示しないが、記録媒体に記録されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記録され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記録される場合もある。
【0199】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記録される場合もある。
【0200】
本実施形態における図4〜図6,図7,図8,図9,図10に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0201】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0202】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0203】
プログラムコードを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0204】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0205】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0206】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウエアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0207】
さらに、本発明を達成するためのソフトウエアによって表されるプログラムをネットワーク上のデータベースから通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0208】
【発明の効果】
以上説明したように、本発明によれば、分散オブジェクトとして実装されたサーバアプリケーションと連携して、分散オブジェクト環境において対話処理を行うクライアントアプリケーションと前記サーバアプリケーションとの間のセッション管理を行う分散オブジェクトとして実装されるセッション管理プロセスが、該プロセス内にセッション状態情報を格納するセッション管理メモリと、セッション管理を必要とする前記サーバアプリケーションから要求される、前記セッション管理メモリ内にセッション状態情報を格納するレコードを確保するレコード割当サービスと、前記セッション管理メモリの当該レコードからセッション状態情報を取得して前記サーバアプリケーションに送信するレコード読み込みサービスと、前記セッション状態情報を当該レコードに格納するレコード書き込みサービスと、管理する必要が無くなったセッション状態情報が格納されている当該レコードを開放するレコード開放サービスとを備えるレコード制御部と、セッション状態情報数過多により前記セッション管理メモリ内で管理できなくなったセッション状態情報を、前記レコード制御部からの要求により、最も昔にアクセスされたレコードからデータベースへ退避させ、前記レコード制御部で必要となったデータベース中のセッション状態情報を、前記レコード制御部からの要求によりデータベースから前記セッション管理メモリへ戻すことを行うレコード監視部とを備え、前記管理する必要が無くなったセッション状態情報とは、前記クライアントアプリケーションから前記サーバアプリケーションに対話終了要求が送られた場合に前記サーバアプリケーションからされる読み取り要求に対して前記レコード読み取りサービスが前記サーバアプリケーションに送信したセッション状態情報であって、前記サーバアプリケーションから前記レコード開放サービスに対して開放要求があったセッション状態情報をいい、前記レコード開放サービスにより管理する必要が無くなったセッション状態情報が格納されている当該レコードが開放された場合には、前記セッション管理メモリに前記レコード割り当てサービスによるレコードの割り当て、前記レコード読み込みサービス又は前記レコード書き込みサービスによる前記データベースに退避されているレコードの復帰が行われるまで前記開放したレコードを開放した状態とし、前記レコード割り当てサービスによるレコードの割り当て、前記レコード読み込みサービス又は前記レコード書き込みサービスによる前記データベースに退避されているレコードの復帰を行う場合に、前記開放したレコードを含む前記セッション管理メモリ内の開放されているレコードを使用して前記割り当てサービスによるレコードの割り当て、前記読み込みサービス又は前記書き込みサービスによる前記データベースに退避されているレコードの復帰を行うので、分散オブジェクト環境におけるクライアント/サーバシステムにおける対話中のセッションをクライアント/サーバシステムの性能を劣化させることなしに高速かつ安全に管理することができる。
【0209】
また、分散オブジェクト環境で稼動するクライアント/サーバシステムのセッション管理をプラットフォームに依存することなくフレキシブルに行うことができる。
【図面の簡単な説明】
【図1】本発明の一実施形態を示す分散オブジェクト環境で稼動するクライアント/サーバ間のセッション管理装置を適用可能なクライアント/サーバシステムの全体を示すブロック図である。
【図2】図1に示したクライアント/サーバシステムのセッション管理の流れを示す図である。
【図3】本発明の実施形態における第1の制御処理手順の一例を示すフローチャートである。
【図4】本発明の実施形態における第2の制御処理手順の一例を示すフローチャートである。
【図5】本発明の実施形態における第2の制御処理手順の一例を示すフローチャートである。
【図6】本発明の実施形態における第2の制御処理手順の一例を示すフローチャートである。
【図7】本発明の実施形態における第3の制御処理手順の一例を示すフローチャートである。
【図8】本発明の実施形態における第4の制御処理手順の一例を示すフローチャートである。
【図9】本発明の実施形態における第5の制御処理手順の一例を示すフローチャートである。
【図10】本発明の実施形態における第6の制御処理手順の一例を示すフローチャートである。
【図11】IDL定義からスタブとスケルトンを生成する構成について示す図である。
【図12】図11に示したIDLコンパイルによって生成されたレコード制御部内各サービススタブとレコード制御部内各サービススケルトンの使用方法を示す図である。
【図13】本発明に係るセッション管理装置を適用可能なシステムで読み出し可能な各種データ処理プログラムを格納する記録媒体のメモリマップを説明する図である。
【図14】クライアント/サーバ間の通信における両者のセッション状態を説明する図である。
【図15】クライアントとサーバの双方をCORBAオブジェクトとして実装したクライアント/サーバシステムを示すブロック図である。
【図16】WWW(World Wide Web)の環境で、クライアントとサーバの双方をCORBAオブジェクトとして実装したクライアント/サーバシステムを示すブロック図である。
【図17】図16のファイアウォール構築上の問題を踏まえた形態のクライアント/サーバシステムの一例を示すブロック図である。
【符号の説明】
1 セッション管理プロセス
2 バッファコントローラ
3 セッション管理メモリ
4 サーバアプリケーション
5 クライアントアプリケーション
6 データベース
7 プロパティファイル
21 メモリ確保部
22 レコード制御部
22a レコード割当サービス
22b レコード読み込みサービス
22c レコード書き込みサービス
22d レコード開放サービス
23 レコード監視部
30 ORB
31 ネットワーク
61 セッション管理テーブル
100 サーバ装置
200 クライアント装置

Claims (12)

  1. 分散オブジェクトとして実装されるセッション管理プロセスが、分散オブジェクトとして実装されたサーバアプリケーションと連携して、分散オブジェクト環境において対話処理を行うクライアントアプリケーションと前記サーバアプリケーションとの間のセッション管理を行うセッション管理装置において、
    前記セッション管理プロセスは、
    該プロセス内にセッション状態情報を格納するセッション管理メモリと、
    セッション管理を必要とする前記サーバアプリケーションから要求される、前記セッション管理メモリ内にセッション状態情報を格納するレコードを確保するレコード割当サービスと、前記セッション管理メモリの当該レコードからセッション状態情報を取得して前記サーバアプリケーションに送信するレコード読み込みサービスと、前記セッション状態情報を当該レコードに格納するレコード書き込みサービスと、管理する必要が無くなったセッション状態情報が格納されている当該レコードを開放するレコード開放サービスとを備えるレコード制御部と、
    セッション状態情報数過多により前記セッション管理メモリ内で管理できなくなったセッション状態情報を、前記レコード制御部からの要求により、最も昔にアクセスされたレコードからデータベースへ退避させ、前記レコード制御部で必要となったデータベース中のセッション状態情報を、前記レコード制御部からの要求によりデータベースから前記セッション管理メモリへ戻すことを行うレコード監視部と、を備えるものであり、
    前記管理する必要が無くなったセッション状態情報とは、前記クライアントアプリケーションから前記サーバアプリケーションに対話終了要求が送られた場合に前記サーバアプリケーションからされる読み取り要求に対して前記レコード読み取りサービスが前記サーバアプリケーションに送信したセッション状態情報であって、前記サーバアプリケーションから前記レコード開放サービスに対して開放要求があったセッション状態情報をいい、
    前記レコード開放サービスにより管理する必要が無くなったセッション状態情報が格納されている当該レコードが開放された場合には、前記セッション管理メモリに前記レコード割り当てサービスによるレコードの割り当て、前記レコード読み込みサービス又は前記レコード書き込みサービスによる前記データベースに退避されているレコードの復帰が行われるまで前記開放したレコードを開放した状態とし、前記レコード割り当てサービスによるレコードの割り当て、前記レコード読み込みサービス又は前記レコード書き込みサービスによる前記データベースに退避されているレコードの復帰を行う場合に、前記開放したレコードを含む前記セッション管理メモリ内の開放されているレコードを使用して前記割り当てサービスによるレコードの割り当て、前記読み込みサービス又は前記書き込みサービスによる前記データベースに退避されているレコードの復帰を行うことを特徴とするセッション管理装置。
  2. 前記セッション管理プロセス起動時毎に、前記セッション状態情報を格納することができる最大レコード数及びセッション状態情報エリア長を前記セッション管理メモリとして確保することを特徴とする請求項1記載のセッション管理装置。
  3. 前記レコード制御部は、
    セッション管理を必要とする前記サーバアプリケーションから与えられたセッションIDに基づいて前記セッション管理メモリ内にセッションID及びセッション状態情報の対を格納する制御を行うことを特徴とする請求項1又は2記載のセッション管理装置。
  4. 前記レコード制御部の各サービスのセッション管理を必要とする前記サーバアプリケーションからのインタフェースは、前記セッション管理プロセスが稼動する環境に依存しないことを特徴とする請求項1乃至3のいずれかに記載のセッション管理装置。
  5. 前記セッション状態情報としてセッション中に発生する全ての情報を対象として管理することにより、クライアントとサーバの対話処理を持続する制御を可能とすることを特徴とする請求項1乃至4のいずれかに記載のセッション管理装置。
  6. 分散オブジェクトとして実装されるセッション管理プロセスが、分散オブジェクトとして実装されたサーバアプリケーションと連携して、分散オブジェクト環境において対話処理を行うクライアントアプリケーションと前記サーバアプリケーションとの間のセッション管理を行うセッション管理方法において、
    セッション状態情報を格納するセッション管理メモリを備える前記セッション管理プロセスは、
    セッション管理を必要とする前記サーバアプリケーションから要求される、前記セッション管理メモリ内にセッション状態情報を格納するレコードを確保するレコード割当サービスステップと、前記セッション管理メモリの当該レコードからセッション状態情報を取得して前記サーバアプリケーションに送信するレコード読み込みサービスステップと、前記セッション状態情報を当該レコードに格納するレコード書き込みサービスステップと、管理する必要が無くなったセッション状態情報が格納されている当該レコードを開放するレコード開放サービスステップとからなるレコード制御ステップと、
    セッション状態情報数過多により前記セッション管理メモリ内で管理できなくなったセッション状態情報を、前記レコード制御ステップからの要求により、最も昔にアクセスされたレコードからデータベースへ退避させ、前記レコード制御ステップで必要となったデータベース中のセッション状態情報を、前記レコード制御ステップからの要求によりデータベースから前記セッション管理メモリへ戻すことを行うレコード監視ステップと、を備えるものであり、
    前記管理する必要が無くなったセッション状態情報とは、前記クライアントアプリケーションから前記サーバアプリケーションに対話終了要求が送られた場合に前記サーバアプリケーションからされる読み取り要求に対して前記レコード読み取りサービスステップが前記サーバアプリケーションに送信したセッション状態情報であって、前記サーバアプリケーションから前記レコード開放サービスステップに対して開放要求があったセッション状態情報をいい、
    前記レコード開放サービスステップにより管理する必要が無くなったセッション状態情報が格納されている当該レコードが開放された場合には、前記セッション管理メモリに前記レコード割り当てサービスステップによるレコードの割り当て、前記レコード読み込みサービスステップ又は前記レコード書き込みサービスステップによる前記データベースへ退避されているレコードの復帰が行われるまで前記開放したレコードを開放した状態とし、前記レコード割り当てサービスステップによるレコードの割り当て、前記レコード読み込みサービスステップ又は前記レコード書き込みサービスステップによる前記データベースへ退避されているレコードの復帰を行う場合に、前記開放したレコードを含む前記セッション管理メモリ内の開放されているレコードを使用して前記割り当てサービスステップによるレコードの割り当て、前記読み込みサービスステップ又は前記書き込みサービスステップによる前記データベースへ退避されているレコードの復帰を行うことを特徴とするセッション管理方法。
  7. 前記セッション管理プロセス起動時毎に、前記セッション状態情報を格納することができる最大レコード数及びセッション状態情報エリア長を前記セッション管理メモリとして確保することを特徴とする請求項6記載のセッション管理方法。
  8. 前記レコード制御ステップは、
    セッション管理を必要とする前記サーバアプリケーションから与えられたセッションIDに基づいて前記セッション管理メモリ内にセッションID及びセッション状態情報の対を格納する制御を行うことを特徴とする請求項6又は7記載のセッション管理方法。
  9. 前記レコード制御ステップの各サービスステップのセッション管理を必要とする前記サーバアプリケーションからのインタフェースは、前記セッション管理プロセスが稼動する環境に依存しないことを特徴とする請求項6乃至8のいずれかに記載のセッション管理方法。
  10. 前記セッション状態情報としてセッション中に発生する全ての情報を対象として管理することにより、クライアントとサーバの対話処理を持続する制御を可能とすることを特徴とする請求項6乃至9のいずれかに記載のセッション管理方法。
  11. コンピュータに請求項6〜10のいずれかに記載されたセッション管理方法のステップを実行させるためのプログラム。
  12. コンピュータに請求項6〜10のいずれかに記載されたセッション管理方法のステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2001338090A 2001-11-02 2001-11-02 セッション管理装置およびセッション管理方法およびプログラムおよび記録媒体 Expired - Fee Related JP3730563B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001338090A JP3730563B2 (ja) 2001-11-02 2001-11-02 セッション管理装置およびセッション管理方法およびプログラムおよび記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001338090A JP3730563B2 (ja) 2001-11-02 2001-11-02 セッション管理装置およびセッション管理方法およびプログラムおよび記録媒体

Publications (2)

Publication Number Publication Date
JP2003141068A JP2003141068A (ja) 2003-05-16
JP3730563B2 true JP3730563B2 (ja) 2006-01-05

Family

ID=19152633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001338090A Expired - Fee Related JP3730563B2 (ja) 2001-11-02 2001-11-02 セッション管理装置およびセッション管理方法およびプログラムおよび記録媒体

Country Status (1)

Country Link
JP (1) JP3730563B2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1901537A (zh) * 2005-07-22 2007-01-24 国际商业机器公司 自适应会话压缩管理方法、压缩管理器及会话管理系统
US7675854B2 (en) 2006-02-21 2010-03-09 A10 Networks, Inc. System and method for an adaptive TCP SYN cookie with time validation
JP4641506B2 (ja) * 2006-03-13 2011-03-02 富士通株式会社 セッション管理プログラム、セッション管理方法およびセッション管理装置
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
JP5460145B2 (ja) * 2009-07-01 2014-04-02 キヤノン株式会社 データ処理装置、データ処理装置の制御方法、及びプログラム
JP5246092B2 (ja) * 2009-07-31 2013-07-24 沖電気工業株式会社 転送装置及び転送プログラム
US9960967B2 (en) 2009-10-21 2018-05-01 A10 Networks, Inc. Determining an application delivery server based on geo-location information
US9215275B2 (en) 2010-09-30 2015-12-15 A10 Networks, Inc. System and method to balance servers based on server load status
US9609052B2 (en) 2010-12-02 2017-03-28 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
US8897154B2 (en) 2011-10-24 2014-11-25 A10 Networks, Inc. Combining stateless and stateful server load balancing
US9094364B2 (en) 2011-12-23 2015-07-28 A10 Networks, Inc. Methods to manage services over a service gateway
US10044582B2 (en) 2012-01-28 2018-08-07 A10 Networks, Inc. Generating secure name records
US8782221B2 (en) 2012-07-05 2014-07-15 A10 Networks, Inc. Method to allocate buffer for TCP proxy session based on dynamic network conditions
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
CN108027805B (zh) 2012-09-25 2021-12-21 A10网络股份有限公司 数据网络中的负载分发
US10002141B2 (en) 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9531846B2 (en) 2013-01-23 2016-12-27 A10 Networks, Inc. Reducing buffer usage for TCP proxy session based on delayed acknowledgement
US9900252B2 (en) 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
US9992107B2 (en) 2013-03-15 2018-06-05 A10 Networks, Inc. Processing data packets using a policy based network path
WO2014179753A2 (en) 2013-05-03 2014-11-06 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US10230770B2 (en) 2013-12-02 2019-03-12 A10 Networks, Inc. Network proxy layer for policy-based application proxies
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US9942162B2 (en) 2014-03-31 2018-04-10 A10 Networks, Inc. Active application response delay time
US9906422B2 (en) 2014-05-16 2018-02-27 A10 Networks, Inc. Distributed system to determine a server's health
US9992229B2 (en) 2014-06-03 2018-06-05 A10 Networks, Inc. Programming a data network device using user defined scripts with licenses
US10129122B2 (en) 2014-06-03 2018-11-13 A10 Networks, Inc. User defined objects for network devices
US9986061B2 (en) 2014-06-03 2018-05-29 A10 Networks, Inc. Programming a data network device using user defined scripts
US10581976B2 (en) 2015-08-12 2020-03-03 A10 Networks, Inc. Transmission control of protocol state exchange for dynamic stateful service insertion
US10243791B2 (en) 2015-08-13 2019-03-26 A10 Networks, Inc. Automated adjustment of subscriber policies

Also Published As

Publication number Publication date
JP2003141068A (ja) 2003-05-16

Similar Documents

Publication Publication Date Title
JP3730563B2 (ja) セッション管理装置およびセッション管理方法およびプログラムおよび記録媒体
JP3853592B2 (ja) 分散ウェブアプリケーションサーバ
EP0956687B1 (en) Web request broker controlling multiple processes
US7406525B2 (en) Content provider and method for a computer system
US5329619A (en) Cooperative processing interface and communication broker for heterogeneous computing environments
EP0737916B1 (en) Methods, apparatus and data structures for managing objects
US6212573B1 (en) Mechanism for invoking and servicing multiplexed messages with low context switching overhead
US7406523B1 (en) Client-server communications system and method using a semi-connectionless protocol
US7028091B1 (en) Web server in-kernel interface to data transport system and cache manager
US20080163243A1 (en) Method and system for optimizing file table usage
CN111787126B (zh) 容器创建方法、服务器及存储介质
WO1995031787A1 (en) Method and apparatus for handling requests regarding information stored in a file system
JPH0776939B2 (ja) 通信ネットワークシステム
US20040098726A1 (en) JMS integration into an application server
US20030037107A1 (en) Application distribution system, and distribution server and distribution method thereof
CA2358131A1 (en) Dynamic class loading
US5968138A (en) Method and apparatus for peripheral system management, using multiple object interfaces
EP1949228B1 (en) Asynchronous just-in-time compilation
CN104717249B (zh) 远程操作应用发布的方法、代理服务器和系统
CN101411165A (zh) 利用代理服务器控制组装设备与外部的通信的技术
KR20050084059A (ko) 비 멤버 장치로 컴퓨터 그리드에 액세스하는 방법 및시스템과 컴퓨터 프로그램 제품
US7209248B1 (en) Managing the lifetime of distributed resource data using temporal scopes
US20090083296A1 (en) Metadata endpoint for a generic service
KR100227795B1 (ko) 웹상에서 응용 서버의 자원화 방법
JP3021539B2 (ja) クライアント・サーバ方式におけるサーバ制御装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050419

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050907

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051006

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20081014

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111014

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121014

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131014

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131014

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20141014

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees