JP2010067176A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2010067176A
JP2010067176A JP2008235123A JP2008235123A JP2010067176A JP 2010067176 A JP2010067176 A JP 2010067176A JP 2008235123 A JP2008235123 A JP 2008235123A JP 2008235123 A JP2008235123 A JP 2008235123A JP 2010067176 A JP2010067176 A JP 2010067176A
Authority
JP
Japan
Prior art keywords
information processing
new
pool
unit
processing apparatus
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.)
Pending
Application number
JP2008235123A
Other languages
English (en)
Inventor
Keisuke Kajigaya
圭祐 梶ヶ谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008235123A priority Critical patent/JP2010067176A/ja
Publication of JP2010067176A publication Critical patent/JP2010067176A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】オブジェクトの生成、削除時に、オーバーヘッドの発生を抑制すること。
【解決手段】情報処理装置は、オブジェクトが格納されるプール部を備え、オブジェクト破棄要求時に、情報処理装置にて実行可能なよう生成されたオブジェクトを初期化して上記プール部に格納するオブジェクト初期化手段と、オブジェクト生成要求時に、上記プール部に格納されている初期化された上記オブジェクトを取り出すオブジェクト取出手段と、を備えた。
【選択図】図10

Description

本発明は、情報処理装置にかかり、特に、オブジェクトの集まりにて構成されたプログラムが作動する情報処理装置に関する。
近年、相互にメッセージを送りあうオブジェクトと呼ばれる機能の部品の集まりとしてプログラムを構成する技法であるオブジェクト指向プログラミングによるアプリケーション開発が行われている。例えば、Java(登録商標)と呼ばれるプログラミング言語で開発されたアプリケーションは、情報処理装置に組み込まれたソフトウェアであるJava(登録商標)仮想マシン上で作動する。具体的には、Java(登録商標)で記述されたアプリケーションは、中間コードにて配布され、Java(登録商標)仮想マシンが実行するプラットフォームに対応した形式(ネイティブコード)に変換し、実行する。これにより、種々のプラットフォームにて実行することができるため、可搬性を備えており、ネットワーク環境で使用することに好適である。
このようなネットワーク環境においては、通信を介してリモートコンピュータ上のアプリケーションにオブジェクトをリクエストすることが行われ、かかるリクエストを受けるリモートオブジェクト(ソフトウェアの部品)の一種として、Enterprise JavaBeansがある。
さらに、このうち、セッション単位で処理を行う機能を持つセッションBeanは、ステートレスセッションBeanとステートフルセッションBeanの2種類ある。このうち、前者のステートレスセッションBeanは、内部状態を持たず、メソッドのみを持つ。そのため、特許文献1に示すように、かかるオブジェクトをアプリケーション内でプールして再利用が可能である。
一方、後者である上記ステートフルセッションBeanは、内部状態とメソッドを両方持つため、オブジェクト指向プログラミングで言及されるいわゆる「オブジェクト」を完全にマッピングしたものであるといえる。従って、オブジェクト指向システム開発という観点では後者を使用するべきである。
特開2004−78651号公報
しかしながら、上記ステートフルセッションBeanのクライアントから、リモートリファレンス経由でBean生成メソッド、removeメソッド呼び出しがあると、それに呼応してステートフルセッションBeanコンテナが、必ずインスタンス生成、破棄を行う。つまり、Bean生成メソッド呼び出しのたびに、Java(登録商標)仮想マシンレベルでのオブジェクトインスタンス生成を実行し、また、removeメソッドでそのオブジェクトインスタンスの参照を削除する処理を実行する。
すると、上述したように、オブジェクトインスタンスの生成がそのつど実行されると、当該インスタンス生成のためのメモリ確保とCPU(Central Processing Unit)時間のオーバーヘッドが発生する、という問題が生じる。また、上述したように、オブジェクト破棄時に当該オブジェクトインスタンスの参照が削除されると、後にガーベジコレクションが行われるため、近い未来にオーバーヘッドが発生する。これに対して、特許文献2では、オブジェクトをプールしておき、当該オブジェクトが必要になったときにかかるオブジェクトを見つけ出して、再初期化して使用する、という技術を開示している。ところが、プールされているオブジェクトを使用する直前に再初期化した場合には、かかる初期化に上述同様にオーバーヘッドが発生する、という問題が生じる。
そして、上記問題は、Java(登録商標)で開発されたアプリケーションに限られない。つまり、上記問題は、情報処理装置にて必要な時に生成され、また、不要となると破棄されるオブジェクトの集まりとしてプログラムを構成する技法であるオブジェクト指向プログラミングによるアプリケーションでも生じうる。
このため、本発明の目的は、上述した課題である、オブジェクトの生成、削除時に、オーバーヘッドの発生を抑制することにある。
かかる目的を達成するため本発明の一形態である情報処理装置は、
オブジェクトが格納されるプール部を備え、
オブジェクト破棄要求時に、情報処理装置にて実行可能なよう生成されたオブジェクトを初期化して上記プール部に格納するオブジェクト初期化手段と、
オブジェクト生成要求時に、上記プール部に格納されている初期化された上記オブジェクトを取り出すオブジェクト取出手段と、
を備えたことを特徴とする。
また、本発明の他の形態である情報処理装置は、
情報処理装置にオブジェクトを実行可能なよう設定する際に、上記オブジェクトに当該オブジェクト自身を初期化する初期化機能を追加した新たなオブジェクトを生成するデプロイメント手段と、
上記生成された新たなオブジェクトを格納するプール部と、
オブジェクトの破棄要求時に、上記新たなオブジェクトの上記初期化機能を呼び出して当該新たなオブジェクト自身を初期化し、上記プール部に格納するオブジェクト破棄手段と、
オブジェクトの生成要求時に、上記プール部に格納されている初期化された上記新たなオブジェクトを取り出すオブジェクト生成手段と、
を備えたことを特徴とする。
また、本発明の他の形態であるプログラムは、
情報処理装置に、
オブジェクトが格納されるプール部と、
オブジェクト破棄要求時に、情報処理装置にて実行可能なよう生成されたオブジェクトを初期化して上記プール部に格納するオブジェクト初期化手段と、
オブジェクト生成要求時に、上記プール部に格納されている初期化された上記オブジェクトを取り出すオブジェクト取出手段と、
を実現させるためのプログラムである。
また、本発明の他の形態であるプログラムは、
情報処理装置に、
当該情報処理装置にオブジェクトを実行可能なよう設定する際に、上記オブジェクトに当該オブジェクト自身を初期化する初期化機能を追加した新たなオブジェクトを生成するデプロイメント手段と、
上記生成された新たなオブジェクトを格納するプール部と、
オブジェクトの破棄要求時に、上記新たなオブジェクトの上記初期化機能を呼び出して当該新たなオブジェクト自身を初期化し、上記プール部に格納するオブジェクト破棄手段と、
オブジェクトの生成要求時に、上記プール部に格納されている初期化された上記新たなオブジェクトを取り出すオブジェクト生成手段と、
を実現させるためのプログラムである。
また、本発明の他の形態であるオブジェクト管理方法は、
情報処理装置にて実行可能なよう生成されたオブジェクトの破棄要求時に、当該オブジェクトを初期化して当該オブジェクトを格納するプール部に格納するオブジェクト初期化工程と、
オブジェクト生成要求時に、上記プール部に格納された初期化された上記オブジェクトを取り出すオブジェクト取出工程と、
を有することを特徴とする。
また、本発明の他の形態であるオブジェクト管理方法は、
情報処理装置に、
当該情報処理装置にオブジェクトを実行可能なよう設定する際に、上記オブジェクトに当該オブジェクト自身を初期化する初期化機能を追加した新たなオブジェクトを生成するデプロイメント工程と、
オブジェクトの破棄要求時に、上記新たなオブジェクトの上記初期化機能を呼び出して当該新たなオブジェクト自身を初期化して、当該新たなオブジェクトを格納するプール部に格納するオブジェクト破棄工程と、
オブジェクトの生成要求時に、上記プール部に格納されている初期化された上記新たなオブジェクトを取り出すオブジェクト生成工程と、
を有することを特徴とする。
本発明は、以上のように構成されることにより、オブジェクトの生成、削除時に、オーバーヘッドの発生を抑制することができる。
本発明の一形態である情報処理装置は、
オブジェクトが格納されるプール部を備え、
オブジェクト破棄要求時に、情報処理装置にて実行可能なよう生成されたオブジェクトを初期化して上記プール部に格納するオブジェクト初期化手段と、
オブジェクト生成要求時に、上記プール部に格納されている初期化された上記オブジェクトを取り出すオブジェクト取出手段と、
を備えたことを特徴とする。
また、本発明の他の形態である情報処理装置は、
情報処理装置にオブジェクトを実行可能なよう設定する際に、上記オブジェクトに当該オブジェクト自身を初期化する初期化機能を追加した新たなオブジェクトを生成するデプロイメント手段と、
上記生成された新たなオブジェクトを格納するプール部と、
オブジェクトの破棄要求時に、上記新たなオブジェクトの上記初期化機能を呼び出して当該新たなオブジェクト自身を初期化し、上記プール部に格納するオブジェクト破棄手段と、
オブジェクトの生成要求時に、上記プール部に格納されている初期化された上記新たなオブジェクトを取り出すオブジェクト生成手段と、
を備えたことを特徴とする。
上記発明によると、まず、オブジェクトが情報処理装置にて実行可能なよう設定される際に、当該オブジェクトが自己を初期化する初期化機能を追加した新たなオブジェクトを生成する。そして、この新たなオブジェクトの破棄要求時には、まず、追加された初期化機能が呼び出され、当該初期化機能によりオブジェクト自身を初期化し、その後、プール部に格納する。また、オブジェクト生成要求時には、プール部に格納されている初期化された新たなオブジェクトを呼び出す。これにより、上述したオブジェクトの破棄要求時には、オブジェクトを破棄せずに初期化してプール部に格納するため、ガーベジコレクションの発生を抑制し、オーバーヘッドを抑制することができる。また、オブジェクト生成要求時には、既に生成されているオブジェクトがプール部から取り出されるため、新たにオブジェクトを生成する必要がなく、また、既に初期化されているため、オーバーヘッドの発生を抑制することができる。
そして、上記情報処理装置では、
上記オブジェクト破棄手段は、予め設定された個数の上記新たなオブジェクトが上記プール部に格納されていない場合に作動する、
ことを特徴とする。
これにより、初期化された新たなオブジェクトが常にプール部に存在することとなり、当該プール部からオブジェクト生成要求時に取り出すことができる。従って、オブジェクト生成要求時に新たなオブジェクトを生成する必要がなく、オーバーヘッドの発生を抑制することができる。
また、上記情報処理装置では、
上記初期化機能は、上記新たなオブジェクトの内部状態を初期化する、
ことを特徴とする。
また、上記情報処理装置では、
上記デプロイメント手段は、上記生成した新たなオブジェクトを上記プール部に格納する、
ことを特徴とする。
また、上記情報処理装置では、
上記デプロイメント手段は、上記新たなオブジェクトを予め設定された個数生成して上記プール部に格納する、
ことを特徴とする。
また、本発明の他の形態であるプログラムは、
情報処理装置に、
オブジェクトが格納されるプール部と、
オブジェクト破棄要求時に、情報処理装置にて実行可能なよう生成されたオブジェクトを初期化して上記プール部に格納するオブジェクト初期化手段と、
オブジェクト生成要求時に、上記プール部に格納されている初期化された上記オブジェクトを取り出すオブジェクト取出手段と、
を実現させるためのプログラムである。
また、本発明の他の形態であるプログラムは、
情報処理装置に、
当該情報処理装置にオブジェクトを実行可能なよう設定する際に、上記オブジェクトに当該オブジェクト自身を初期化する初期化機能を追加した新たなオブジェクトを生成するデプロイメント手段と、
上記生成された新たなオブジェクトを格納するプール部と、
オブジェクトの破棄要求時に、上記新たなオブジェクトの上記初期化機能を呼び出して当該新たなオブジェクト自身を初期化し、上記プール部に格納するオブジェクト破棄手段と、
オブジェクトの生成要求時に、上記プール部に格納されている初期化された上記新たなオブジェクトを取り出すオブジェクト生成手段と、
を実現させるためのプログラムである。
そして、上記プログラムでは、
上記オブジェクト破棄手段は、予め設定された個数の上記新たなオブジェクトが上記プール部に格納されていない場合に作動する、
ことを特徴とする。
また、本発明の他の形態であるオブジェクト管理方法は、
情報処理装置にて実行可能なよう生成されたオブジェクトの破棄要求時に、当該オブジェクトを初期化して当該オブジェクトを格納するプール部に格納するオブジェクト初期化工程と、
オブジェクト生成要求時に、上記プール部に格納された初期化された上記オブジェクトを取り出すオブジェクト取出工程と、
を有することを特徴とする。
また、本発明の他の形態であるオブジェクト管理方法は、
情報処理装置に、
当該情報処理装置にオブジェクトを実行可能なよう設定する際に、上記オブジェクトに当該オブジェクト自身を初期化する初期化機能を追加した新たなオブジェクトを生成するデプロイメント工程と、
オブジェクトの破棄要求時に、上記新たなオブジェクトの上記初期化機能を呼び出して当該新たなオブジェクト自身を初期化して、当該新たなオブジェクトを格納するプール部に格納するオブジェクト破棄工程と、
オブジェクトの生成要求時に、上記プール部に格納されている初期化された上記新たなオブジェクトを取り出すオブジェクト生成工程と、
を有することを特徴とする。
そして、上記オブジェクト管理方法では、
上記オブジェクト破棄工程は、予め設定された個数の上記新たなオブジェクトが上記プール部に格納されていない場合に作動する、
ことを特徴とする。
上述した構成を有する、プログラム、又は、オブジェクト管理方法、の発明であっても、上記情報処理装置と同様の作用を有するために、上述した本発明の目的を達成することができる。
以下、本発明に係る、情報処理装置、プログラム、及び、オブジェクト管理方法、の各実施形態について図1〜図10を参照しながら説明する。
<実施形態1>
本発明の第1の実施形態を、図1乃至図10を参照して説明する。図1は、ネットワーク全体の構成を示す図である。図2乃至図3は、サーバコンピュータの構成を示す機能ブロック図である。図4は、クラス図である。図5乃至図6は、プログラムの一例を示す図である。図7乃至図9は、サーバコンピュータの動作を示すフローチャートである。図10は、サーバコンピュータの構成の他の例を示す機能ブロック図である。
[構成]
本発明におけるサーバコンピュータ1(情報処理装置)は、Javaバイトコードをサーバコンピュータ1自体であるプラットフォームにて実行可能なネイティブコードに変換して実行するソフトウェアであるJava(登録商標)仮想マシン10を搭載している。また、サーバコンピュータ1には、ネットワークNを介して、当該サーバコンピュータ1の管理を行う管理コンピュータ3が接続している。さらに、サーバコンピュータ1には、ネットワークNを介して、当該サーバコンピュータ1にオブジェクトの生成要求を行うクライアント端末4が接続している。
そして、上記サーバコンピュータ1は、管理コンピュータ3からの指示に応じて、当該サーバコンピュータ1に搭載されているJava(登録商標)仮想マシン10上で実行されるプログラムが組み込まれることによって、アプリケーションサーバ11を構築している。このアプリケーションサーバ11は、図2に示すように、デプロイメント機能12と、オブジェクト生成機能13と、オブジェクト破棄機能14と、を備えている。
上記デプロイメント機能12(デプロイメント手段)は、管理コンピュータ3から指示に応じて、外部から利用される特定のオブジェクト(ソフトウェアコンポーネント)を実行可能な状態に設定する機能を有する。例えば、本実施形態では、管理コンピュータから設定されるオブジェクトとして、セッション単位で処理を行うステートフルセッションBeanを例に挙げて説明する。このステートフルセッションBean30は、内部状態と、メソッドを持つ。そして、デプロイメント機能12は、特に、上記オブジェクトであるステートフルセッションBean30をデプロイメントする際に、このオブジェクトに当該オブジェクト自身を初期化する初期化機能である初期化メソッドを追加した新たなオブジェクトである派生オブジェクトを生成する機能を有する。さらに、デプロイメント機能12は、上記生成した派生オブジェクトのインスタンスを、プール部15に格納する機能を有する。なお、プール部15は、オブジェクトのインスタンスを格納しておく機能を有する。
また、上記オブジェクト生成機能13(オブジェクト生成手段、オブジェクト取出手段)は、クライアント端末4からオブジェクトの生成要求があったときに、当該オブジェクトを生成する機能を有する。そして、特に、本実施形態におけるオブジェクト生成機能13は、上記プール部15に要求されたオブジェクトに対応する派生オブジェクトのインスタンスが存在している場合には、当該派生オブジェクトのインスタンスを取り出して返却する機能を有する。
また、上記オブジェクト破棄機能14(オブジェクト破棄手段、オブジェクト初期化手段)は、クライアント端末4からオブジェクトの破棄要求が来たときに、インスタンス破棄処理を行う。そして、特に、本実施形態におけるオブジェクト破棄機能14は、プール部15に設定された個数のインスタンスが存在していない場合には、破棄要求されたオブジェクトに対応する派生オブジェクトの初期化メソッドを呼び出して、そのインスタンスの内部状態をクリアする。そして、内部状態をクリアした派生オブジェクトのインスタンスを、再利用可能なよう再びプール部15に格納する。
このようにすることで、上記オブジェクト生成機能13は、プール部15から派生オブジェクトのインスタンスを取り出すと、上記オブジェクト破棄機能14にて初期化されたインスタンスを取り出すことができる。従って、生成要求された派生オブジェクトのインスタンスをすぐに使用することが可能となる。
次に、上述したサーバコンピュータ1のさらに具体的な構成を、図3乃至図6を参照して説明する。
図3に示すように、本実施形態におけるサーバコンピュータ1のJava(登録商標)仮想マシン上には、プログラムが組み込まれることによってアプリケーションサーバ11が構築されている。そして、このアプリケーションサーバ11は、上述した各機能12〜15(図示せず)を有するBeanコンテナ20が存在する。具体的に、Beanコンテナ20は、オブジェクトのインスタンスを格納して管理するプール管理テーブル20を備えている。また、Beanコンテナ20は、デプロイメント時に生成するオブジェクトを解析するBean解析機能22を有している。さらに、Beanコンテナ20は、予め設定されたオブジェクトのインスタンスの格納個数を記憶するプール個数設定値23を有している。
そして、Beanコンテナ20は、ネットワークNを介して接続された管理コンピュータ3からステートフルセッションBean30を実行可能とする設定要求を受けると、デプロイメントを実行する。このとき、Beanコンテナ20は、Bean解析機能22がステートフルセッションBean30を解析し、当該ステートフルセッションBean30の派生オブジェクトである派生Bean31(新たなオブジェクト)のソースファイルを生成する。そして、このソースファイルは、Java仮想マシン10によってコンパイルされ、派生Bean31となる。ここで、この派生Bean31は、上記ステートフルセッションBean30と、呼び出されたときに自身の内部状態を初期化する状態クリアメソッド32(初期化機能)と、を備えた新たな派生オブジェクトである。そして、派生Bean30をインスタンス化したものが、符号33に示すインスタンスであり、このインスタンス30をネットワークNを介して接続されたクライアント端末4が利用する。
ここで、図4に、ステートフルセッションBeanクラス30と状態クリアメソッド32を有する派生Beanクラス31とのクラス図を示す。また、図5に、ステートフルセッションBean30のソースファイルの一例を示し、図6に、その派生クラスである派生Bean31のソースファイルの一例を示す。
そして、上記状態クリアメソッド32は、派生Bean31の各変数に宣言時の初期化値を代入し、さらに派生Bean31の引数なしコンストラクタの動作を行う。また、派生Bean31のfinalな変数については、Java言語仕様上、コンストラクタ生成後の代入が許されないので何もしない。また、static変数については、Enterprise JavaBeans仕様でstatic final以外のstatic変数は持つことができないとされているので、考慮する必要がない。また、変数がprivate宣言されている際は、まずJavaBeansの命名規則に沿ったsetterおよびgetterメソッドがないか探す。そして、setterおよびgetterメソッドがあれば、そのsetter、getterメソッド経由で代入や操作を行う。一方、setterおよびgetterメソッドがない場合は、リフレクションを用いてprivateメソッドにアクセスする。ただし、リフレクションによる操作は高コストのため、setterおよびgetterメソッドを用意すること、もしくは変数をprotectedで宣言することを推奨する。
また、上記Beanコンテナ20は、上述したデプロイメント後、及び、アプリケーションサーバ11の起動時に、派生Bean31のインスタンス33を事前生成する。このとき、Beanコンテナ20は、予めシステムアドミニストレイターなどによって設定されプール個数設定値23に記憶された値の個数だけ、上記派生Bean31のインスタンス33を生成し、プール管理テーブル21に格納する。
また、クライアント端末4がリモートリファレンスのcreateメソッドを呼び、ステートフルセッションBean30の生成要求をしてきた時に、Beanコンテナ20は、プール管理テーブル21内にその派生Bean31のインスタンス33が存在するか調べる。そして、プール管理テーブル21にインスタンス33が存在する場合には、Beanコンテナ20は、テーブルからインスタンス33を取り出し、ejbCreateメソッドを呼び、呼び出し可能状態とする。なお、プール管理テーブル21にインスタンスがなければ、通常のステートフルセッションBean30のフローで呼び出し可能状態とする。
また、クライアント端末4がリモートリファレンスのremoveメソッドを呼び、ステートフルセッションBean30の破棄要求をしてきた時に、Beanコンテナ20は、プール管理テーブル21内にその派生Bean31のインスタンス33がプール個数設定値23の個数以上存在するか調べる。そして、プール管理テーブル21にインスタンス33がプール個数設定値23の個数以上存在する場合には、Beanコンテナ20は、通常のステートレスセッションBean30のフローでインスタンスを破棄する。一方、プール管理テーブル21にインスタンス33がプール個数設定値23の個数以上存在しない場合には、Beanコンテナ20は、ejbRemoveメソッドを呼び、派生Bean31が有する状態クリアメソッド32を呼び出し、当該派生Bean31の内部状態をクリアする。そして、この派生Bean31のインスタンスを再利用可能なよう、プール管理テーブル21に戻して格納する。
[動作]
次に、上記構成のアプリケーションサーバ11つまりBeanコンテナ20の動作を、図7乃至図9を参照して説明する。まず、図7を参照して、ネットワークNを介して接続された管理コンピュータ3からステートフルセッションBean30を実行可能とする設定要求を受けたときに実行するデプロイメントの動作を説明する(デプロイメント工程)。
デプロイメント時には、ステートフルセッションBean30を実行可能状態にするが、このとき、当該ステートフルセッションBean30の派生オブジェクトである派生Bean31を生成する。具体的には、まず、ステートフルセッションBean30を解析し(ステップS1)、当該ステートフルセッションBean30の派生オブジェクトである派生Bean31のソースファイルを生成する(ステップS2)。なお、生成する派生Bean31は、上記ステートフルセッションBean30と、自身の内部状態を初期化する状態クリアメソッド32と、を備えた新たな派生オブジェクトである。この派生Bean31のソースファイルを、Java仮想マシン10にてコンパイルし(ステップS3)、派生Bean31を生成する(ステップS4)。このとき、さらに、派生Bean31のインスタンス33を、予め設定されたプール個数設定値の個数だけ生成し(ステップS5)、これらインスタンス33をプール管理テーブル21に格納して管理する(ステップS6)。
次に、図8を参照して、クライアント端末4からステートを持つオブジェクトであるステートフルセッションBean30の生成要求が来たときの動作を説明する(オブジェクト生成工程、オブジェクト取出工程)。オブジェクト生成要求時には、Beanコンテナ20は、プール管理テーブル21にすでに生成した派生オブジェクト31のインスタンス33が存在する場合には(ステップS11でイエス)、そのインスタンス33を取り出して返却する(ステップS12)。つまり、新たにインスタンスの生成処理は行わない。このとき、後述するように、派生オブジェクト31のインスタンス33は、内部状態がクリアされてプール管理テーブル21に格納されているため、取り出したときにも、内部状態がクリアされた状態である。一方、Beanコンテナ20は、プール管理テーブル21に生成した派生オブジェクト31のインスタンス33が存在しない場合には(ステップS11でノー)、通常のインスタンス生成処理を実行する(ステップS13)。
次に、図9を参照して、クライアント端末4からステートを持つオブジェクトであるステートフルセッションBean30の破棄要求がきたときの動作を説明する(オブジェクト破棄工程、オブジェクト初期化工程)。オブジェクト破棄要求時には、Beanコンテナ20は、まず、プール管理テーブル21に予め設定された個数以上の派生オブジェクト31のインスタンス33が存在するか否かを調べる(ステップS21)。そして、インスタンス33が設定個数以上存在しない場合には(ステップS21でノー)、インスタンスの破棄処理を行わない。そして、派生オブジェクト31のインスタンス33の内部状態をクリアする状態クリアメソッド32を呼び出して(ステップS22)、当該インスタンス33の内部状態をクリアする(ステップS23)。その後、内部状態をクリアしたインスタンス33をプール管理テーブル21に格納する(ステップS24)。これにより、上述したオブジェクト生成要求時に呼び出され、再利用することができる。一方、Beanコンテナ20は、オブジェクト破棄要求時に、プール管理テーブル21に設定個数以上のインスタンスが存在している場合には(ステップS21でイエス)、通常のインスタンス破棄処理を実行する(ステップS25)。
以上のように、本実施形態によると、オブジェクトの破棄要求時には、まず、派生オブジェクトに追加された初期化機能を呼び出し、当該初期化機能により派生オブジェクト自身を初期化し、その後、プール部に格納する。そして、オブジェクト生成要求時には、プール部に格納されている初期化された派生オブジェクトを呼び出す。従って、上述したオブジェクトの破棄要求時には、派生オブジェクトを破棄せずに初期化してプール部に格納するため、ガーベジコレクションの発生を抑制してCPUの処理を軽減し、オーバーヘッドを抑制することができる。また、オブジェクト生成要求時には、既に生成されているオブジェクトをプール部から取り出すため、新たにオブジェクトを生成する必要がなく、かつ、既に初期化されているため、オーバーヘッドの発生を抑制することができる。
ここで、本実施形態におけるアプリケーションサーバ11の他の構成を、図10に示す。この図に示すように、本実施形態におけるサーバコンピュータにJava(登録商標)アプリケーションが組み込まれることによって構築されたアプリケーションサーバ11は、上述したオブジェクト生成機能13(オブジェクト取出手段)とオブジェクト破棄機能14(オブジェクト初期化)とプール機能15(プール部)とを備えている。
このような構成であっても、アプリケーションサーバ11は、オブジェクトの破棄要求時には、オブジェクト破棄機能14にて、当該オブジェクト自身を初期化し、その後、プール部15に格納する。そして、オブジェクト生成要求時には、オブジェクト生成機能13にて、プール部15に格納されている初期化されたオブジェクトを呼び出す。従って、上述したオブジェクトの破棄要求時には、オブジェクトを破棄せずに初期化してプール部に格納するため、ガーベジコレクションの発生を抑制してCPUの処理を軽減し、オーバーヘッドを抑制することができる。また、オブジェクト生成要求時には、既に生成されているオブジェクトをプール部から取り出すため、新たにオブジェクトを生成する必要がなく、かつ、既に初期化されているため、オーバーヘッドの発生を抑制することができる。
本発明は、Java(登録商標)仮想マシンなどを搭載し、オブジェクト指向プログラムによるアプリケーションを実行可能な情報処理装置に利用することができ、産業上の利用可能性を有する。
実施形態1におけるシステムのネットワーク全体の構成を示す図である。 図1に開示したサーバコンピュータの構成を示す機能ブロック図である。 図1に開示したサーバコンピュータの構成を示す機能ブロック図である。 図1に開示したサーバコンピュータにて構築されるオブジェクトの関係を示すクラス図である。 図1に開示したサーバコンピュータに組み込まれるプログラムの一例を示す図である。 図1に開示したサーバコンピュータに組み込まれるプログラムの一例を示す図である。 図1に開示したサーバコンピュータの動作を示すフローチャートである。 図1に開示したサーバコンピュータの動作を示すフローチャートである。 図1に開示したサーバコンピュータの動作を示すフローチャートである。 図1に開示したサーバコンピュータの構成の他の例を示す機能ブロック図である。
符号の説明
1 サーバコンピュータ
3 管理コンピュータ
4 クライアント端末
10 Java(登録商標)仮想マシン
11 アプリケーションサーバ
12 デプロイメント機能
13 オブジェクト生成機能
14 オブジェクト破棄機能
15 プール機能
20 Beanコンテナ
21 プール管理テーブル
22 Bean解析機能
23 プール個数設定値
30 ステートフルセッションBean
31 派生Bean
32 状態クリアメソッド
33 インスタンス

Claims (12)

  1. オブジェクトが格納されるプール部を備え、
    オブジェクト破棄要求時に、情報処理装置にて実行可能なよう生成されたオブジェクトを初期化して前記プール部に格納するオブジェクト初期化手段と、
    オブジェクト生成要求時に、前記プール部に格納されている初期化された前記オブジェクトを取り出すオブジェクト取出手段と、
    を備えたことを特徴とする情報処理装置。
  2. 情報処理装置にオブジェクトを実行可能なよう設定する際に、前記オブジェクトに当該オブジェクト自身を初期化する初期化機能を追加した新たなオブジェクトを生成するデプロイメント手段と、
    前記生成された新たなオブジェクトを格納するプール部と、
    オブジェクトの破棄要求時に、前記新たなオブジェクトの前記初期化機能を呼び出して当該新たなオブジェクト自身を初期化し、前記プール部に格納するオブジェクト破棄手段と、
    オブジェクトの生成要求時に、前記プール部に格納されている初期化された前記新たなオブジェクトを取り出すオブジェクト生成手段と、
    を備えたことを特徴とする情報処理装置。
  3. 前記オブジェクト破棄手段は、予め設定された個数の前記新たなオブジェクトが前記プール部に格納されていない場合に作動する、
    ことを特徴とする請求項2記載の情報処理装置。
  4. 前記初期化機能は、前記新たなオブジェクトの内部状態を初期化する、
    ことを特徴とする請求項2又は3記載の情報処理装置。
  5. 前記デプロイメント手段は、前記生成した新たなオブジェクトを前記プール部に格納する、
    ことを特徴とする請求項2,3又は4記載の情報処理装置。
  6. 前記デプロイメント手段は、前記新たなオブジェクトを予め設定された個数生成して前記プール部に格納する、
    ことを特徴とする請求項5記載の情報処理装置。
  7. 情報処理装置に、
    オブジェクトが格納されるプール部と、
    オブジェクト破棄要求時に、情報処理装置にて実行可能なよう生成されたオブジェクトを初期化して前記プール部に格納するオブジェクト初期化手段と、
    オブジェクト生成要求時に、前記プール部に格納されている初期化された前記オブジェクトを取り出すオブジェクト取出手段と、
    を実現させるためのプログラム。
  8. 情報処理装置に、
    当該情報処理装置にオブジェクトを実行可能なよう設定する際に、前記オブジェクトに当該オブジェクト自身を初期化する初期化機能を追加した新たなオブジェクトを生成するデプロイメント手段と、
    前記生成された新たなオブジェクトを格納するプール部と、
    オブジェクトの破棄要求時に、前記新たなオブジェクトの前記初期化機能を呼び出して当該新たなオブジェクト自身を初期化し、前記プール部に格納するオブジェクト破棄手段と、
    オブジェクトの生成要求時に、前記プール部に格納されている初期化された前記新たなオブジェクトを取り出すオブジェクト生成手段と、
    を実現させるためのプログラム。
  9. 前記オブジェクト破棄手段は、予め設定された個数の前記新たなオブジェクトが前記プール部に格納されていない場合に作動する、
    ことを特徴とする請求項8記載のプログラム。
  10. 情報処理装置にて実行可能なよう生成されたオブジェクトの破棄要求時に、当該オブジェクトを初期化して当該オブジェクトを格納するプール部に格納するオブジェクト初期化工程と、
    オブジェクト生成要求時に、前記プール部に格納された初期化された前記オブジェクトを取り出すオブジェクト取出工程と、
    を有することを特徴とするオブジェクト管理方法。
  11. 情報処理装置に、
    当該情報処理装置にオブジェクトを実行可能なよう設定する際に、前記オブジェクトに当該オブジェクト自身を初期化する初期化機能を追加した新たなオブジェクトを生成するデプロイメント工程と、
    オブジェクトの破棄要求時に、前記新たなオブジェクトの前記初期化機能を呼び出して当該新たなオブジェクト自身を初期化して、当該新たなオブジェクトを格納するプール部に格納するオブジェクト破棄工程と、
    オブジェクトの生成要求時に、前記プール部に格納されている初期化された前記新たなオブジェクトを取り出すオブジェクト生成工程と、
    を有することを特徴とするオブジェクト管理方法。
  12. 前記オブジェクト破棄工程は、予め設定された個数の前記新たなオブジェクトが前記プール部に格納されていない場合に作動する、
    ことを特徴とする請求項11記載のオブジェクト管理方法。
JP2008235123A 2008-09-12 2008-09-12 情報処理装置 Pending JP2010067176A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008235123A JP2010067176A (ja) 2008-09-12 2008-09-12 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008235123A JP2010067176A (ja) 2008-09-12 2008-09-12 情報処理装置

Publications (1)

Publication Number Publication Date
JP2010067176A true JP2010067176A (ja) 2010-03-25

Family

ID=42192685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008235123A Pending JP2010067176A (ja) 2008-09-12 2008-09-12 情報処理装置

Country Status (1)

Country Link
JP (1) JP2010067176A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012018065A1 (ja) 2010-08-05 2012-02-09 塩野義製薬株式会社 Hivインテグラーゼ阻害活性を有する化合物の製造方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010056522A1 (en) * 1998-06-29 2001-12-27 Raju Satyanarayana Methods and apparatus for memory allocation for object instances in an object-oriented software environment
JP2007086838A (ja) * 2005-09-20 2007-04-05 National Institute Of Advanced Industrial & Technology ゼロガベージコレクション通信仲介装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010056522A1 (en) * 1998-06-29 2001-12-27 Raju Satyanarayana Methods and apparatus for memory allocation for object instances in an object-oriented software environment
JP2007086838A (ja) * 2005-09-20 2007-04-05 National Institute Of Advanced Industrial & Technology ゼロガベージコレクション通信仲介装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200201267005; 上條晃宏: 'サーバ・サイドJavaプログラムのためのリソースの効率的な使用法' Java  WORLD 第4巻,第9号, 20000901, p.92-97, (株)IDGジャパン *
JPN6012054714; 上條晃宏: 'サーバ・サイドJavaプログラムのためのリソースの効率的な使用法' Java  WORLD 第4巻,第9号, 20000901, p.92-97, (株)IDGジャパン *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012018065A1 (ja) 2010-08-05 2012-02-09 塩野義製薬株式会社 Hivインテグラーゼ阻害活性を有する化合物の製造方法

Similar Documents

Publication Publication Date Title
US7614059B2 (en) System and method for the discovery and usage of local resources by a mobile agent object
CN107302604B (zh) 基于Kubernetes的PaaS平台域名配置方法及装置和电子设备
KR101122787B1 (ko) 보안관련 프로그래밍 인터페이스
CN1924863B (zh) 在远程计算机上运行为因特网访问而配置的软件的方法和系统
JP2020509443A (ja) ブロックチェーン上のネイティブ契約を実施するためのシステムおよび方法
CN109672580B (zh) 全链路监控方法、装置、终端设备及存储介质
US9417938B2 (en) Remote procedure call chains
US8812683B2 (en) Service scripting framework
CN106331065B (zh) 一种用于具有服务容器的主机系统的代理应用以及系统
KR20060051932A (ko) 소프트웨어를 실행 동안 업데이트하는 시스템, 방법 및컴퓨터-판독가능 매체
CN108768957B (zh) 一种应用的用户信息管理的方法、设备及系统
US20070094675A1 (en) Object mobility
US20140047553A1 (en) Method and apparatus for data security reading
WO2019020651A3 (fr) Un système de communication et un procédé d'accès et de déploiement des microservices éphémères sur une plateforme hétérogène
CN108228077B (zh) 存储区的管理方法、运行方法、装置、设备、可读介质
JP2011096045A (ja) 計算機、計算機システム、及び、アプリケーション実行方法
KR101974989B1 (ko) 위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치
US20140053276A1 (en) Safe data storage method and device
CN112422581A (zh) JVM中的Webshell网页检测方法、装置及设备
CN106980502A (zh) 一种在线获取bios固件更新的方法
CN111066000A (zh) 对在托管运行时环境中的页面共享进行优化的可重放执行
CN111399860A (zh) 轻应用部署方法、装置、计算机设备和存储介质
JP6329329B2 (ja) コード・キャッシング・システム
JP6560824B2 (ja) セキュアエレメント内のパッケージを管理する方法
JP2010067176A (ja) 情報処理装置

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Effective date: 20100630

Free format text: JAPANESE INTERMEDIATE CODE: A7423

A621 Written request for application examination

Effective date: 20110803

Free format text: JAPANESE INTERMEDIATE CODE: A621

RD07 Notification of extinguishment of power of attorney

Effective date: 20120712

Free format text: JAPANESE INTERMEDIATE CODE: A7427

A131 Notification of reasons for refusal

Effective date: 20121023

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Effective date: 20130305

Free format text: JAPANESE INTERMEDIATE CODE: A02