説明

ドキュメントオブジェクト・スキーマ定義間データ処理装置

【課題】DOMStorageをデータベースとしてスキーマを定義して活用するための技術を提供する。
【解決手段】ユーザ端末装置2は、プログラムデータ構造・文字列データ変換処理手段23により、データ構造をもったデータを文字列としてDOMStorageに格納できるようになり、データベース言語処理手段25によりSQLコマンドにより自由にデータ構造を構成し、アクセス可能とすることができ、文字列のみ記述できるDOMStorageに格納されているデータをデータベースのようにSQLを用いて扱うことが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Webブラウザが保有するドキュメントオブジェクト形式の記憶領域に記憶されたデータをデータベース記述言語(SQL)でアクセスする装置に関する。
【背景技術】
【0002】
Webサービスの普及に伴い、ユーザのWebページ閲覧等に関する情報を保存しておき、様々なWeb上のサービスに利用するニーズが高まってきている。この保存機能は、Webブラウザの機能として提供されており、Cookieが一般的に利用されている。しかしCookieは数キロバイト(KB)のデータしか保存できず、より高度なサービスを実現するためには、容量が不足してきている。
一方、新しいHTMLの仕様として、DOMStorageという領域に保存する方法も提案され、このDOMStorageは数メガバイト(MB)の容量でデータを保存しておくことが可能となる。
【0003】
この大容量の記憶域であるDOMStorageを活用することにより、ユーザ毎の情報を活用した様々なサービス展開が可能となる。
【0004】
従来、データベースをXMLなどのドキュメント記述言語で扱う手法は提案されているが(たとえば、特許文献1参照)、その逆のXML、HTMLなどのドキュメント記述言語で記述されたドキュメントを扱うためのDOMStorageなどの文字列データをSQLなどのデータベース記述言語で扱う手法は提案されていなかった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特表2004−519755号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、このDOMStorageなどの文字列データをSQLなどのデータベース記述言語で扱うためには、それぞれの文字列をプログラムで扱うことができるデータの情報構造を付加する必要があるため、文字列データごとにプログラム内で定義する処理等が必要となり、プログラムが煩雑になり、容易にデータベース化できないという問題があった。
【0007】
そこで、本発明では、DOMStorage等の文字列のみで記述されたデータを、容易にSQLなどのデータベース記述言語で扱えるようにし、データベースとしてスキーマを定義して活用するための技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明は以下のように構成されている。
【0009】
(1)本発明の一様態は、文字列のみ記憶するドキュメントオブジェクト型の記憶領域をデータベースとして利用するためのデータ処理装置であって、
Webページを端末画面に表示するための処理を行うWebブラウザ処理手段と、
前記Webブラウザ処理手段の中で実行され、前記Webページ内において、スクリプト言語で記述されたスクリプトプログラムを実行するスクリプト言語処理手段と、
前記スクリプト言語処理手段の中で実行され、前記スクリプトプログラム内に記述されたプログラムデータをプログラムデータ構造とデータの双方を文字列データして表現したものに変換する処理を行うプログラムデータ構造・文字列データ変換処理手段と、
前記プログラムデータ構造・文字列データ変換処理手段により変換された文字列データを前記スクリプト言語処理手段の中で実行されるプログラムデータ構造へ変換する文字列データ・プログラムデータ構造変換処理手段とを備えたことを特徴とする。
【0010】
このようなデータ処理装置によれば、Webブラウザが保持するドキュメントオブジェクト型の記憶領域に格納されているデータをSQL言語のスキーマ構造を持った形式で処理することが可能となり、データ管理が容易になる。
【0011】
(2)本発明の他の様態は、前記スクリプトプログラム内に記述されたプログラムデータ構造をデータベース記述言語により処理を記述した記述を含む前記スクリプトプログラム処理するデータベース処理手段を備えたことを特徴とする(1)に記載のデータ処理装置であることを特徴とする。
【0012】
(3)文字列のみ記憶するドキュメントオブジェクト型の記憶領域をデータベースとして利用するためのデータ処理装置であって、
Webページを端末画面に表示するための処理を行うWebブラウザ処理ステップと、
前記Webブラウザ処理ステップの中で実行され、前記Webページ内において、スクリプト言語で記述されたスクリプトプログラムを実行するスクリプト言語処理ステップと、
前記スクリプト言語処理ステップの中で実行され、前記スクリプトプログラム内に記述されたプログラムデータをプログラムデータ構造とデータの双方を文字列データして表現したものに変換する処理を行うプログラムデータ構造・文字列データ変換処理ステップと、
前記プログラムデータ構造・文字列データ変換処理ステップにより変換された文字列データを前記スクリプト言語処理ステップの中で実行されるプログラムデータ構造へ変換する文字列データ・プログラムデータ構造変換処理ステップとを備えたことを特徴とするデータ処理方法。
【0013】
(4)文字列のみ記憶するドキュメントオブジェクト型の記憶領域をデータベースとして利用するためのデータ処理装置であって、
Webページを端末画面に表示するための処理を行うWebブラウザ処理ステップと、
前記Webブラウザ処理ステップの中で実行され、前記Webページ内において、スクリプト言語で記述されたスクリプトプログラムを実行するスクリプト言語処理ステップと、
前記スクリプト言語処理ステップの中で実行され、前記スクリプトプログラム内に記述されたプログラムデータをプログラムデータ構造とデータの双方を文字列データして表現したものに変換する処理を行うプログラムデータ構造・文字列データ変換処理ステップと、
前記プログラムデータ構造・文字列データ変換処理ステップにより変換された文字列データを前記スクリプト言語処理ステップの中で実行されるプログラムデータ構造へ変換する文字列データ・プログラムデータ構造変換処理ステップとを備えたことを特徴とするデータ処理プログラム。
【発明の効果】
【0014】
本発明のドキュメントオブジェクト・スキーマ定義間データ処理装置によれば、文字列のみ格納できるDOMStorageにおいて、データベースの記述言語であるSQLコマンドにより事由にデータ構造を構成し、アクセス可能とすることができ、ツリー構造のみ記述できるDOMStorageに格納されているデータをデータベースのようにSQLを用いて扱うことが可能となり、Webシステムのプログラミングを容易にすることが可能となる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施形態にかかるドキュメントオブジェクト・スキーマ定義間データ処理装置の構成例を示す図である。
【図2】作成されるデータベース例を示す図である。
【図3】JSONの記述例を示す図である。
【図4】作成されるデータベース例を示す図である。
【図5】本発明の特徴を概念的に表した構成を示す図である。
【図6】本実施形態の処理例を示すフローチャートを示す図である。
【発明を実施するための形態】
【0016】
次に、本発明を実施するための形態(「実施形態」と呼ぶ)について、図に沿って説明する。なお、背景技術や課題などで既に述べた内容と共通の前提事項については適宜省略する。
【0017】
[全体構成]
図1は、本発明の一実施形態にかかるシステムの構成例を示す。
【0018】
ユーザ端末装置2は、ユーザ端末のWebブラウザ上でのアプリケーションとして構成され、インターネット等のネットワーク1を介して、複数のWebアプリケーションサーバ3と接続されている。
【0019】
ユーザ端末装置2は、制御部を構成するCPU(Central Processing Unit)や、記憶部を構成するROM(Read Only Memory)やRAM(Random Access Memory)、通信部を構成する通信I/F(インターフェイス)等のハードウェア資源上で実行されるコンピュータプログラムによって実現される。
【0020】
このユーザ端末装置2は、Webブラウザ処理手段21、スクリプト言語処理手段22、プログラムデータ構造・文字列データ変換処理手段23、文字列データ・プログラムデータ構造変換処理手段24、データベース言語処理手段25、記憶手段26、ブラウザ記憶領域51により構成される。
【0021】
Webブラウザ処理手段21は、インターネットの標準プロトコルであるHTTP(Hyper Text Transfer Protocol)等に従い、HTML(Hyper Text Markup Language)等の言語で記述されたページデータの要求、取得、表示およびフォームデータの送信等を行う機能を備えインターネットエクスプローラやモジラファイアフォックス(登録商標)といったWebブラウザソフトにより実現される。
【0022】
スクリプト言語処理手段22は、上記Webブラウザ処理手段21が提供する機能の1つであり、HTML内に記述されたスクリプト言語(JavaScript等)を処理する。
【0023】
プログラムデータ構造・文字列データ変換処理手段23はJavaScriptのようなプログラム言語で記述されたデータの構造情報をもったデータを、構造情報をもたず文字列データのみで記述されたデータに変換する処理を行う。この変換された文字列データは、例えば、JSON(JavaScript Object Notation)形式等で表現されたものである。
【0024】
文字列データ・プログラムデータ構造変換処理手段24は、上記プログラムデータ構造・文字列データ変換処理手段23と反対の変換処理を行うものであり、文字列データのみで記述されたデータをプログラム言語で記述されたデータの構造情報をもったデータに変換する処理を行う。
【0025】
データベース言語処理手段25は、データベースの定義、操作、および制御機能を記述するための言語、例えばSQL(Structured Query Language)等を処理する。
【0026】
記憶手段26はプログラム言語の命令により処理されるものであり、ブラウザ記憶領域51に上記プログラムデータ構造・文字列データ変換処理手段23により変換された文字列データを記憶する。この記憶手段26は、例えばJavaScriptによって記述される。詳細については、後述する。
【0027】
一方、アプリケーションサーバ3は、ユーザ端末装置2にHTMLで記述されたページやJavaScriptで記述されたプログラムを送信したり、ユーザ端末装置2からインターネット1を介してドキュメントデータを受信したりする。
【0028】
アプリケーションサーバ3は、コンテンツ送信手段31、文字列データ受信手段32、文字列データ・プログラムデータ構造変換処理手段33、データベース言語処理手段34、データベース52とを備える。
【0029】
アプリケーションサーバ3は、制御部、記憶部等を備えたコンピュータ(単一あるいは複数)により構成される。具体的には、制御部を構成するCPU、記憶部を構成するROMやRAMやHDD(Hard Disc Drive)、通信部を構成する通信I/F(インターフェイス)、表示部を構成するディスプレイ装置、入力部を構成するキーボードやマウス等の入力装置などのハードウェア資源から構成される。
【0030】
アプリケーションサーバ3が備える各手段は、前述したコンピュータの制御部や記憶部等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。なお、これらの手段は、単一のコンピュータ上に配置される必要はなく、必要に応じて分散される形態であってもよい。
【0031】
また、アプリケーションサーバ3が参照するデータベース52が設けられているが、これらのデータベースは、各データベースを保持するコンピュータ内のHDD等の記憶媒体上に所定のデータを体系的に保持するものである。
【0032】
コンテンツ送信手段31は、ユーザ端末装置2に対して、HTMLで記述されたドキュメントファイルを送信する。このHTMLは、JavaScriptのようなスクリプト言語で記述されたプログラムを含む。
【0033】
文字列データ受信手段32は、ユーザ端末装置2において、プログラムデータ構造・文字列データ変換処理手段23により文字列に変換されたデータを受信する処理を行う。
【0034】
文字列データ・プログラムデータ構造変換処理手段33は、文字列データ受信手段32で受信した文字列データを、サーバ内で起動するプログラムで利用できるプログラムデータ構造情報を含む形式に変換する処理を行う。
【0035】
データベース言語処理手段34は、文字列データ・プログラムデータ構造を変換処理手段33で変換されたデータをデータベース52に格納する処理を行う。
【0036】
[動作]
次に図6のフローに基づき、さらに詳細なプログラムレベルでの処理手順を示しながら、動作の概要を述べる。
【0037】
最初に本発明の実行環境となるWebブラウザを起動し(S101)、スクリプト言語処理(S102)を実行させる。このときのスクリプト言語処理が以下の記述となる。
【0038】
(1)DOMStorage上にデータベースとして利用する記憶領域を定義する。JavaScriptでの記述は下記のようになる。
var LS = window.localStorage||window.globalStorage[location.hostname];
これは、S104のブラウザデータ記憶処理において利用する記憶領域を確保するための定義部分となる記述である。
上記ローカルストレージ領域は、ドメイン毎にアクセス制限がかけられるので、http://www.aaaaa.comは、http://www.bbbbb.comのローカルストレージ領域にアクセス出来ない。ドメインがDBのスキーマの働きをする事になる。
このDOMStorageは、例えば下記のプロパティ(属性)やメソッド(操作処理)を持つ。
(a)clearメソッド
DOMStorageからすべてのキーと値のペアを削除する。
(b)constructorプロパティ
オブジェクトのコンストラクターを指す参照を返す。
(c)getItemメソッド
DOMStorageキーに関連付けられた現在値を取得する。
(d)keyメソッド
コレクションから、指定されたインデックスのキーを取得する。
(e)lengthプロパティ
キーと値一覧の長さを取得する。
(f)remainingSpaceプロパティ
記憶域オブジェクトに使用する、残りのメモリスペースをバイトで返す。
(g)removeItemメソッド
DOMStorageコレクションからキーと値のペアを削除する。
(h)setItemメソッド
キーと値のペアを設定する。
【0039】
(2)テーブルの定義
(1)で用意したドメインごとに用意されるローカルストレージ領域に対して、
LS.テーブル名={};
として、テーブル領域を作成する。(LS.user、LS.ob_info等、複数のテーブルを作成可能)。
【0040】
また、この作成した領域に格納するデータは下記のようにJavaScriptで記述する。
var データ = {
カラム名1 : [データ1-1,データ1-2,データ1-3,・・・・・],
カラム名2 : [データ2-1,データ2-2,データ2-3,・・・・・],
カラム名3 : [データ3-1,データ3-2,データ3-3,・・・・・]
};
【0041】
ここで、データ1−1やデータ1−2等のデータ部分以外の部分、例えば、「カラム名1」や「カラム名2」等の記述がプログラムデータ構造の記述部分である。
【0042】
このデータ記述形式は、JSON形式と呼ばれるものであり、JavaScriptから派生した、データ交換を行うためのデータ記述形式の一種である。2006年7月にRFC 4627として策定された。JSONはWebアプリケーションの記述のために適したデータ交換形式であるとされ、特にAjaxなどでの活用が注目されている。
【0043】
このJSON形式でのデータの記述例を図3に示す。これは、図4に示すような住所録のデータベースをJSON形式として記述したものである。
【0044】
ここで、「:」の後ろに記述されているデータ「佐藤」や「六本木123」等以外の部分、例えば、「住所」や「郵便番号」等の記述がプログラムデータ構造の記述部分である。
【0045】
(3)データの保存
ブラウザを閉じた後もデータをローカルに記憶しておくが、ローカルストレージ領域は文字列しか格納できない為、(2)までで作成したDB構造のデータを文字列として記憶する必要があり、文字列化された状態のJSON形式で格納することが必要となる。
【0046】
しかし、JSONオブジェクトとして定義したデータを文字列化してしまうと、データの構造情報が失われてしまうが、以下の手順で復元が可能となる。
【0047】
JavaScriptでの記述は下記のようになる。
LS.テーブル名 = uneval(データ);
ここで「uneval」はJavaScriptの持つ関数であり、JavaScriptの構文を文字列として返す関数である。このようにすることで、図2のようなテーブル構造を作成する事が出来る。この記述で実行されるuneval関数の処理がS103の処理に対応し、そのデータをLS.テーブル名に代入する処理がS104に対応する。
【0048】
上記のようにする事で、文字列化したJSONデータを格納する。これを再度取出し構造情報を復元する為に、
テーブル格納データ = eval(LS.テーブル名.value);
とする。ここで「eval」はJavaScriptの持つ関数であり、文字列をJavaScriptの構文として返す関数である。このeval関数の処理がS105、S203に対応する。
【0049】
(4)SQL
さらに一旦DOMStorageとして格納されたデータをデータベースとしてアクセスできるようにするために、下記の処理を行う。
【0050】
DBを扱う為に、一般的にSQLが用いられるが、ローカルストレージに対しても同様にSQLを独自実装する事で、DBと変わらない扱いが可能となる。以下ではSELECTに関して具体例を挙げる。
【0051】
入力されたSQLというSQLに対して、SELECTの判別を行う。JavaScriptでの記述は下記のようになる。
var res = SQL.match(/^select\s(.*)/i);
,tkn = res[1].match(/^(.+?)\sfROM\s(.+?)(\s(.*))?$/i);
ここで、下記の文字は正規表現であり、それぞれ下記の条件を満たす文字にマッチングする。
「/」は正規表現の開始を示す。
「^」は行の最初にマッチする。
「\s」は空白文字。
「*」は直前の表現が0個以上あることを示す。
「+」は前の表現が1個以上あることを示す。
「?」は直前の表現が0個か1個あることを示す。
「.」は任意の文字にマッチする。
「$」は文字列の最後にマッチする。
「/」は正規表現の終わりを示す。
「/」の後の「i」は大文字小文字を区別しないこと示す。
【0052】
上記のマッチによりSELECTであることを判別し、tkn[1]が取得カラム名、tkn[2]が取得対象テーブル名、tkn[4]が取得条件として確認出来る。ここで、「SELECT」とは、SQL言語の中の1つの処理で、データベースの中に格納されているデータを取り出す処理を示す。
【0053】
例えば最も簡単な以下のSQL
selectカラム名1fROMテーブル名;
を処理すると。
tkn[1] = カラム名1
tkn[2] = テーブル名
となる。実際にテーブルからデータを取得するには、
// 対象テーブルデータ取得
var trgt_table = eval(LS.テーブル名.value);
// カラムのデータを取得(※取得カラムが1つの場合)
var data = trgt_table[カラム名1];
上記のようにアクセス、取得を行う。他のSQLに関しても、データへのアクセス方法は基本的に同様の流れを追う。上記SQLの処理がS106、S204に対応する。
【0054】
[概念構成]
図5に上記記述の本発明の特徴を表す概念図を示す。
【0055】
本発明の変換処理部7は上記eval関数73、uneval関数72によりJSONデータ71をそれぞれ、プログラムデータ6として利用できる形式にし、SQL文61に引き渡す処理と、文字列データとして、DOMStorage領域8に保存する処理を表している。
【0056】
[効果]
本発明のドキュメントオブジェクト・スキーマ定義間データ処理装置によれば、文字列のみ格納できるDOMStorageにおいて、データベースの記述言語であるSQLコマンドにより事由にデータ構造を構成し、アクセス可能とすることができ、ツリー構造のみ記述できるDOMStorageに格納されているデータをデータベースのようにSQLを用いて扱うことが可能となり、Webシステムのプログラミングを容易にすることが可能となる。
【0057】
[他の実施形態]
なお、上記実施形態はJavaScriptやSQLなど、特定のプログラミング言語で、例示したが、その他のプログラミング言語においても同様の処理を実現することは可能であり、本発明は、他の実施態様も含むものである。また、本発明において、各手段などの要素は、コンピュータの演算制御部に限らず、ワイヤードロジック等に基づく電子回路で実現してもよい。また、各構成図、データの図、フローチャートの図などは例示に過ぎず、各要素の有無、その順序や具体的内容などは、本発明の範囲で適宜変更可能である。
【0058】
また、本発明の実施形態に記述された効果は、本発明の実施形態から生じる好適な効果を列挙したものであって、本発明による効果は、本発明の実施形態に記述されたものに限定されるものではない。
【符号の説明】
【0059】
1 インターネット
2 ユーザ端末装置
3 アプリケーションサーバ
6 プログラムデータ
7 変換処理部
8 DOMStorage領域
21 Webブラウザ処理手段
22 スクリプト言語処理手段
23 プログラムデータ構造・文字列データ変換処理手段
24 文字列データ・プログラムデータ構造変換処理手段
25 データベース言語処理手段
26 記憶手段
31 コンテンツ送信手段
32 文字列データ受信手段
33 文字列データ・プログラムデータ構造変換処理手段
34 データベース言語処理手段
51 ブラウザ記憶領域
52 データベース
61 SQL文
71 JSONデータ
72 uneval関数
73 eval関数

【特許請求の範囲】
【請求項1】
文字列のみ記憶するドキュメントオブジェクト型の記憶領域をデータベースとして利用するためのデータ処理装置であって、
Webページを端末画面に表示するための処理を行うWebブラウザ処理手段と、
前記Webブラウザ処理手段の中で実行され、前記Webページ内において、スクリプト言語で記述されたスクリプトプログラムを実行するスクリプト言語処理手段と、
前記スクリプト言語処理手段の中で実行され、前記スクリプトプログラム内に記述されたプログラムデータをプログラムデータ構造とデータの双方を文字列データとして表現したものに変換する処理を行うプログラムデータ構造・文字列データ変換処理手段と、
前記プログラムデータ構造・文字列データ変換処理手段により変換された文字列データを前記スクリプト言語処理手段の中で実行されるプログラムデータ構造へ変換する文字列データ・プログラムデータ構造変換処理手段とを備えたことを特徴とするデータ処理装置。
【請求項2】
前記スクリプトプログラム内に記述されたプログラムデータ構造をデータベース記述言語により処理を記述した記述を含む前記スクリプトプログラム処理するデータベース処理手段を備えたことを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
文字列のみ記憶するドキュメントオブジェクト型の記憶領域をデータベースとして利用するためのデータ処理装置であって、
Webページを端末画面に表示するための処理を行うWebブラウザ処理ステップと、
前記Webブラウザ処理ステップの中で実行され、前記Webページ内において、スクリプト言語で記述されたスクリプトプログラムを実行するスクリプト言語処理ステップと、
前記スクリプト言語処理ステップの中で実行され、前記スクリプトプログラム内に記述されたプログラムデータをプログラムデータ構造とデータの双方を文字列データとして表現したものに変換する処理を行うプログラムデータ構造・文字列データ変換処理ステップと、
前記プログラムデータ構造・文字列データ変換処理ステップにより変換された文字列データを前記スクリプト言語処理ステップの中で実行されるプログラムデータ構造へ変換する文字列データ・プログラムデータ構造変換処理ステップとを備えたことを特徴とするデータ処理方法。
【請求項4】
文字列のみ記憶するドキュメントオブジェクト型の記憶領域をデータベースとして利用するためのデータ処理装置であって、
Webページを端末画面に表示するための処理を行うWebブラウザ処理ステップと、
前記Webブラウザ処理ステップの中で実行され、前記Webページ内において、スクリプト言語で記述されたスクリプトプログラムを実行するスクリプト言語処理ステップと、
前記スクリプト言語処理ステップの中で実行され、前記スクリプトプログラム内に記述されたプログラムデータをプログラムデータ構造とデータの双方を文字列データとして表現したものに変換する処理を行うプログラムデータ構造・文字列データ変換処理ステップと、
前記プログラムデータ構造・文字列データ変換処理ステップにより変換された文字列データを前記スクリプト言語処理ステップの中で実行されるプログラムデータ構造へ変換する文字列データ・プログラムデータ構造変換処理ステップとを備えたことを特徴とするデータ処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate