機能詳細
NeoCoreのサーバープロセスは、各コンポーネントが実行を制御します。各コンポーネント内部ではマルチスレッドで処理され、処理効率を向上させています。
クライアントアプリケーションはJavaAPI、C++API、またはC++APIをラップしたCOMラッパーから、HTTPクライアントのソケットを実装した各ライブラリを介してサーバープロセスへ接続します。PerlやPHPなどのスクリプト言語からはHTTPを介して接続します。
アプリケーション開発者は、NeoCoreを利用する場合、使用する言語をJavaまたはC++から選択できます。これらの言語からは、NeoCoreより提供されるAPIライブラリを使用する形で開発が可能です。さらに、HTTP I/Fを用いることで、C#、PHP、Perl、Ruby、JavaScriptやAjax、FlashなどのRIAをはじめとする、ソケット通信が可能なあらゆる言語を使ったアプリケーション開発が可能です。
APIライブラリおよびHTTP I/Fいずれの手段を使ってもNeoCoreの持つ機能全体を使用できるため、アプリケーション開発者は最も慣れている言語、または開発タスクに最も適した言語を選択できます。また、NeoCoreは、HTTP通信のオーバーヘッド自体が非常に小さいため、パフォーマンスへの影響が出にくいのも特長です。
NeoCoreへのデータ格納および格納されたデータに対するアクセスを行う場合には、SQLではなくXPath/XQuery を使います。これを使うことで、複数存在する要素のうちアクセスしたい任意の要素を指定して検索結果を取得することができます。また、引数として XPath式を与えることで、XMLデータの一部を更新したり削除・追加をすることができます。XPathはパス形式の記述言語なので、複数の文書にまたがって存在する同名の要素に対し、一回のコマンドで横断的にアクセスすることもできます。XPath/XQueryは共にW3Cの正式勧告を受けた世界標準規格なので、長く安心してお使い頂く事ができます。
(1)トランザクション機能
NeoCoreは、リレーショナルデータベース(RDB)同等のACIDレベルのトランザクションをサポートしています。全てのトランザクションは、トランザクションログに記録され、電源障害などの予測できない障害が発生した場合におけるデータベースの復元・復旧を可能とします。明示的なトランザクションの開始、コミットおよびロールバックも可能で、分離レベルの設定も可能です。
(2)データロック機能
一般的なリレーショナルデータベース(RDB)と同様に、NeoCoreにおいてもデータロックを使用したデータへの同時アクセス制御が可能です。情報の更新時には、更新がコミットされるまで、その情報はロックされ、発行またはコミットされるまで、ロックされている情報は誰も変更できません。これにより、システムのデータ整合性が保証されます。
NeoCoreでは、インスタンスの起動・停止や、データベース管理のために、各種ユーティリティプログラムを提供しています。
(a)NeoXMLUtils
NeoXMLUtilsは、データベースの管理を行うユーティリティプログラムで、以下の機能を備えています。
データベース生成・削除関連
データベース作成・空のデータベース作成・データベースクリア・データベース削除が可能です。
データベースの保存・復元関連
データベースのバックアップ・リストア・インポート・エクスポート等が可能です。
インデックス再構築・ファイル移動関連
インデックスの再構築や、データベースファイルの移動が可能です。
(b)管理コンソール
管理コンソールは、データベース管理者のための、ブラウザベースの管理ツールです。
サーバ管理
NeoCoreの起動、停止、バージョンの確認が可能です。
データベースの状態表示・サーバログとアクセスログの表示
NeoCoreの内部で管理されている各ファイル(マップファイル等)の物理サイズや使用率等を確認することが可能です。
XML文書の操作とデータベースアクセス
(Copy/Query/Insert/Modify/Delete)
データベースへXMLデータの登録、XPath/XQueryを使ったデータの参照などが可能です。
サーバコンポーネントの設定表示・設定変更・チューニング
メモリバッファサイズ、デフォルトエンコード値、JAVA仮想マシンのヒープサイズ、HTTPアクセスのポート番号、セッションタイムアウト時間、メモリの自動拡張設定等、設定の確認と変更をきめ細かく行うことが可能です。
NeoCoreは、ライセンスキーファイル(license.xml)でライセンス情報の管理を行います。購入前に無償で評価頂くための「30日評価版ライセンス」からデモやプロトタイプ用途に利用頂くための「Developer Edition」、さらには、それぞれのご利用シーンに応じた形でのご選択が可能な「Workgroup Edition」「Limited Edition」「Standard Edition」へのステップアップは、このライセンスキーファイルの入れ替えのみで可能です。さらにこの仕組みを活用することで、容易にパッケージソフトへの組み込みが可能となります。組み込むパッケージソフトの利用形態や運用形態に応じて、利用期間の制限、データベース容量の上限値の設定、リモートサーバからのアクセス制御などをライセンスキーファイルのみで設定・管理することができます。
NeoCoreは、データベースアクセスを制御するためのセキュリティ機能を標準で提供しています。このアクセスコントロールを使用することで、XMLデータへのアクセスをノードレベルで自由自在に制御する事が可能となります。アクセスコントロールの設定には、ブラウザベースの管理コンソールを使い、制御ルールを作成します。すべてのノードを対象とする単純なルールから、該当文書内の情報に基づく条件に合致するノードだけを対象とするといった複雑なルールにも対応する事が可能です。
NeoCoreは、XML文書データの他に、その格納されたXML文書データのメタ情報を、MetaDataセクション配下に格納します。これらメタデータは、規定集や約款など、文書の履歴管理や版管理が必要とされるアプリケーションから利用することが可能です。
変更時刻 <ModifyTime>
XML文書が更新されたときのシステム時刻(秒単位)。XML文書を初めて格納したときには、TimeStampタグと同じ時刻を設定します。
格納時刻 <TimeStamp>
XML文書が格納されたときのシステム時刻(秒単位)。XML文書をコピーした場合、コピー先には新しい時刻を設定します。
ソースファイル <SourceFile>
データの元となるファイルの名前。格納時に設定したファイル名を設定します。
文書ID <DocID>
格納順にXML文書に割り当てられるユニークな値です。
文書コピーの番号 <CopyNumber>
XML文書のコピー時に割り当てられる管理番号です。
スキーマファイル <SchemaFile>
文書と一緒にスキーマを格納した場合に、その文書スキーマが入っているファイルのURI を設定します。
プレフィックスファイル <PrefixFile>
プレフィックスファイルの名前(prefix.xml など)を設定します。