JPWO2011158478A1 - データ処理システム及びデータ処理方法 - Google Patents
データ処理システム及びデータ処理方法 Download PDFInfo
- Publication number
- JPWO2011158478A1 JPWO2011158478A1 JP2012520284A JP2012520284A JPWO2011158478A1 JP WO2011158478 A1 JPWO2011158478 A1 JP WO2011158478A1 JP 2012520284 A JP2012520284 A JP 2012520284A JP 2012520284 A JP2012520284 A JP 2012520284A JP WO2011158478 A1 JPWO2011158478 A1 JP WO2011158478A1
- Authority
- JP
- Japan
- Prior art keywords
- function
- user
- wrapper
- argument
- pointer
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Abstract
Description
まず、本発明の参考例を図1および図2を参照して以下に説明する。図1に示されるように、本発明の参考例のデータ処理システムは、クライアント100とサーバ110とから構成される。
次に、本発明の第一の実施形態について図3および図4を参照して詳細に説明する。
template <class T>
T add(T a, T b){return a+b;}
add<double>(1.0, 2.0)
と記述した場合、データ型「T」を「double」とした関数「add」が利用され得る。
double add_double(double a, double b){return a+b;}
のような関数を内部で自動的に生成することで実現されている。
次に、第二の実施形態について図5を参照して詳細に説明する。第二の実施形態におけるデータ処理システムは、図5に示されるような、ハードウェア構成を持つ。クライアント500は、少なくとも1つのコンピュータ501、記憶媒体502等から構成され、サーバ510は、少なくとも1つのコンピュータ511、記憶媒体512等から構成される。
次に、具体的な本発明の実施例の動作を図6から図14を用いて以下に説明する。ここでは、実施例として、Linux OS上で実行される、C言語あるいはC++言語により記述されたソースコードが例示される。但し、各図に示されるソースコードは、部分的に例示されたものであるため、そのまま動作するものではない。
Claims (9)
- クライアントとサーバとが相互通信するデータ処理システムであって、
前記クライアントは、
ユーザプログラムに含まれるユーザ関数へのポインタが指すオブジェクトのユーザ関数シンボル名を取得するユーザ関数シンボル名取得部と、
テンプレート関数として定義され、かつ、その内部で前記ユーザ関数を実行するラッパ関数へのポインタを、前記ユーザ関数の引数及び戻り値の型をテンプレート引数として指定することにより、取得するラッパ関数ポインタ取得部と、
前記ラッパ関数へのポインタを用いて、前記ラッパ関数のラッパ関数シンボル名を取得するラッパ関数シンボル名取得部と、を有し、
前記サーバは、
前記ユーザ関数シンボル名、前記ユーザ関数の引数に対応するデータ、前記ラッパ関数シンボル名、及び、前記ユーザプログラム及び前記ラッパ関数が共有ライブラリとしてコンパイルされた共有ライブラリ化ユーザプログラムを前記クライアントから取得する通信部と、
前記通信部により取得された前記ラッパ関数シンボル名を用いて前記ラッパ関数へのポインタを取得するラッパ関数ポインタ取得部と、
前記通信部により取得された前記ユーザ関数シンボル名及び前記ユーザ関数の引数に対応するデータを引数として、前記ラッパ関数へのポインタで特定される、前記共有ライブラリ化ユーザプログラム内の前記ラッパ関数を実行するラッパ関数実行部と、
を有するデータ処理システム。 - 前記通信部は、前記ユーザ関数の引数に対応するデータとして、シリアライズされた引数データを前記クライアントから取得し、
前記ラッパ関数実行部は、前記ラッパ関数の実行に伴い実行されるユーザ関数ポインタ取得部及びユーザ関数実行部を含み、
前記ユーザ関数ポインタ取得部は、前記通信部により取得された共有ライブラリ化ユーザプログラム及び前記ユーザ関数シンボル名に基づいて、呼び出すべきユーザ関数へのユーザ関数ポインタを取得し、
前記ユーザ関数実行部は、前記通信部で取得されたシリアライズされた引数データから前記ユーザ関数の引数を復元し、前記ユーザ関数ポインタと、当該復元された引数とを用いて、前記ユーザ関数を実行する、
請求項1に記載のデータ処理システム。 - ユーザプログラムに含まれるユーザ関数へのポインタが指すオブジェクトのユーザ関数シンボル名を取得するユーザ関数シンボル名取得部と、
テンプレート関数として定義され、かつ、その内部で前記ユーザ関数を実行するラッパ関数へのポインタを、前記ユーザ関数の引数及び戻り値の型をテンプレート引数として指定することにより、取得するラッパ関数ポインタ取得部と、
前記ラッパ関数へのポインタを用いて、前記ラッパ関数のラッパ関数シンボル名を取得するラッパ関数シンボル名取得部と、
前記ユーザ関数シンボル名、前記ユーザ関数の引数に対応するデータ、前記ラッパ関数シンボル名、及び、前記ユーザプログラム及び前記ラッパ関数が共有ライブラリとしてコンパイルされた共有ライブラリ化ユーザプログラムを他のコンピュータ装置へ送信する通信部と、
を有するコンピュータ装置。 - ユーザプログラム、及び、テンプレート関数として定義され、かつ、その内部で当該ユーザプログラムに含まれるユーザ関数を実行するラッパ関数が、共有ライブラリとしてコンパイルされた共有ライブラリ化ユーザプログラム、ユーザ関数シンボル名、ユーザ関数の引数に対応するデータ、及び、ラッパ関数シンボル名を他のコンピュータ装置から取得する通信部と、
前記通信部により取得された前記ラッパ関数シンボル名を用いて前記ラッパ関数へのポインタを取得するラッパ関数ポインタ取得部と、
前記通信部により取得された前記ユーザ関数シンボル名及び前記ユーザ関数の引数に対応するデータを引数として、前記ラッパ関数へのポインタで特定される、前記共有ライブラリ化ユーザプログラム内の前記ラッパ関数を実行するラッパ関数実行部と、
を有するコンピュータ装置。 - 前記通信部は、前記ユーザ関数の引数に対応するデータとして、シリアライズされた引数データを前記他のコンピュータ装置から取得し、
前記ラッパ関数実行部は、前記ラッパ関数が実行されると起動されるユーザ関数ポインタ取得部及びユーザ関数実行部を含み、
前記ユーザ関数ポインタ取得部は、前記通信部により取得された共有ライブラリ化ユーザプログラム及び前記ユーザ関数シンボル名に基づいて、呼び出すべきユーザ関数へのユーザ関数ポインタを取得し、
前記ユーザ関数実行部は、前記通信部で取得されたシリアライズされた引数データから前記ユーザ関数の引数を復元し、前記ユーザ関数ポインタと、当該復元された引数とを用いて、前記ユーザ関数を実行する、
請求項4に記載のコンピュータ装置。 - 相互通信するクライアントとサーバとにより実行されるプログラムであって、
前記クライアントに、
ユーザプログラムに含まれるユーザ関数へのポインタが指すオブジェクトのユーザ関数シンボル名を取得するユーザ関数シンボル名取得部と、
テンプレート関数として定義され、かつ、その内部で前記ユーザ関数を実行するラッパ関数へのポインタを、前記ユーザ関数の引数及び戻り値の型をテンプレート引数として指定することにより、取得するラッパ関数ポインタ取得部と、
前記ラッパ関数へのポインタを用いて、前記ラッパ関数のラッパ関数シンボル名を取得するラッパ関数シンボル名取得部と、
を実現させ、
前記サーバに、
前記ユーザ関数シンボル名、前記ユーザ関数の引数に対応するデータ、前記ラッパ関数シンボル名、及び、前記ユーザプログラム及び前記ラッパ関数が共有ライブラリとしてコンパイルされた共有ライブラリ化ユーザプログラムを前記クライアントから取得する通信部と、
前記通信部により取得された前記ラッパ関数シンボル名を用いて前記ラッパ関数へのポインタを取得するラッパ関数ポインタ取得部と、
前記通信部により取得された前記ユーザ関数シンボル名及び前記ユーザ関数の引数に対応するデータを引数として、前記ラッパ関数へのポインタで特定される、前記共有ライブラリ化ユーザプログラム内の前記ラッパ関数を実行するラッパ関数実行部と、
を実現させるプログラム。 - 前記サーバで実現される前記通信部は、前記ユーザ関数の引数に対応するデータとして、シリアライズされた引数データを前記クライアントから取得し、
前記サーバで実現される前記ラッパ関数実行部は、前記ラッパ関数が実行されると起動されるユーザ関数ポインタ取得部及びユーザ関数実行部を含み、
前記ユーザ関数ポインタ取得部は、前記通信部により取得された共有ライブラリ化ユーザプログラム及び前記ユーザ関数シンボル名に基づいて、呼び出すべきユーザ関数へのユーザ関数ポインタを取得し、
前記ユーザ関数実行部は、前記通信部で取得されたシリアライズされた引数データから前記ユーザ関数の引数を復元し、前記ユーザ関数ポインタと、当該復元された引数とを用いて、前記ユーザ関数を実行する、
請求項6に記載のプログラム。 - 相互通信するクライアントとサーバとにより実行されるデータ処理方法であって、
前記クライアントが、
ユーザプログラムに含まれるユーザ関数へのポインタが指すオブジェクトのユーザ関数シンボル名を取得し、
テンプレート関数として定義され、かつ、その内部で前記ユーザ関数を実行するラッパ関数へのポインタを、前記ユーザ関数の引数及び戻り値の型をテンプレート引数として指定することにより、取得し、
前記ラッパ関数へのポインタを用いて、前記ラッパ関数のラッパ関数シンボル名を取得し、
前記サーバが、
前記ユーザ関数シンボル名、前記ユーザ関数の引数に対応するデータ、前記ラッパ関数シンボル名、及び、前記ユーザプログラム及び前記ラッパ関数が共有ライブラリとしてコンパイルされた共有ライブラリ化ユーザプログラムを前記クライアントから取得し、
前記ラッパ関数シンボル名を用いて前記ラッパ関数へのポインタを取得し、
前記ユーザ関数シンボル名及び前記ユーザ関数の引数に対応するデータを引数として、前記ラッパ関数へのポインタで特定される、前記共有ライブラリ化ユーザプログラム内の前記ラッパ関数を実行する、
データ処理方法。 - 前記ユーザ関数の引数に対応するデータは、シリアライズされた引数データであり、
前記ラッパ関数の実行は、
前記共有ライブラリ化ユーザプログラム及び前記ユーザ関数シンボル名に基づいて、呼び出すべきユーザ関数へのユーザ関数ポインタを取得すること、
前記シリアライズされた引数データから前記ユーザ関数の引数を復元すること、
前記ユーザ関数ポインタと、前記復元された引数とを用いて、前記ユーザ関数を実行することを、含む、
請求項8に記載のデータ処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012520284A JP5811088B2 (ja) | 2010-06-17 | 2011-06-10 | データ処理システム及びデータ処理方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010138398 | 2010-06-17 | ||
JP2010138398 | 2010-06-17 | ||
JP2012520284A JP5811088B2 (ja) | 2010-06-17 | 2011-06-10 | データ処理システム及びデータ処理方法 |
PCT/JP2011/003314 WO2011158478A1 (ja) | 2010-06-17 | 2011-06-10 | データ処理システム及びデータ処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2011158478A1 true JPWO2011158478A1 (ja) | 2013-08-19 |
JP5811088B2 JP5811088B2 (ja) | 2015-11-11 |
Family
ID=45347894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012520284A Active JP5811088B2 (ja) | 2010-06-17 | 2011-06-10 | データ処理システム及びデータ処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9116855B2 (ja) |
JP (1) | JP5811088B2 (ja) |
WO (1) | WO2011158478A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9032419B2 (en) * | 2011-12-16 | 2015-05-12 | Sap Se | Application function library framework |
WO2015015574A1 (ja) | 2013-07-30 | 2015-02-05 | 富士通株式会社 | 処理プログラム、処理システムおよび処理方法 |
US9646091B2 (en) * | 2014-02-24 | 2017-05-09 | Futurewei Technologies, Inc. | File joining on back end device |
US10552240B2 (en) * | 2014-09-04 | 2020-02-04 | International Business Machines Corporation | Automatically generating efficient remote procedure call (RPC) code for heterogeneous systems |
CN106886465B (zh) * | 2015-12-16 | 2021-06-15 | 菜鸟智能物流控股有限公司 | 一种数据获取方法及装置 |
US10310872B2 (en) * | 2017-02-21 | 2019-06-04 | Red Hat, Inc. | Transparent fast application launcher |
JPWO2023053454A1 (ja) * | 2021-10-01 | 2023-04-06 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6157960A (en) * | 1997-05-07 | 2000-12-05 | International Business Machines Corporation | Technique for programmatically creating distributed object programs |
JPH11338704A (ja) * | 1998-05-25 | 1999-12-10 | Casio Comput Co Ltd | ネットワークコンピュータシステム及び記憶媒体 |
JP2001337935A (ja) * | 2000-05-24 | 2001-12-07 | Nec Corp | 分散オブジェクト環境におけるアプリケーションのラッピング方法、その通信管理装置及び記録媒体 |
JP4042527B2 (ja) | 2002-10-29 | 2008-02-06 | 株式会社日立製作所 | 呼出規約変換処理の生成方法 |
US7496932B2 (en) * | 2004-01-12 | 2009-02-24 | International Business Machines Corporation | Communicating with remote objects in a data processing network |
-
2011
- 2011-06-10 JP JP2012520284A patent/JP5811088B2/ja active Active
- 2011-06-10 WO PCT/JP2011/003314 patent/WO2011158478A1/ja active Application Filing
- 2011-06-10 US US13/704,178 patent/US9116855B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20130091203A1 (en) | 2013-04-11 |
WO2011158478A1 (ja) | 2011-12-22 |
US9116855B2 (en) | 2015-08-25 |
JP5811088B2 (ja) | 2015-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Burns et al. | Kubernetes: up and running | |
JP5811088B2 (ja) | データ処理システム及びデータ処理方法 | |
JP4489483B2 (ja) | 初期タイプの初期オブジェクトを最終タイプの最終オブジェクトに変形する方法 | |
US10817284B2 (en) | Melding of mediation flow service component architecture (SCA) components | |
JP2011515741A (ja) | 非同期メソッドのための宣言型サポート | |
Chan et al. | User’s guide for mpe extensions for mpi programs | |
Kiraly et al. | Analysing RPC and testing the performance of solutions | |
CN115390846A (zh) | 编译构建方法、装置、电子设备和存储介质 | |
US9720660B2 (en) | Binary interface instrumentation | |
JP2016186697A (ja) | 関数間変数共有方法及び機構 | |
JP5409529B2 (ja) | アプリケーション実行装置及びプログラム | |
JP7271957B2 (ja) | 動的リンク装置、動的ロード装置、計算機システム、動的リンク方法、動的ロード方法、動的リンクプログラム、および動的ロードプログラム | |
Ogel et al. | Supporting efficient dynamic aspects through reflection and dynamic compilation | |
Aleksyuk et al. | Automated Cross-Language Integration Based on Formal Model of Components | |
CN118051262A (zh) | 指令转换方法、装置、计算机设备及存储介质 | |
CN117130591A (zh) | 一种代码生成方法、系统及相关设备 | |
CN117493610A (zh) | 基于java实现的GraphQL参数生成方法和系统 | |
Lavieri | Mastering Java 11: Develop modular and secure Java applications using concurrency and advanced JDK libraries | |
Zhao et al. | Svar: A Tiny C++ Header Brings Unified Interface for Multiple programming Languages | |
CN116383063A (zh) | 模拟数据生成方法、装置、计算机存储介质及电子设备 | |
CN117608562A (zh) | 一种可执行程序生成方法、装置、电子设备及存储介质 | |
JP2010108076A (ja) | ソースコード変換方法、サーバシステム、およびサーバプログラム | |
Burshteyn | The distributed Language Hello White Paper | |
Chye et al. | T-Kernel Integrated Development Environment (IDE) for Seamless Middleware Development | |
Ou | . NET High Performance Computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140514 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150602 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150729 |
|
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: 20150818 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150831 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5811088 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |