JP2013054477A - データ共有装置およびデータ共有方法 - Google Patents

データ共有装置およびデータ共有方法 Download PDF

Info

Publication number
JP2013054477A
JP2013054477A JP2011191255A JP2011191255A JP2013054477A JP 2013054477 A JP2013054477 A JP 2013054477A JP 2011191255 A JP2011191255 A JP 2011191255A JP 2011191255 A JP2011191255 A JP 2011191255A JP 2013054477 A JP2013054477 A JP 2013054477A
Authority
JP
Japan
Prior art keywords
data
message
task group
task
reception
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.)
Withdrawn
Application number
JP2011191255A
Other languages
English (en)
Inventor
Akira Yamazaki
晃 山▲崎▼
Satoru Hori
悟 堀
Akitoshi Shimura
明俊 志村
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2011191255A priority Critical patent/JP2013054477A/ja
Priority to PCT/JP2012/060759 priority patent/WO2013031286A1/ja
Publication of JP2013054477A publication Critical patent/JP2013054477A/ja
Withdrawn legal-status Critical Current

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】業務アプリケーション間のデータのやり取りを業務アプリケーションとは異なるデータ共有部によって実現する。
【解決手段】データ共有装置は、業務アプリケーション毎に構成されたタスクグループと、タスクグループ間でメッセージを送受信するメッセージ管理部215を有する。各タスクグループは、一以上のタスクと、タスクが読み書きするデータを格納する本テーブルと、他のタスクグループから受信し本テーブルへ反映されるデータを格納する受信テーブルと、タスクグループ実行部208と、メッセージ送受部214を有する。タスクグループ実行部は、受信テーブルのデータを本テーブルに格納した後に、タスクグループのタスクを順次実行し、本テーブルの内容をメッセージ送受部に渡す。メッセージ送受部は、タスクグループ実行部から受け取ったメッセージはメッセージ管理部へ渡し、メッセージ管理部から受け取ったデータは受信テーブルに格納する。
【選択図】図7

Description

データ共有装置およびデータ共有方法に関する。より詳細には、単一の装置またはネットワークを介して相互接続された複数の装置から構成されたシステムにおける業務アプリケーション間のデータ共有装置およびデータ共有方法に関する。
列車運行管理システムなど複数の業務アプリケーションが実行されるシステムにおいて、各業務アプリケーションは装置内または装置間でお互いにデータをやり取りしている。データのやり取りに関わる処理(例えば、装置内または装置間での排他制御、データ共有タイミングの制御)は、業務アプリケーションのプログラムコード中に多く表れる。
また、データのやりとりの際には、データの送信元がデータの受信先を意識した処理(例えば、受信先装置の指定、受信先に合わせたデータ加工)を行っている。
特開2010-271952号公報
先述のようなシステムでは、データのやりとりに関わる処理が業務アプリケーションのプログラムコード内で多数回出現する。このために、業務アプリケーションのプログラム開発における生産性が上がらない。また、システム構成を変更する場合には、データの送信元と送信先の両方を変更する必要があるので、拡張性も低い。
データ共有装置は、業務アプリケーション毎に構成されたタスクグループと、複数のタスクグループ間でのメッセージの送受信を実行するメッセージ管理部を有する。各タスクグループは、業務アプリケーションの処理を実行する一以上のタスクと、一以上のタスクが読み書きするデータが格納される本テーブルと他のタスクグループから受信し、本テーブルへ反映されるデータが格納される受信テーブルと、タスクグループ実行部と、メッセージ送受部を有する。
タスクグループ実行部は、受信テーブルに格納されているデータを本テーブルに格納した後に、タスクグループの一以上のタスクを順次実行し、当該一以上のタスクの実行が完了した後に本テーブルの内容を有するメッセージをメッセージ送受部に渡す。メッセージ送受部は、タスクグループ実行部から受け取ったメッセージはメッセージ管理部へ渡し、メッセージ管理部から受け取ったメッセージに含まれるデータは受信テーブルに格納する。メッセージ管理部は、メッセージ送受部から受け取ったメッセージを他のタスクグループのメッセージ送受部に渡す。
複数の業務アプリケーションが実行されるシステムにおいて、業務アプリケーション間のデータのやり取りを業務アプリケーションとは異なるデータ共有部によって実現することができる。
システムの構成例を示すシステム構成図である。 サーバのハードウェア構成例を示すハードウェア構成図である。 サーバのソフトウェア構成例を示すソフトウェア構成図である。 タスクグループ特性およびデータ特性の項目例と各項目がとり得る値の例を示す図である。 タスクグループ特性を構成するタスク表の一例を示す図である。 タスクグループ特性を構成するタスクグループ特性表の一例を示す図である。 データ特性の一例を示す図である。 データ特性の他の一例を示す図である。 サーバに構成されたタスクグループの例を示す図である。 本テーブルの一例を示す図である。 送信テーブルの一例を示す図である。 受信テーブルの一例を示す図である。 メッセージの一例を示す図である。 タスクグループにおける処理の一例を示す全体フロー図である。 反映処理の一例を示す反映処理フロー図である。 送信処理の一例を示す送信処理フロー図である。 永続データに対する送信処理の一例を示す永続データ送信処理フロー図である。 受信処理の一例を示す受信処理フロー図である。
以下に添付図面を参照して、データ共有装置およびデータ共有方法の実施の形態を詳細に説明する。
図1は、システムの構成例を図である。PRC(Programmed Route Control)サーバ20は、ネットワーク60を介して、CTC(Centralized Traffic Control)サーバ30、GD(Graphic Display)サーバ40、EDP(Electronic Data Processing)サーバ50と接続されている。
PRCサーバ20は、列車の進路を自動制御するサーバであり、データ共有部10を有している。
CTCサーバ30は、信号や分岐器の連動装置を遠隔操作するサーバであり、データ共有部10を有している。
GDサーバ40は、指令員が運転整理を行うサーバであり、データ共有部10を有している。
EDPサーバ50は、日毎のダイヤをPRCサーバ20に送信するサーバであり、データ共有部10を有している。
PRCサーバ20、CTCサーバ30、GDサーバ40およびEDPサーバ50は、ネットワーク60を介してお互いに通信をしてデータをやりとりすることでデータ共有を実現するシステムを構成している。ただし、システム構成はこれに限られず、データ共有部10を有する2つ以上のサーバがネットワークを介して接続されていればよい。また、単一のサーバ上にデータ共有部10と複数の業務アプリケーションを有し、データ共有部を介して複数の業務アプリケーションがデータをやりとりするシステム構成であっても良い。
また、図1で示したシステム構成は、説明のため鉄道運行管理システムを一例としたが、これは本発明の適用可能な分野を鉄道分野に限るものではない。例えば、システムを、フライトスケジュール管理サーバや、搭乗ゲート管理サーバで構成することにより、航空機のスケジュール管理にを用いることも可能である。
図2は図1で示した各サーバのハードウェア構成例を示すハードウェア構成図である。図2で示すようにサーバ101は、主制御部102、主記憶部103、入力部104、通信部105を備えて構成される。
主制御部102は、主記憶部103に記録されたプログラムコードをプロセッサが実行することで、サーバ101における情報処理を制御する。
主記憶部103は、サーバ101に関する情報を不揮発的に記憶する。
入力部104は、サーバ101に関する情報を手動で入力する必要がある際に、サーバ101に入力を行う。
通信部105は、ネットワーク60を介して、他装置の通信部105と接続し、他装置と情報を伝達しあう。
本構成は、例えば、主制御部102をCPU(Central Processing Unit)とRAM(Random Access Memory)で、主記憶部103をハードディスクで、入力部104をキーボードで、通信部105をイーサネット(登録商標)で、実現することにより、従来からよく知られた装置で構成可能である。
図3は、図1に示した各サーバ101のソフトウェア構成例を示すソフトウェア構成図である。図3で示すように、サーバ101は、データ共有部10と、一以上の業務アプリケーション201、を備えて構成される。これらの実体は、図2に示した主記憶部103に格納されたソフトウェアプログラムおよびデータであり、実行時にはRAMに読み込まれてCPU(プロセッサ)によって実行される。
業務アプリケーション201は、業務を行うためのアプリケーションであり、各業務アプリケーション201は単一のタスクグループと対応している。タスクグループは業務アプリケーションを構成する一以上のタスクと呼ばれるプログラムから構成されており、一つのタスクグループデータベース217を保持する。タスクグループを構成するタスクは、対応するタスクグループデータベース217のデータ(後述する本テーブル上のデータ)を読み書きする。
データ共有部10は、データ格納部202、タスク周期実行プログラム208、データ送信プログラム209、メッセージ作成プログラム210、データ反映プログラム211、データ受信プログラム212、メッセージ解釈プログラム213、メッセージ送受プログラム214、メッセージ管理プログラム215、通信プログラム216、を備えて構成される。タスク周期実行プログラム208、データ送信プログラム209、メッセージ作成プログラム210、データ反映プログラム211、データ受信プログラム212、メッセージ解釈プログラム213、およびメッセージ送受プログラム214はCPU(プロセッサ)によって実行されるとタスクグループ毎に独立した処理を実行することになるので、以降はタスクグループ毎にこれらのプログラムを備えるものとして説明する。しかしこれらのプログラムは機能的にタスクグループ毎に備えられていれば良く、プログラムコードの実体は各サーバに1つ備えていれば良い。
データ格納部202は、データ共有部を実現するソフトウェアプログラムの実行に用いられるデータを格納しており、タスクグループ特性203、一以上のタスクグループデータベース217を有する。各タスクグループデータベース217は、データ特性204、一以上の本テーブル205、送信テーブル206、受信テーブル207、を備えて構成される。
タスクグループ周期実行プログラム208は、タスクグループ毎に設定された周期毎に、対応するタスクグループについての処理を実行する。
データ送信プログラム209は、データ送信処理を行う。
メッセージ作成プログラム210は、データ送信プログラムから渡されたデータをメッセージに変換してメッセージ送受プログラム214へ渡す。
データ反映プログラム211は、データ反映処理を行う。
データ受信プログラム212は、データ受信処理を行う。
メッセージ解釈プログラム213は、メッセージ送受プログラムから渡されたメッセージをデータに変換してデータ受信プログラム212に渡す。
メッセージ送受プログラム214は、メッセージ作成プログラム210から渡されたメッセージをメッセージ管理プログラム215に渡す、もしくはメッセージ管理プログラム215から渡されたメッセージをメッセージ解釈プログラム213に渡す。
メッセージ管理プログラム215は、メッセージ送受プログラム214から渡されたメッセージを装置内の他のメッセージ送受プログラム214および通信プログラム216に渡す、もしくは通信プログラム216から渡されたメッセージを装置内の全てのメッセージ送受プログラム214に渡す。
通信プログラム216は、メッセージ管理プログラム215から渡されたメッセージを、ネットワーク60を介してネットワーク60に接続している他装置の通信プログラム216とメッセージを伝達しあう。
図4は、タスクグループ特性203およびデータ特性204が有する項目例と各項目がとり得る値の例を示した図である。
タスクグループ特性203には、運転状態項目301と、主従系状態項目302が含まれる。データ特性204には、種別項目303、共有項目304と、状態項目305が含まれる。
運転状態項目301は、オンライン、またはモニタランという値をとりうる。
主従系状態項目302は、主系、または従系、または主系と従系の間の移行中という値をとりうる。
種別項目303は、タスクグループのタスクの実行によって更新された本テーブルの内容を他のタスクグループへ送信するタイミングについてのルールを表す項目で、瞬時、または永続という値をとりうる。種別項目が「瞬時」である場合には、本テーブルの更新が発生したタスクグループ実行周期と同じ周期内で当該更新内容の送信が行われ、種別項目が「永続」である場合には、本テーブルの更新が発生したタスクグループの実行周期と必ずしも同じ周期で当該更新内容の送信を行う必要はなく、後の実行周期で更新内容の送信が行われる場合もある。データ共有のリアルタイム要求が高いデータは種別項目が「瞬時」に、リアルタイム要求が低いデータは種別項目が「永続」に設定される。
共有項目304は、送信元、または受信先、またはローカルという値をとりうる。
状態項目305は、正常、または異常、または構築中という値をとりうる。
図5は、タスクグループ特性203の一例を示す図である。各サーバ101は、タスクグループ特性203を一つ備える。タスクグループ特性203は、図5(a)に示すタスク表401と、図5(b)に示すタスクグループ特性表404を備えて構成される。
タスク表401は、タスクグループに登録されているタスクを表す表である。タスク表401は、タスクグループ名称列402とタスク列403を備えて構成される。
タスクグループ名称列402は、タスクグループの名称を表す列である。タスク表401では、TG−A、TG−B、TG−C、TG−Dという名称のタスクグループが存在することを示している。
タスク列403は、各タスクグループに登録されている一以上のタスク群を表す列である。例えば、タスク表401では、タスクグループTG−AにタスクT−AA,タスクT−AB,タスクT−AC,タスクT−ADが登録されている。タスクグループに登録されているタスクは逐次実行される。例えば、タスクグループTG−Aでは、タスクT−AA,タスクT−AB,タスクT−AC,タスクT−ADの順にタスクが実行される。
タスクグループ特性表404は、タスクグループの特性を表す表である。タスクグループ特性表404はタスクグループ名称402と、周期列405と、運転状態項目列406と、主従系状態項目列407を備えて構成される。
タスクグループ名称402は上述の通り、各タスクグループの識別情報(名称)である。周期列405は、各タスクグループについて、タスクグループ周期実行プログラム208が当該タスクグループに登録されているタスク郡の実行を開始する周期を表す列である。例えば、タスクグループ特性表404では、タスクグループTG−Aは1秒周期で、タスクグループTG−Dは3秒周期で起動され、タスク群に含まれる一以上のタスクが逐次実行される。
運転状態項目列406は、タスクグループの運転状態項目を表す列である。例えば、タスクグループ特性表404では、タスクグループTG−Aの運転状態項目はオンラインに、タスクグループTG−Cの運転状態項目はモニタランになっている。
主従系状態項目列407は、タスクグループの主従系状態項目を表す列である。例えば、タスクグループ特性表404では、タスクグループTG−Aの主従系状態項目は主系に、タスクグループTG−Bの主従系状態項目は従系になっている。
図6は、データ特性204の一例を示す図である。各サーバ101は、タスクグループ毎に一つのデータ特性204を備える。図6(a)ではタスクグループTG−Aについてのデータ特性表501を、図6(b)ではタスクグループTG−Bについてのデータ特性表508を示している。
データ特性表501およびデータ特性表508は、タスクグループ名称列502、データ名称列503、種別項目列504、共有項目列505、送信メッセージ数上限列506、状態項目列507、を備えて構成される。
タスクグループ名称列502は、タスクグループの名称を表す列である。例えば、データ特性表501はタスクグループTG−Aが保持するデータについてのものであり、データ特性表508はタスクグループTG−Bが保持するデータについてのものであることを示している。
データ名称列503は、タスクグループが保持しているデータの名称を表す列である。例えば、タスクグループTG−AはDATA−AAA、DATA−BBB、DATA−CCC、DATA−DDDというデータを保持しており、タスクグループTG−BはDATA−AAA、DATA−BBBというデータを保持していることを示している。
種別項目列504は、データの種別項目を示す列である。例えば、データ特性表501において、DATA−AAAの種別項目が瞬時であり、DATA−BBBの種別項目が永続であることを示している。
共有列505は、データの共有項目を表す列である。例えば、データ特性表501において、DATA−AAAの共有項目が送信元であり、DATA−CCCの共有項目が受信先であることを示している。
送信メッセージ数上限列506は、タスクグループにおける処理を一度実行する間に送信できるメッセージ数の上限を表す列である。例えば、データ特性表501において、DATA−BBBの送信メッセージ数上限は100であることを示している。
状態列507は、データの状態項目を表す列である。例えば、データ特性表501において、DATA−AAAの状態項目が正常であり、DATA−CCCの状態項目が構築中であることを示している。
図7は、図5で示したタスクグループ特性203が表すタスクグループ、および図6で示したデータ特性204が表すデータを備えるサーバ601の機能構成の一例を示す図である。サーバは、通信プログラム216、メッセージ管理プログラム215、タスクグループ特性203と二つのタスクグループを有する。尚、タスクグループの数は一例であって、一以上であれば幾つ構成されていても良い。
各タスクグループは、業務アプリケーションを構成する複数のタスク、当該複数のタスクの実行に際して用いられる一以上のデータ、データ特性204、タスクグループ周期実行プログラム208、データ送信プログラム209、データ反映プログラム211、データ受信プログラム212、メッセージ作成プログラム210、メッセージ解釈プログラム213、メッセージ送受プログラム214を有する。ここで、タスクグループが有する各プログラムは図3に示したプログラムであるが、各プログラムがタスクグループ毎に各種処理を実行することから、機能構成としてはタスクグループ毎に各プログラムを有するよう図7では表現している。
タスクグループが有するデータは、本テーブル701、送信テーブル801、受信テーブル901、を用いて管理される。
図8は、本テーブル205の一例を示す図である。タスクグループは、タスクグループが保持するデータ毎に一つの本テーブル205を備える。本テーブル205は少なくとも行番号列702、一以上のデータ列を備える。例えば、図8に示す本テーブル701は、行番号702と、データ列として列車番号列703および出発時刻列704を備える。
行番号列702は、行番号を表す列である。
列車番号列703は、列車番号を表す列である。
出発時刻列704は、出発時刻を表す列である。
タスクグループに登録されているタスクが実行されると、本テーブルのデータ列に格納されているデータがタスクによって読み書きされる。
図9は、送信テーブル206の一例を示す図である。タスクグループは、タスクグループが保持するデータのうち共有項目が送信元、かつ種別項目が永続であるデータの本テーブルに対して一つの送信テーブル206を備える。送信テーブル206は少なくとも、通番列802、送信フラグ803、操作列804、行番号列805、一以上のデータ列を備える。ここでのデータ列の項目は対応する本テーブル205が備えるデータ列の項目と同じものである。例えば、図9に示す送信テーブル801は、図8に示す本テーブル701に対応しており、通番列802、送信フラグ803、操作列804、行番号列805、列車番号列806、出発時刻列807、を備える。
通番列802は、通番を表す列である。
送信フラグ列803は、送信された行であるかどうかを表す列である。
操作列804は、対応する本テーブルに対して行われた操作を表す列である。
行番号列805は、対応する本テーブルに対して行われた操作が対象とする本テーブルの行番号を表す列である。
列車番号列806は、列車番号を表す列である。
出発時刻列807は、出発時刻を表す列である。
共有項目が送信元、かつ種別項目が永続であるデータが変更された場合、対応する送信テーブルに変更内容が追加される。この際の通番は変更内容を追加する前の最大の通番に1を加えた値、送信フラグは0、操作は本テーブルにデータを追加した場合は「Insert」、本テーブルのデータを更新した場合は「Update」、本テーブルのデータを削除した場合は「Delete」、行番号は本テーブルにおいてデータの変更があった行の番号、データは変更内容を表すデータである。
図10は、受信テーブル207の一例を示す図である。タスクグループは、タスクグループが保持するデータのうち共有項目が受信先であるデータの本テーブルに対して一つの受信テーブル206を備える。データの種別項目が瞬時であれば、受信テーブル207が備える列の項目は、対応する本テーブル205が備える列の項目と同じものである。データの種別項目が永続であれば、受信テーブル207は少なくとも、通番列902、反映フラグ903、操作列904、行番号列905、一以上のデータ列を備える。ここでのデータ列の項目は対応する本テーブル205が備えるデータ列の項目と同じものである。例えば、図9に示す受信テーブル901は、種別項目が永続であるデータについての受信テーブルであり、図8に示す本テーブル701に対応しており、通番列902、送信フラグ903、操作列904、行番号列905、列車番号列906、出発時刻列907、を備える。
通番列902は、通番を表す列である。
反映フラグ列903は、反映された行であるかどうかを表す列である。
操作列904は、対応する本テーブルに対して行われた操作を表す列である。
行番号列905は、対応する本テーブルに対して行われた操作が対象とする本テーブルの行番号を表す列である。
列車番号列906は、列車番号を表す列である。
出発時刻列907は、出発時刻を表す列である。
図11は、メッセージの一例を示す図である。メッセージ1001は、図9に示す送信テーブル801の1行目の内容をメッセージに変換したものを表している。メッセージには当該メッセージがどのデータに関するメッセージであるかを示すデータ名称(図11のTable nameの欄参照)、メッセージの種別(図11の場合には「Insert」)、当該メッセージによって送受信されるデータそのもの(図11の場合には「T1000」や「8:00」)等が含まれる。
図11で示すようなメッセージが、メッセージ作成プログラム210で作成され、メッセージ送受プログラム214、メッセージ管理プログラム215を通して、他のタスクグループのメッセージ送受プログラム214に渡される。メッセージ送受プログラム214に渡されたメッセージは、メッセージ解釈プログラム213で解釈されデータ受信プログラム212に渡される。尚、ここでは単一のサーバ上に構成された複数タスクグループ間でメッセージがやりとりされる場合を説明した。異なるサーバ上に構成された複数のタスクグループ間でメッセージがやりとりされる場合には、更にメッセージ管理プログラム215から通信プログラム216にメッセージが引き渡される。通信プログラム216はネットワーク60を介して別のサーバへメッセージを送信し、当該別のサーバの通信プログラム216がメッセージを受信して、メッセージ管理プログラム215経由で受信側のタスクグループのメッセージ送受プログラム214にメッセージが渡される。
図11で示すメッセージの一例1001はXML(Extensible Markup Language)フォーマットを用いて表現されているが、メッセージフォーマットはYAML(Yaml Ain’t Markup Language)でも、JSON(JavaScript Object Notation)でも、その他のメッセージフォーマットでもよい。
図12は、タスクグループにおける処理の流れの一例を示す全体フロー図である。図12で示す処理の流れは、タスクグループ周期実行プログラム208がタスクグループ毎に設定された周期で実行する。
まず、タスクグループ周期実行プログラム208は、データ反映プログラム211を起動する。データ反映プログラム211は、該タスクグループが保持するデータに対する反映処理を行う(S101)。
タスクグループ周期実行プログラム208は、タスクグループ特性203のタスク表を参照し、該タスクグループに登録されているタスクを逐次実行する(S102)。
タスクグループ周期実行プログラム208は、タスクグループ特性203を参照し、該タスクグループの運転状態項目406がオンラインかつ主従系状態項目407が主系であるかどうか判定する(S103)。該タスクグループの運転状態項目406がオンラインかつ主従系状態項目407が主系であればS104へ、該タスクグループの運転状態項目406がオンラインでない、または主従系状態項目407が主系でなければ終了へと処理を進める。
タスクグループ周期実行プログラム208は、データ送信プログラム209を起動する。データ送信プログラム209は、該タスクグループが保持するデータに対する送信処理を行う(S104)。
以上の処理を行うことにより、タスクグループに登録されたタスクが逐次実行されている間のデータの一貫性を保ちながら、他タスクグループとデータを共有できる。
図13は、反映処理の一例を示す反映処理フロー図である。図13は、図12におけるS101の詳細を表す。図13で示す反映処理はデータ反映プログラム211によって実行される。
まず、データ反映プログラム211は、該タスクグループにおけるデータ特性204を参照し、共有項目505が受信先となっているデータを抽出し、抽出されたデータを反映候補データとして反映候補データ群に登録する(S201)。
データ反映プログラム211は、反映候補データ群に反映候補データが存在するか判定する(S202)。反映候補データ群に反映候補データが存在すればS203へ、存在しなければ終了へと処理を進める。
データ反映プログラム211は、反映候補データ群から反映候補データを任意に一つ選択する(S203)。ここでは、反映候補データ群を配列とみなして先頭から順番に選んでもよいし、末尾から選んでもよいし、無作為に選んでもよい。
データ反映プログラム211は、S203において選択した反映候補データについて、該タスクグループのデータ特性204を参照し、該反映候補データの種別項目504が瞬時であるか判定する(S204)。該反映候補データの種別項目504が瞬時であればS205へ、瞬時でなければ(永続ならば)S206へ処理を進める。
データ反映プログラム211は、該反映候補データについての受信テーブル207を参照し、その内容を該反映候補データについての本テーブル205へ反映する(S205)。
データ反映プログラム211は、該反映候補データについての受信テーブル207から反映フラグ903が0の行を全て抽出し、該行の内容を本テーブルに反映する。次に、該行の反映フラグ903を1にする(S206)。
データ反映プログラム211は、反映候補データ群から該反映候補データを除去し、S202へと処理を進める(S207)。
以上の反映処理により、該タスクグループが保持するデータのうち共有項目505が受信先になっているものについて受信テーブル207の内容が本テーブル205へ反映される。
図14は、送信処理の一例を示す送信処理フロー図である。図14は、図12におけるS104の詳細を表す。図14で示す送信処理はデータ送信プログラム209によって提供される。
まず、データ送信プログラム209は、該タスクグループにおけるデータ特性204を参照し、共有項目505が送信元となっているデータを抽出し、抽出されたデータを送信候補データとして送信候補データ群に登録する(S301)。
データ送信プログラム209は、送信候補データ群に送信候補データが存在するか判定する(S202)。送信候補データ群に送信候補データが存在すればS303へ、存在しなければ終了へと処理を進める。
データ送信プログラム209は、送信候補データ群から送信候補データを任意に一つ選択する(S303)。ここでは、送信候補データ群を配列とみなして先頭から順番に選んでもよいし、末尾から選んでもよいし、無作為に選んでもよい。
データ送信プログラム209は、S303において選択した送信候補データについて、該タスクグループのデータ特性204を参照し、該送信候補データの状態項目507が正常であるか判定する(S304)。該送信候補データの状態項目507が正常であればS305へ、正常でなければS308へ処理を進める。
データ送信プログラム209は、該送信候補データについて、該タスクグループのデータ特性204を参照し、該送信候補データの種別項目504が瞬時であるか判定する(S305)。該送信候補データの種別項目504が瞬時であればS306へ、瞬時でなければ(永続ならば)S307へ処理を進める。
データ送信プログラム209は、該送信候補データについての本テーブル205を参照し、その内容をメッセージ作成プログラム210へ渡してメッセージに変換し、メッセージ送受プログラム214へと渡す(S306)。
データ送信プログラム209は、永続データ送信処理を行う(S307)。永続データの送信処理の詳細は図15を用いて後述する。
データ送信プログラム209は、送信候補データ群から該送信候補データを除去し、S302へと処理を進める(S308)。
以上の送信処理により、該タスクグループが保持するデータのうち共有項目505が送信元になっており、かつ状態項目507が正常になっているものについて、種別項目504が瞬時のものは本テーブル205の内容が、種別項目504が永続のものは送信テーブル206の内容がメッセージ送受プログラム214およびメッセージ管理プログラム215を通して、他タスクグループへと送信される。
図15は、永続データに対する送信処理の一例を示す永続データ送信処理フロー図である。図15は、図14におけるS307の詳細を表す。図15で示す永続データ送信処理はデータ送信プログラム209によって実行される。
データ送信プログラム209は、図14におけるS303で選択された送信候補データについての送信テーブル206から送信フラグ803が0の行を抽出し、抽出された行を送信候補行群に登録する(S401)。
データ送信プログラム209は、送信候補行群に行が存在するか判定する(S402)。送信候補行群に行が存在すればS403へ、存在しなければS404へ処理を進める。
データ送信プログラム209は、メッセージ作成プログラム210により構築開始を表すメッセージを作成し、メッセージ送受プログラム214へと渡す(S403)。
データ送信プログラム209は、該送信候補データについての送信テーブル206における通番802から通番が最大のものを最新通番として選択し、メッセージ作成プログラム210により最新通番を表すメッセージを作成し、メッセージ送受プログラム214へと渡す(S404)。
データ送信プログラム209は、送信候補行群に登録されている行のうち、送信テーブル206上での通番802が最小である行を選択し送信候補行とする(S405)。
データ送信プログラム209は、S405において選択された送信候補行の内容をメッセージ作成プログラム210へ渡してメッセージに変換し、メッセージ送受プログラム214へと渡す(S406)。
データ送信プログラム209は、該送信候補行の送信フラグ803を1にする(S407)。
データ送信プログラム209は、送信候補行群から該送信候補行を除去する(S408)。
データ送信プログラム209は、図15に示す永続データ送信処理フローが開始してからS406が実行された回数をカウントし、その回数が該送信候補データの送信メッセージ数上限506以下であるか判定する(S409)。S406が実行された回数が該送信候補データの送信メッセージ数上限506未満であればS410に、S406が実行された回数が該送信候補データの送信メッセージ数上限506以上であれば終了に処理を進める。
データ送信プログラム209は、送信候補行群に行が存在するか判定する(S410)。送信候補行群に行が存在すればS405へ、存在しなければS411へ処理を進める。
データ送信プログラム209は、メッセージ作成プログラム210により構築完了を表すメッセージを作成し、メッセージ送受プログラム214へと渡す(S411)。
以上の永続データ送信処理により、該タスクグループが保持するデータのうち共有項目505が送信元になっており、かつ状態項目507が正常になっており、かつ種別項目504が永続のものは送信テーブル206の内容をメッセージ送受プログラム214およびメッセージ管理プログラム215を通して、他タスクグループへと送信される。このとき、一度の処理で送信するメッセージ数が該送信候補データの送信メッセージ数上限506を超えないように処理が終了し、送信しなかった行については次回以降の周期の永続データ送信処理において送信される。
図16は、受信処理の一例を示す受信処理フロー図である。図16で示す受信処理はデータ受信プログラム212によって実行される。図16で示す受信処理はタスクグループのメッセージ送受プログラム214がメッセージを受信する度に起動される。
まず、データ受信プログラム212は、該タスクグループのデータ特性204を参照し、メッセージ送受プログラム214が受信したメッセージに含まれるデータ名称からこのメッセージが該タスクグループが保持するデータに関するメッセージであるか判定する(S501)。受信したメッセージが、該タスクグループが保持するデータに関するメッセージであれば(すなわち当該メッセージに含まれるデータ名称が当該タスクグループのデータ特性に登録されていれば)S502に、受信したメッセージが該タスクグループが保持するデータに関するメッセージでなければ終了に処理を進める。
データ受信プログラム212は、該メッセージの対象データ(すなわち、当該メッセージに含まれるデータ名称で表されるデータ)の共有項目505が受信先かどうか判定する(S502)。該メッセージの対象データの共有項目505が受信先であればS503に、該メッセージの対象データの共有項目505が受信先でなければS511に処理を進める。
データ受信プログラム212は、該タスクグループの主従系状態項目407が主系または従系であるか判定する(S503)。該タスクグループの主従系状態項目407が主系または従系であればS504に、該タスクグループの主従系状態項目407が主系でなく、かつ従系でなければ終了に処理を進める。
データ受信プログラム212は、該メッセージの内容(種別)が最新通番であるか判定する(S504)。該メッセージの内容が最新通番であればS505に、該メッセージの内容が最新通番でなければS506に処理を進める。
データ受信プログラム212は、該メッセージが対象とするデータの受信テーブル207について、通番902が1から該メッセージが表す最新通番まですべて存在するか判定する。該メッセージが対象とするデータの受信テーブル207について、通番902が1から該メッセージが表す最新通番まですべて存在すれば、終了へと処理を進める。該メッセージが対象とするデータの受信テーブル207について、通番902が1から該メッセージが表す最新通番まですべて存在していなければ、メッセージ作成プログラム210により、存在しない通番902の再送要求を表すメッセージを作成し、メッセージ送受プログラム214へと渡し、該メッセージが対象とするデータの状態項目507を異常にする(S505)。
データ受信プログラム212は、該メッセージの内容(種別)が構築開始であるか判定する(S506)。該メッセージの内容が構築開始であればS507に、該メッセージの内容が構築開始でなければS508に処理を進める。
データ受信プログラム212は、該メッセージが対象とするデータの状態項目507を構築中にする(S507)。
データ受信プログラム212は、該メッセージの内容(種別)が構築完了であるか判定する(S508)。該メッセージの内容が構築完了であればS509に、該メッセージの内容が構築完了でなければS510に処理を進める。
データ受信プログラム212は、該メッセージが対象とするデータの状態項目507を正常にする(S509)。
データ受信プログラム212は、該メッセージの対象データの受信テーブル207にメッセージの内容(すなわち、当該メッセージで送受信されるデータそのもの)を反映する(S510)。
データ受信プログラム212は、該メッセージの対象データの共有項目505が送信元かどうか判定する(S511)。該メッセージの対象データの共有項目505が送信元であればS512に、該メッセージの対象データの共有項目505が送信元でなければ終了に処理を進める。
データ受信プログラム212は、該タスクグループの主従系状態項目407が主系であるか判定する(S512)。該タスクグループの主従系状態項目407が主系であればS513に、該タスクグループの主従系状態項目407が主系でなければ終了に処理を進める。
データ受信プログラム212は、該メッセージの内容(種別)が再送要求であるか判定する(S513)。該メッセージの内容が再送要求であればS514に、該メッセージの内容が再送要求でなければ終了に処理を進める。
データ受信プログラム212は、該メッセージの対象データの送信テーブルについて、再送要求された通番802を持つ行の送信フラグを0にする(S514)。
以上の受信処理により、他のタスクグループが図14で示す送信処理および図15で示す永続データ送信処理によって送信したメッセージを受信した際に、このメッセージ受信側のタスクグループで処理することができる。各タスクグループにおいて周期実行される図12に示す全体フローと、図16の受信処理フローは、非同期で動作するが、受信処理フローが直接本テーブルを読書きすることはないため、タスクグループに登録されたタスクが逐次実行されている間のデータの一貫性を保つことができる。
以上の実施形態によれば、各業務アプリケーションの実行(タスクグループに含まれるタスクの実行)により更新されたデータが、データ共有部10によって他の業務アプリケーション(タスクグループ)に配信されて・反映される。各業務アプリケーションはローカルのデータベース(本テーブル)にアクセスしてデータを読み書きするだけでよくなり、業務アプリケーションがデータ共有のためのプログラムコードを持つ必要がないので、アプリを開発する際の生産性が向上する。また、業務アプリケーションに対して一つのタスクグループを割り当てて、装置内または装置間の他の全てのタスクグループとメッセージをやり取りしているため、システム構成が変化した際(例えば、新規装置が追加される、業務アプリケーションの装置内構成が変わる)の改修を最小限に留めることができる。
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
10 データ共有部
201 業務アプリケーション
202 データ格納部
203 タスクグループ特性
204 データ特性
205 本テーブル
206 送信テーブル
207 受信テーブル
208 タスクグループ周期実行プログラム
209 データ送信プログラム
210 メッセージ作成プログラム
211 データ反映プログラム
212 データ受信プログラム
213 メッセージ解釈プログラム
214 メッセージ送受プログラム
215 メッセージ管理プログラム
216 通信プログラム
217 タスクグループデータベース

Claims (12)

  1. 複数の業務アプリケーション間でデータを共有するデータ共有装置であって、
    業務アプリケーション毎に構成されたタスクグループと、
    複数のタスクグループ間でのメッセージの送受信を実行するメッセージ管理部を有しており、
    各タスクグループは、
    業務アプリケーションの処理を実行する一以上のタスクと、
    前記一以上のタスクが読み書きするデータが格納される本テーブルと
    他のタスクグループから受信し、前記本テーブルへ反映されるデータが格納される受信テーブルと、
    タスクグループ実行部と、
    メッセージ送受部を有しており、
    前記タスクグループ実行部は、前記受信テーブルに格納されているデータを前記本テーブルに格納した後に、タスクグループの一以上のタスクを順次実行し、当該一以上のタスクの実行が完了した後に前記本テーブルの内容を有するメッセージを前記メッセージ送受部に渡し、
    前記メッセージ送受部は、前記タスクグループ実行部から受け取ったメッセージは前記メッセージ管理部へ渡し、前記メッセージ管理部から受け取ったメッセージに含まれるデータは前記受信テーブルに格納し、
    前記メッセージ管理部は、前記メッセージ送受部から受け取ったメッセージを他のタスクグループのメッセージ送受部に渡すことを特徴とするデータ共有装置。
  2. 請求項1記載のデータ共有装置であって、
    各タスクグループには実行周期が定められており、
    前記タスクグループ実行部は、当該タスクグループの実行周期毎に前記一以上のタスクを順次実行することを特徴とするデータ共有装置。
  3. 請求項2記載のデータ共有装置であって、
    各タスクグループは、本テーブルで管理されるデータのうちデータ更新と同じ実行周期で他のタスクグループへ送信される第一種別のデータと、データ更新と同じ実行周期で他のタスクグループへ送信される必要のない第二種別のデータとを分けて管理しており、
    各タスクグループは、前記第二種別のデータについて、他のタスクグループへ送信されるデータを格納する送信テーブルを更に有しており、
    前記タスクグループ実行部は、前記一以上のタスクの実行が完了した後に、前記第一種別のデータについては前記本テーブルの内容を有するメッセージを前記メッセージ送受部に渡し、前記第二種別のデータについては前記受信テーブルの内容を有するメッセージを前記メッセージ送受部に渡すことを特徴とするデータ共有装置。
  4. 請求項3記載のデータ共有装置であって、
    各タスクグループには、一回の実行周期で送信可能な第二種別のデータの上限が定められていることを特徴とするデータ共有装置。
  5. 請求項3記載のデータ共有装置であって、
    前記送信テーブルおよび前記受信テーブルには各々、データ毎に通番が割り振られており、
    前記タスクグループ実行部は、前記第二種別のデータについて前記通番に基づいて受信したデータに抜けがあると判断した場合に、再送要求メッセージを前記メッセージ送受部へ渡すことを特徴とするデータ共有装置。
  6. 請求項1記載のデータ共有装置であって、
    更に、前記メッセージ管理部から受け取ったメッセージをネットワークを介して他のデータ共有装置のメッセージ管理部へ渡す通信部を有することを特徴とするデータ共有装置。
  7. 複数の業務アプリケーション間でデータを共有するデータ共有装置におけるデータ共有方法であって、
    前記データ共有装置は、
    業務アプリケーション毎に構成されたタスクグループと、
    複数のタスクグループ間でのメッセージの送受信を実行するメッセージ管理部を有しており、
    各タスクグループは、
    業務アプリケーションの処理を実行する一以上のタスクと、
    前記一以上のタスクが読み書きするデータが格納される本テーブルと
    他のタスクグループから受信し、前記本テーブルへ反映されるデータが格納される受信テーブルと、
    タスクグループ実行部と、
    メッセージ送受部を有しており、
    前記タスクグループ実行部は、前記受信テーブルに格納されているデータを前記本テーブルに格納した後に、タスクグループの一以上のタスクを順次実行し、当該一以上のタスクの実行が完了した後に前記本テーブルの内容を有するメッセージを前記メッセージ送受部に渡し、
    前記メッセージ送受部は、前記タスクグループ実行部から受け取ったメッセージは前記メッセージ管理部へ渡し、前記メッセージ管理部から受け取ったメッセージに含まれるデータは前記受信テーブルに格納し、
    前記メッセージ管理部は、前記メッセージ送受部から受け取ったメッセージを他のタスクグループのメッセージ送受部に渡すことを特徴とするデータ共有方法。
  8. 請求項7記載のデータ共有方法であって、
    各タスクグループには実行周期が定められており、
    前記タスクグループ実行部は、当該タスクグループの実行周期毎に前記一以上のタスクを順次実行することを特徴とするデータ共有方法。
  9. 請求項8記載のデータ共有方法であって、
    各タスクグループは、本テーブルで管理されるデータのうちデータ更新と同じ実行周期で他のタスクグループへ送信される第一種別のデータと、データ更新と同じ実行周期で他のタスクグループへ送信される必要のない第二種別のデータとを分けて管理しており、
    各タスクグループは、前記第二種別のデータについて、他のタスクグループへ送信されるデータを格納する送信テーブルを更に有しており、
    前記タスクグループ実行部は、前記一以上のタスクの実行が完了した後に、前記第一種別のデータについては前記本テーブルの内容を有するメッセージを前記メッセージ送受部に渡し、前記第二種別のデータについては前記受信テーブルの内容を有するメッセージを前記メッセージ送受部に渡すことを特徴とするデータ共有方法。
  10. 請求項9記載のデータ共有方法であって、
    各タスクグループには、一回の実行周期で送信可能な第二種別のデータの上限が定められていることを特徴とするデータ共有方法。
  11. 請求項9記載のデータ共有方法であって、
    前記送信テーブルおよび前記受信テーブルには各々、データ毎に通番が割り振られており、
    前記タスクグループ実行部は、前記第二種別のデータについて前記通番に基づいて受信したデータに抜けがあると判断した場合に、再送要求メッセージを前記メッセージ送受部へ渡すことを特徴とするデータ共有方法。
  12. 請求項7記載のデータ共有方法であって、
    更に、前記メッセージ管理部から受け取ったメッセージを、ネットワークを介して他のデータ共有装置のメッセージ管理部へ渡す通信部を有することを特徴とするデータ共有方法。
JP2011191255A 2011-09-02 2011-09-02 データ共有装置およびデータ共有方法 Withdrawn JP2013054477A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011191255A JP2013054477A (ja) 2011-09-02 2011-09-02 データ共有装置およびデータ共有方法
PCT/JP2012/060759 WO2013031286A1 (ja) 2011-09-02 2012-04-20 データ共有装置およびデータ共有方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011191255A JP2013054477A (ja) 2011-09-02 2011-09-02 データ共有装置およびデータ共有方法

Publications (1)

Publication Number Publication Date
JP2013054477A true JP2013054477A (ja) 2013-03-21

Family

ID=47755804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011191255A Withdrawn JP2013054477A (ja) 2011-09-02 2011-09-02 データ共有装置およびデータ共有方法

Country Status (2)

Country Link
JP (1) JP2013054477A (ja)
WO (1) WO2013031286A1 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05225027A (ja) * 1992-02-14 1993-09-03 Hitachi Ltd 分散システムのデータ管理方法及び装置
JP3243849B2 (ja) * 1992-08-18 2002-01-07 富士通株式会社 タスクスケジューリング装置
JP4131781B2 (ja) * 2001-03-30 2008-08-13 株式会社東芝 分散処理型データベース管理システム
JP5251446B2 (ja) * 2008-11-17 2013-07-31 富士通株式会社 データ共有プログラム,データ共有方法及びデータ共有装置
JP2010271952A (ja) * 2009-05-21 2010-12-02 Toshiba Corp 分散型制御システムのデータ管理装置

Also Published As

Publication number Publication date
WO2013031286A1 (ja) 2013-03-07

Similar Documents

Publication Publication Date Title
US11971905B2 (en) Systems and methods for synchronizing nodes of a robotic system
US9800515B2 (en) Mechanism for controlling a process on a computing node based on the participation status of the computing node
CN104769561B (zh) 能够实现不同物理域地址空间的节点间的聚类的存储总线协议
US9888048B1 (en) Supporting millions of parallel light weight data streams in a distributed system
CN112069265B (zh) 配置数据的同步方法、业务数据系统、计算机系统和介质
CN107921981A (zh) 分布式机器的监测和控制
JPWO2018116933A1 (ja) Rpc変換処理システムおよびrpc変換方法
CN111813868B (zh) 数据同步方法及装置
CN111475537A (zh) 基于pulsar的全球数据同步系统
WO2013031286A1 (ja) データ共有装置およびデータ共有方法
JP2010152591A (ja) データベースシステム、データ処理方法及びデータ処理プログラム
EP4083881A1 (en) Distributed production planning and instruction apparatus and distributed production planning and instruction system
CN110276152A (zh) 一种并行离散时间仿真的带时间余度非严格时间管理方法
JP6169485B2 (ja) 分散処理システム
JP2009020801A (ja) 情報処理装置およびシミュレーション連携方法
US20140228984A1 (en) Program creation device and programmable logic controller
JP2005092872A (ja) サービス処理システムおよびその処理方法並びにその処理プログラム
US11277473B1 (en) Coordinating breaking changes in automatic data exchange
US20220156278A1 (en) Database Data Replication Tool
EP2715555B1 (en) Managing and simplifying distributed applications
US20230409375A1 (en) Batch processing tracking
US20150347239A1 (en) Global backup lock manager
JP2017058923A (ja) ログ記録システム
US10860568B2 (en) External data source linking to queries in memory
JP2017034434A (ja) 通信制御装置および方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141104