JP2017016312A - 複合システムの排他制御プログラム、複合システム及びクライアント−サーバシステム - Google Patents

複合システムの排他制御プログラム、複合システム及びクライアント−サーバシステム Download PDF

Info

Publication number
JP2017016312A
JP2017016312A JP2015131260A JP2015131260A JP2017016312A JP 2017016312 A JP2017016312 A JP 2017016312A JP 2015131260 A JP2015131260 A JP 2015131260A JP 2015131260 A JP2015131260 A JP 2015131260A JP 2017016312 A JP2017016312 A JP 2017016312A
Authority
JP
Japan
Prior art keywords
exclusive
exclusive control
thread
language
control program
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
JP2015131260A
Other languages
English (en)
Inventor
翔翠 龍
Sang-Chui Yong
翔翠 龍
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.)
Fujitsu Frontech Ltd
Original Assignee
Fujitsu Frontech Ltd
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 Fujitsu Frontech Ltd filed Critical Fujitsu Frontech Ltd
Priority to JP2015131260A priority Critical patent/JP2017016312A/ja
Publication of JP2017016312A publication Critical patent/JP2017016312A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】異なるプログラム言語で実装されたシステムを跨ぐ排他制御を可能とする複合システム及びその複合システムの排他制御プログラムを提供する。【解決手段】本発明のシステムの排他制御プログラムは、異なるプログラム言語により構築された第1及び第2システムの何れか一方の排他処理状態に対応する排他スレッドの管理を行うと共に、第1又は第2システムから排他処理依頼を受けると、排他スレッドを検索し、排他スレッドが無いときは排他制御依頼を許可する応答を返すようにしている。これにより、異なるプログラム言語で構築された複数のシステムを含む複合システム及びクライアント-サーバシステムにおいて、異なるプログラム言語で構築された複数のシステムを跨いだ排他制御が可能となる。【選択図】図3

Description

本発明は、複合システムの排他制御プログラム、複合システム及びクライアント-サーバシステムに関する。
金融情報システム、特に勘定系営業店システムは、図1に示されているように、1980年代は事務処理用に開発されたCOBOL(コボル:Common Business Oriented Language)等の言語を用いたメインフレームを中心としたシステム開発、1990年代のC言語等を用いたオンラインのシステム開発、2000年代はオブジェクト指向のプログラム言語のJava(ジャバ)言語を用いたオンラインのシステム開発、2010年代にはオブジェクト指向のスクリプト言語のJavaScript(登録商標)等の言語によるWebシステム開発と、時代ごとに注目されたプログラム言語を用いて数十年にわたり継続して開発されている。
この様にして過去開発された勘定系営業店システムは、業務を継続運用する目的から過去のシステムは継続運用されることが常であり、新たな開発は過去のソフトウェアに追加する形で開発されてきている。その結果、勘定系営業店システムは、システム全体を俯瞰すると、図2に示されているように、機能や役割毎に継ぎ接ぎで作られた形となっている。図2において、Java言語で構築されたシステムBは、C言語で構築されたシステムA、JavaScript言語で構築されたシステムC及び統括システムと連携し得るが、C言語で構築されたシステムAとJavaScript言語で構築されたシステムC及び統括システムとは、言語間の制約から直接連携できず、Java言語で構築されたシステムBを介して連携するようになっている。又、C言語で構築されたシステムAからはメモリ30の共通領域31に任意にアクセス可能であるが、Java言語で構築されたシステムBからのメモリ30へのアクセスは、JavaVM(Java Virtual Machine)制御内32のみに制限され、JavaScript言語で構築されたシステムからのメモリ30へのアクセスは、ブラウザ制御内33のみに制限されている。このように、プログラム言語によってアクセス可能なメモリ領域に制限を設けているのは、メモリ領域に記憶された情報が意図せず書き換わるのを防ぐためである。
このような勘定系営業店システムのプログラムの実行において、各システムを個別に正常動作させつつシステム全体も正常動作させるため、各システム間の動作順序、待ち合わせ等を制御する必要がある。そのため、複数のプロセスが利用できる共有資源に対し、複数のプロセスからの同時アクセスにより競合が発生する場合に、あるプロセスに資源を独占的に利用させている間は、他のプロセスが利用できないようにすることで整合性を保つ排他制御が必要になる。
排他制御に関する先行技術文献として、例えば、下記特許文献1及び2があり、特許文献1には、プロセス内に、通信プロトコル毎に送信スレッド(thread)と受信スレッドを設け、更に、戻り値を有するメッセージを登録しておく戻り値記述子テーブルを設けておくことにより、メッセージの戻り値が送信時と異なる通信プロトコルで送信されてきた時も、適切にメッセージ通信が行えるようにする情報処理装置が提案されている。
又、特許文献2には、制御プロセスが、ディーラ端末から値洗処理要求が送られてくると、同時に実行可能な計算プロセスの数を決定し、その決定した数だけ計算プロセスを立ち上げる。そして、その立ち上げた各計算プロセスに、値洗処理要求に対応した複数のポートフォリオについて値洗処理を並列して実行させる。値洗処理の結果は、ディーラ端末のディスプレイ装置に表示される金融情報処理システムが提案されている。
特開2000−151739号公報 特開平11−259559号公報
しかし、従来の排他制御技術における排他制御範囲は、複合システムを構成する異なるプログラム言語で構築された各システム内の限られたものであった。
そこで、本発明は、複数の異なるプログラム言語で構築されたシステムを跨ぐ複合システムの排他制御プログラム、この排他制御プログラムを備えた複合システム、及びクライアント−サーバシステムを提供することを目的とする。
本発明の第1側面の排他制御プログラムは、コンピュータに、異なるプログラム言語により構築された第1及び第2システムの何れか一方の排他処理状態に対応する排他スレッドの管理を行わせ、前記第1又は第2システムからの排他制御依頼に応答して、前記排他スレッドを検索させ、前記排他スレッドが無いときは前記排他制御依頼を許可する応答を返させる、ことを特徴とする。
第2側面の複合システムは、第1のプログラム言語により構築された第1システムと、前記第1のプログラム言語とは異なる第2のプログラム言語により構築された第2システムと、前記第1及び第2システムからアクセス可能な第3の言語により作成された排他制御プログラムと、を有し、前記排他制御プログラムは、前記第1及び第2システムの何れか一方の排他処理状態に対応する排他スレッドの管理を行うと共に、前記第1又は第2システムから排他制御依頼を受けると、前記排他スレッドを検索し、前記排他スレッドが無いときは前記排他制御依頼を許可する応答を返すことを特徴とする。
第3側面のクライアント-サーバシステムは、第1のプログラム言語により構築された第1システムを記憶する第1の保存領域と、書込み可能なメモリ領域を有するクライアント端末と、前記第1のプログラム言語とは異なる第2のプログラム言語により構築された第2システムと、前記第1及び第2システムからアクセス可能な第3の言語により作成された、前記第1及び第2システムの何れか一方の排他処理状態に対応する排他スレッドの管理を行うと共に、前記第1又は第2システムから排他処理依頼を受けると、前記排他スレッドを検索し、排他スレッドが無いときは前記排他制御依頼を許可する応答を返す排他制御プログラムとを記憶する第2の保存領域を有するサーバと、前記クライアント端末と前記サーバとを相互に通信可能に接続するネットワークと、を備え、前記クライアント端末の起動時に、前記第2の保存領域に記憶されている前記第2システムと、前記排他制御ブログラムと、を前記メモリ領域にダウンロードすることを特徴とする。
本発明の排他制御プログラムによれば、異なるプログラム言語で構築された複数のシステムを含む複合システム及びクライアント-サーバシステムにおいて、異なるプログラム言語で構築された複数のシステムを跨いだ排他制御が可能となる。
金融情報システム及びプログラム言語の歴史の概略を説明する図である。 勘定系営業店システム全体を俯瞰する図である。 本発明の実施形態の複合システムの機能の概略を示す機能ブロック図である。 1つの言語で構築されたシステムの排他制御を説明する図である。 複数の異なる言語で構築されたシステムでの排他制御を説明する図である。 現行技術のフラグ制御の実行順序を説明する図である。 現行技術のフラグ制御による課題を説明する図(その1)である。 現行技術のフラグ制御による課題を説明する図(その2)である。 本発明の実施形態の排他制御プログラムの処理のシーケンス例を示す図(その1)である。 本発明の実施形態の排他制御プログラムの処理のシーケンス例を示す図(その2)である。 本発明の実施形態の排他制御プログラムの処理を示すフローチャート(その1)である。 本発明の実施形態の排他制御プログラムの処理を示すフローチャート(その2)である。 本発明の実施形態の排他制御プログラムの処理を示すフローチャート(その3)である。 本発明の実施形態のクライアント-サーバシステムのシステム構成例を示す図である。 本発明の排他制御範囲と従来の排他制御範囲を比較して説明する図である。
以下に本発明の実施形態について図面を参照しながら詳細に説明する。
(複合システムの構成)
図3は、本発明の実施形態の複合システムの機能の概略を示す機能ブロック図である。
本発明の複合システムは、例えば、C言語で構築された第1システム10と、JavaScript言語で構築された第2システム40と、第1システム10と第2システム40との排他制御を実行するJava言語で構築された排他制御プログラム70と、を有している。ここで、第1システム10、第2システム40、及び排他制御プログラム70は、例えば、図示しないクライアント端末のコンピュータ上で実行されるプログラムである。
図3において、第1システム10、排他制御プログラム70、及び第2システム40からメモリ30の共通領域31、JavaVM制御内32、及びブラウザ制御内33にアクセス可能である。
第1システム10は、排他制御依頼手段11と、処理実行手段12とを有している。排他制御依頼手段11は、排他制御プログラム70に対してメモリ30内の共通領域31内の作業領域、例えば、ID1を指定して排他制御の開始を依頼し、排他制御プログラム70からの排他制御応答を受けると、処理実行手段12に第1システム10の作業領域ID1での処理を開始させる。処理実行手段12は、第1システム10の作業領域ID1での処理を実行すると共に、第1システム10の作業領域ID1での処理が完了すると、排他制御依頼手段11を介して排他制御プログラム70に対して排他制御完了を依頼し、排他制御プログラム70からの排他制御完了応答を受信すると、第1システム10の処理を終了する。例えば、図示しない1台のオーバーヘッドリーダ(OHR)を図示しないクライアント端末に接続して、クライアント端末のコンピュータ上で実行される第1システム10と第2システム40とが共用している場合、OHRの使用許可がどのシステムに与えれているかを作業領域ID1に記憶しておき、第1システム10でOHRの使用を開始したい場合には、排他制御プログラム70に対してID1を指定して排他制御の開始を依頼する。
第2システム40は、排他制御依頼手段41と、処理実行手段42とを有している。排他制御依頼手段41は、排他制御プログラム70に対してメモリ30内の共通領域31内の作業領域、例えば、ID1を指定して排他制御の開始を依頼し、排他制御プログラム70からの排他制御応答を受信すると、処理実行手段42に第2システム40の作業領域ID1での処理を開始させる。処理実行手段42は、第2システム40の作業領域ID1での処理を実行すると共に、第2システム40の作業領域ID1での処理が完了すると、排他制御依頼手段41を介して排他制御プログラム70に対して排他制御完了を依頼し、排他制御プログラム70からの排他制御完了応答を受けると、第2システム40の処理を終了する。
排他制御プログラム70は、第1システム10又は第2システム40からのメモリ30内の作業領域を指定した排他制御の開始及び完了の依頼を受付ける排他制御受付手段71と、メモリ30内の作業領域を指定した排他制御の開始/完了の依頼を受けると作業領域に対応したID番号の排他スレッドの有無を検索するスレッド検索手段72と、検索した時点で作業領域に対応したID番号の排他スレッドが無い場合に直ちにその作業領域に対応したID番号の排他スレッドを作成すると共に、作業領域に対応したID番号の排他制御の完了依頼を受けるとそのID番号の排他スレッドを削除するスレッド作成・削除手段73と、スレッド検索手段72の検索結果が作業領域に対応したID番号の排他スレッド有の場合に、その排他スレッドが削除されるのを監視するスレッド終了監視手段74と、作業領域に対応したID番号の排他制御を依頼した依頼元の第1システム10又は第2システム40に対する排他制御依頼の許可/排他制御完了応答を返す依頼応答手段75と、を有している。
排他制御受付手段71は、第1システム10からのメモリ30内の作業領域のID番号を指定した排他制御の開始の依頼を受け付けると共に、第2システム40からのメモリ30内の作業領域のID番号を指定した排他制御の開始の依頼を受け付ける。排他制御受付手段71は、受け付けた排他制御の開始の依頼で指定されている作業領域のID番号をスレッド検索手段72に通知する。
排他制御受付手段71は、メモリ30内の作業領域のID番号を指定した排他制御の実行処理を完了したいシステム、例えば、第1システム10から作業領域のID番号を指定した排他制御の完了の依頼を受け付けると、受け付けたID番号をスレッド検索手段72へ出力する。
スレッド検索手段72は、排他制御受付手段71が受け付けた作業領域のID番号に対応した排他スレッドが排他スレッド領域80に存在するか否かを検索する。
排他制御の開始の依頼において、作業領域のID番号に対応した排他スレッドが無い場合、スレッド検索手段72は、スレッド作成・削除手段73に作業領域のID番号に対応した排他スレッドの作成を指示すると共に、依頼応答手段75を介して排他制御の開始の依頼を受け付けたシステムに排他制御応答を返送する。一方、作業領域のID番号に対応した排他スレッドが有る場合は、排他制御の開始の依頼を受け付けたシステムをスレッド終了監視手段74へ出力する。
排他制御の完了の依頼の場合は、スレッド検索手段72は、作業領域のID番号に対応した排他スレッドが排他スレッド領域80に存在するのを確認し、スレッド作成・削除手段73に作業領域のID番号に対応した排他スレッドの削除を指示する。
スレッド作成・削除手段73は、スレッド検索手段72からの指示に従って、排他スレッド領域80に、作業領域に対応したID番号の任意数の排他スレッドを1つのみ作成又は削除する。
スレッド終了監視手段74は、作業領域のID番号に対応する排他スレッドが排他スレッド領域80から削除されるのを監視し、排他スレッド領域80から作業領域のID番号に対応する排他スレッドが削除されたのを検知すると、スレッド作成・削除手段73に作業領域のID番号に対応した排他スレッドの作成を指示すると共に、依頼応答手段75を介して排他制御の開始の依頼を待っているシステムに排他制御依頼の許可の応答を返送する。
尚、両システムからの排他制御の開始の依頼における作業領域のID番号が異なる場合は、排他制御受付手段71は、両システムからの排他制御の開始の依頼を受付ける。スレッド検索手段72は、両システムからの受付けた排他制御の開始の依頼の作業領域のID番号に対応する排他スレッドの有無を検索する。
図3には、Java言語で構築された排他制御プログラム70が、異なるC言語で構築された第1システム10とJavaScript言語で構築された第2システム40とを跨いだ排他制御が可能な複合システムの機能ブロック図を示したが、更に、図示しないJava言語で構築された第3システムを追加しても、異なる3つの言語を跨いだ排他制御が可能である。
(実施形態の動作)
本発明の実施形態の排他制御の動作について、(I)1つの言語で構築されたシステムと、(II)複数の異なる言語で構築されたシステムと、(III)現行技術のフラグ制御と、(IV)本発明の排他制御と、(V)本発明の排他制御と現行技術のフラグ制御の比較と、に分けて説明する。
(I)1つの言語で構築されたシステム
図4は、1つのプログラム言語で構築されたシステムの排他制御を説明する図であり、
1つのプログラム言語(C言語)で構築されたシステム10(A1)とシステム20(A2)とメモリ30とからなるシステムが示されている。
システム10(A1)で処理が開始されると、ステップS11へ進み、システム10(A1)内で閉じた特定の処理が実行され、ステップS12へ進む。ステップS12において、システム10(A1)からメモリ30に、メモリ30内の共通領域31での他システムの処理中の有無を問い合わせ、他システムの実行中の処理が無い旨の返信を受けて、共通領域31での他システムの処理が無いと判断し、ステップS13へ進む。ステップS13において、共通領域31を更新し、メモリ30の共通領域31でA1の処理を開始し、ステップS14へ進み、ステップS14において、共通領域31でのA1処理が実行される。
一方、システム20(A2)で処理が開始されてステップS21へ進むと、システム20(A2)内で閉じたある処理が実行され、ステップS22へ進む。ステップS22において、システム20(A2)からメモリ30内の共通領域31での他システムの実行中の処理の有無を問い合わせ、他システムの実行中の処理が有る旨の返信を受けて、共通領域31で他システムの処理中と判断し、ステップS23へ進む。ステップS23において、共通領域31で他システムの処理中のため、システム20(A2)は、処理を実行せず、待機する。図4に示されたシステムでは、システム10(A1)がメモリ30の共通領域31で処理中のときは、システム20(A2)は待機する。逆に、システム20(A2)がメモリ30の共通領域31で処理中のときは、システム10(A1)は待機する。このように、1つのプログラム言語で構築されたシステム10(A1)とシステム20(A2)とは、お互いの処理が競合しないように、メモリ30の共通領域31をタイムシェアリングして排他処理を実行する。
(II)複数の異なる言語で構築されたシステム
図5は、複数の異なる言語で構築されたシステムでの排他制御を説明する図である。
図5を見ると、C言語で構築されたシステム10(A1)とJavaScript言語で構築されたシステム40(C1)とメモリ30とからなる複合システムが示されている。
システム10(A1)で処理が開始され、ステップS11へ進むと、システム10(A1)内で閉じたある処理が実行され、ステップS12へ進む。ステップS12において、システム10(A1)からメモリ30に、メモリ30内の共通領域31での他システムの実行中の処理の有無を問い合わせ、他システムの実行中の処理が無い旨の返信を受けて、共通領域31での他システムの処理が無いと判断し、ステップS13へ進む。ステップS13において、共通領域31を更新し、メモリ30の共通領域31でA1の処理を開始する。
一方、システム40(C1)で処理が開始されてステップS41へ進むと、システム40(C1)内で閉じたある処理が実行され、ステップS42へ進む。
ここで、図2を見ると、C言語で構築されたシステムからは、共通領域31のどの領域へもアクセスできる。Java言語で構築されたシステムからは、JavaVM(Java Virtual Machine)制御内32に対してのみアクセスできる。JavaScript言語で構築されたシステムからは、ブラウザ制御内33に対してのみアクセスできる。このように、プログラム言語によってアクセス可能なメモリ領域にアクセス制限を設けているのは、メモリ領域に記憶された情報が意図せず書き換わるのを防ぐためである。
再び、図5を見ると、C言語で構築されたシステム10(A1)からは、共通領域31のどの領域へもアクセスできる。これに対し、システム40(C1)は、JavaScript言語で構築されたシステムであるため、ブラウザ制御内33に対してはアクセスできるが、ブラウザ制御内33以外の共通領域31にはアクセスできない。そのため、ステップS42において、システム40(C1)からメモリ30内の共通領域31での他システムの実行中の処理の有無の問い合わせを行うことはできない。その結果、共通領域31を使用した排他制御を行うことができない。
(III)現行技術のフラグ制御
図5に示されたような複数の異なる言語で構築されたシステム、例えば、勘定系営業店システムに対し、現行技術のフラグ制御により排他制御を実行する試みがある。
図6は、現行技術のフラグ制御の実行順序を説明する図である。
図6に示された複合システムは、JavaScript言語で構築されたシステム40(C1)と、Java言語で構築されたシステム60(B1)との、異なるプログラム言語で構築された2つのシステムを有している。JavaScript言語で構築されたシステム40(C1)からアクセス可能なブラウザ制御内33には、システム40(C1)の条件判定処理が実行された際に、その結果をデータとして保存しておく領域である変数領域F40が設けられている。又、Java言語で構築されたシステム60(B1)からアクセス可能なJavaVM制御内32には、システム60(B1)の変数領域F60が設けられている。
図6において、ブラウザ制御内33(変数領域F40)とJavaVM制御内32(変数領域F60)は、実際には図2に描かれているようにメモリ30内に含まれているが、動作を説明する便宜上分離して描かれている。ブラウザ制御内33とJavaVM制御内32とは、図2に示されているように、メモリ30の共通領域31に含まれている。
このシステム中のシステム40(C1)及びシステム60(B1)で処理が開始されると、それぞれステップS41及びステップS61へ進む。
ステップS41において、システム40(C1)は、システム40(C1)内で閉じたある処理が実行し、ステップS42へ進む。ステップS61において、システム60(B1)は、システム60(B1)内で閉じたある処理が実行し、ステップS62へ進む。
ステップS42において、システム40(C1)からシステム60(B1)に、他システムの実行中の処理の有無を問い合わせると、ステップS62において、システム60(B1)は、JavaVM制御内32内のフラグF60を参照し、ステップS63へ進む。ステップS63へ進むと、システム60(B1)は、システム40(C1)に、処理中では無い旨のフラグ応答を返信し、ステップS42に戻る。ステップS42は、受信したフラグ応答から他システムの実行中の処理が無いと判断し、ステップS43へ進む。
ステップS43において、システム40(C1)からシステム60(B1)へ、実行中の処理が無いため、これから処理を開始する旨を連絡し、ステップS64に進む。ステップS64において、システム60(B1)は、JavaVM制御内32のフラグF60にアクセスし、フラグF60をB1処理中に書き換えて、ステップS65に進む。ステップS65において、システム60(B1)は、システム40(C1)に、B1処理中のフラグ応答を返信し、ステップS66へ進むと共に、ステップS43に戻る。
ステップS43において、受信したフラグ応答からB1処理中であると判断し、ステップS44へ進み、システム40(C1)は、システム40(C1)内で閉じた処理を実行する。
ステップS66において、システム60(B1)は、システム60(B1)は、JavaVM制御内32のフラグF60を参照し、フラグF60がB1処理中であるのを確認し、ステップS67へ進む。ステップS67において、アクセス可能なJavaVM制御内32がB1処理中であるので、システム60(B1)は待機する。
図6中の破線で囲まれたプロセスP1(ステップS42〜S44、及びステップS62〜S67)の処理では、システム40(C1)からのシステム60(B1)への他システムの処理中の有無の問い合わせに伴うフラグ参照(ステップS62)と、システム60(B1)の自身のフラグ参照(ステップS66)とのタイミングがずれているので、排他制御が可能である。
次に、現行技術のフラグ制御による課題について説明する。
図7A及び図7Bは、現行技術のフラグ制御による課題を説明する図である。
図7A及び図7Bに示されたシステムは、C言語で構築されたシステム10(A1)と、Java言語で構築されたシステム60(B1)と、JavaScript言語で構築されたシステム40(C1)と、の異なる言語から構築された3つのシステムを有している。図7A及び図7Bにおいて、共通領域31、JavaVM制御内32及びブラウザ制御内33は、実際には、図2に描かれているようにメモリ30内に含まれているが、動作を説明する便宜上分離して描かれている。
C言語で構築されたシステム10(A1)からアクセス可能な共通領域31には、システム10(A1)の条件判定処理が実行された際に、その結果をデータとして保存しておく領域である処理状態を示す変数領域F10が設けられている。又、Java言語で構築されたシステム60(B1)からアクセス可能なJavaVM制御内32には、システム60(B1)の条件判定処理が実行された際に、その結果をデータとして保存しておく領域である処理状態を示す変数領域F60が設けられている。更に、JavaScript言語で構築されたシステム40(C1)からアクセス可能なブラウザ制御内33には、システム40(C1)の条件判定処理が実行された際に、その結果をデータとして保存しておく領域である処理状態を示す変数領域F40が設けられている。
図7A中のステップS12において、システム10(A1)は、ステップS62のフラグ参照及びステップS63のフラグ応答の受信により、他システムの処理中有無を問い合わせて判断する。ステップS12において、他システムの実行中の処理が無いと判断すると、図7B中のステップS13に進む。
ステップS12の処理からステップS13の処理に移行する隙間時間に、ステップS43において、システム40(C1)からシステム60(B1)に対して、他システムの実行中の処理の有無の問い合わせが行われる場合がある。
この場合には、図7B中のステップS66で、システム60(B1)のフラグF60の更新が実行される前であるため、ステップ64でのフラグF60の参照結果は、実行中の処理無しであり、ステップS65では、システム60(B1)は、システム40(C1)に対して実行中の処理無しのフラグ応答を返信し、ステップS43に戻る。ステップS43において、システム40(C1)は、実行中の処理無しのフラグ応答を受信し、他システムの実行中の処理が無いと判断すると、図7B中のステップS44に進む。
ステップ13において、システム10(A1)からシステム60(B1)へ処理中なしのためこれから処理を開始する旨を連絡し、ステップS66に進む。ステップS66において、システム60(B1)は、JavaVM制御内32のフラグF60にアクセスし、フラグF60をA1処理中に書き換えて、ステップS67に進む。ステップS67において、システム60(B1)は、システム10(A1)に、A1処理中のフラグ応答を返信し、ステップS68へ進むと共に、ステップS13に戻る。
ステップS13において、受信したフラグ応答からA1処理中であると判断し、ステップS14へ進み、システム10(A1)は、共通領域31内に設けられたフラグ10をA1処理中にフラグ更新すると共に、システム10(A1)内で閉じた処理を実行する。
ステップS44において、システム40(C1)からシステム60(B1)へ処理中なしのためこれからC1処理を開始する旨を連絡し、ステップS68に進む。ステップS68において、システム60(B1)は、JavaVM制御内32のフラグF60にアクセスし、フラグF60をA1処理中からC1処理中に書き換えて、ステップS69に進む。ステップS69において、システム60(B1)は、システム40(C1)に、C1処理中のフラグ応答を返信し、ステップS44に戻る。
ステップS44において、受信したフラグ応答からC1処理中であると判断し、ステップS45へ進み、システム40(C1)は、ブラウザ制御内33に設けられたフラグF40をC1処理中にフラグ更新すると共に、システム40(C1)内で閉じた処理を実行する。図7Bの破線で囲まれたステップS44,S45,S68及びS69の処理は、本来、動作すべきでない処理である。
しかし、現行技術のフラグ制御では、システム10(A1)が、ステップS12で処理中無しのフラグ応答を受信してからステップS13の処理を開始する間に、他のシステムからのアクセスが可能なすき間時間が存在し、このすき間時間に、ステップS43において、システム40(C1)からシステム60(B1)に対してフラグF60参照の問い合せを受けると、システム60(B1)はシステム40(C1)に対して、処理中無しのフラグ応答を返信してしまう。そのため、本来、動作すべきでない図7Bの破線で囲まれたステップS44,S45,S68及びS69の処理が実行されてしまう。
フラグ制御は、実行順序の制御であり、各システムが同一のメモリ領域にアクセスし、後続処理のメモリへのアクセスをロックする様な排他制御ではないため、フラグの問い合わせ処理が同時に発生する等の要因で処理が衝突すると、後続処理で取得するフラグの状態が正常な状態で取得されないことから制御が機能しなくなり、結果としてシステムとしては本来動作すべきでない時に処理が実行されてしまう。
このような現行技術のフラグ制御による課題を解決する本発明の排他スレッドを用いた排他制御の動作について、説明する。
(IV)本発明の排他制御
図8A及び図8Bは、本発明の実施形態の排他制御プログラムの処理のシーケンス例を示す図である。
本発明の実施形態の排他制御プログラム図8Aにおいて、C言語で構築されたシステム10(A1)と、JavaScript言語で構築されたシステム40(C1)と、Java言語で構築された排他制御プログラム70と、を含んでいる。図8A及び図8Bにおいて、共通領域31、JavaVM制御内32及びブラウザ制御内33は、実際には、図2に描かれているようにメモリ30内に含まれているが、動作を説明する便宜上分離して描かれている。
システム10(A1)で処理が開始されると、ステップS11へ進み、システム10(A1)内で閉じたある処理が実行され、ステップS12へ進む。
ステップS12において、排他制御依頼の処理が行われる。具体的には、システム10(A1)から排他制御プログラム70に対して引数IDnを元に排他制御の開始の依頼をし、ステップS71へ進む。ここで、引数IDnは、メモリ30の共通領域31中のマッピングされたアクセス領域1〜nの番号を示している。以降、引数IDn=ID1として説明する。
ステップS71において、排他制御プログラム70は、引数ID1に基づいて、排他スレッド領域80内のアクセス領域1のスレッドの有無を検索する。排他スレッド領域80内のアクセス領域1には、スレッドが無いので、ステップS72へ進む。ステップS72において、排他制御プログラム70は、排他スレッド領域80内のアクセス領域1にスレッドT1を作成し、ステップS73へ進む。ステップS73において、排他制御プログラム70は、復帰値:完了ID1の排他制御応答をシステム10(A1)に返信し、ステップS12へ戻る。ステップS12において、システム10(A1)は、アクセス領域1へのアクセス許可を得たことを知り、ステップS13へ進む。
ステップS13において、システム10(A1)は、スレッドT1に対応するアクセス領域1における処理を実行し、処理が終了すると、図8B中のステップS14へ進む。
ステップS14において、排他制御完了依頼の処理が行われる。具体的には、システム10(A1)から排他制御プログラム70に対して引数完了ID1を元に排他制御の完了の依頼をし、ステップS74へ進む。ステップS74において、排他制御プログラム70は、引数:完了ID1に基づいて、排他スレッド領域80内のアクセス領域1のスレッドの有無を検索する。アクセス領域1に対応する排他スレッド領域80内には、スレッドT1が有るので、ステップS75に進み、ステップS75において、排他制御プログラム70は、スレッドT1を削除して終了し、ステップS76へ進む。ステップS76において、排他制御プログラム70は、排他制御完了応答をシステム10(A1)へ返し、ステップS14に戻る。ステップS14において、システム10(A1)は、排他制御が完了したことを知り、処理を終了する。
一方、システム40(C1)で処理が開始されると、ステップS41へ進むと、システム40(C1)内で閉じたある処理が実行され、ステップS42へ進む。
ステップS42において、排他制御依頼の処理が行われる。具体的には、システム40(C1)から排他制御プログラム70に対して引数ID1を元に排他制御の開始の依頼をし、ステップS77へ進む。ステップS77において、排他制御プログラム70は、引数ID1に基づいて、排他スレッド領域80内のアクセス領域1のスレッドの有無を検索する。排他スレッド領域80内のアクセス領域1には、スレッドが無いので、ステップS78へ進む。
ステップS78において、排他制御プログラム70は、排他スレッド領域80内のアクセス領域1にスレッドを作成しようと試みるが、ステップS72において既にスレッドT1が作成されているために、スレッドの作成に失敗し、ステップS79へ進む。ステップS79に進むと、排他制御プログラム70は、スレッド終了を待つ終了監視処理を継続し、ステップS75の処理によりスレッドが終了すると、ステップS80へ進む。ステップS80において、排他制御プログラム70は、排他スレッド領域80内のアクセス領域1へのスレッドT1の作成に成功し、ステップS81へ進む。ステップS81において、排他制御プログラム70は、復帰値:完了ID1の排他制御応答をシステム40(C1)に返信し、ステップS42へ戻る。ステップS42において、システム40(C1)は、アクセス領域1へのアクセス許可を認識すると、ステップS43へ進む。
ステップS43において、システム40(C1)は、スレッドT1に対応するアクセス領域1における処理を実行し、処理が終了すると、ステップS44へ進む。
ステップS44において、排他制御完了依頼の処理が行われる。具体的には、システム40(C1)から排他制御プログラム70に対して引数完了ID1を元に排他制御の完了の依頼をし、ステップS82へ進む。ステップS82において、排他制御プログラム70は、引数:完了ID1に基づいて、排他スレッド領域80内のアクセス領域1のスレッドの有無を検索する。アクセス領域1に対応する排他スレッド領域80内には、スレッドT1が有るので、ステップS83に進み、ステップS83において、排他制御プログラム70は、スレッドT1を削除して終了し、ステップS84へ進む。ステップS84において、排他制御プログラム70は、排他制御完了応答をシステム40(C1)へ返し、ステップS44に戻る。ステップS44において、システム40(C1)は、排他制御が完了したことを知り、処理を終了する。
図9A〜図9Cは、本発明の実施形態の排他制御プログラムの処理を示すフローチャートである。
図9Aに示された本発明の実施形態の排他制御プログラムの全体の処理が開始されると、ステップS101に進み、排他制御プログラム70が、排他制御実行の処理を行い、ステップS102へ進む。
ステップS102において、排他制御プログラム70は、排他制御の終了依頼が有るか否かを判定し、終了依頼有と判定しなければ(No)、ステップS101の排他制御実行の処理を行い続け、ステップS102において、終了依頼有と判定されると(Yes)、ステップS103に進み、排他制御プログラム70は、排他制御終了の処理を行い、排他制御プログラム70の処理を終了する。
図9Bは、図9Aの排他制御の処理の詳細を示すフローチャートである。図9BのステップS201、S202、S211及びS212の処理が図9A中のステップS101の排他制御の実行処理に対応し、更に、図9BのステップS221〜S223の処理が図9A中のステップS103の排他制御の終了処理に対応している。
図9A中のステップS101の排他制御の実行処理が開始されると、図9B中のステップS201へ進み、呼出元からの排他制御依頼を受けると、排他制御プログラム70は、排他制御を行うことを希望するアクセス領域を示す排他ID、排他制御完了を希望するアクセス領域を指す完了IDに基づいて、排他スレッドを作成し、ステップS202へ進む。ステップS202において、呼出元へ完了IDの応答を返信し、排他制御依頼の処理を終了する。
排他制御完了依頼を受けると、ステップS211へ進み、排他制御プログラム70は、完了IDに対応する排他スレッドを終了し、ステップS212へ進む。ステップS212に進むと、排他制御プログラム70は、呼出元へ排他制御完了の応答を返信し、排他制御完了依頼の処理を終了する。
更に、図9A中のステップS102で、終了依頼有(Yes)と判定されると、図9B中のステップS221へ進み、排他制御プログラム70は、全ての排他スレッドを一覧取得し、ステップS222へ進む。ステップS222において、排他制御プログラム70は、排他スレッドの一覧の中に排他スレッドが有るか否かを判定し、有りの場合は(Yes)、ステップS223へ進む。ステップS223において、スレッド有りの排他スレッドを終了し、ステップS222へ戻る。ステップS222における判定が排他スレッド無しとなると(No)、図9A中のステップS103の排他制御終了の処理を終了し、排他制御の処理を終了する。
図9Cは、図9Bと並行して行われる排他スレッドの処理を示すフローチャートである。排他スレッドの処理が開始されると、ステップS301へ進み、制御プログラム70は、排他スレッド領域80に、スレッドを作成し、ステップS302へ進み、作成したスレッドを起動し、ステップS303へ進む。
ステップS303に進むと、排他制御プログラム70は、同一IDスレッドが有るか否かを判定し、有る場合は(Yes)、ステップS304に進んで、待ち合わせ処理を実行し、ステップS303へ戻る。ステップS303での判定において、同一IDスレッドが無いと判断された場合(No)、ステップS305へ進む。
ステップS305において、排他制御プログラム70は、排他IDを元に完了IDを生成し、ステップS306へ進む。ステップS306に進むと、排他制御プログラム70は、完了IDを呼出元へ応答し、ステップS311へ進む。ステップS311において、シンクロナイズドブロックによる排他制御が行われ、スレッドが終了すると、ステップS312へ進む。ステップS311におけるシンクロナイズドブロックによる排他制御とは、同一のアクセス領域で処理するスレッドを1つに限定することができるので、2つのスレッドがほぼ同時に実行された場合、先にアクセス領域内に入ったスレッドがアクセス領域内から抜けない限り、後から入ろうとするスレッドが待たされる排他制御である。
ステップS312において、排他制御プログラム70は、完了IDを付加した排他制御応答を呼出元へ返す。
更に、図9A中のステップS103で、終了依頼有(Yes)と判定されると、図9C中のステップS321へ進み、排他制御プログラム70は、完了IDが一致するか否かを判定し、一致すれば(Yes)、ステップS322へ進む。ステップS322に進むと、排他制御プログラム70は、復帰値正常の応答を呼出元へ返信し、処理を終了する。ステップS321における判定で完了IDが一致しなければ(No)、ステップS323へ進み、排他制御プログラム70は、復帰値異常の応答を呼出元へ返信し、処理を継続する。
(V)本発明の排他制御と現行技術のフラグ制御の比較
図7A、図7B及び図8Aを参照しつつ、本発明の排他制御では、現行技術のフラグ制御で問題となる処理状況の問い合わせ処理の衝突がなぜ解消できるかについて説明する。
図7A中の破線で囲まれたプロセスP2には、C言語で構築されたシステムA1からJava言語で構築されたシステムB1への処理状況の問い合わせ(ステップS12、S62、S63)と、JavaScript言語で構築されたシステムC1からJava言語で構築されたシステムB1への処理状況の問い合わせ(ステップS43、S64、S65)と、の衝突が表されている。
現行技術のフラグ制御では、図7A中のプロセスP2のような処理状況の問い合わせの衝突が発生すると、システム60(B1)はシステム10(A1)に対して処理中無しのフラグ応答を返信(ステップS63)しているがシステム10(A1)によるフラグ更新(ステップS66)の前であるため、システム60(B1)はシステム40(C1)に対して、処理中無しのフラグ応答を返信(ステップS65)してしまう。
そのため、本来、動作してはいけない図7Bの破線で囲まれたプロセスP3(ステップS44,S45,S68及びS69)の処理が実行されてしまう。
現行技術のフラグ制御は、実行順序の制御であり、各システムが同一のメモリ領域にアクセスし、後続処理のメモリへのアクセスをロックする様な排他制御ではないため、フラグの問い合わせ処理が同時に発生する等の要因で処理が衝突すると、後続処理で取得するフラグの状態が正しく取得されないことから排他制御が機能しなくなり、結果としてシステムとしては本来動作すべきでない時に処理が実行されてしまう。
これに対し、本発明の排他制御では、図8A中の破線で囲まれたプロセスP4(ステップS12、S71、S42、S77)の排他制御依頼の処理の衝突が発生するが、図8A中の破線で囲まれたプロセスP5(ステップS72、S73、S78、S79)の処理が行われる。プロセスP5の処理では、プロセスP4で排他制御依頼の処理の衝突が発生しても、一つのID1に対応するスレッドは1つのみ作成され、1つのスレッドが作成されると他の排他制御依頼に対してはスレッドは作成されず、作成されたスレッドが終了するのを待ち合わせる終了監視を行う(ステップS79)。そのため、本発明の排他制御によれば、現行技術における処理状況の問い合わせ処理の衝突時に排他処理できない課題を解消することができる。
(実施形態のクライアント-サーバシステム)
図10は、本発明の実施形態のクライアント-サーバシステムのシステム構成例を示す図である。
本発明の実施形態のクライアント-サーバシステムは、図10に示されているように、クライアント端末(以下、「クライアント」という。)100とサーバ200とがネットワーク300により相互に通信可能に接続されている。
クライアント100は、メモリ領域110とハードディスク等の第1の保存領域120と、を有している。メモリ領域110には、例えば、本発明の排他制御プログラム111と、C言語で構築された第1システムであるCシステム112と、プログラム言語Javaで構築された第2システムであるJavaシステム113と、プログラム言語JavaScriptで構築された第3システムであるJavaScriptシステム114と、が格納されている。又、第1の保存領域120には、例えば、C言語で構築された第1システムとしてのCシステム121が保存されている。
サーバ200は、ハードディスク等の第2の保存領域220を有しており、第2の保存領域220には、本発明の排他制御プログラム221と、プログラム言語Javaで構築された第2システムとしてのJavaシステム222と、プログラム言語JavaScriptで構築された第3システムとしてのJavaScriptシステム223と、が保存されている。
クライアント100の起動時に、サーバ200の有する第2の保存領域220に記憶されている排他制御ブログラム221と、第2システムのJavaシステム222と、第3システムのJavaScriptシステム223と、をクライアント100が有する第1のメモリ領域110にダウンロードするように構成される。
(実施形態の効果)
図11(a),(b)は、本発明の排他制御範囲と従来の排他制御範囲を比較して説明する図である。
従来の排他制御範囲は、図11(a)に示されたように、異なるプログラム言語で構築されたシステムA1、システムB1、システムC1の各範囲内に限られており、異なるプログラム言語で構築されたシステムA1、システムB1、システムC1の間を跨ぐ排他制御はできなかった。
これに対し、本発明の排他制御プログラムは、システムA1、システムB1、システムC1を構築している異なるプログラム言語からアクセス可能なプログラム言語で構築され、最先の排他制御依頼に対しての排他スレッドを作成し、2番目以降の排他制御依頼に対しては、シンクロナイズドブロックによる排他制御を行う。そのため、本発明の排他制御範囲は、図11(b)に示されたように、異なるプログラム言語で構築されたシステムA1、システムB1、システムC1の間を跨ぐ排他制御が可能になる。
(産業利用可能性)
本明細書では、背景技術及び発明が解決しようとする課題において、金融情報システムとプログラム言語の歴史等について述べたが、本発明の複合システム、複合システムの排他制御プログラム、及びクライアント−サーバシステムは、金融情報システムに限定されない。業務を継続運用する目的から過去のシステムを継続運用することが常に求められ、新たな開発は過去のソフトウェアに追加する形で開発されてきているシステム、例えば、鉄道運行システム等の情報システムにも適用可能である。
以上、本発明の実施形態について説明したが、本発明は、以上に述べた実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の構成又は実施形態が可能である。
10 第1システム(A1)
11,41 排他制御依頼手段
12,42 処理実行手段
20 第2システム(A2)
30,110 メモリ領域
31 共通領域
32 JavaVM制御内
33 ブラウザ制御内
40 第2システム(C1)
60 第3システム(B1)
F10,F40,F60 フラグ
70,111,221 排他制御プログラム
71 排他制御受付手段
72 スレット検索手段
73 スレッド作成・削除手段
74 スレッド終了監視手段
75 依頼応答返信手段
80 排他スレッド領域
T1,T2,・・・,Tn 排他スレッド
100 クライアント
112,121 Cシステム
113,222 Javaシステム
114,223 JavaScriptシステム
120,220 保存領域
200 サーバ
300 ネットワーク

Claims (6)

  1. コンピュータに、
    異なるプログラム言語により構築された第1及び第2システムの何れかの一方の排他処理状態に対応する排他スレッドの管理を行わせ、
    前記第1又は第2システムからの排他制御依頼に応答して、前記排他スレッドを検索させ、
    前記排他スレッドが無いときは前記排他制御依頼を許可する応答を返させる、
    ことを特徴とする排他制御プログラム。
  2. 前記排他スレッドの管理は、
    前記第1及び第2のシステムの何れか一方の排他処理開始と同時に前記排他スレッドを作成し、前記排他処理の継続中は前記排他スレッド有りの状態を持続し、前記排他処理の完了の後に前記排他スレッドを削除することを特徴とする請求項1に記載の排他制御プログラム。
  3. 前記第1又は第2システムからの排他制御依頼に応答して、前記排他スレッドを検索し、前記排他スレッドが有るときは前記排他制御依頼に対する応答を返さず、前記排他スレッドが削除されるのを待って、前記排他制御依頼を許可する応答を返すことを特徴とする請求項1に記載の排他制御プログラム。
  4. 前記第1システムを構築するプログラム言語である第1の言語は、C言語であり、前記第2システムを構築するプログラム言語である第2の言語は、JavaScript言語であり、前記第1及び第2の言語からアクセス可能な第3の言語は、Java言語であることを特徴とする請求項1〜3の何れか1項に記載の排他制御プログラム。
  5. 第1のプログラム言語により構築された第1システムと、
    前記第1のプログラム言語とは異なる第2のプログラム言語により構築された第2システムと、
    前記第1及び第2システムからアクセス可能な第3の言語により作成された排他制御ブログラムと、を有し、
    前記排他制御プログラムは、前記第1及び第2システムの何れか一方の排他処理状態に対応する排他スレッドの管理を行うと共に、前記第1又は第2システムから排他制御依頼を受けると、前記排他スレッドを検索し、前記排他スレッドが無いときは前記排他制御依頼を許可する応答を返すことを特徴とする複合システム。
  6. 第1のプログラム言語により構築された第1システムを記憶する第1の保存領域と、書込み可能なメモリ領域を有するクライアント端末と、
    前記第1のプログラム言語とは異なる第2のプログラム言語により構築された第2システムと、前記第1及び第2システムからアクセス可能な第3の言語により作成された、前記第1及び第2システムの何れか一方の排他処理状態に対応する排他スレッドの管理を行うと共に、前記第1又は第2システムから排他処理依頼を受けると、前記排他スレッドを検索し、排他スレッドが無いときは前記排他制御依頼を許可する応答を返す排他制御プログラムとを記憶する第2の保存領域を有するサーバと、
    前記クライアント端末と前記サーバとを相互に通信可能に接続するネットワークと、を備え、
    前記クライアント端末の起動時に、前記第2の保存領域に記憶されている前記第2システムと、前記排他制御ブログラムと、を前記メモリ領域にダウンロードすることを特徴とするクライアント-サーバシステム。
JP2015131260A 2015-06-30 2015-06-30 複合システムの排他制御プログラム、複合システム及びクライアント−サーバシステム Pending JP2017016312A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015131260A JP2017016312A (ja) 2015-06-30 2015-06-30 複合システムの排他制御プログラム、複合システム及びクライアント−サーバシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015131260A JP2017016312A (ja) 2015-06-30 2015-06-30 複合システムの排他制御プログラム、複合システム及びクライアント−サーバシステム

Publications (1)

Publication Number Publication Date
JP2017016312A true JP2017016312A (ja) 2017-01-19

Family

ID=57830665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015131260A Pending JP2017016312A (ja) 2015-06-30 2015-06-30 複合システムの排他制御プログラム、複合システム及びクライアント−サーバシステム

Country Status (1)

Country Link
JP (1) JP2017016312A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020030595A (ja) * 2018-08-22 2020-02-27 オムロン株式会社 プログラミング支援装置、プログラミング支援方法、およびプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020030595A (ja) * 2018-08-22 2020-02-27 オムロン株式会社 プログラミング支援装置、プログラミング支援方法、およびプログラム
WO2020039810A1 (ja) * 2018-08-22 2020-02-27 オムロン株式会社 プログラミング支援装置、プログラミング支援方法、およびプログラム
US11307829B2 (en) 2018-08-22 2022-04-19 Omron Corporation Programming assistance device, programming assistance method, and computer-readable recording medium
JP7124556B2 (ja) 2018-08-22 2022-08-24 オムロン株式会社 プログラミング支援装置、プログラミング支援方法、およびプログラム

Similar Documents

Publication Publication Date Title
US10289443B2 (en) System and method for sharing global transaction identifier (GTRID) in a transactional middleware environment
US7900085B2 (en) Backup coordinator for distributed transactions
CN110728363A (zh) 任务处理方法和装置
CN108063813B (zh) 一种集群环境下密码服务网络并行化的方法与系统
US9055065B2 (en) Managing participant order in distributed transactions
US20080069098A1 (en) Group communication system and method
US20210320950A1 (en) System and method for secure multitenant operations of a distributed computing cluster
CN109478148A (zh) 基于工作流程的对象析构
CN112148436A (zh) 去中心化的tcc事务管理方法、装置、设备及系统
US20220224545A1 (en) Method and apparatus for operating blockchain system, device and storage medium
CN105373563B (zh) 数据库切换方法及装置
US9229980B2 (en) Composition model for cloud-hosted serving applications
CN103324679A (zh) 一种缓存服务器中数据更新的控制方法和设备
JP6568576B2 (ja) サーバー・プラットフォーム上においてアトミック・タスクを開始するときにおける制御
US7805731B2 (en) Distributed processing management for de-centralized information ecosystem technologies (DIET)
CN116820527B (zh) 程序升级方法、装置、计算机设备和存储介质
CN111339202B (zh) 一种数据访问方法、装置、设备及存储介质
JP2017016312A (ja) 複合システムの排他制御プログラム、複合システム及びクライアント−サーバシステム
Moschoyiannis et al. True concurrency in long-running transactions for digital ecosystems
CN117076096A (zh) 任务流程的执行方法、装置、计算机可读介质及电子设备
WO2023103340A1 (zh) 一种区块数据提交的方法及装置
KR102501542B1 (ko) 블록체인 시스템의 가동 방법, 장치, 설비 및 저장 매체
CN107733916B (zh) 一种镜像文件的分布式锁资源控制权限迁移方法以及装置
US20180205617A1 (en) System and method for graphically building a virtual network of computer components
WO2007088582A1 (ja) 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体