JP2013511766A - クラスタベースのjavaアプリケーションシステムのコードをロードおよび更新する装置および方法 - Google Patents

クラスタベースのjavaアプリケーションシステムのコードをロードおよび更新する装置および方法 Download PDF

Info

Publication number
JP2013511766A
JP2013511766A JP2012539890A JP2012539890A JP2013511766A JP 2013511766 A JP2013511766 A JP 2013511766A JP 2012539890 A JP2012539890 A JP 2012539890A JP 2012539890 A JP2012539890 A JP 2012539890A JP 2013511766 A JP2013511766 A JP 2013511766A
Authority
JP
Japan
Prior art keywords
class
java
java class
version
database
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.)
Granted
Application number
JP2012539890A
Other languages
English (en)
Other versions
JP5705869B2 (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 アリババ グループ ホールディング リミテッド
Publication of JP2013511766A publication Critical patent/JP2013511766A/ja
Application granted granted Critical
Publication of JP5705869B2 publication Critical patent/JP5705869B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本開示は、クラスタベースのJavaアプリケーションシステムのコードをロードする装置および方法の実施形態を開示する。本開示によって与えられるロード手法は、クラスタ内の各サーバーに最新コードを配信(publish)する必要がなく、クラスタの各サーバー内のJavaアプリケーションを再起動する必要もない。このロード手法で必要とされるのは、SVNサーバーなどのコード格納サーバー内のコードを更新することだけである。クラスタ内の各サーバーは最新コードを自動的にロードし、これによりJavaクラスタシステムの有用性が向上する。

Description

本願は、2009年11月23日に出願された中国特許出願第200910221980.7号「クラスタベースのJAVAアプリケーションシステムのコードをロードおよび更新する装置および方法」からの優先権を主張し、また、その全体を参照により本明細書に組み込む。
本開示はネットワークデータ処理分野に関し、より具体的には検索方法およびシステムに関する。
一般にクラスタベースのシステムは複数の同種または異種コンピュータによって接続され、協調して特定のタスクを完了する。クラスタベースのJavaアプリケーションシステムは、クラスタ配備に基づくJavaアプリケーションシステムである。
Java WebアプリケーションシステムまたはJavaタスククラスタシステムなどの一般的なクラスタベースのJavaアプリケーションシステムでは、必要なクラスデータベースをクライアント側で導入および配備することがシステム運用のために必要とされる。コードまたはクラスデータベースの更新が必要になると、その更新されるコードをクラスタ内の全サーバーに配信(publish)するとともに、サーバー内のJavaアプリケーションを再起動する必要がある。
現在のクラスタベースのJavaアプリケーションシステムは、典型的には、コードの更新またはリロードの対象であるか否かにかかわらず、クラスタ内の全サーバーに対する更新コードのリロードまたは更新を必要とする。その結果、各サーバーでのJavaアプリケーションの再起動が必要になる。仕事量が多ければ、このプロセスに多大な時間が消費されて効率が低下することになりがちである。
本開示の目的は、クラスタベースのJavaアプリケーションシステムのコードをロードおよび更新する装置および方法を提供し、コードの効率的なロードおよび更新を実現することである。
上記の目的を達成するため、本開示は以下に要約する手法を提供する。
1つの態様において、クラスタベースのJavaアプリケーションシステムのコードをロードするための装置がJavaクラスタのサーバーに配置される。この装置は、受信ユニット、発見ユニット、判定ユニット、および処理ユニットを備えてもよい。
受信ユニットは、ロードすべき最初のJavaクラスのクラス名が含まれる、クラスをロードするように求める要求をサーバーから受け取ってもよい。
発見ユニットは、クラス名に従ってクラス登録情報から最初のJavaクラスのエンティティの格納アドレスを発見してもよく、その格納アドレスに従って最初のJavaクラスの最新バージョン番号を取得する。
判定ユニットは、最初のJavaクラスの最新バージョン番号が以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と同一であるか判定してもよい。
処理ユニットは、当該クラスをロードするために上記の格納アドレスから最初のJavaクラスの最新バージョンを取得してもよく、最初のJavaクラスの最新バージョンが以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と異なる場合、クラスバージョンレコード内の最初のJavaクラスの最新バージョン番号を更新する。最初のJavaクラスの最新バージョンが以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と異なっていない場合、処理ユニットは最初のJavaクラスを直接ロードしてもよい。
1つの実施形態において、発見ユニットは、クラス登録情報の内容をクラスアドレステーブルに記録してもよい。
1つの実施形態において、クラスアドレステーブルの主キーは最初のJavaクラスのクラス名を記録してもよく、クラスアドレステーブルの主キーの値は最初のJavaクラスの格納アドレスを記録してもよい。
1つの実施形態において、発見ユニットは、最初のJavaクラスのバージョン情報をクラスバージョンテーブルに記録してもよい。
1つの実施形態において、クラスバージョンテーブルの主キーは最初のJavaクラスのクラス名を記録してもよく、クラスバージョンテーブルの主キーの値は以前にロードされたJavaクラスのバージョン番号を記録してもよい。
別の態様において、クラス登録情報を維持するために使用されるクラス登録用のシステムは、取得ユニット、追加ユニット、および更新ユニットを備えてもよい。
取得ユニットは、Javaクラスデータベースの格納アドレスに従ってJavaクラスデータベースを取得してもよい。
追加ユニットは、Javaクラスデータベースを横断検索し、クラス登録情報に記録されておらず、Javaクラスデータベースには含まれている新しいクラスをクラス登録情報に挿入してもよい。
更新ユニットは、Javaクラスデータベースを横断検索し、Javaクラスデータベースに記録されている各Javaクラスのそれぞれの格納アドレスに従ってクラス登録情報内の対応するJavaクラスの格納アドレスを更新してもよい。
1つの実施形態において、クラス登録情報は、クラス名、クラスデータベース名、およびJavaクラスデータベースの格納アドレスを含んでもよい。
さらに別の態様において、クラスタベースのJavaアプリケーションシステムのコードをロードするためにJavaクラスタのサーバーで使用される方法は、ロードすべき最初のJavaクラスのクラス名が含まれる、クラスをロードする要求をサーバーから受け取ってもよく、上記方法は、そのクラス名に従ってクラス登録情報から最初のJavaクラスの格納アドレスを発見してもよく、その格納アドレスに従って最初のJavaクラスの最新バージョン番号を取得してもよく、その最初のJavaクラスの最新バージョン番号が以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と同一であるか判定してもよく、その最初のJavaクラスの最新バージョンが以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と異なる場合、その最初のJavaクラスの最新バージョンをロードして、クラスバージョンレコード内の最初のJavaクラスのバージョン番号を更新してもよく、かつ、最初のJavaクラスの最新バージョンが以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と異なっていない場合には、その最初のJavaクラスを直接ロードしてもよい。
1つの実施形態において、クラス登録情報の内容はクラスアドレステーブルに記録されてもよい。クラスアドレステーブルに記録されるクラス登録情報の内容は、最初のJavaクラスのクラス名を記録するクラスアドレステーブルの主キー、および最初のJavaクラスの格納アドレスを記録するクラスアドレステーブルの主キーの値を含んでもよい。
1つの実施形態において、クラス登録情報の内容はクラスバージョンテーブルに記録されてもよい。クラスバージョンテーブルに記録された最初のJavaクラスのバージョン情報は、最初のJavaクラスのクラス名を記録するクラスバージョンテーブルの主キー、および以前にロードされたJavaクラスのバージョン番号を記録するクラスバージョンテーブルの主キーの値を含んでもよい。
さらに別の態様において、クラス登録の方法は、Javaクラスデータベースの格納アドレスに従ってJavaクラスデータベースを取得してもよく、クラス登録情報に記録されておらず、Javaクラスデータベースには含まれている新しいクラスをクラス登録情報に挿入してもよく、Javaクラスデータベースに記録されたJavaクラスの格納アドレスに従ってクラス登録情報内の対応するJavaクラスの格納アドレスを更新してもよい。
1つの実施形態において、クラス登録情報は、クラス名、クラスデータベース名、およびJavaクラスデータベースの格納アドレスを含んでもよい。
本開示のこの実施形態において、受信ユニットは、サーバーから送信されるクラスのロード要求を受け取るように構成される。このクラスロード要求には、ロードすべき最初のJavaクラスのクラス名が含まれる。発見ユニットは、そのクラス名に従ってクラス登録情報から最初のJavaクラスのエンティティの格納アドレスを発見し、その格納アドレスに従って最初のJavaクラスの格納アドレスから最初のJavaクラスの最新バージョン番号を取得するように構成される。判定ユニットは、その最初のJavaクラスの最新バージョン番号が以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と同一であるか判定するように構成される。処理ユニットは、ロードすべき最初のJavaクラスの格納アドレスから最初のJavaクラスの最新バージョンを取得するとともに、その最初のJavaクラスの最新バージョンが以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と異なる場合には最初のJavaクラスのバージョン番号を更新し、異なっていなければ最初のJavaクラスを直接ロードするように構成される。本開示によって与えられるロード手法は、クラスタ内の各サーバーに最新コードを配信する必要がなく、クラスタ内の各サーバーのJavaアプリケーションを再起動する必要もない。SVNサーバーなどのコード格納サーバーにおいてコードが更新されると、クラスタ内の各サーバーはその最新コードを自動的にロードすることができ、それによりJavaクラスタシステムの有用性が向上する。
本開示の実施形態または最新技術の手法をより的確に例示するものとして、次にその実施形態の説明に使用される図を簡単に紹介する。以下の図は、本開示のいくつかの実施形態にのみ関係する。本開示の図に基づき、当業者は、これ以外の図を創造的な努力なしに取得することができる。
本開示に基づく例示的な実施形態の装置の図である。 本開示に基づくアプリケーションのシナリオにおける別の実施形態の装置の図である。 本開示に基づく例示的な実施形態の装置内のユニットを示す。 本開示に基づく例示的システムの図である。 本開示に基づく例示的方法のフローチャートを示す。 本開示に基づく別の例示的方法のフローチャートを示す。 本開示に基づく例示的方法のフローチャートを示す。 本開示に基づく例示的方法のフローチャートを示す。
当業者が本開示の手法をより的確に理解できるようにするため、本開示は、図面に示した各図を参照して、当該手法を明確かつ完全に説明する。これらの図は、本開示のすべての実施形態ではなく、一部の実施形態にのみ関係する。当業者は、本開示の実施形態に基づき、創造的な努力なしに他の実施形態を取得することができる。それらの実施形態はすべて本開示の保護範囲に属する。
図1は、本開示に基づくクラスタベースのJavaアプリケーションシステムをロードするための装置の図である。この装置はJavaクラスタの各サーバー内に配置されてもよい。この装置は、受信ユニット101、発見ユニット102、判定ユニット103、および処理ユニット104を備える。
受信ユニット101は、サーバーからクラスのロード要求を受け取るように構成される。このクラスロード要求には、最初のJavaクラスのクラス名が含まれる。
最初のJavaクラスとは、クラスロード要求に入っているロードすべきJavaクラスのことを指す。たとえば、ロードすべき1つのJavaクラスはcom.foo.helloworldである。
発見ユニット102は、上記のクラス名に従ってクラス登録情報から最初のJavaクラスのエンティティの格納アドレスを発見するとともに、その格納アドレスに従って最初のJavaクラスの格納アドレスから最初のJavaクラスの最新バージョン番号を取得するように構成される。
テーブルによってクラス登録情報を記録することができる。たとえば、本開示の一実施形態では、クラス登録テーブル(ClassTable)にクラス登録情報が記録される。
Javaクラスおよび各Javaクラスの格納アドレスを記録するために、クラス登録テーブルをデータベースに格納することができる。
図2は、本開示に基づく実施形態の装置の図である。図2において、クラス登録テーブルはデータベース201に格納される。この実施形態によって与えられるコードロード装置202は、データベース201と接続されたサーバー203に配置される。コードロード装置202は、データベース201と通信して、データベース201に格納されたクラス登録情報を読み出すことができる。
通常、Javaクラスはjar形式のzipパッケージに圧縮される。本実施形態はこの方法を採用している。図2の実施形態において、Javaクラスがjarパッケージに圧縮された後、そのjarパッケージがサブバージョン(SVN)サーバー204にアップロードされる。SVNサーバーは、jarパッケージを格納し、各jarパッケージのバージョン情報を記録する。SVNは評価が高いソースコードバージョン管理システムである。SVNサーバー204は、ソースコードを格納および管理するためにサブバージョンによって使用されるサーバーである。SVNサーバーに格納された各jarパッケージはSVNアドレスを有し、そのSVNアドレスに従って発見される。
図2において、SVNサーバー204はサーバー203と接続されている。サーバー203上のコードロード装置202は、SVNサーバー204と通信し、各JavaクラスのそれぞれのSVNアドレスに従ってSVNサーバー204から各Javaクラスを取得することができる。
下記の表1は、本開示の実施形態によって与えられるクラス登録テーブルの例である。クラス登録テーブルに記録される情報には、Javaクラス名、そのJavaクラスが属するjarパッケージの名前、およびそのJavaクラスが属するjarパッケージのSVNアドレスが含まれる。
表1に示した例において、Javaクラス名はcom.foo.hellowroldである。そのJavaクラスが属するjarパッケージの名前はhello−bizである。そのJavaクラスが属するjarパッケージのSVNアドレスは、http://svn.foo−inc.com/repos/example/hellojarである。
Figure 2013511766
SVNサーバー204は、Javaクラスのすべての更新を記録する。ユーザーがJavaコードを改訂し、SVNクライアントソフトウェアを介してその改訂JavaコードをSVNサーバー204に提出した後、SVNサーバー204は、新しいバージョンの改訂Javaコードを生成して、その新バージョンを記録する。実際的には、バージョン番号を使用して各バージョンのJavaコードを記録することができる。同じJavaクラスの場合は、バージョンが新しいほどバージョン番号が高くなる。たとえば、1つのJavaクラスのバージョン番号は15516である。ユーザーがJavaクラスを改訂し、その改訂版をSVNサーバーに提出した後、SVNサーバー204はバージョン番号を15517に更新し、以前のバージョン15516は過去バージョンになる。
データ検索の速度を向上させるため、本開示のいくつかの実施形態において、発見ユニット102は、アドレス情報および最初のJavaクラスのバージョン情報をそれぞれクラスアドレステーブルおよびクラスバージョンテーブルによって記録することができる。
具体的には、クラスアドレステーブルの主キーに最初のJavaクラスのクラス名が記録され、クラスアドレステーブルの主キーの値に最初のJavaクラスの格納アドレスが記録される。
Figure 2013511766
表2は、クラスアドレステーブルの例である。上記の表に示すように、Javaクラスはjarパッケージに圧縮される。そのjarパッケージがSVNサーバー204に格納される。クラスアドレステーブルは主キーによってクラス名を記録する。表2の例において、クラス名はcom.foo.helloworldである。クラスアドレステーブルは、そのJavaクラスが属するjarパッケージのSVNアドレスを記録する。表2の例において、そのアドレスはhttp://svn.foo−inc.com/repos/example/hellojarである。
Figure 2013511766
表3は、クラスバージョンテーブルの例である。クラス名を記録するために主キーが使用される。図3の例において、クラス名はcom.foo.helloworldである。そのJavaクラスが属するjarパッケージの以前にロードされたバージョンを記録するために主キーの値が使用される。図3の例において、com.foo.helloworldクラスが属するjarパッケージの以前にロードされたバージョンは22162である。
判定ユニット103は、最初のJavaクラスの最新バージョン番号が以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と同一であるか判定するように構成される。
クラス登録情報は、すべての記録されたクラスに関する情報を記録する。本開示のこの実施形態では、クラスアドレスおよびバージョン情報がクラスアドレステーブルおよびクラスバージョンテーブルによって記録される。
処理ユニット104は、ロードすべき最初のJavaクラスの格納アドレスから最初のJavaクラスの最新バージョンを取得し、その最初のJavaクラスの最新バージョンが以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と異なる場合、最初のJavaクラスのバージョン番号を更新するように構成される。最初のJavaクラスの最新バージョンが以前にロードされてローカルに格納されている最初のJavaクラスバージョン番号と異なっていなければ、処理ユニット104は、最初のJavaクラスを直接ロードする。
処理ユニット104は、毎回クラスをロードする時に、SVNサーバー204内の当該クラスが格納されているjarパッケージが更新されていないか確認する。更新されていれば、処理ユニット104は、クラスバージョンテーブル内の対応バージョンを主キーの最新の値に更新する。
この実施形態において、特定のJavaクラスがすでにロードされており、そのバージョンが同一である場合、コードロード装置202は、そのクラスを直接ロードしてローカルに実行する。バージョンが同一でなければ、コードロード装置202は、サーバー203からJavaクラスの最新バージョンを取得し、その最新バージョンをロードして実行する必要がある。
図3を参照して、本開示の一実施形態によるコードロード装置202は、Javaクラスをjar形式のzipパッケージに圧縮し、そのjarパッケージをSVNサーバー204に格納する。図3に示すように、図1に示した処理ユニット104は、第一の取得サブユニット301、第二の取得サブユニット302、第一の処理サブユニット303、および第二の処理サブユニット304を備えることができる。
第一の取得ユニット301は、最初のJavaクラスの最新バージョンが以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と異なる場合、当該Javaクラスの最新バージョンが属するjarパッケージのSVNアドレスを取得するように構成される。
第二の取得ユニット302は、そのSVNアドレスに従ってJavaクラスの最新バージョンを取得するように構成される。
第一の処理ユニット303は、最初のJavaクラスをロードするとともに、クラスバージョンレコード内の最初のJavaクラスのバージョン番号を更新するように構成される。
第二の処理ユニット304は、最初のJavaクラスの最新バージョンが以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と同一である場合、最初のJavaクラスを直接ロードするように構成される。
既存のコード更新手法では、最新コードをクラスタの各サーバーに頻繁に配信することが必要とされる。これには時間がかかり、人的資源および物理的資源を浪費することになりがちである。クラスタ内に多数のサーバーが存在する場合には、コードをロードする効率が著しく低下する。本開示によって与えられるコードロード装置202は、クラスタ内の各サーバーに最新コードを配信する必要がなく、クラスタの各サーバー内のJavaアプリケーションを再起動する必要もない。コードロード装置202が必要とするのは、SVNサーバー204などのコード格納サーバー内のコードを更新することだけである。システム内の各サーバーは、最新コードを自動的にロードし、それによりJavaクラスタシステムの有用性およびコードのロード効率が向上する。
さらに、既存のコード更新手法では、コードロードプロセスにおいて、クラスタ内の1つ以上のサーバーが更新を逃すか、または更新に失敗すると、バージョンの異なるコードがクラスタ内の異なるサーバー上で同時に実行されることになる。そのような状況ではデータを損傷する恐れがあり、回復不能な重大な結果を生じる場合もある。本開示によって与えられるコードロード装置202は、SVNサーバー204などのコード格納サーバー内のコードに従って各サーバーに更新を実行させ、各サーバーが自動的に最新バージョンをロードできることを保証するものである。これにより、バージョンの異なるコードが異なるサーバー上で同時に実行されるという状況から生じるデータの損傷が回避される。本開示に提案された手法によれば、回復不能な重大な結果の発生も回避され、クラスタベースのJavaアプリケーションシステム全体の運用の安定性が向上する。
コードロード装置202がクラス登録テーブルから正確で完全なクラス情報を取得できることをさらに保証するものとして、本開示は、とくにクラス登録テーブルを維持することを目的としたクラス登録システムも提供する。図4を参照して、クラス登録システムは、取得ユニット401、追加ユニット402、および更新ユニット403を備えることができる。
取得ユニット401は、受け取ったJavaクラスデータベースの格納アドレスに従ってJavaクラスデータベースを取得するように構成される。
追加ユニット402は、Javaクラスデータベースを横断検索し、クラス登録テーブルに記録されていないがJavaクラスデータベースには含まれる新しいクラスをクラス登録テーブルに挿入するように構成される。
更新ユニット403は、Javaクラスデータベースを横断検索し、Javaクラスデータベースに記録されたJavaクラスの格納アドレスに従ってクラス登録テーブル内の対応するJavaクラスの格納アドレスを更新するように構成される。
本開示によって与えられるクラス登録システムは、Javaクラスデータベース内の新しいクラスをクラス登録テーブルに即座に記録し、Javaクラスデータベースに記録されている各Javaクラスの格納アドレスに従ってクラス登録テーブル内の対応Javaクラスの格納アドレスを更新することができる。これにより、クラス登録テーブルが最新かつ完全なJavaクラス情報を記録することが保証され、システムによるロード動作の強力な保護が実現される。
本開示の一実施形態により、Javaクラスタのサーバーで使用するためのクラスタベースのJavaアプリケーションシステムのコードをロードする方法が提供される。図5を参照して、この方法を以下に説明する。
S501において、本方法は、クラスをロードするように求める要求をサーバーから受け取る。このクラスロード要求には、ロードすべき最初のJavaクラスのクラス名が含まれる。
S502において、本方法は、上記のクラス名に従ってクラス登録テーブルから最初のJavaクラスの格納アドレスを発見し、その格納アドレスに従って最初のJavaクラスの格納アドレスから最初のJavaクラスの最新バージョン番号を取得する。
データ検索の速度を向上させるため、本開示のいくつかの実施形態では、クラスアドレステーブルを使用してクラス登録テーブルの内容を記録することができる。具体的には、クラスアドレステーブルの主キーによって最初のJavaクラスのクラス名を記録し、クラスアドレステーブルの主キーの値によって最初のJavaクラスの格納アドレスを記録する。
任意選択により、最初のJavaクラスのバージョン情報を記録するためにクラスバージョンテーブルが使用される。具体的には、クラスバージョンテーブルの主キーを使用してクラス名を記録する。また、クラスバージョンテーブルの主キーの値を使用して、最初のJavaクラスの以前にロードされたバージョンを記録する。
S503において、本方法は、最初のJavaクラスの最新バージョン番号が以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と同一であるか判定する。
504において、最初のJavaクラスの最新バージョンが以前にロードされてローカルに格納されている最初のJavaクラスのバージョン番号と異なる場合、本方法は、最初のJavaクラスの最新バージョンをロードし、クラスバージョンレコード内の最初のJavaクラスのバージョン番号を更新する。2つが異なっていなければ、本方法は、最初のJavaクラスを直接ロードする。
図5に示すロード方法の実装をさらに保証するものとして、本開示の一実施形態は、クラス登録の方法も提供する。図6を参照して、その方法を以下に説明する。
S601において、本方法は、受け取ったJavaクラスデータベースの格納アドレスに従ってJavaクラスデータベースを取得する。
S602において、本方法は、Javaクラスデータベースを横断検索し、クラス登録テーブルに記録されておらず、Javaクラスデータベースには含まれる新しいクラスをクラス登録テーブルに挿入する。
クラス登録テーブルの内容には、クラス名、クラスデータベース名、およびクラスデータベースの格納アドレスが含まれる。
S603において、本方法は、Javaクラスデータベースを横断検索し、Javaクラスデータベースに記録されたJavaクラスの格納アドレスに従ってクラス登録テーブル内の対応Javaクラスの格納アドレスを更新する。
本開示によって与えられる方法は、動作S602によって新しいクラスの登録を実行し、Javaデータベースの完全性を保証する。本方法はまた、動作S603によって各Javaクラスの格納アドレスをリアルタイムで更新し、Javaデータベースに格納された情報の正確さを保証する。これにより、図5に示す方法の実装が保証される。
本開示の一実施形態によって与えられるコード装置方法を図7に示す。説明のための一例として、プログラマAが1つのJavaクラスを書く場合を想定する。そのJavaクラスの機能は、Webページに“hello,world”と表示することであり、そのJavaクラスのクラス名はhelloworld.classである。このJavaクラスはhello.jarというJavaパッケージに圧縮され、SVNサーバーにアップロードされる。
この実施形態において、hello.jar Javaパッケージ内のすべてのクラスおよびhello.jar Javaパッケージの対応SVNサーバーのURLがクラス登録テーブルに記録される。
Javaクラスタ内のサーバーにあるプログラムAAAAがhello.worldクラスを使用することが必要になった場合、本開示によって与えられるコード装置方法は、以下に説明する多数の動作を実行する。
S701において、プログラムAAAAが開始されると、そのサーバー上のクラスロード装置がクラス登録テーブル内のレコードを横断検索し、すべてのクラスおよび対応するSVN URLレコードをローカルに格納されたクラスアドレステーブル(SvnUrlMap)に記録する。
S702において、プログラムAAAAにhelloworld.classを使用する必要が生じると、クラスロード装置がSvnUrlMapからhelloworld.classのjarパッケージに対応するSVN URLを発見する。
S703において、上記のSVN URLに従ってSVNサーバーにアクセスし、helloworld.classに対応するhello.jarパッケージを取得するとともに、helloworld.classの最新バージョンを取得する。
たとえば、helloworld.classの現在の最新バージョンは10000である。
S704において、helloworld.classのクラス名および最新バージョンをローカルクラスバージョンテーブル(ClassVersionMap)に記録する。ClassVersionMapの主キーは“helloworld”であり、主キーの値は10000である。
S705において、SVNサーバーからhelloworld.classをダウンロードする。
S706において、helloworld.classをロードして、そのhelloworld.classを実行する。
その後、プログラマAがhelloworld.classを改訂し、hello.jarを再圧縮して、それをSVNサーバーに提出したと仮定すれば、SVNサーバーは、その最新のhello.jarを受け入れて、最新バージョン番号10001を生成する。
プログラムAAAAが再び実行された場合、helloworld.classを使用する必要が生じた時点で、図8に示すように、本開示の一実施形態によって後述のようなロード方法が提供される。
S801において、プログラムAAAAが配置されているサーバー上のロード装置が“helloworld”に従ってSvnUrlMapから対応SVN URLを発見する。
図7に示す方法により、helloworldクラスの情報がすでに記録されている。そのクラスを再び使用する時、本方法はローカルのSvnUrlMapにあるそのクラスの対応URLを直接検索することができる。
S802において、本方法は、上記のSVN URLに従ってSVNサーバーにアクセスし、helloworld.classの最新バージョンを取得する。この例では10001が最新バージョンである。
S803において、helloworld.classの最新バージョン番号をClassVersionMapにローカルに格納されたhelloworld.classのバージョン番号と比較する。2つが同一ならば動作S805に進み、同一でなければ動作S804に移る。
この実施形態において、ローカルに記録されたhelloworld.classのバージョン番号は10000であり、SVNサーバーからのhelloworld.classの最新バージョン番号は10001である。比較すると、helloworld.classの最新バージョン番号はローカルに記録されたバージョン番号よりも高い。これは、helloworld.classがすでに更新されていることを示す。
S804において、SVN URLに従ってSVNサーバーから最新のhelloworld.classをダウンロードする。
S805において、helloworld.classをロードして、そのhelloworld.classを実行する。
本方法は、新しい各クラスを事前に記録する。特定のクラスを使用する可能性がある場合、そのクラスの格納アドレスがそのクラスの登録情報に従って取得され、そのクラスのバージョン情報が上記の格納アドレスに従ってクラスの格納場所から取得される。比較後、そのクラスの最新バージョンが取得され、ロード後に使用される。本方法では、クラスタ内の各サーバーに最新コードを配信する必要がなく、クラスタ内の各サーバーのJavaアプリケーションを再起動する必要もない。更新に備えてコードをSVNサーバー204などのコード格納サーバーに格納する必要があるだけである。クラスタ内の各サーバーは最新コードを自動的にロードし、それによりJavaクラスタシステムの有用性が向上するとともにコードのロード効率が向上する。
説明の便宜上、上述のシステムおよび装置は各種ユニットに機能的に分割されており、それらが別々に説明されている。開示されたシステムおよび装置を実現する場合、各種ユニットの機能は、ソフトウェアおよび/またはハードウェアの1つまたは複数のインスタンスに実装されてもよい。
上述の例示的な実施形態から、当業者は、開示された方法およびシステムがソフトウェアおよび普遍的なハードウェアプラットフォームを使用して実現可能であることを明確に理解することができる。この理解に基づき、本開示の技術的スキーム、または既存の技術に寄与する部分は、ROM/RAM、ハードドライブ、光ディスクなどの1つ以上のコンピュータ可読記憶媒体に格納されたソフトウェア製品という形で実装されてもよい。このソフトウェアには、本開示の例示的な実施形態に記述された方法を計算装置(例:パーソナルコンピュータ、サーバーまたはネットワーク装置)に実行させるための命令が含まれる。
本開示では、さまざまな例示的な実施形態が漸次的に説明されている。例示的な実施形態の同一部分または同様の部分は相互に参照可能である。各例示的な実施形態はそれぞれ他の例示的な実施形態とは焦点が異なる。具体的には、例示的方法と基本的に一致したものとして、各システム例示的な実施形態が比較的簡略に説明されている。その詳細については、例示的方法の関連部分を参照することができる。
本開示は、汎用または専用のコンピュータシステムの環境または構成で利用されてもよい。その例には、パーソナルコンピュータ、サーバーコンピュータ、ハンドヘルド型装置または携帯型装置、タブレット装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットアップボックス、プログラム可能な顧客電子装置、ネットワークPC、小型コンピュータ、大型コンピュータ、およびそのいずれかのシステムまたは装置を含む分散コンピューティング環境が含まれる。
本開示の内容は、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の一般的な文脈の中に位置づけられる。一般的に、プログラムモジュールには、特定のタスクを実行するか、または特定の抽象データ型を実装するためのルーチン、プログラム、オブジェクト、モジュール、データ構造などが含まれる。開示された方法およびシステムは、分散コンピューティング環境で実現されてもよい。分散コンピューティング環境では、通信ネットワークを介して接続された遠隔処理装置によってタスクが実行される。分散コンピューティング環境において、プログラムモジュールは、ローカルおよびリモートコンピュータの記憶媒体(記憶装置を含む)に配置されてもよい。
本開示を実施形態によって説明したが、当然ながら、当業者は本開示の趣旨および範囲から逸脱することなく、さまざまな方法で本開示を変更または修正することができる。したがって、これらの修正および変形は、本開示およびその等価物に関する特許請求の範囲に含まれるものとみなされるべきである。

Claims (14)

  1. Javaクラスタのサーバーに配置された、クラスタベースのJavaアプリケーションシステムのコードをロードするための装置であって、
    ロードすべき最初のJavaクラスのクラス名を含む、クラスをロードするための要求をサーバーから受け取る受信ユニットと、
    前記クラス名に従ってクラス登録情報から前記最初のJavaクラスのエンティティの格納アドレスを発見し、前記格納アドレスに従って前記最初のJavaクラスの最新バージョン番号を取得する発見ユニットと、
    前記最初のJavaクラスの前記最新バージョン番号が以前にロードされてローカルに格納されている前記最初のJavaクラスのバージョン番号と同一であるかどうかを判定する判定ユニットと、
    前記クラスをロードするために前記格納アドレスから前記最初のJavaクラスの前記最新バージョンを取得し、前記最初のJavaクラスの前記最新バージョンが以前にロードされてローカルに格納されている前記最初のJavaクラスの前記バージョン番号と異なる場合、クラスバージョンレコード内の前記最初のJavaクラスの前記最新バージョン番号を更新する処理ユニットであって、前記最初のJavaクラスの前記最新バージョンが以前にロードされてローカルに格納されている前記最初のJavaクラスの前記バージョン番号と異ならない場合、前記最初のJavaクラスを直接ロードする、処理ユニットと、を備える、装置。
  2. 前記発見ユニットは、前記クラス登録情報の内容をクラスアドレステーブルに記録する、請求項1に記載の装置。
  3. 前記クラスアドレステーブルの主キーが前記最初のJavaクラスの前記クラス名を記録し、前記クラスアドレステーブルの前記主キーの値が前記最初のJavaクラスの前記格納アドレスを記録する、請求項2に記載の装置。
  4. 前記発見ユニットは、前記最初のJavaクラスのバージョン情報をクラスバージョンテーブルに記録する、請求項1に記載の装置。
  5. 前記クラスバージョンテーブルの主キーが前記最初のJavaクラスの前記クラス名を記録し、前記クラスバージョンテーブルの前記主キーの値が前記以前にロードされたJavaクラスの前記バージョン番号を記録する、請求項4に記載の装置。
  6. クラス登録情報を維持するために使用されるクラス登録のためのシステムであって、
    Javaクラスデータベースを前記Javaクラスデータベースの格納アドレスに従って取得する取得ユニットと、
    前記Javaクラスデータベースを横断検索し、クラス登録情報に記録されておらず、Javaクラスデータベースには含まれる新しいクラスを前記クラス登録情報に挿入する追加ユニットと、
    前記Javaクラスデータベースを横断検索し、前記Javaクラスデータベースに記録されている各Javaクラスの前記それぞれの格納アドレスに従って、前記クラス登録情報内の対応するJavaクラスの前記格納アドレスを更新する更新ユニットと、を備える、システム。
  7. 前記クラス登録情報は、クラス名、クラスデータベース名、および前記Javaクラスデータベースの前記格納アドレスを含む、請求項6に記載のシステム。
  8. クラスタベースのJavaアプリケーションシステムのコードをロードするためのJavaクラスタのサーバーで使用される方法であって、
    ロードすべき最初のJavaクラスのクラス名を含む、クラスをロードする要求をサーバーから受け取ることと、
    前記クラス名に従ってクラス登録情報から前記最初のJavaクラスの格納アドレスを発見することと、
    前記格納アドレスに従って前記最初のJavaクラスの最新バージョン番号を取得することと、
    前記最初のJavaクラスの最新バージョン番号が以前にロードされてローカルに格納されている前記最初のJavaクラスのバージョン番号と同一であるかどうかを判定することと、
    前記最初のJavaクラスの前記最新バージョンが以前にロードされてローカルに格納されている前記最初のJavaクラスの前記バージョン番号と異なる場合に、前記最初のJavaクラスの前記最新バージョンをロードし、かつクラスバージョンレコード内の前記最初のJavaクラスの前記バージョン番号を更新することと、
    前記最初のJavaクラスの前記最新バージョンが以前にロードされてローカルに格納されている前記最初のJavaクラスの前記バージョン番号と異なっていない場合に、前記最初のJavaクラスを直接ロードすることと、を含む、方法。
  9. 前記クラス登録情報の内容がクラスアドレステーブルに記録される、請求項8に記載の方法。
  10. 前記クラスアドレステーブルに記録された前記クラス登録情報の内容が、
    前記最初のJavaクラスの前記クラス名を記録する前記クラスアドレステーブルの主キーと、
    前記最初のJavaクラスの前記格納アドレスを記録する前記クラスアドレステーブルの前記主キーの値と、を含む、請求項9に記載の方法。
  11. 前記クラス登録情報の内容がクラスバージョンテーブルに記録された、請求項8に記載の方法。
  12. 前記クラスバージョンテーブルに記録された前記最初のJavaクラスのバージョン情報は、
    前記最初のJavaクラスの前記クラス名を記録する前記クラスバージョンテーブルの主キーと、
    前記以前にロードされたJavaクラスの前記バージョン番号を記録する前記クラスバージョンテーブルの前記主キーの値と、を含む、請求項11に記載の方法。
  13. クラス登録の方法であって、
    Javaクラスデータベースを前記Javaクラスデータベースの格納アドレスに従って取得することと、
    クラス登録情報に記録されておらず、前記Javaクラスデータベースには含まれる新しいクラスを前記クラス登録情報に挿入することと、
    前記Javaクラスデータベースに記録されたJavaクラスの前記格納アドレスに従って、前記クラス登録情報内の対応するJavaクラスの前記格納アドレスを更新することと、を含む、方法。
  14. 前記クラス登録情報は、クラス名、クラスデータベース名、および前記Javaクラスデータベースの前記格納アドレスを含む、請求項13に記載の方法。
JP2012539890A 2009-11-23 2010-10-01 クラスタベースのjavaアプリケーションシステムのコードをロードおよび更新する装置および方法 Expired - Fee Related JP5705869B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200910221980.7A CN102073512B (zh) 2009-11-23 2009-11-23 一种java集群应用系统代码装载及升级装置和方法
CN200910221980.7 2009-11-23
PCT/US2010/051087 WO2011062685A1 (en) 2009-11-23 2010-10-01 Apparatus and method for loading and updating codes of cluster-based java application system

Publications (2)

Publication Number Publication Date
JP2013511766A true JP2013511766A (ja) 2013-04-04
JP5705869B2 JP5705869B2 (ja) 2015-04-22

Family

ID=44032058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012539890A Expired - Fee Related JP5705869B2 (ja) 2009-11-23 2010-10-01 クラスタベースのjavaアプリケーションシステムのコードをロードおよび更新する装置および方法

Country Status (6)

Country Link
US (1) US8555252B2 (ja)
EP (1) EP2504763A4 (ja)
JP (1) JP5705869B2 (ja)
CN (1) CN102073512B (ja)
HK (1) HK1153018A1 (ja)
WO (1) WO2011062685A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015519659A (ja) * 2012-06-08 2015-07-09 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ワイヤレスアプリケーションを発行および実行する方法ならびに装置

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8822480B2 (en) 2008-07-16 2014-09-02 Merck Sharp & Dohme Corp. Bicyclic heterocycle derivatives and use thereof as GPR119 modulators
US8914784B2 (en) 2011-06-10 2014-12-16 International Business Machines Corporation Method and system for checking the consistency of application jar files
CN102521371A (zh) * 2011-12-16 2012-06-27 北京新媒传信科技有限公司 一种文件通过web上传并自动重启服务的方法及系统
CN102495736A (zh) * 2011-12-19 2012-06-13 曙光信息产业(北京)有限公司 一种在可执行文件中标识软件代码svn版本的方法和系统
US8966441B2 (en) * 2012-07-12 2015-02-24 Oracle International Corporation Dynamic scripts to extend static applications
CN102882978A (zh) * 2012-10-16 2013-01-16 北京奇虎科技有限公司 服务器和应用升级方法
CN104202401B (zh) * 2012-10-16 2019-03-22 北京奇虎科技有限公司 应用升级系统
CN103226488B (zh) * 2013-05-06 2016-08-24 中国农业银行股份有限公司 一种形式化代码生成中的效率控制方法及装置
CN103248524B (zh) * 2013-05-09 2016-04-27 北京泛华恒兴科技有限公司 基于柔性测试技术的测试数据版本控制方法、装置及系统
CN104216729B (zh) * 2013-06-05 2017-10-13 阿里巴巴集团控股有限公司 应用系统的逻辑模块更新实现方法及装置
CN106528071B (zh) * 2015-09-15 2019-08-13 阿里巴巴集团控股有限公司 目标代码的选取方法及装置
CN107451172B (zh) * 2016-03-31 2021-05-28 阿里巴巴集团控股有限公司 用于版本管理系统的数据同步方法及设备
CN106557423A (zh) * 2016-11-22 2017-04-05 深圳市掌世界网络科技有限公司 一种互联网代码自动发布方法及系统
US10649753B2 (en) * 2016-12-14 2020-05-12 Verizon Patent And Licensing Inc. Enabling user device application modularity
CN108345467B (zh) * 2017-03-14 2021-04-16 平安科技(深圳)有限公司 版本树文件的更新方法和装置
CN107239313A (zh) * 2017-06-09 2017-10-10 中国建设银行股份有限公司 Spring应用服务的升级方法和存储介质
US10572275B2 (en) * 2017-06-15 2020-02-25 Microsoft Technology Licensing, Llc Compatible dictionary layout
CN109144744A (zh) * 2017-06-28 2019-01-04 北京京东尚科信息技术有限公司 任务处理系统、方法和装置
CN107783757A (zh) * 2017-10-26 2018-03-09 福建中金在线信息科技有限公司 一种代码规范方法及装置
CN107729066B (zh) * 2017-11-08 2021-08-03 重庆扬讯软件技术股份有限公司 一种基于svn资源库自动化构建发布方法与装置
CN108717359A (zh) * 2018-05-10 2018-10-30 北京酷我科技有限公司 一种基于离线包的app模块的更新方法
CN110399352B (zh) * 2019-06-18 2023-05-30 平安科技(深圳)有限公司 处理svn日志文件的方法、装置、设备及存储介质
CN113157314B (zh) * 2021-04-30 2023-10-13 云南电网有限责任公司 一种高效智能源代码安全管理平台

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212793A (ja) * 1998-01-30 1999-08-06 Fuji Xerox Co Ltd 画像処理装置
US20060074994A1 (en) * 2004-09-24 2006-04-06 Thomas Smits Storing and using classes in databases

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6175855B1 (en) * 1996-12-20 2001-01-16 Siemens Aktiengesellschaft Method for instantiating a class having different versions
US6732139B1 (en) 1999-08-16 2004-05-04 International Business Machines Corporation Method to distribute programs using remote java objects
US8205193B2 (en) * 2001-06-11 2012-06-19 Hewlett-Packard Development Company, L.P. Runtime updating of virtual machine class files
US20040153558A1 (en) 2002-10-31 2004-08-05 Mesut Gunduc System and method for providing java based high availability clustering framework
US7206910B2 (en) 2002-12-17 2007-04-17 Oracle International Corporation Delta object replication system and method for clustered system
US7533389B2 (en) * 2003-06-20 2009-05-12 Sun Microsystems, Inc. Dynamic loading of remote classes
US7519964B1 (en) 2003-12-03 2009-04-14 Sun Microsystems, Inc. System and method for application deployment in a domain for a cluster
US7730450B2 (en) 2004-08-12 2010-06-01 National Instruments Corporation Automatic versioning and data mutation of user-defined data types
US7555746B2 (en) 2004-12-09 2009-06-30 Sap Ag System and method for registering native libraries with non-native enterprise program code
US20060271395A1 (en) 2005-05-25 2006-11-30 Harris Steven T Distributed object identity in a virtual machine cluster
WO2009135052A2 (en) 2008-05-01 2009-11-05 Kabira Technologies, Inc. Java virtual machine having integrated transaction management system
US8255430B2 (en) 2008-08-26 2012-08-28 Caringo, Inc. Shared namespace for storage clusters
CN101344858A (zh) * 2008-09-01 2009-01-14 深圳市金蝶中间件有限公司 一种j2ee工程部署的方法和装置
US8612383B2 (en) 2008-11-05 2013-12-17 Mastercard International Incorporated Method and systems for caching objects in a computer system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212793A (ja) * 1998-01-30 1999-08-06 Fuji Xerox Co Ltd 画像処理装置
US20060074994A1 (en) * 2004-09-24 2006-04-06 Thomas Smits Storing and using classes in databases

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015519659A (ja) * 2012-06-08 2015-07-09 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ワイヤレスアプリケーションを発行および実行する方法ならびに装置

Also Published As

Publication number Publication date
EP2504763A1 (en) 2012-10-03
HK1153018A1 (en) 2012-03-16
US20110265071A1 (en) 2011-10-27
CN102073512A (zh) 2011-05-25
CN102073512B (zh) 2014-07-16
EP2504763A4 (en) 2013-07-31
WO2011062685A1 (en) 2011-05-26
US8555252B2 (en) 2013-10-08
JP5705869B2 (ja) 2015-04-22

Similar Documents

Publication Publication Date Title
JP5705869B2 (ja) クラスタベースのjavaアプリケーションシステムのコードをロードおよび更新する装置および方法
US8972967B2 (en) Application packages using block maps
US10242023B2 (en) Programming model for synchronizing browser caches across devices and web services
US9612919B2 (en) Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets
US10185549B2 (en) Updating live system with static changes
US8996667B2 (en) Deploying an operating system
US7797670B2 (en) Mirrored file system
US10257110B2 (en) Using a template to update a stack of resources
US10158693B2 (en) Peer-to-peer network download optimization
US20060155674A1 (en) Image server
WO2010147926A2 (en) Catalog-based software component management
US9535925B2 (en) File link migration
US9930112B2 (en) Maintaining system firmware images remotely using a distribute file system protocol
US20220350593A1 (en) Adaptive hot reload for class changes
Hardi et al. Making containers lazy with Docker and CernVM-FS
TWI517045B (zh) JAVA cluster application system code loading and upgrading devices and methods
US9792130B2 (en) Rebooting to a UEFI application from a UEFI supported system
CN112463808A (zh) 目标集群的数据处理方法、装置和服务器
CN115714706A (zh) 基于内嵌h5的访问加速系统、方法、存储介质及电子设备
US20050108706A1 (en) Method and system for dynamically loading server code on a client to support multiple veresions of client and servers in a client/server application
US10152255B2 (en) Accelerated loading of guest virtual machine from live snapshot
Wenxuan et al. Fast boot and fast shutdown of Android on the embedded system
US20210096763A1 (en) Method, device, and computer program product for managing storage system
CN116719604A (zh) 容器迁移方法及装置、存储介质和电子设备
JP6015299B2 (ja) 設定値反映方法自動生成登録装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140701

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140930

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150225

R150 Certificate of patent or registration of utility model

Ref document number: 5705869

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees