JP7119448B2 - 情報処理装置及び情報処理プログラム - Google Patents
情報処理装置及び情報処理プログラム Download PDFInfo
- Publication number
- JP7119448B2 JP7119448B2 JP2018048707A JP2018048707A JP7119448B2 JP 7119448 B2 JP7119448 B2 JP 7119448B2 JP 2018048707 A JP2018048707 A JP 2018048707A JP 2018048707 A JP2018048707 A JP 2018048707A JP 7119448 B2 JP7119448 B2 JP 7119448B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- information processing
- persistence
- objects
- processing apparatus
- 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
Images
Landscapes
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、インポートされた関数オブジェクトについて、予め用意している関数オブジェクトと同等の機能を持つ永続化した関数オブジェクトとすることができる情報処理装置及び情報処理プログラムを提供することを目的としている。
請求項1の発明は、与えられたオブジェクトセットから対応するスケルトンからなるオブジェクトセットを生成する生成手段と、前記スケルトンに基づいてオブジェクトにインデックスを付与する付与手段と、前記与えられたオブジェクトセットから永続化が必要なオブジェクトセットを導出し、永続化する永続化手段を有する情報処理装置である。
オブジェクト空間の構造に基づいて、オブジェクト操作に関わる特権の制御やオブジェクトの可視性の制御を行う技術として、以下のものがある。
特許文献1に記載の技術は、オブジェクトの情報とオブジェクトの処理に関する権限とを同一のデータ構造で管理し、クライアントからの要求を柔軟に制御する。
特許文献2に記載の技術は、オブジェクトの情報とオブジェクトの処理に関する権限とを同一のデータ構造で管理し、クライアントからの要求を柔軟に制御する。
特許文献3に記載の技術は、一のマスターデータについての提供内容を個別に制御する。
特許文献4に記載の技術は、クライアントから受け付けた要求にかかる権限オブジェクトに応じたコンテンツを提供する。
特許文献5に記載の技術は、クライアントから受け付けた要求にかかる権限オブジェクトに応じて決定される関数により要求を処理する。
・親は子に対して更新(CRUDのU)や削除(CRUDのD)が行える、
・親が生成(CRUDのC)したオブジェクトは子になる、
ということである。
なお、CRUDとは、コンピュータソフトウェアが持つ永続性の4つの基本機能のイニシャルを並べた用語であり、Create(生成)、Read(読み取り)、Update(更新)、Delete(削除)である。
また、オブジェクト識別子はランダム生成される256ビット程度の値を利用することを想定しており、オブジェクト識別子自体が推定困難なクレデンシャルとしての特徴を持つことがポイントである。これが、最も端的に表れるのは、OAuth2.0のアクセストークンを
token={owner, client, scope}
の様なオブジェクトと捉え、そのアクセストークンの真正性を
owner.isPrototypeOf(token)
に帰着していることである。なお、「owner.isPrototypeOf(token)」は、オーナーはトークンの親やその親やそのまた親…、つまり、オーナーはトークンのプロトタイプチェーンに属する、という意味である。
これによって、第三者がトークンを偽造することを不可能にしている。もちろん、これは、オブジェクトフォームを永続化する際に、永続化を指示するエンティティと永続化されるオブジェクトとの比較(isPrototypeOfでの比較)が適正に行われるという前提のもとである。
ここまで説明したような構成をとることによって、特権の制御を、オブジェクトスペースのみから自律的に定まるようにできる。クラウドコンピューティングの進展によって、膨大な量のオブジェクトを永続化して利用することの物理的なフィージビリティは増大しており、課題となっているのは、単純に大量のオブジェクトを扱うことの困難から、それらをプライバシーやセキュリティなどの要件を満たして運用することの困難に軸足を移しており、前述の特許文献に記載の技術群はこれらの課題を解決することを企図している。
プロトタイプ継承を実現する実装環境としてジャバスクリプトを選択し、その上でプロトタイプを行ったが、永続化の対象とするオブジェクトはJSONで表現可能な程度のプレインなオブジェクトのみだった。実際のジャバスクリプト実行環境におけるオブジェクトは、プレインなオブジェクトだけではない。
つまり、あるクラス(=コンストラクタ)Xに帰属するインスタンスoは、X.prototypeの子であり、X.prototypeには、そのクラスに共通するインスタンスメソッドを属性として持つことが普通である。
したがって、実際のシステムに適用する場合には、オブジェクトのセーブ・ロード時にアドホックなパース処理を差し挟む必要があり、この処理の追加が実現上のボトルネックとなってしまう。
このようなアドホックなパース処理を排除するためには、任意のジャバスクリプトオブジェクトをそのままのかたちで忠実に永続化できなければならない。
プリミティブとは、
・数値
・文字列
・ブール値(つまり、trueとfalse)
・シンボル(例えば、Symbol.toStringTagとか)
・undefined
・null
である。
オブジェクトとは、文字列かシンボルをキー(属性名)として、任意の値をバリュー(属性値)とする、(あるいは、場合によっては、属性値の直接的な指定の代わりに、そのアクセサを指定することもできる、)コレクションであり、さらに、プロトタイプ(ここでの「プロトタイプ」という語は,関数オブジェクトのプロトタイプという名前の属性を指しているわけではなく,プロトタイプ継承における親のオブジェクトとしてのプロトタイプを指す)であるオブジェクトを指定することができる。なお、プロトタイプであるオブジェクトが無い場合もある。その場合には便宜上、そのオブジェクトのプロトタイプはnullである、ということにする。
プロトタイプと属性については、下記のような一連のアクセサがある。
Reflect.getPrototypeOf(o)
Reflect.setPrototypeOf(o,proto)
Reflect.ownKeys(o)
Reflect.getOwnPropertyDescriptor(o,k)
Reflect.defineProperty(o,k,desc)
Reflect.deleteProperty(o,k)
ここで、
・oは対象のオブジェクトである。
・protoはプロトタイプとなるオブジェクトないしnullである。
・kは属性名である文字列かシンボルである。
・descは属性記述子であり、{value,writable,enumerable,configurable}という値型のものと{get,set,enumerable,configurable}というアクセサ型のものとがある。
である。これらの公開されたアクセサを持つスロット(つまり、プロトタイプと属性)のみで構成されるオブジェクトは容易にコピーすること、つまり、永続化することができる。
周知のように関数の本体は、
・実行時の挙動を規定する実装、コールスロットに対応
・コンストラクタとしてニュー演算子と共に呼び出される実装、コンストラクトスロットに対応
があり、これらの実体を保存のために取り出したり、保存された実体を利用するためにロードしたりする公開のアクセサがない。したがって、オブジェクトが関数である場合、そのままのかたちで忠実に永続化することは不可能にみえる。
関数には、
・Objectのようなコンストラクタにもなる関数
・console.logのようなコンストラクタにはならない関数
の種類がある。本実施の形態によって、インポートされた関数オブジェクトについて、予め用意している関数オブジェクトと異なるオブジェクトでありながら同等の機能を持つ永続化した関数オブジェクトとすることができる。つまり、本実施の形態によって、永続化対象のオブジェクトが関数である場合も、そのままのかたちで忠実に永続化できるようにする。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係、ログイン等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。また、「A、B、C」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その1つのみを選んでいる場合(例えば、Aのみ)を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
情報処理装置100は、広範に利用されている実行環境(例えば、JavaScript(登録商標))において、オブジェクトを忠実に永続化することを可能にし、アドホックなデータ構造の定式化やパース処理を不要にする。任意のオブジェクトを特定のパース処理を伴わずに永続化するには、メソッドまで含めた永続化が必要であり、情報処理装置100は、その永続化を行っている。また、情報処理装置100は、JavaScriptの標準であるECMAScript(エクマスクリプト)の仕様に基づいて、関数の永続化を実現させている。つまり、情報処理装置100は、実行環境にインポートされた関数オブジェクト(「与えられたオブジェクトセット」の一例)に対して、インスタンス化を行う。具体的には、ジャバスクリプトのプロキシー機構を用いて、インスタンス化すればよい。
実行環境の外側に由来するインポートされた関数オブジェクト(「与えられたオブジェクトセット」の一例)、つまり、自分のものではない関数オブジェクトは、ジャバスクリプトのプロキシー機構でインスタンス化することで、自分のものである関数オブジェクトと同等の機能を持ちながら異なるオブジェクトにする。
永続化される若しくはされたオブジェクトはID(IDentification)が振られている。このIDはオーナーが異なれば、同一の種類のオブジェクトであっても異なる。例えば、オーナーであるアリスのObject.prototypeと異なるオーナーであるボブのObject.prototypeは異なるIDを持つ。
利用される関数には、オーナーに依存しないインデックスが振られている。例えば、アリスのObjectとボブのObjectは異なるIDを持つが、同一のインデックスを持つ。インデックスの実現方法はバリエーションがありえるが、ここでは、オブジェクトの接続関係(プロトタイプチェーンないし属性として)を表現するスケルトンオブジェクトを用い、スケルトンオブジェクトのIDを対応するオブジェクトのインデックスとしてアサインする手法を想定する。
生成モジュール120(makeSkeleton)は、関数受付モジュール110によって受け付けられたオブジェクトセットから対応するスケルトン(skeleton)からなるオブジェクトセットを生成する。スケルトンとは、オブジェクトの接続関係を表現するオブジェクトである。また、オブジェクトの接続関係のみを表現するオブジェクトとしてもよい。
付与モジュール130(assignSkeleton)は、スケルトンに基づいてオブジェクトにインデックスを付与する。なお、「付与する」は、以下、アサインするともいう。
また、永続化モジュール140は、オブジェクトのプロトタイプと属性がオブジェクトの場合は、オブジェクトの識別子に置換するようにしてもよい。
さらに、永続化モジュール140は、オブジェクトが関数の場合は、そのインデックスも記録するようにしてもよい。
また、ロードモジュール150は、インスタンス化されるオブジェクトの種類が関数の場合は、記録されたインデックスからネイティブの関数を特定し、その関数のプロキシーとしてフォーリンな関数をインスタンス化するようにしてもよい。
ユーザー端末200Aは、情報処理装置100Aを有している。ユーザー端末200Bは、情報処理装置100Bを有している。情報管理装置250は、情報処理装置100Cを有している。ユーザー端末200A、ユーザー端末200B、情報管理装置250は、通信回線290を介してそれぞれ接続されている。通信回線290は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。また、情報処理装置100による機能は、クラウドサービスとして実現してもよい。
例えば、ユーザー端末200Aは、情報管理装置250又はユーザー端末200Bから、関数オブジェクトをインポートする。そして、情報処理装置100Aによって、その関数オブジェクトをユーザー端末200A内で永続化して、利用できるようにする。
ステップS302では、関数受付モジュール110は、オブジェクトセットを受け付ける。
ステップS304では、生成モジュール120は、スケルトンからなるオブジェクトセットを生成する。具体的には、makeSkeletonとして、与えられたオブジェクトセット(ステップS302で受け付けたオブジェクトセット)から対応するスケルトンからなるオブジェクトセットを生成する。
ステップS308では、永続化モジュール140は、永続化が必要なオブジェクトセットを導出し、永続化する。具体的には、commitとして、与えられたオブジェクトセットから永続化が必要なオブジェクトセットを導出し、永続化する。オブジェクトのプロトタイプと属性は、それらが(プリミティブではなく)オブジェクトならばオブジェクトのIDに置換する。オブジェクトが関数の場合は、そのインデックスも記録する。
この後、図4の例に示す処理が行われる。
ステップS402では、オブジェクトIDのセットを受け付ける。
ステップS404では、ロードが必要なオブジェクトIDのセットを導出する。具体的には、与えられたオブジェクトIDのセットからロードが必要なオブジェクトIDのセットを導出する。
ステップS406では、ロードモジュール150は、そのオブジェクトIDのセットをロードする。具体的には、ステップS404で導出したセットをロードする。インスタンス化されるオブジェクトの種類が関数の場合は、記録されたインデックスからネイティブの関数を特定し、その関数のプロキシーとしてフォーリンな関数をインスタンス化する。
図5は、o2iテーブル500のデータ構造例を示す説明図である。
o2iテーブル500は、オブジェクト欄510、インデックス欄520を有している。オブジェクト欄510は、オブジェクトを記憶している。インデックス欄520は、インデックスを記憶している。つまり、o2iとして、オブジェクトとインデックスの対応を保持するマップである。例えば、o2i.get(o)でオブジェクトoに対応するインデックスiを取り出せることになる。
i2oテーブル600は、インデックス欄610、オブジェクト欄620を有している。インデックス欄610は、インデックスを記憶している。オブジェクト欄620は、オブジェクトを記憶している。つまり、i2oとして、インデックスとオブジェクトの対応を保持するマップである。例えば、i2o.get(i)でインデックスiに対応するオブジェクトoを取り出せる。
o2idテーブル700は、オブジェクト欄710、ID欄720を有している。オブジェクト欄710は、オブジェクトを記憶している。ID欄720は、IDを記憶している。つまり、o2idとして、オブジェクトとIDの対応を保持するマップである。
id2oテーブル800は、ID欄810、オブジェクト欄820を有している。ID欄810は、IDを記憶している。オブジェクト欄820は、オブジェクトを記憶している。つまり、id2oとして、IDとオブジェクトの対応を保持するマップである。
i2idテーブル900は、インデックス欄910、ID欄920を有している。インデックス欄910は、インデックスを記憶している。ID欄920は、IDを記憶している。つまり、i2idとして、その環境で永続化したインデックス付きのオブジェクトに対するインデックスとIDの対応を保持するマップである。
永続化の対象が含む関数にインデックスを付与するために、それらを含むオブジェクトのスケルトンを生成し、コミットする。
例えば、必要なライブラリがロードされた後のglobalを引数にしてそのスケルトンを生成すればよい。
コミットしたことで,このスケルトンにはIDが付与されている。
このスケルトンの準備はパッケージ生成に対応しており、一度だけ行えばよい。
前述のスケルトンのIDを用いてスケルトンをフェッチし、そのスケルトンを使って、実行環境上のオブジェクトにインデックスを付与する。つまり、o2iとi2oをセットする。
i2idに基づいて、その環境で永続化したインデックス付きのオブジェクトのIDを回復する。つまり、o2idとid2oをセットする。
オブジェクトの永続化フォームは、以下の通りである。
{p,d,i,b,f}
・pは、オブジェクトのプロトタイプのIDである。プロトタイプがnullの場合はこの属性は無い。
・dは、オブジェクトの属性記述子達である。属性リストがからの場合、つまり、Reflect.ownKeys(obj)が[]の場合は、この属性は無い。
・iは、オブジェクトにインデックスが付与されている場合のインデックスである。インデックスが付与されていない場合は、この属性は無い。
・fは、オブジェクトが関数の場合は真(true)である。オブジェクトが関数でない場合は、この属性は無い。
・bは、オブジェクトが型付配列やArrayBuffer等のバイトアレイに由来するデータ型の場合の対応するバイトアレイである。そのようなデータ型でない場合は、この属性は無い。
ここで、dの属性記述子達のvalue属性がプリミティブではなくオブジェクトである場合やget属性、set属性が関数である場合、これらのオブジェクトは{id}という形式のIDによる参照に置換される。具体的に例示すれば、
{id:’1be35dc0d797f72af45b04a5a24df4fa636e032e67a798d94060a46f727e5b48’}
のようになる。また、bの値は、永続化フォームではハッシュ値に置換され、永続化フォーム自体は、JSONの範疇には入らないが、容易にバイトアレイにエンコード可能であり、以下のように、キーバリューストアに永続化する。
{k,e}//k:オブジェクトID、e:オブジェクトの永続化フォームのハッシュ値
{k,l,b}//k:ハッシュ値、l:対応するコンテンツのバイト長、b:対応するコンテントのバイトアレイ
・k,eは、長さ64の16進文字列である。
・lは、整数である。
・bは、バイトアレイである。
オブジェクトIDで、キーバリューストアから永続化フォームのハッシュ値を取り出し、ハッシュ値で、キーバリューストアから永続化フォーム自体を取り出す。
オブジェクトIDでid2oをルックアップし、オブジェクトが既に存在していれば、永続化フォームにしたがって、オブジェクトを更新する。オブジェクトが存在しない場合は、オブジェクトをインスタンス化し、o2id、id2oにオブジェクトIDと紐付けて記録する。オブジェクトのインスタンス化にあたっては、
・永続化フォームに属性fがある場合、つまり、関数の場合
・永続化フォームに属性bがある場合、つまり、データの場合
・その他の場合に分けて生成する。
----- ----- -----
new Proxy(
function (){}, {
apply(target, that, args) {
return apply(o, that, args)
},
construct(target, args, newTarget) {
return construct(o, args, newTarget)
}
}
)
----- ----- -----
その他の場合、対応するコンストラクタから引数なしでオブジェクトを生成する。例外がスローされた場合は、Object.create(null)としてオブジェクトを生成する。
上記のいずれの場合(関数の場合、データの場合、その他の場合)でもインスタンス化の後に、
・プロトタイプのセット
・デスクリプタによる属性のセット
を行う。
なお、図10に示すハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図10に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図10に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器(携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む)、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD-R、DVD-RW、DVD-RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読み出し専用メモリ(CD-ROM)、CDレコーダブル(CD-R)、CDリライタブル(CD-RW)等、ブルーレイ・ディスク(Blu-ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読み出し専用メモリ(ROM)、電気的消去及び書換可能な読み出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
110…関数受付モジュール
120…生成モジュール
130…付与モジュール
140…永続化モジュール
150…ロードモジュール
200…ユーザー端末
250…情報管理装置
290…通信回線
Claims (6)
- 与えられたオブジェクトセットから対応するスケルトンからなるオブジェクトセットを生成する生成手段と、
前記スケルトンに基づいてオブジェクトにインデックスを付与する付与手段と、
前記与えられたオブジェクトセットから永続化が必要なオブジェクトセットを導出し、永続化する永続化手段
を有する情報処理装置。 - 前記永続化手段は、オブジェクトのプロトタイプと属性がオブジェクトの場合は、該オブジェクトを、該オブジェクトの識別子に置換する、
請求項1に記載の情報処理装置。 - 前記永続化手段は、前記オブジェクトが関数の場合は、そのインデックスも記録する、
請求項2に記載の情報処理装置。 - 与えられたオブジェクト識別子のセットからロードが必要なオブジェクト識別子のセットを導出し、ロードするロード手段
をさらに有する請求項1に記載の情報処理装置。 - 前記ロード手段は、インスタンス化されるオブジェクトの種類が関数の場合は、記録されたインデックスからネイティブの関数を特定し、その関数のプロキシーとしてフォーリンな関数をインスタンス化する、
請求項4に記載の情報処理装置。 - コンピュータを、
与えられたオブジェクトセットから対応するスケルトンからなるオブジェクトセットを生成する生成手段と、
前記スケルトンに基づいてオブジェクトにインデックスを付与する付与手段と、
前記与えられたオブジェクトセットから永続化が必要なオブジェクトセットを導出し、永続化する永続化手段
として機能させるための情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018048707A JP7119448B2 (ja) | 2018-03-16 | 2018-03-16 | 情報処理装置及び情報処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018048707A JP7119448B2 (ja) | 2018-03-16 | 2018-03-16 | 情報処理装置及び情報処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019160101A JP2019160101A (ja) | 2019-09-19 |
JP7119448B2 true JP7119448B2 (ja) | 2022-08-17 |
Family
ID=67994894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018048707A Active JP7119448B2 (ja) | 2018-03-16 | 2018-03-16 | 情報処理装置及び情報処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7119448B2 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080184264A1 (en) | 2007-01-26 | 2008-07-31 | Dell Products L.P. | Method, Apparatus and Media for Information Model Data Retrieval |
JP2017174074A (ja) | 2016-03-23 | 2017-09-28 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5797007A (en) * | 1993-06-14 | 1998-08-18 | International Business Machines Corporation | Persistent object storage system with default object encoder/decoder |
-
2018
- 2018-03-16 JP JP2018048707A patent/JP7119448B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080184264A1 (en) | 2007-01-26 | 2008-07-31 | Dell Products L.P. | Method, Apparatus and Media for Information Model Data Retrieval |
JP2017174074A (ja) | 2016-03-23 | 2017-09-28 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2019160101A (ja) | 2019-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107577427B (zh) | 用于区块链系统的数据迁移方法、设备和存储介质 | |
US6205466B1 (en) | Infrastructure for an open digital services marketplace | |
US11675774B2 (en) | Remote policy validation for managing distributed system resources | |
EP3814929B1 (en) | Blockchain-based content management method, apparatus, and electronic device | |
CN113169882B (zh) | 用于区块链的互操作性的系统和方法 | |
US20070299880A1 (en) | Document Management Server, Document Management Method, Computer Readable Medium, Computer Data Signal, and System For Managing Document Use | |
US20120185555A1 (en) | Method for generating universal objects identifiers in distributed multi-purpose storage systems | |
US20180089250A1 (en) | Atomic application of multiple updates to a hierarchical data structure | |
US20190014100A1 (en) | Secure token passing via hash chains | |
JP2008537259A (ja) | 資源間の関係の効率的記述 | |
US11811839B2 (en) | Managed distribution of data stream contents | |
TWI724570B (zh) | 資料結構的讀取及更新方法、裝置、電子設備及儲存媒體 | |
CN109885577B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN110555015A (zh) | 数据库实体管理方法、装置、电子设备及存储介质 | |
US11360966B2 (en) | Information processing system and method of controlling information processing system | |
US8627434B2 (en) | Cross security-domain identity context projection within a computing environment | |
CN114036538A (zh) | 一种基于虚拟块设备的数据库透明加解密实现方法及系统 | |
CN109997144A (zh) | 对于固态驱动器的分开加密 | |
JP7119448B2 (ja) | 情報処理装置及び情報処理プログラム | |
US20220385596A1 (en) | Protecting integration between resources of different services using service-generated dependency tags | |
CN115129275A (zh) | 一种数字文件打印方法、装置、电子设备及存储介质 | |
CN107526530B (zh) | 数据处理方法和设备 | |
CN110825715B (zh) | 基于Ceph对象存储的多对象数据秒合的实现方法 | |
CN111400269B (zh) | 一种ipfs文件处理方法、节点、介质和设备 | |
US20020078205A1 (en) | Resource control facility |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210226 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220322 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220506 |
|
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: 20220705 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220718 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7119448 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |