JP2005250958A - Service execution processing system in distributed computing environment, client device and program therefor, and service execution processing method - Google Patents

Service execution processing system in distributed computing environment, client device and program therefor, and service execution processing method Download PDF

Info

Publication number
JP2005250958A
JP2005250958A JP2004062233A JP2004062233A JP2005250958A JP 2005250958 A JP2005250958 A JP 2005250958A JP 2004062233 A JP2004062233 A JP 2004062233A JP 2004062233 A JP2004062233 A JP 2004062233A JP 2005250958 A JP2005250958 A JP 2005250958A
Authority
JP
Japan
Prior art keywords
service
component
processing
calling
execution processing
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
JP2004062233A
Other languages
Japanese (ja)
Inventor
Senshiya Sumitomo
千紗 住友
Kazutoshi Yokoyama
和俊 横山
Yuji Sakata
祐司 坂田
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.)
NTT Data Group Corp
Original Assignee
NTT Data 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 NTT Data Corp filed Critical NTT Data Corp
Priority to JP2004062233A priority Critical patent/JP2005250958A/en
Publication of JP2005250958A publication Critical patent/JP2005250958A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To speed up processing by shortening a service execution request time. <P>SOLUTION: This service execution processing system for acquiring, in a distributed object environment, definition information for an interface every service use and executing the calling of of a service comprises a means generating, at the time of calling an operation provided by a certain service, a component specialized for the operation to be called, and a means executing the calling of the operation by use of the generated component. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、分散コンピューティング環境において、サービス利用のたびにインタフェースに関する定義情報を取得し、前記サービスを呼び出し実行する、分散コンピューティング環境におけるサービス実行処理システム、およびそのクライアント装置ならびにプログラム、サービス実行処理方法に関する。   The present invention provides a service execution processing system in a distributed computing environment, a client apparatus and a program thereof, and a service execution process that acquire definition information regarding an interface every time the service is used in the distributed computing environment, and call and execute the service. Regarding the method.

分散コンピューティング環境において、サービス利用アプリケーションは、その利用のたびにインタフェースに関する定義情報を取得し、サービスを動的に呼び出すことができる実装が存在する。この実行形式をダイナミックバインディングと呼ぶ。ところで、従来ダイナミックバインディングの実現方式として、様々な定義情報に対応可能な汎用的コンポーネントを用い、サービスのオペレーションを呼び出していた。具体的に説明すると、ダイナミックバインディングを用いた分散オブジェクトシステムにおける従来のリモートサービス呼び出し手順は次のようになる。
まず、クライアントはネーミングサービスにアクセスし、取得したいインタフェースの名前に対応した特定のクライアントスタブを取得する。続いて、それを用いてサービスのオペレーションのリモート呼び出しを行う。
上記した手順のうち、後者のサービスにアクセスする方法として、(1)サービス呼び出しに利用するクライアントスタブを用いたサービス呼び出しコードを直接クライアントに記述する場合と、(2)利用するクライアントスタブに依存しないコードをクライアントに記述する場合がある。
In a distributed computing environment, there is an implementation in which a service using application acquires definition information about an interface every time it is used and can dynamically call a service. This execution format is called dynamic binding. By the way, as a method for realizing dynamic binding, a service component is called using a general-purpose component that can handle various definition information. More specifically, a conventional remote service call procedure in a distributed object system using dynamic binding is as follows.
First, the client accesses the naming service and acquires a specific client stub corresponding to the name of the interface to be acquired. Subsequently, the service operation is remotely called using it.
Among the procedures described above, the latter method of accessing the service is as follows: (1) When a service call code using a client stub used for service call is directly written in the client; (2) It does not depend on the client stub used. Code may be written to the client.

図6に、上記した(1)、図7に、上記した(2)によるサービス実行手順を示す。図7におけるサービスファクトリとは、インタフェースの名前に対応したサービス処理コンポーネントを生成する部分であり、「サービス処理コンポーネント」とは、サービス呼び出し処理を実現するコード部分である。
実行時に、その都度決定されるインタフェースに合わせて動的にサービスを実行する場合、(1)に示す方法では、たとえ同じサービスでも実行するオペレーションを変更するたびに、クライアントも変更しなければならず、共通のクライアントで他のサービスを呼び出すことができないといった問題がある。また、(2)に示す方法では、汎用的なクライアントを用いることで、共通のクライアントで他のサービスを呼び出すことができるため、(1)の問題点を解決することができるが、(1)の方法では必要ではなかった以下の二つの処理が(a)(b)が追加されるため、処理が遅くなるという問題がある。
FIG. 6 shows the service execution procedure according to (1) above and FIG. 7 to (2) above. The service factory in FIG. 7 is a part that generates a service processing component corresponding to the name of the interface, and the “service processing component” is a code part that realizes a service call process.
When executing a service dynamically according to the interface determined each time at the time of execution, in the method shown in (1), the client must be changed every time the operation to be executed by the same service is changed. There is a problem that other services cannot be called by a common client. In the method shown in (2), since a common client can call another service using a general-purpose client, the problem (1) can be solved. Since the following two processes that are not necessary in the method (a) and (b) are added, there is a problem that the process becomes slow.

(a)サービス処理コンポーネントを、汎用的なコンポーネントを用いて実装しているため、オペレーションに関するオペレーションオブジェクトの生成処理と、メッセージオブジェクトの生成処理は、同一オペレーションの場合は、同一オブジェクトが再利用可能であるにも関わらず、呼び出されるたびに実行される。そのため、同一オペレーションが繰り返し呼び出される場合に、特に性能上のオーバーヘッドとなる。
(b)サービス処理コンポーネントを、汎用的なコンポーネントを用いて実装しているため、処理オーバーヘッドの大きいリフレクションを用いたメソッド呼び出しが多くなる。このことも、性能上の問題となる。なお,「リフレクション」とは、汎用的なメソッド呼び出しのために、メソッド名から動的にメソッドに関するメソッドオブジクトを生成し、それを用いてメソッドを実行する手法のことである。
(A) Since the service processing component is implemented using a general-purpose component, the operation object generation process and the message object generation process for the operation can be reused in the case of the same operation. Despite this, it is executed every time it is called. Therefore, when the same operation is called repeatedly, it becomes a performance overhead especially.
(B) Since the service processing component is mounted using a general-purpose component, method calls using reflection with a large processing overhead increase. This is also a performance problem. “Reflection” is a method of dynamically generating a method object related to a method from a method name and executing a method using the method name for general-purpose method calling.

上記した(1)(2)の手法を用いた場合のそれぞれの問題点を解決するためには、汎用性を維持しつつ、性能の劣化を最小限に抑える必要がある。これを実現する既存技術として、プログラム特化がある。「プログラム特化」とは、プログラムに与えた部分的な入力を用いて、プログラムの一部をその入力値に固定したプログラムを自動生成する技法である。これにより、汎用的で可読性の高いプログラムを特定の用途を目的としたプログラムに変換してから実行できる。   In order to solve the respective problems when the above methods (1) and (2) are used, it is necessary to minimize degradation of performance while maintaining versatility. As an existing technology that realizes this, there is a program specialization. “Program specialization” is a technique for automatically generating a program using a partial input given to the program and fixing a part of the program to the input value. As a result, a general-purpose and highly readable program can be executed after being converted into a program for a specific purpose.

次に、既存のプログラム特化の技術によって、上記の2つの問題を解決する手法を検討する。プログラム特化の中で、特にソース言語レベルで特化する手法を部分計算とよび、あるプログラムが固定入力で頻繁に実行される場合に、その入力を静的な入力として部分計算を適用することで高速化を達成できる(例えば、非特許文献1参照)。
図8にこの手法を示す。図8において、たとえば、Aのようにオペレーションを呼び出す場合に、S=4と分かれば、関数Fに対して静的な入力として部分計算を行うことで、Bのような特化されたコードを生成できる。
Next, a method for solving the above two problems using existing program specialization techniques will be examined. In program specialization, a method that specializes at the source language level is called partial calculation. When a program is frequently executed with fixed input, the partial calculation is applied as static input. (See, for example, Non-Patent Document 1).
FIG. 8 shows this technique. In FIG. 8, for example, when calling an operation like A, if S = 4 is known, by performing a partial calculation as a static input to the function F, a specialized code such as B can be obtained. Can be generated.

また、オペレーションの引数として指定されたオブジェクトの直列化と逆直列化処理のコードを特化し、それを再利用することで、リフレクションの回数を減らして、結果として性能向上を達成する技術もある(例えば、非特許文献2参照)。
ここで、「直列化処理」とは、ソフトウェア内部で扱っているデータをネットワークで送受信することができるように変換することであり、「逆直列化処理」とは、ネットワークを通じて送られてきた直列化されたデータを、ソフトウェアで扱うことのできる元のデータ形式に復元することである。図9に、引数オブジェクトの直列化、逆直列化処理を特化させる方法が示されている。この方法について、クライアント側での処理手順を以下の(1)〜(8)に列挙する。
There is also a technology that specializes the code for serialization and deserialization processing of objects specified as operation arguments and reuses them to reduce the number of reflections, resulting in improved performance ( For example, refer nonpatent literature 2).
Here, “serialization processing” refers to conversion of data handled in the software so that it can be transmitted / received over the network, and “deserialization processing” refers to serial data sent over the network. Is to restore the converted data to the original data format that can be handled by software. FIG. 9 shows a method for specializing serialization and deserialization processing of argument objects. Regarding this method, processing procedures on the client side are listed in the following (1) to (8).

(1)リフレクションを使ってオブジェクトのフィールド情報を獲得し、関連するオブジェクトを直列化または逆直列化するためのJava(登録商標)ソースプログラムを作成する(Java(登録商標)は米国SunMicrosystems社が開発したプログラミング言語)。
(2)ソースプログラムをコンパイルし、バイトコードに変換する。
(3)直列化用のクラスをクライアント側のJava(登録商標)仮想機械に読み込む。
(4)オブジェクトのフィールド情報と逆直列化用のクラスをバイト列として書き出す。
(5)生成された直列化用のクラスを使って、直列化が必要なオブジェクトのフィールドの値をバイト列として書き出す。
(6)書き出されたバイト列をサーバ側に送信する。
(1) Obtaining field information of an object using reflection and creating a Java (registered trademark) source program for serializing or deserializing related objects (Java (registered trademark) was developed by Sun Microsystems, Inc.) Programming language).
(2) Compile the source program and convert it into byte code.
(3) The serialization class is read into a Java (registered trademark) virtual machine on the client side.
(4) Write the object field information and the deserialization class as a byte string.
(5) Using the generated serialization class, write the value of the field of the object that needs to be serialized as a byte string.
(6) The written byte string is transmitted to the server side.

次に、リモート呼び出しの際におけるサーバ側の処理手順を以下の(1)〜(4)に列挙する。
(1)バイト列を受け取る。
(2)オブジェクトのフィールド情報を抜き出して、オブジェクトの形に復元する。
(3)生成された逆直列化用のクラスを抜き出し、仮想機械に読み込む。
(4)クライアント側で直列化されたオブジェクトを逆直列化し、オブジェクトの形に復元する。
2回目以降のリモート呼び出しのときは、直列化用のクラスはクライアント側のJava(登録商標)仮想機械に、逆直列化用のクラスはサーバ側のJava(登録商標)仮想機械に読み込み済みであるので、クライアント側では上記処理の(5)と(6)だけ、サーバ側では(1)と(4)だけでよい。
「Java(登録商標)言語向け適応的部分計算の設計と実装」、第6回プログラミングおよび応用のシステムに関するワークショップ SPA 2003 「効率のよいコードの自己生成によるRMIの高速化」、電子情報通信学会 Vol.J84-B No.5 pp.883-892 2001年5月
Next, processing procedures on the server side at the time of remote call are listed in the following (1) to (4).
(1) Receive a byte string.
(2) Extract the field information of the object and restore it to the object shape.
(3) The generated class for deserialization is extracted and read into the virtual machine.
(4) The serialized object is deserialized on the client side and restored to the object form.
At the second and subsequent remote calls, the serialization class has been loaded into the Java virtual machine on the client side, and the deserialization class has been loaded into the Java virtual machine on the server side. Therefore, only (5) and (6) of the above processing are required on the client side, and only (1) and (4) are required on the server side.
"Design and Implementation of Adaptive Partial Computation for Java (R) Language", 6th Workshop on Programming and Application Systems SPA 2003 "Acceleration of RMI by efficient code self-generation", IEICE Vol.J84-B No.5 pp.883-892 May 2001

上記したように、従来のプログラム特化では、オペレーションの引数そのものや、引数に関する処理を静的なコードに置き換えて特化させることによって高速化を実現してきた。しかし、これらの処理を特化させるだけでは不十分である。以下にその理由を説明する。
すなわち、オペレーションの引数を特化させる手法は、1回のリクエストで、同じオペレーションを一定回数以上繰り返し呼び出す場合に有効となる。しかしながら、リモートサービス呼び出しでは、1回のリクエストによるオペレーション実行回数が多い場合だけでなく、同じオペレーションに対するリクエストが繰り返し行われる場合もある。従って、この手法だけでは不十分である。また、直列化・逆直列化処理を特化させることで、データ転送処理は高速化されるが、上記した2つの問題点を解決することはできない。
As described above, the conventional program specialization has realized speeding up by replacing the operation argument itself and the processing related to the argument with static code for specialization. However, it is not sufficient to specialize these processes. The reason will be described below.
That is, the technique of specializing the operation argument is effective when the same operation is repeatedly called more than a certain number of times in one request. However, in the remote service call, not only a case where the number of operations executed by one request is large, but also a request for the same operation may be repeatedly performed. Therefore, this method alone is not sufficient. Further, by specializing serialization / deserialization processing, the data transfer processing is speeded up, but the above two problems cannot be solved.

本発明は上記事情に鑑みてなされたものであり、オペレーションの引数そのものや引数の直列化処理だけでなく、オペレーションの実行処理も特化させ、すなわち、オペレーションが呼び出されるたびに実行される、オペレーションを呼び出すために必要なオブジェクトとサーバに送信するメッセージを管理するオブジェクトの生成処理を回避し、サービス処理コンポーネントがオペレーションを呼び出す処理を静的なコードに置き換えて特化させることにより処理の高速化を実現する、分散コンピューティング環境におけるサービス実行処理システム、およびそのクライアント装置ならびにプログラム、サービス実行処理方法を提供することを目的とする。   The present invention has been made in view of the above circumstances, and specializes not only the operation argument itself and argument serialization processing, but also the operation execution processing, that is, an operation executed every time the operation is called. Accelerates processing by avoiding the process of generating objects that manage the objects required to call the server and messages sent to the server, and replacing the process that calls the service processing component with static code. An object of the present invention is to provide a service execution processing system in a distributed computing environment, a client device and program thereof, and a service execution processing method.

上記した課題を解決するために本発明は、分散オブジェクト環境において、サービス利用のたびにインタフェースに関する定義情報を取得し、前記サービスを呼び出し実行するサービス実行処理システムであって、前記あるサービスが提供するオペレーションを呼び出す際に、当該呼び出すオペレーションに特化したコンポーネントを生成する手段と、前記生成したコンポーネントを用いて前記オペレーションの呼び出しを実行する手段、を備えたことを特徴とする。   In order to solve the above-described problems, the present invention provides a service execution processing system that obtains definition information about an interface each time a service is used in a distributed object environment, and calls and executes the service. When invoking an operation, there is provided means for generating a component specialized for the operation to be invoked, and means for executing the invocation of the operation using the generated component.

また、本発明において、前記あるサービスが提供する同一オペレーションを呼び出す際に、前記生成したコンポーネントを再利用することを特徴とする。   In the present invention, when the same operation provided by the certain service is called, the generated component is reused.

また、本発明は、分散オブジェクト環境において、サービス利用のたびにインタフェースに関する定義情報を取得し、前記サービスを呼び出し実行するサービス実行処理システムにおけるクライアント装置であって、あるインタフェース記述方式で定義されたサービス呼び出し処理を実行するサービス処理コンポーネント手段と、前記あるインタフェース記述方式で定義された、利用するサービス呼び出し処理に関する定義情報を取得し、対応する前記サービス処理コンポーネントを生成するサービスファクトリ手段と、前記サービスファクトリに対して前記サービス処理コンポーネントの生成を要求し、前記サービスファクトリが生成したサービス処理コンポーネントを受け取り、当該サービス処理コンポーネントを用いて前記サービスを呼び出すユーザクライアント手段と、を備えたことを特徴とする。   The present invention also provides a client apparatus in a service execution processing system that acquires definition information about an interface each time a service is used in a distributed object environment, and calls and executes the service, the service being defined by a certain interface description method Service processing component means for executing call processing, service factory means for acquiring definition information related to service call processing to be used, defined by the interface description method, and generating the corresponding service processing component, and the service factory Requesting the service processing component to be generated, receiving the service processing component generated by the service factory, and using the service processing component to A user client device issuing beauty, characterized by comprising a.

また、本発明において、前記サービスファクトリ手段は、あるインタフェース記述方式で定義された利用するサービスの呼び出し処理に関する定義情報を取得し、当該取得した情報に基づきオブジェクトを生成し、前記インタフェース記述方式に依存しない呼び出しのためのコード部分を記述した特定のファイルからオペレーションを呼び出す特化コードを生成してファイル保存し、当該ファイルをコンパイルして前記ユーザクライアント手段に返答することを特徴とする。   Also, in the present invention, the service factory means obtains definition information related to a calling process of a service to be used defined by a certain interface description method, generates an object based on the obtained information, and depends on the interface description method. A specialized code for calling an operation is generated from a specific file in which a code part for calling is not written, the file is stored, the file is compiled, and the response is returned to the user client means.

また、本発明において、サービス内容が記述されたWSDLファイルを解析して必要な情報を取得し、当該取得した情報を用いてEJBのリモートオブジェクトを生成し、前記取得した情報と前記WSDLに依存しないコードが記述されたファイル(例えば,Java(登録商標)ファイル)からオペレーションを呼び出す特化コードを生成することを特徴とする。   Further, in the present invention, a WSDL file in which service contents are described is analyzed to acquire necessary information, an EJB remote object is generated using the acquired information, and the acquired information and the WSDL are not dependent on. A special code for calling an operation is generated from a file in which the code is described (for example, a Java (registered trademark) file).

また、本発明は、分散オブジェクト環境において、サービス利用のたびにインタフェースに関する定義情報を取得し、前記サービスを呼び出し実行するサービス実行処理システムにおけるオペレーションの呼び出し方法であって、前記あるサービスが提供するオペレーションを呼び出す際に、当該呼び出すオペレーションに特化したコンポーネント生成する処理と、前記生成したコンポーネントを用いて前記オペレーションの呼び出しを実行するステップとを有することを特徴とする。 The present invention also provides an operation calling method in a service execution processing system that acquires definition information about an interface each time a service is used in a distributed object environment, and calls and executes the service, and the operation provided by the service When calling a component, a process for generating a component specialized for the operation to be called, and a step of calling the operation using the generated component are provided.

また、本発明は、分散オブジェクト環境において、サービス利用のたびにインタフェースに関する定義情報を取得し、前記サービスを呼び出し実行するサービス実行処理システムに用いられるプログラムであって、前記あるサービスが提供するオペレーションを呼び出す際に、当該呼び出すオペレーションに特化したコンポーネントを生成する処理と、前記生成したコンポーネントを用いて前記オペレーションの呼び出しを実行する処理と、をコンピュータに実行させることを特徴とする。   The present invention also provides a program used in a service execution processing system that obtains definition information related to an interface each time a service is used in a distributed object environment, and calls and executes the service, and performs an operation provided by the service. When calling, it is characterized by causing a computer to execute processing for generating a component specialized for the operation to be called and processing for calling the operation using the generated component.

本発明によれば、サービス処理コンポーネント取得処理には時間を要するが、サービス呼び出し処理時間は短縮される。サービス処理コンポーネント取得処理は、特定のオペレーションに対して1回のみ行われるため、ユーザクライアントが特定のオペレーションを高頻度に呼び出す場合、特に有効である。
本発明によれば、1回目の利用処理には時間を要するが、2回目以降の利用処理は高速になる。従って、あるサービスが提供する同一オペレーションを、一定回数以上繰り返し利用する場合に、既存技術よりも高速に実行することができる。このため、本発明が有効となる利用回数以下の場合は従来同様の方式を用いてサービスを実行し、利用回数を超えた場合は、本発明を利用することで、従来のサービス実行処理システムのみによるダイナミックバインディング処理を使う場合よりも、全体の処理時間を短縮できる。
According to the present invention, the service processing component acquisition process takes time, but the service call processing time is shortened. Since the service processing component acquisition process is performed only once for a specific operation, it is particularly effective when the user client calls the specific operation frequently.
According to the present invention, the first use process takes time, but the second and subsequent use processes become faster. Therefore, when the same operation provided by a certain service is repeatedly used more than a certain number of times, it can be executed faster than the existing technology. For this reason, if the number of uses is less than or equal to the number of times that the present invention is effective, the service is executed using the same method as in the prior art. The overall processing time can be shortened compared to the case of using the dynamic binding process by.

既存のダイナミックバインディングの実現形式は、どのようなサービスにも対応できる処理モジュールを事前に用意し、そのモジュールをコピーし、取得した定義情報に合わせた動作を行うという方式であり、この方式は、対応すべきサービスの種類がさまざまである場合には有効である。しかし、繰り返し同一のサービスを実行する場合は、実行するたびに同じ処理を行うことになる点と、処理自身のオーバーヘッドが大きいという欠点が存在する。本発明は、これらの欠点を解決するダイナミックバインディングの実現方式を提供するものであり、処理性能の高速化を実現することができる。   The existing dynamic binding implementation format is a method of preparing a processing module that can handle any service in advance, copying that module, and performing an operation according to the acquired definition information. This is effective when there are various types of services to be supported. However, when the same service is repeatedly executed, the same processing is performed every time it is executed, and there is a drawback that the overhead of the processing itself is large. The present invention provides a method for realizing dynamic binding that solves these drawbacks, and can achieve high processing performance.

本発明実施形態によるリモート呼び出し処理手順を図1にフローチャートで示す。本発明実施形態によれば、オペレーションの引数そのものや引数の直列化処理だけでなく、オペレーションの実行処理も特化させている。
すなわち、オペレーションが呼び出されるたびに実行される、オペレーションを呼び出すために必要なオブジェクト(以降オペレーションオブジェクトと呼ぶ)とサーバに送信するメッセージを管理するオブジェクト(以降メッセージオブジェクトと呼ぶ)の生成処理を回避し、サービス処理コンポーネントがオペレーションを呼び出す処理を静的なコードに置き換えて特化させることにより処理の高速化を実現する。従って、オペレーションの引数そのものや引数の直列化処理だけでなく、オペレーションの実行処理も特化させる点(S13)、同一オペレーションを呼び出す際に、そのオペレーションの実行処理を特化させて生成したクラスを再利用する(S14)処理の2つが特徴になる。
FIG. 1 is a flowchart showing a remote call processing procedure according to the embodiment of the present invention. According to the embodiment of the present invention, not only the operation argument itself and the argument serialization process, but also the operation execution process is specialized.
In other words, it avoids the process of generating an object (hereinafter referred to as an operation object) necessary for invoking an operation and an object for managing a message sent to the server (hereinafter referred to as a message object) that is executed each time the operation is invoked. The processing speed of the processing is realized by replacing the processing that the service processing component calls the operation with a static code and specializing it. Therefore, not only the operation argument itself and argument serialization processing, but also the operation execution processing is specialized (S13). When calling the same operation, the class generated by specializing the operation execution processing is created. Two features of the reuse (S14) process are characteristic.

上記したダイナミックバインディングを実現するため、サービスのインタフェースとバインディング情報は、呼び出しクライアントが理解できる形式(以降、インタフェース記述形式とよぶ)で定義され、クライアントは、それを用いてサービスを実行できる仕組みが必要となる。
現在、分散システム環境構築のために広く利用されているWeb(World Wide Web)サービス技術において、サービスのインタフェース記述言語であるWSDL(Web Services Description Language)がある。WDSLを用いてWebサービスの内容を記述する。また、WDSLで記述されたインタフェース定義を読み込み、動的にオペレーションを呼び出すWSIF(Web Services Invocation Framework)がある。WSIFを用いた場合、ユーザクライアントの呼び出し手順をさらに詳細化すると、メッセージオブジェクトに設定する値オブジェクトの生成、呼び出すオペレーションに関するオペレーションオブジェクトの生成、そして、メッセージオブジェクトの生成に関する3つの処理を行う。
なお、WDSL、WSIFについては、以下のURLにその詳細が示されている。
WDSL:http://www.w3.org/TR/wedl http://ws.apache.org/wsif/
WSIF:http://ws.apache.org/wsif/
In order to realize the dynamic binding described above, the service interface and binding information are defined in a format that can be understood by the calling client (hereinafter referred to as the interface description format), and the client must have a mechanism that can execute the service using it. It becomes.
Currently, Web (World Wide Web) service technology widely used for building a distributed system environment includes WSDL (Web Services Description Language) which is a service interface description language. The contents of the Web service are described using WDSL. In addition, there is a WSIF (Web Services Invocation Framework) that reads an interface definition described in WDSL and dynamically calls an operation. When WSIF is used, when the user client call procedure is further detailed, three processes relating to generation of a value object to be set in the message object, generation of an operation object related to the operation to be called, and generation of the message object are performed.
Details of WDSL and WSIF are shown in the following URLs.
WDSL: http://www.w3.org/TR/wedl http://ws.apache.org/wsif/
WSIF: http://ws.apache.org/wsif/

図2、図3に、サービス実行クライアントの構成と実行手順を示す。参考のために、従来例(図2)と本発明実施形態(図3)とを対比して示した。
クライアント1は、いずれも、サービス処理コンポーネント11と、サービスファクトリ12と、ユーザクライアント13から構成される。
サービス処理コンポーネント11は、インタフェース記述形式で定義されたサービス呼び出し処理を実現する部分であり、サービスファクトリ12は、インタフェース記述方式で定義された、利用するサービス呼び出し処理に関する定義情報を受け取り、それに対応するサービス処理コンポーネントを生成する部分である。また、ユーザクライアント13は、サービスファクトリ12に、サービス処理コンポーネント11の生成を要求し、サービスファクトリ12が生成したサービス処理コンポーネント11を受け取り、それを用いてサービスを呼び出す応用アプリケーション部分である。
なお、2はサーバであり、ネットワーク経由でサービスを提供する装置である。
2 and 3 show the configuration and execution procedure of the service execution client. For reference, the conventional example (FIG. 2) and the embodiment of the present invention (FIG. 3) are shown in comparison.
Each client 1 includes a service processing component 11, a service factory 12, and a user client 13.
The service processing component 11 is a part that implements service call processing defined in the interface description format, and the service factory 12 receives definition information related to the service call processing to be used, defined in the interface description method, and corresponds to it. This is the part that generates the service processing component. The user client 13 is an application application part that requests the service factory 12 to generate the service processing component 11, receives the service processing component 11 generated by the service factory 12, and uses it to call a service.
Reference numeral 2 denotes a server, which is a device that provides a service via a network.

ユーザクライアントの呼び出し手順は以下のとおりである。サービス処理コンポーネントの取得処理から説明する。
図2に示す従来例から説明する。ユーザクライアント13が、利用したいサービス処理コンポーネント11を保持していない場合、利用したいサービス呼び出し処理に関する情報をサービスファクトリ12に送信する。サービスファクトリ12は、受信した情報に基づいてサービス処理コンポーネント11を生成し、ユーザクライアント13に返却する。続いて、サービス実行要求処理に移るが、ユーザクライアント13は、サービスのオペレーションを呼び出すごとに、返却されたサービス処理コンポーネント11を用い、サービスのオペレーション呼び出しに必要なオブジェクトを生成し、サービスのオペレーションを呼び出す。
The calling procedure of the user client is as follows. The service processing component acquisition process will be described.
The conventional example shown in FIG. 2 will be described. When the user client 13 does not hold the service processing component 11 that the user client 13 wants to use, the user client 13 transmits information related to the service call processing that the user client 13 wants to use to the service factory 12. The service factory 12 generates the service processing component 11 based on the received information and returns it to the user client 13. Subsequently, the service execution request process is performed. Whenever the user client 13 calls the service operation, the user client 13 uses the returned service processing component 11 to generate an object necessary for the service operation call and execute the service operation. call.

図3に示す本発明実施形態によれば、サービス処理コンポーネント11を、汎用的なコンポーネントを用いて実装せず、特定のオペレーションのみに特化されたコンポーネントによって実現している。2回目以降のオペレーション呼び出しは、このコンポーネントを再利用して実行する。これにより、オペレーションを呼び出すたびにオブジェクトを生成する必要がなくなり、1つ目の問題点であるWSIFにおいて時間のかかる処理が回避される。また、オペレーションの呼び出しに利用する、特定のオペレーションのみに特化されたコンポーネントは、汎用的な呼び出しであるリフレクションを使わずに、オペレーションを直接呼び出すためのコードを生成し、それをコンパイルすることで生成される。従って、2つ目の問題点であった処理オーバーヘッドの大きい処理を回避することもできる。   According to the embodiment of the present invention shown in FIG. 3, the service processing component 11 is realized by a component specialized for only a specific operation without being implemented using a general-purpose component. The second and subsequent operation calls are executed by reusing this component. This eliminates the need to generate an object each time an operation is called, and avoids time-consuming processing in WSIF, which is the first problem. In addition, a component specialized for a specific operation that is used to call an operation can generate code for calling the operation directly and compile it without using reflection, which is a general-purpose call. Generated. Therefore, it is possible to avoid processing with a large processing overhead, which was the second problem.

次に、本発明を用いて、EJB(Enterprise JavaBeans)で公開されているWebサービスを呼び出すためのサービス処理コンポーネントの生成手順を図4に示す。
ここでは、まず、サービス内容が記述される、与えられたWSDLファイルを解析して、Homeオブジェクト名やJNDI名など必要な値を取得する(S121)。なお、EJBの定義情報はWSIFにおいて定められた仕様に従っている。次に、取得した情報を用い、EJBのリモートオブジェクトを生成する(S122)。ここで、取得した情報と、WSDLに依存しない呼び出しコード部分を記述したJava(登録商標)のファイルから、オペレーションを呼び出す特化コードを生成し、ファイルとして保存する(S123)。そして、ファイルをコンパイルして、特化クラスを生成し(S124)、そのクラスをインスタンス化してユーザクライアントに返却する(S125)。
Next, FIG. 4 shows a procedure for generating a service processing component for calling a Web service published by EJB (Enterprise JavaBeans) using the present invention.
Here, first, a given WSDL file in which service contents are described is analyzed, and necessary values such as a Home object name and a JNDI name are acquired (S121). Note that the definition information of EJB conforms to the specifications defined in WSIF. Next, an EJB remote object is generated using the acquired information (S122). Here, a specialized code for calling an operation is generated from the acquired information and a Java (registered trademark) file describing a calling code part that does not depend on WSDL, and is stored as a file (S123). Then, the file is compiled, a specialized class is generated (S124), the class is instantiated and returned to the user client (S125).

なお、本発明実施形態のWSIFを用いた場合の処理時間に対する有効性を定量的に見積るために、評価実験を行った。
ここでは、引数が一つで処理も行い、EJBサービス側のオブジェクトによって実現するサービスのオペレーションを呼び出すこととし、処理時間は、同一オペレーション呼び出しを10000回繰り返し、その平均から算出した。図5に、処理時間の比較が示されている。引数を、文字列長20000バイトとしている。
図5に示す比較表から明確なように、評価実験をした結果、本発明実施形態によれば、サービス実行要求全体の処理時間を既存手法の50%に減少できた。本発明実施形態では、サービス処理コンポーネント11取得処理には時間を要するが、サービス呼び出し処理時間は短縮される。サービス処理コンポーネント11取得処理は、特定のオペレーションに対して1回のみ行われるため、ユーザクライアント13が、特定のオペレーションを高い頻度で呼び出す場合に有効となる。
Note that an evaluation experiment was performed in order to quantitatively estimate the effectiveness with respect to the processing time when the WSIF according to the embodiment of the present invention was used.
Here, processing is performed with one argument, and an operation of a service realized by an object on the EJB service side is called, and the processing time is calculated from the average of the same operation call repeated 10,000 times. FIG. 5 shows a comparison of processing times. The argument is a character string length of 20000 bytes.
As is clear from the comparison table shown in FIG. 5, as a result of the evaluation experiment, according to the embodiment of the present invention, the processing time of the entire service execution request can be reduced to 50% of the existing method. In the embodiment of the present invention, the service processing component 11 acquisition process takes time, but the service call processing time is shortened. Since the service processing component 11 acquisition process is performed only once for a specific operation, it is effective when the user client 13 calls the specific operation at a high frequency.

以上説明のように本発明は、分散オブジェクト環境において、オペレーションの実行処理を特化させたクライアントを動的に生成し、それを用い、異なる計算機上に存在し、ネットワークを介して利用されるようなサービスを呼び出すクライアントシステムを提供するものである。また、同一オペレーションを呼び出す際に、オペレーションを呼び出すために必要なオブジェクトを再利用して、オペレーションを呼び出すことが可能であり、このことにより、サービス実行処理の高速化による性能向上を実現するものである。
なお、図3に示す、サービス処理コンポーネント11、サービスファクトリ12、ユーザクライアント13のそれぞれで実行される手順をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって本発明のサービス実行処理システムおよびクライアント装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺機器等のハードウェアを含む。
As described above, the present invention dynamically generates a client specialized in operation execution processing in a distributed object environment, uses it, exists on a different computer, and is used via a network. A client system that calls various services is provided. In addition, when calling the same operation, it is possible to call the operation by reusing the object necessary to call the operation, which improves the performance by speeding up the service execution process. is there.
The procedure executed by each of the service processing component 11, the service factory 12, and the user client 13 shown in FIG. 3 is recorded on a computer-readable recording medium, and the program recorded on this recording medium is read into a computer system. The service execution processing system and the client device of the present invention can be realized by executing and executing. The computer system here includes an OS and hardware such as peripheral devices.

また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
Further, the “computer system” includes a homepage providing environment (or display environment) if a WWW system is used.
The program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line.
The program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer system, and what is called a difference file (difference program) may be sufficient.

以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。   The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes design and the like within the scope not departing from the gist of the present invention.

本発明実施形態に係るリモート呼び出し処理手順を示す図である。It is a figure which shows the remote call processing procedure which concerns on embodiment of this invention. 従来のサービス実行処理システムの構成例を示す図である。It is a figure which shows the structural example of the conventional service execution processing system. 本発明実施形態に係る構成例を示す図である。It is a figure which shows the structural example which concerns on this invention embodiment. 本発明実施形態に係るサービス処理コンポーネントの生成手順を示す図である。It is a figure which shows the production | generation procedure of the service processing component which concerns on this invention embodiment. 本発明実施形態と従来例との性能を対比して示した評価表を示す。The evaluation table | surface which contrasted and showed the performance of this invention embodiment and a prior art example is shown. 従来例のリモート処理手順を示す図である。It is a figure which shows the remote processing procedure of a prior art example. 従来例のリモート処理手順を示す図である。It is a figure which shows the remote processing procedure of a prior art example. 引数を特化させる方法を説明するために引用した図である。It is the figure quoted in order to demonstrate the method of specializing an argument. 引数オブジェクトの直列化、逆直列か処理を特化させる方法を説明するために引用した図である。It is the figure quoted in order to demonstrate the method of specializing the serialization of an argument object, or deserialization.

符号の説明Explanation of symbols

1…クライアント、2…サーバ、11…サービス処理コンポーネント、12…サービスファクトリ、13…ユーザクライアント

DESCRIPTION OF SYMBOLS 1 ... Client, 2 ... Server, 11 ... Service processing component, 12 ... Service factory, 13 ... User client

Claims (7)

分散オブジェクト環境において、サービス利用のたびにインタフェースに関する定義情報を取得し、前記サービスを呼び出し実行するサービス実行処理システムであって、
前記あるサービスが提供するオペレーションを呼び出す際に、当該呼び出すオペレーションに特化したコンポーネントを生成する手段と、
前記生成したコンポーネントを用いて前記オペレーションの呼び出しを実行する手段を備えたことを特徴とするサービス実行処理システム。
In a distributed object environment, a service execution processing system that acquires definition information about an interface each time a service is used, and calls and executes the service,
Means for generating a component specialized for the operation to be called when the operation provided by the service is called;
A service execution processing system comprising means for calling the operation using the generated component.
前記あるサービスが提供する同一オペレーションを呼び出す際に、前記生成したコンポーネントを再利用することを特徴とする請求項1に記載のサービス実行処理システム。   The service execution processing system according to claim 1, wherein the generated component is reused when calling the same operation provided by the certain service. 分散オブジェクト環境において、サービス利用のたびにインタフェースに関する定義情報を取得し、前記サービスを呼び出し実行するサービス実行処理システムにおけるクライアント装置であって、
あるインタフェース記述方式で定義されたサービス呼び出し処理を実行するサービス処理コンポーネント手段と、
前記あるインタフェース記述方式で定義された、利用するサービス呼び出し処理に関する定義情報を取得し、対応する前記サービス処理コンポーネントを生成するサービスファクトリ手段と、
前記サービスファクトリに対して前記サービス処理コンポーネントの生成を要求し、前記サービスファクトリが生成したサービス処理コンポーネントを受け取り、当該サービス処理コンポーネントを用いて前記サービスを呼び出すユーザクライアント手段と、
を備えたことを特徴とするクライアント装置。
In a distributed object environment, a client device in a service execution processing system that acquires definition information about an interface each time a service is used, and calls and executes the service,
Service processing component means for executing service invocation processing defined by a certain interface description method;
Service factory means for obtaining definition information related to service call processing to be used, defined by the interface description method, and generating the corresponding service processing component;
User client means for requesting the service factory to generate the service processing component, receiving the service processing component generated by the service factory, and calling the service using the service processing component;
A client device comprising:
前記サービスファクトリ手段は、
あるインタフェース記述方式で定義された利用するサービスの呼び出し処理に関する定義情報を取得し、当該取得した情報に基づきオブジェクトを生成し、前記インタフェース記述方式に依存しない呼び出しのためのコード部分を記述した特定のファイルからオペレーションを呼び出す特化コードを生成してファイル保存し、当該ファイルをコンパイルして前記ユーザクライアント手段に返答することを特徴とする請求項3に記載のクライアント装置。
The service factory means includes
A specific information describing a code part for a call that does not depend on the interface description method, by obtaining definition information related to a call process of a service to be used defined by a certain interface description method, generating an object based on the acquired information 4. The client apparatus according to claim 3, wherein a specialized code for invoking an operation from the file is generated, the file is saved, the file is compiled, and the response is returned to the user client unit.
サービス内容が記述されたWSDLファイルを解析して必要な情報を取得し、当該取得した情報を用いてEJBのリモートオブジェクトを生成し、前記取得した情報と前記WSDLに依存しないコードが記述されたファイルからオペレーションを呼び出す特化コードを生成することを特徴とする請求項4に記載のクライアント装置。   A file in which a WSDL file in which service contents are described is analyzed to acquire necessary information, an EJB remote object is generated using the acquired information, and the acquired information and code not dependent on the WSDL are described The client device according to claim 4, wherein a specialized code for invoking an operation is generated from the client device. 分散オブジェクト環境において、サービス利用のたびにインタフェースに関する定義情報を取得し、前記サービスを呼び出し実行するサービス実行処理システムにおけるオペレーションの呼び出し方法であって、
前記あるサービスが提供するオペレーションを呼び出す際に、当該呼び出すオペレーションに特化したコンポーネントを生成するステップと、
前記生成したコンポーネントを用いて前記オペレーションの呼び出しを実行するステップと、
を有することを特徴とするサービス実行処理システムにおけるオペレーションの呼び出し方法。
In a distributed object environment, a method for calling an operation in a service execution processing system that acquires definition information about an interface each time a service is used and calls and executes the service,
Generating a component specialized for the operation to be invoked when the operation provided by the service is invoked;
Performing a call to the operation using the generated component;
An operation calling method in a service execution processing system characterized by comprising:
分散オブジェクト環境において、サービス利用のたびにインタフェースに関する定義情報を取得し、前記サービスを呼び出し実行するサービス実行処理システムに用いられるプログラムであって、
前記あるサービスが提供するオペレーションを呼び出す際に、当該呼び出すオペレーションに特化したコンポーネントを生成する処理と、
前記生成したコンポーネントを用いて前記オペレーションの呼び出しを実行する処理と、
をコンピュータに実行させるプログラム。

In a distributed object environment, a program used in a service execution processing system that acquires definition information about an interface each time a service is used and calls and executes the service,
When calling an operation provided by the service, generating a component specialized for the call operation;
Processing to call the operation using the generated component;
A program that causes a computer to execute.

JP2004062233A 2004-03-05 2004-03-05 Service execution processing system in distributed computing environment, client device and program therefor, and service execution processing method Pending JP2005250958A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004062233A JP2005250958A (en) 2004-03-05 2004-03-05 Service execution processing system in distributed computing environment, client device and program therefor, and service execution processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004062233A JP2005250958A (en) 2004-03-05 2004-03-05 Service execution processing system in distributed computing environment, client device and program therefor, and service execution processing method

Publications (1)

Publication Number Publication Date
JP2005250958A true JP2005250958A (en) 2005-09-15

Family

ID=35031370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004062233A Pending JP2005250958A (en) 2004-03-05 2004-03-05 Service execution processing system in distributed computing environment, client device and program therefor, and service execution processing method

Country Status (1)

Country Link
JP (1) JP2005250958A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010123060A (en) * 2008-11-21 2010-06-03 Internatl Business Mach Corp <Ibm> Method of accessing unknown object
JP2012506094A (en) * 2008-10-15 2012-03-08 マイクロソフト コーポレーション Storing code generated at runtime in the cache
JP5301042B1 (en) * 2013-01-18 2013-09-25 株式会社エヌジェーケー Mediation server and portable terminal program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012506094A (en) * 2008-10-15 2012-03-08 マイクロソフト コーポレーション Storing code generated at runtime in the cache
US9250938B2 (en) 2008-10-15 2016-02-02 Microsoft Technology Licensing, Llc Caching runtime generated code
JP2010123060A (en) * 2008-11-21 2010-06-03 Internatl Business Mach Corp <Ibm> Method of accessing unknown object
JP5301042B1 (en) * 2013-01-18 2013-09-25 株式会社エヌジェーケー Mediation server and portable terminal program

Similar Documents

Publication Publication Date Title
JP5346032B2 (en) Declarative model transformation
JP3853592B2 (en) Distributed web application server
US9699249B2 (en) Runtime generation of application programming interfaces for remote procedure call services
US8589518B2 (en) Method and system for directly mapping web services interfaces and java interfaces
US6978447B1 (en) Method and system for efficiently interpreting a computer program
US9454616B2 (en) Method and system for unifying configuration descriptors
US20070174420A1 (en) Caching of web service requests
US20070073753A1 (en) Method and system for generating schema to java mapping descriptors and direct mapping of XML schema and java interfaces
US7673028B2 (en) Method and system for container-managed configuration and administration
CN112114979A (en) Remote procedure call method and device
US10353750B2 (en) Discovery and exposure of transactional middleware server-based applications as consumable service endpoints
JPH07281974A (en) Communication system for exchange of data between computers in network
US20070073760A1 (en) Method and system for generating schema to java mapping descriptors
EP1662383A2 (en) Prescriptive architecture for application development
CN111045833A (en) Interface calling method and device
JP2006195979A (en) Web application architecture
CN110928545B (en) Component distribution method, development method and device of single-page application and storage medium
US7392060B2 (en) Mobile exchange infrastructure
CN114489622A (en) Js application, electronic device, and storage medium
US7954085B2 (en) Support for multiple interface versions
EP2400390A1 (en) Provision of services and libraries to remote clients
EP1850282A1 (en) Method and system for generating and employing a web services client extensions model
JP2005250958A (en) Service execution processing system in distributed computing environment, client device and program therefor, and service execution processing method
US8881099B2 (en) Dynamic generation of wrapper classes to implement call-by-value semantics
CN111984679B (en) Access method, device, host, system and medium of hardware acceleration database

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070221

A977 Report on retrieval

Effective date: 20090130

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Effective date: 20090210

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Effective date: 20090413

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090512