JP7201000B2 - データ処理システム、方法およびプログラム - Google Patents
データ処理システム、方法およびプログラム Download PDFInfo
- Publication number
- JP7201000B2 JP7201000B2 JP2020546694A JP2020546694A JP7201000B2 JP 7201000 B2 JP7201000 B2 JP 7201000B2 JP 2020546694 A JP2020546694 A JP 2020546694A JP 2020546694 A JP2020546694 A JP 2020546694A JP 7201000 B2 JP7201000 B2 JP 7201000B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- persistence
- processing
- request
- processing system
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims description 214
- 238000000034 method Methods 0.000 title claims description 59
- 230000002688 persistence Effects 0.000 claims description 180
- 230000006870 function Effects 0.000 claims description 145
- 230000008569 process Effects 0.000 claims description 43
- 238000000926 separation method Methods 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 15
- 238000003672 processing method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 27
- 230000008859 change Effects 0.000 description 10
- 230000015654 memory Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 8
- 239000011800 void material Substances 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000002301 combined effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/76—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/803—Application aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/826—Involving periods of time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/08—Load balancing or load distribution
- H04W28/09—Management thereof
- H04W28/0925—Management thereof using policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
図10に示すように、従来のデータ処理システムでは、ノード(Node)110内にCSE120、DBMS(Data Base Management System)130が設けられる。CSE120は、リクエスト受付部121、リソース処理部122、永続化処理部123を有する。永続化とは、プログラムの終了後も、データが失われない場所にデータが保存される処理である。
リソース処理部122は、containerリソース(データをためるコンテナの働きをする)に対応する第1コンテナ122a、および第2コンテナ122bを有する。
DBMS130は、永続化処理部123から渡されたデータを内部のデータテーブル131または132に永続的に格納する。この例では、第1コンテナ122aから永続化処理部123を経由して渡されたデータはデータテーブル131に格納され、第2コンテナ122bから永続化処理部123を経由して渡されたデータはデータテーブル132に格納される。
また、第1アプリケーションを動作させるときの時間がデータ処理システム全体の遅延時間となる(課題(K5))。つまり、第1コンテナ122aにデータが入れられたタイミングから第2コンテナ122bにデータが格納できるタイミングまでの間に差が生じる。このため、時間にセンシティブなIoTアプリケーションには適用できなくなる課題に繋がる(課題(K6))。
(第1の実施形態)
まず、本発明の第1の実施形態について説明する。
図1は、本発明の第1の実施形態に係るデータ処理システムの構成例を示す図である。
本発明の第1の実施形態に係るデータ処理システムは、1以上のアプリケーションプログラムと複数のデバイスとがデータベースと通信ネットワークを介して接続されるデータ処理システムであって、図1に示すように、ノード10内にCSE(データ処理装置)20、DBMS30が設けられる。CSE20は、リクエスト受付部21、リソース処理部22、永続化処理部23を有する。各部の詳細については後述する。図1ではデバイスとしてデータ観測デバイスのみを示している。
リソース処理部22は、上記メモリのうち随時の書込および読み出しが可能な不揮発性メモリに設けられる。
リソース処理部22は、containerリソースに対応する第1コンテナ22a、第2コンテナ22bを有する。
DBMS30は、永続化処理部23から渡された処理結果であるデータを内部のデータテーブルに永続的に格納する。
(S1)
oneM2MのCSE内部の永続化処理部内に複数種類の永続化機能部をプラグインできるようにする。
(S1)では、共通のインタフェースを実装するクラスとして永続化機能部を実現することで、動的に機能を呼び出すことが、様々なプログラム言語(Java(登録商標), C++, ruby, python等)で可能である。
Interface PersistenceLayer {
void create( String uri, Resource r );
Resource retrieve(String uri);
void update( String uri, Resource r );
void delete(String uri);
}
(LIST1)
ここで、Resourceクラスは、各々の具体的なResourceクラスのスーパクラスである。各具体的なクラスはJavaBeanのようなクラスで実現できる。つまり、具体的なクラスは、取得メソッドと設定メソッドとをそれぞれ有するようなオブジェクトである。また、別の形態では、具体的なクラスは、publicなfieldを有するようなシンプルなオブジェクトであってもよく、また、JSONを表現するようなオブジェクトであってもよい。
上記のプラグインは、開発者が要件に応じて作ることができ、同時に複数種類の永続化機能部が同一のCSE20の内部で使用されることができる。
MyEizokuka {
void create(uri, Resource r){
String con = r.getCon();
String[] data = con.split(“,”);
for(String item: data ){
Resource r2 = new ContentInstance();
R2.con = item;
DB.store(r2 );
}
}
…
}
上記のコードの例では、create(作成)に係るコードについて記載したが、retrieve(データ内容取得), update(データ更新), delete(削除)に係るコードについても、DBMS30に格納できる。
上記の永続化機能部の名称を割り当てる設定ファイルを、リソースのタイプと、リソースツリー上のURIの場所との一方または組み合わせに基づいて用意して、CSE20内の図示しない内部メモリに格納する。
例えば、次のような設定ファイルを用意することができる。
<rules>
<rule>
<name>rule1</name>
<uri>/a/b/c</uri>
<resourceTypes>
<resourceType>4</resourceType>
<resourceType>5</resourceType>
</resourceTypes>
<driver>jp.co.ntt.onem2m.MyEizokuka1</driver>
</rule>
<rule>
<name>rule2</name>
<uri>/a/b/d </uri>
<resourceTypes>
<resourceType>4</resourceType>
<resourceType>5</resourceType>
</resourceTypes>
<driver>jp.co.ntt.onem2m.MyEizokuka2</driver>
</rule>
<rule>
<name>rule3</name>
<uri>*</uri>
<resourceTypes>
<resourceType>10</resourceType>
</resourceTypes>
<driver>jp.co.ntt.onem2m.MyEizokuka3</driver>
</rule>
この設定ファイル中で、「*」は任意のURIに該当することを意味する。設定ファイル中のDriverタグの内部には、上記の各種永続化機能部に対応する名称が記載される。例えば、Driverタグ内の「MyEizokuka1」、「MyEizokuka2」、「MyEizokuka3」は、上記の永続化処理部23内の第1永続化機能部23b1、第2永続化機能部23b2、第3永続化機能部23b3にそれぞれ対応する名称とすることができる。
永続化処理部は、切替部を設ける。この切替部は、設定ファイルを読み込んで、必要なリクエストに対する処理先である永続化機能部を切り替える。
初回の実行時には、永続化処理部23の切替部23aは、CSE20から設定ファイルを読み込む(S11→S12)。切替部23aは、リクエストの中のuri、resourceTypeが、設定ファイルに登録されているルールの1つにマッチングするときは(S13のYes)、マッチングするルールのdriverタグに記載された名称に対応する永続化機能部を永続化処理部23内の複数種類の永続化機能部23b1,23b2,23b3の中から特定する。この特定された永続化機能部に対応するdriverのクラスが未インスタンス化である場合には(S14のNo)、切替部23aは、このクラスをインスタンス化して(S15)、上記のマッチングするルールのdriverを呼び出す(S16)。上記特定された永続化機能部に対応するdriverのクラスがインスタンス化されている場合(S14のYes)は、切替部23aは、上記のマッチングするルールのdriverを呼び出す(S16)。
また、切替部のdriverのクラスは、永続化機能部のインタフェースである上記の(LIST1)に示すクラスと同様でよい。
(S2)
永続化処理部23内の複数種類の永続化機能部のうち一つは、リソース処理部22から単一のデータを渡される。図1に示した例では、複数種類の永続化機能部は、第1永続化機能部23b1、第2永続化機能部23b2、第3永続化機能部23b3である。上記のように単一のデータを渡された際に、このデータに複数の論理上のデータが含まれている、つまり渡されたデータが複数の論理データでなる物理データである場合には、上記複数種類の永続化機能部のうち一つは、渡されたデータを論理データごとに分離して、この分離された物理データを処理結果としてDBMS30に格納する。
図4は、本発明の第1の実施形態に係るデータ処理システムがDBMSに格納するデータの一例を表形式で示す図である。図4では、列の属性として、OriginalSeq、DestinationSeq、content、resourceName、その他データなどを有し、リソースのContentInstanceのcontentに“10, 20, 11, 22, 33”が入っている例について説明する。
永続化処理部23内の複数種類の永続化機能部のうち1つは、リソース処理部22から切替部23aを介して入力データを渡された際に、このデータが、1つの論理上のデータの内部に内部構造を有するデータである場合には、当該データを、この内部構造に応じた、DBMS30に格納されるデータベースのスキーマに格納するように構成される。
図5は、本発明の第1の実施形態に係るデータ処理システムが、内部構造を有するデータをDBMSに格納するデータの一例を表形式で示す図である。図5では、列の属性として、OriginalSeq、X、Y、resourceName、その他データなどを有する。
また、resourceNameとしてData1に対して取得要求がリクエスト受付部21により受け付けられた場合は、永続化処理部23は、該当するレコードのx列、y列を連結してリクエスト元に返却する。
S4では、入力データに”x1,y1,x2,y2,x3,y3”という形式でデータが入っている場合について説明する。つまり、内部構造を有する論理的な複数のデータが連結されて一つの物理データとしてリソース処理部22から永続化処理部23に渡される場合である。
上記の(S2)、(S4)では、永続化処理部23による変換(分離)後のデータのみがDBMS30に格納される例を説明したが、(S5)では、永続化処理部23が、変換前、つまり入力データの値の分離前のデータ、および変換後、つまり入力データの値の分離後のデータをDBMS30にそれぞれ格納する例について説明する。
ここでは、分離前のデータは「分離前データ用テーブル」に格納される。図7に示した例では、各行に1つの物理データが格納される。図8に示した例では、物理データを分離したデータが個別の行に格納される。また、分離前データ用テーブルにおける「con」の列の値を「分離後データ用テーブル」における「X」、「Y」の列の各行に分離して記載する。「分離後データ用テーブル」のカラムOriginalSeqは外部参照キーであり、「分離前データ用テーブル」の同名のカラムを参照する。
一方で、DBMS30の記憶容量を多く消費してしまう。ただし、resourceName又はその他データの属性などを重複して保持する必要がないという点は有利である。
第2コンテナ22bに格納されるデータに対する、アプリケーションからのリクエストに応じた処理のために、永続化処理部23内の、第1永続化機能部23b1、第2永続化機能部23b2、第3永続化機能部23b3のうち、アプリケーションからのリクエストのタイプ・リソースツリー上のURIの場所の一方または組み合わせに応じて切替部23aにより切り替えられた永続化機能部は、処理対象である1つの論理的なデータを第2コンテナ22bにマッピングして、リクエスト元のアプリケーションがリクエストによる処理対象のデータの特定のためのアクセス可能なデータとして公開する。
切替部23aにより切り替えられた永続化機能部は、図4に示したデータの各行をリソース処理部22が管理するリソースであるContentInstanceにマッピングして渡す。この永続化機能部は、データの読み込み専用の運用とする。
切替部23aにより切り替えられた永続化機能部は、データの特定のフィールドを参照することで、第2コンテナ22bにおけるマッピング先のコンテナを変更する。
DBMS30は、RDB(Relational database)などのように内部の統計計算などの演算機能を有したデータベースで構成し、アプリケーションから、このデータベースへのアクセスを可能とする構成とする。
DBMS30内のデータベースに、データの意味に則したスキーマのテーブルを設定する。これにより、頻出する検索に対するインデックスを容易に生成できる。
データの定義、スキーマを読み込んで、永続化機能部とデータベース中のテーブルを実行時に生成する。
これに対し(SB1)では、永続化機能部は、データ形式のメタ情報から、データベースのスキーマおよび変換プログラムを生成する。
永続化機能部は、メタデータを利用して、内部に含まれるデータと、その名称(ValueA, ValueB)、型情報(文字列(string)、真偽値(boolean))を取得することができる。永続化機能部は、この取得結果からテーブルを容易に生成でき、また、元のデータから上記のテーブルに挿入するプログラムを生成することが可能である。
<xs:element name="MyData" >
<xs:complexType>
<xs:sequence>
<xs:element name="ValueA" type="xs:string" />
<xs:element name="ValueB" type="xs:boolean" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:element>
このようなファイルを読み込ませると同時に、永続化機能部を本機能で作成することが可能である。
(B1)、(B2):課題(K1)、(K2)を解決したときの効果
(S8)により、DBMS30が有する解析機能を利用して解析アプリケーションを作成できるので、開発工数を小さくできる。DBMS30内で解析処理が行われ、DBMS30とCSE20との間でデータ転送を行なう必要がないため、リソースを節約でき処理時間を高速にすることができる。
(S9)により、データの意味に則したスキーマのテーブルが用意される構成なので、データ検索のためのIndexを容易に設定することが可能になる。
第1コンテナ22aにデータを格納するとともに、第2コンテナ22bにもデータが用意されるため、即時に結果を得ることができる。
図10に示した変換アプリケーションが不要なので、計算機の計算資源を有効に活用できる。
(B5)挙げた遅延時間を解消し、(S9)により適用可能なIoTアプリケーションが増加することができる。
(S2)、(S3)、(S4)により、データ変換後のデータのみを保持するので、DBMS30の記憶領域を節約できる。
(S9)により、アクセスコントロールポリシーの設定が簡略化できると共に、処理時間向上の効果が得られる。
なお、本実施形態ではContainerリソース、ContentInstanceリソースを用いた例を中心に説明したが、TimeSerieseリソース(containerリソースと似た役割を有し、時系列データの欠損を検出できる)、TimeSerieseInstanceリソースを用いても同様に実現できる。なお、FlexContainerリソース(保持する属性をカスタマイズし、Inteworkingにおいて多様な型を扱う)を用いても同様に実現できる。
本実施形態では、各種コードはJavaを用いた例を中心に説明したが、それ以外のプログラム言語でも同様に実現することが可能である。
次に、本発明の第2の実施形態について説明する。
図11は、oneM2Mの典型的なInterworking手法の一例を示す図である。
図11に示すように、別のノード200内にIPE(Interworking Proxy Entity)201、ネットワークインタフェース部202、203が設けられる。図11に示すように、oneM2Mの典型的なInterworking手法は、oneM2MのCSE120にて、他のプロトコル/規格のデータをIPE201内のネットワークインタフェース部202およびCSE120内のネットワークインタフェース部140を介して取得および変換してDBMS130に格納する形で行われる。
また、IPE201によりCSE120上にコピーされたデータをデータ利用アプリケーションが利用するために、データが発生してから利用されるまでの比較的大きな時間差(ラグ時間)が生じるという課題もある。
図12に示した例では、図2Bと比較して、ノード10は、アプリケーションと通信するネットワークインタフェース部40、および外部のデバイスと通信するデバイス向けネットワークインタフェース部41を有する。
また、アプリケーションが求めた際に、ノード10は、非oneM2Mプロトコル上のデバイスにデータを動的に取得しにいくために、比較的大きなラグ時間が発生することがなくなる。
(2)Object getResource(String uri) //与えられたURIに該当するリソースの全体を返す。
(3)Object[ ] getResourceWithSpecifiedAttribute(String uri, String [ ] attributeNameList ) //与えられたURIに該当するリソースの指定された属性を返す。
(4)Void updateResouce(String uri, String [ ] attributeNameList, Object [ ] attributeValueList );// 与えられたURIのリソースを attributeNameList, attributeValueListで示される属性値で更新する。
(5)Void deleteResource(String uri) //与えられたURIに該当するリソースを削除する。
(11)Device[ ] DiscoverDevice( );// デバイスを発見し、配列として返す。
(12)String[ ] getDeviceAttributeList( Device d);// デバイスが有する属性名の配列を返す。
(13)Object[ ] getDeviceAttributeValue(Device d, String[ ] attributeNames); // デバイスの指定された属性名に対する属性値を配列として返す。
(14)void setDeviceAttributeValue(Device d, String[ ] attributeNames, Object [ ] attributeValueList); // デバイスの指定された属性名に対する属性値を配列として返す。
(21)-/IWKG/ProtocolX/{deviceName}
次に、永続化機能部23b3のlist()が「URI = -/IWKG/ProtocolX/」として、呼び出された場合の処理を説明する。これは、物理的な意味としては、永続化機能部23b3がデバイスのリストを求めることに対応する。
永続化機能部23b3は、デバイスとノード10との間のネットワークであるデバイスネットワークに対してdiscovery()を実行し、このデバイスネットワークから取得されたデバイス名の一覧(例えばDevice1, Device2, .. Device n)が永続化機能部23b3へ返却される。
次に、永続化機能部23b3のgetResource()が「URI = -/IWKG/ProtocolX/Device1」として呼び出された場合の処理を説明する。これは、物理的な意味としては、デバイス名が「Device1」であるデバイス(以下、「Device1」と称する)の全属性値が永続化機能部23b3に返されることに対応する。例として温湿度計の例で説明する。
永続化機能部23b3は、Device1が有する属性名を取得するための、getDeviceAttributeList()を呼び出す。ここでは、「Device1」は、temperature(温度)とhumidity(湿度)とでなる2種類の属性を有しているとし、それぞれの属性名が永続化機能部23b3に返される。
ここで、属性「temperature」の値である属性値「25.5(℃)」と、属性「humidity」の値「60(%)」が「Device1」から永続化機能部23b3に返される。
この値を受け取った永続化機能部23b3は、上記の属性名と、当該属性名に対応する属性値との組を切替部23aに返却する。図14ではJSONの形で説明しているが、これに限定されない。
次に、永続化機能部23b3のupdateResouce()がURI = -/IWKG/ProtocolX/Device2として呼び出された場合の処理を説明する。これは、物理的な意味としては、デバイス名が「Device2」であるデバイス(以下、「Device2」と称する)の属性値が更新されることに対応する。ここでは、Device2が音楽プレイヤーである例で説明する。
この場合は、永続化機能部23b3は、デバイスとしてDevice2を指定し、
setDeviceAttributeValue(Device2, attributeNames, attributeValueList);
を呼び出す。
図16に示した例は、図14に示した例を拡張したものであり、一般的にデバイスが有する属性名キャッシュを永続化機能部23b3内に配置することにより、属性名の取得の効率化を図るものである。
(31)String [ ] getDeviceAttributeList(Device d);//指定されたデバイスが有する属性名を取得する。
(32)putDeviceAttributeList(Device d , String [ ] attributeName);//指定されたデバイスが有する属性名を登録する。
また、属性名キャッシュにDevice1の属性名のキャッシュデータが存在しない場合は、永続化機能部23b3は、図14に示した例と同様にgetDeviceAttributeList()によりDevice1に属性名を問い合わせる。
このとき、後に属性名のデータを効率的に取得するために、永続化機能部23b3は、Device1から取得した属性名のデータをputDeviceAttributeList()により属性名キャッシュに登録する。
デバイスネットワークにおいては、属性値の更新時に通知を受け取ることのできるものと、この受け取ることが不可能なものがある。
通知を受け取ることのできないデバイスネットワークにおいての実現例を以降に説明する。
属性値キャッシュは、例えば下記の(41)、(42)のようなI/Fを有する。
(41)
Object [ ] getDeviceAttributeValue(Device d、String[ ] attributeNames ); //指定したデバイスが有する属性名を取得する。
(42)
putDeviceAttributeValue(Device d , String [ ] attributeName, Object[ ] values);//指定したデバイスが有する属性名を登録する。
このとき、後に属性値のデータを効率的に取得するために、永続化機能部23b3は、Device1から取得した属性値のデータをputDeviceAttributeValue()により属性値キャッシュに登録する。
また、キャシュの有効性管理の別の例として、データの更新時刻、データの変更時刻の少なくとも1つを用いて、キャッシュの有効時間を動的に判定し、これを制御する、キャッシュ有効性制御が挙げられる。データの更新時刻とは、データが更新された時刻のことである。ただし、データ自身が変更されない場合もある。データの値が同じであるのにデータ更新があったことは、更新時刻、およびバージョン番号を共に返却する機能を有するデバイス等において検出できる。
具体例として、まず、永続化機能部23b3は、切替部23aからの要求とは独立してデバイスモニタリングフェーズを有し、デバイスモニタリングフェーズの期間にデータの更新時刻、およびデータ変更時刻をモニタリングする。
第2の方法としては、永続化機能部23b3は、データ変更間隔の最小値をdurationとする。
第3の方法としては、永続化機能部23b3は、データ更新間隔の統計計算を行ない、データ更新間隔の平均μと標準偏差σをそれぞれ求め、μ-n・σをdurationとして採用する。ここで、例えばnには、1, 2, 3が割り当てられる。
第4の方法としては、永続化機能部23b3は、データ変更間隔の統計計算を行ない、データ変更間隔の平均μと標準偏差σを求め、μ-n・σをdurationとして採用する。ここで、例えばnには、1, 2, 3が割り当てられる。
これにより、実質的なデータ変更間隔およびデータ更新間隔に応じたキャッシュの寿命を取得できる。
このようなモニタリングフェーズは、システムの起動時だけではなく、定期的に行なうことで、傾向の変化に追従することができる。
図18に示した例では、Device1が属性値を更新した際に、この更新の通知を永続化機能部23b3が受け取る。ここにはデバイスのIDと変更の在った属性名がパラメータとして永続化機能部23b3に渡される。この後、永続化機能部23b3は、指定されたパラメータに従って、属性値キャッシュに記憶される、Device1が属性値のデータを無効にする。
プリフェッチを行なわない場合は、永続化機能部23b3は、特に処理は行なわずに次の通知を待つ。
20,120…CSE
21,121…リクエスト受付部
22,122…リソース処理部
22a,122a…第1コンテナ
22b,122b…第2コンテナ
23…永続化処理部
23a…切替部
23b1…第1永続化機能部
23b2…第2永続化機能部
23b3…第3永続化機能部
40,41…ネットワークインタフェース部
300,301…デバイス
Claims (11)
- 1以上のアプリケーションプログラムと1以上のデバイスがデータベースにネットワークを介して接続されるデータ処理システムであって、
プロセッサを有し、
前記プロセッサは、
前記アプリケーションプログラムからのリクエスト又は前記デバイスからのデータを受け付ける受付処理を行ない、
前記リクエスト又はデータのタイプに応じて処理を行なって、その処理結果を前記データベースに永続的に格納する複数種類の永続化機能を有し、前記受付処理により受け付けられた前記リクエスト又はデータのタイプに応じた処理を前記永続化機能により行なって、その処理結果を前記データベースに永続的に格納する永続化処理を行ない、
前記受付処理により受け付けられた前記リクエスト又はデータのタイプに応じたファイルであって、当該リクエスト又はデータの処理先が前記複数種類の永続化機能のいずれかであるかが設定された設定ファイルに基づいて、前記受付処理により受け付けられた前記リクエスト又はデータの処理先を前記複数種類の永続化機能のいずれかに切り替える切替処理を行なう、ように構成される、
データ処理システム。 - 前記プロセッサは、
前記受付処理として、
前記デバイスからのデータを受け付け、
前記永続化処理として、
前記受付処理により受け付けられた単一のデータが、複数の論理データからなる物理データであるときに、前記単一のデータを論理データごとに分離して、前記分離された物理データを前記処理結果として前記データベースに格納する、ように構成される、
請求項1に記載のデータ処理システム。 - 前記データベースは、物理的又は論理的に異なる2つ以上のデータベース群によって構成される、
請求項2に記載のデータ処理システム。 - 前記プロセッサは、
前記永続化処理として、
前記受付処理により受け付けられた前記単一のデータに通し番号を付与したデータと、前記分離された物理データの各々に前記分離する前のデータに付与された通し番号と同じ通し番号を付与した物理データとを前記データベースにそれぞれ格納する、ように構成される、
請求項2に記載のデータ処理システム。 - 前記プロセッサは、
前記受付処理として、
前記デバイスからのデータを受け付け、
前記永続化処理として、
前記受付処理により受け付けられたデータが、相互に関連付けられた複数種類のデータからなるときに、前記複数種類のデータを種類ごとに分離して、前記分離されたデータを前記データベースに格納する、ように構成される、
請求項1に記載のデータ処理システム。 - 前記プロセッサは、
前記永続化処理として、
前記データベースに格納されたデータを読み出して、前記アプリケーションプログラムによりアクセス可能なデータとして設定する、ように構成される、
請求項1に記載のデータ処理システム。 - 前記プロセッサは、
前記永続化処理として、
前記データベースに格納されたデータを読み出して、前記読み出されたデータのうち第1のデータを、第1のアプリケーションプログラムによりアクセス可能なデータとして設定し、前記読み出されたデータのうち第2のデータを、第2のアプリケーションプログラムによりアクセス可能なデータとして設定する、ように構成される、
請求項6に記載のデータ処理システム。 - 前記プロセッサは、
前記永続化処理として、
ネットワークインタフェースを介して前記デバイスと異なる第2のデバイスとの間で通信をさらに行ない、
前記受付処理より第1の通信プロトコルで受け付けられた前記リクエストに基づき、前記第2のデバイスとの間で前記第1の通信プロトコルと異なる第2のプロトコルを用いて情報の送受信を行なう、ように構成される、
請求項1に記載のデータ処理システム。 - 前記永続化処理により前記第2のデバイスから取得された情報を記憶する記憶装置をさらに有し、
前記プロセッサは、
前記受付処理より第1の通信プロトコルで受け付けられた、前記第2のデバイスから情報を取得するリクエストに基づき、前記第2のデバイスから取得した情報を前記記憶装置に記憶し、
前記受付処理より第1の通信プロトコルで受け付けられたリクエストに基づき、前記リクエストで示される、取得対象の情報が前記記憶装置に記憶される場合は、この情報を前記記憶装置から読み出す、ように構成される、
請求項8に記載のデータ処理システム。 - 1以上のアプリケーションプログラムと1以上のデバイスがデータベースにネットワークを介して接続され、プロセッサを具備するデータ処理システムが行なうデータ処理方法であって、
前記プロセッサにより、
前記アプリケーションプログラムからのリクエスト又は前記デバイスからのデータを受け付ける受付処理を行ない、
前記リクエスト又はデータのタイプに応じて処理を行なって、その処理結果を前記データベースに永続的に格納する複数種類の永続化機能を有し、前記受付処理により受け付けられた前記リクエスト又はデータのタイプに応じた処理を前記永続化機能により行なって、その処理結果を前記データベースに永続的に格納する永続化処理を行ない、
前記受付処理により受け付けられた前記リクエスト又はデータのタイプに応じたファイルであって、当該リクエスト又はデータの処理先が前記複数種類の永続化機能のいずれかであるかが設定された設定ファイルに基づいて、前記受付処理により受け付けられた前記リクエスト又はデータの処理先を前記複数種類の永続化機能のいずれかに切り替える切替処理を行なう、
データ処理方法。 - 請求項1乃至9のいずれか1項に記載のデータ処理システムの前記各処理として前記プロセッサを機能させるデータ処理プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018172086 | 2018-09-14 | ||
JP2018172086 | 2018-09-14 | ||
PCT/JP2019/022190 WO2020054147A1 (ja) | 2018-09-14 | 2019-06-04 | データ処理システム、方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2020054147A1 JPWO2020054147A1 (ja) | 2021-09-24 |
JP7201000B2 true JP7201000B2 (ja) | 2023-01-10 |
Family
ID=69778533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020546694A Active JP7201000B2 (ja) | 2018-09-14 | 2019-06-04 | データ処理システム、方法およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220107954A1 (ja) |
JP (1) | JP7201000B2 (ja) |
WO (1) | WO2020054147A1 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010117905A (ja) | 2008-11-13 | 2010-05-27 | Fuji Xerox Co Ltd | 情報処理装置およびプログラム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4070693B2 (ja) * | 2002-09-13 | 2008-04-02 | 株式会社リコー | 画像形成装置およびスキャンデータ処理方法 |
JP2007220086A (ja) * | 2006-01-17 | 2007-08-30 | Ntt Docomo Inc | 入出力制御装置、入出力制御システム及び入出力制御方法 |
US20080247004A1 (en) * | 2007-04-03 | 2008-10-09 | Michael Yeung | System and method for workflow control of scanned document input |
JP5610368B2 (ja) * | 2010-05-13 | 2014-10-22 | セイコーエプソン株式会社 | ジョブ処理装置およびジョブ処理方法 |
CN102147711B (zh) * | 2010-12-31 | 2014-04-02 | 华为数字技术(成都)有限公司 | 一种基于数据内容识别的存储方法及装置 |
US9047288B2 (en) * | 2012-01-06 | 2015-06-02 | Apple Inc. | Intelligent data delivery and storage based on data characteristics |
US9098217B2 (en) * | 2013-03-22 | 2015-08-04 | Hewlett-Packard Development Company, L.P. | Causing an action to occur in response to scanned data |
-
2019
- 2019-06-04 US US17/275,550 patent/US20220107954A1/en active Pending
- 2019-06-04 WO PCT/JP2019/022190 patent/WO2020054147A1/ja active Application Filing
- 2019-06-04 JP JP2020546694A patent/JP7201000B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010117905A (ja) | 2008-11-13 | 2010-05-27 | Fuji Xerox Co Ltd | 情報処理装置およびプログラム |
Non-Patent Citations (2)
Title |
---|
西沢 夢路,基礎からのMySQL 改訂版,第1版,ソフトバンククリエイティブ株式会社,pp. 284--285 |
飯沢 篤志,データベースおもしろ講座-7-,bit,日本,共立出版株式会社,1991年11月01日,Vol.23 No.12(通巻302号),pp. 104--115 |
Also Published As
Publication number | Publication date |
---|---|
WO2020054147A1 (ja) | 2020-03-19 |
US20220107954A1 (en) | 2022-04-07 |
JPWO2020054147A1 (ja) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7322119B2 (ja) | ネットワーク上のデータソースへの照会 | |
US7383552B2 (en) | Object manager for common information model | |
US8407349B2 (en) | Discovering and identifying manageable information technology resources | |
KR101004576B1 (ko) | 연쇄 발견 웹 서비스 | |
US7844612B2 (en) | Method for pruning objects in a service registry and repository | |
WO2016123921A1 (zh) | 基于Http协议的多数据源的数据处理方法及系统 | |
US7698479B2 (en) | User interface to a data storage system and rule store | |
US7725469B2 (en) | System and program products for pruning objects in a service registry and repository | |
JP5454201B2 (ja) | データストア切替装置、データストア切替方法およびデータストア切替プログラム | |
US11762775B2 (en) | Systems and methods for implementing overlapping data caching for object application program interfaces | |
US9367610B2 (en) | Knowledge registry systems and methods | |
EP3583766B1 (en) | Service discovery using attribute matching | |
US7467373B2 (en) | Global object system | |
Rudolf | SQL, noSQL or newSQL–comparison and applicability for Smart Spaces | |
JP7201000B2 (ja) | データ処理システム、方法およびプログラム | |
US8181187B2 (en) | Gateways having localized in-memory databases and business logic execution | |
AU2019202964B2 (en) | Apparatus and Method for Communicating Data in a Multi-Tennant Computer System | |
Sacco | Redis: Key/Value Database | |
US20100257194A1 (en) | Retrieving data in batches from a line of business system | |
Xing et al. | Active ontology: An information integration approach for dynamic information sources | |
Krogh et al. | The X DevAPI | |
Quinto et al. | Introduction to Impala | |
MacLean et al. | Exploring Android Persistence and Content Providers | |
Vaddeman et al. | Hadoop Ecosystem Tools |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210114 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220308 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20220509 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220707 |
|
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: 20221122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221205 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7201000 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |