TOPサーバ構築・運用> システムの構築をはじめる前に
作って学ぶXMLデータベースNeoCore XMS実践
作って学ぶXMLデータベースNeoCore XMS実践

第4回:検索式を組み込んでシステムを完成させる(前編)
著者:ウルシステムズ  小松 要   2006/4/14
1   2  3  次のページ
システムの構築をはじめる前に

   本連載ではこれまでXMLDBを有効に活用するシステムの例として、XMLフォーマットを採用した提案書を活用する営業支援システムの設計を行ってきました。前回はXMLDBの構築、非定型文書である提案書の登録、登録した提案書の定型部分を用いて情報を取得するための検索式の検討を行いました。
   検索式として、具体的にXMLDBに対する標準の問い合わせ言語であるXPathやXQueryをどのように用いれば、作成するシステムに必要な、項目指定による検索や、フリーワードによる検索が可能になるかを解説しました。

   第4回では検討した検索式を組み込んだJavaプログラムを実装し、営業支援システムを構築していきます。

   まず今回構築するシステムの機能について確認をしておきます。このシステムは営業支援を目的にしており、下記のような機能が必要になります。
提案書登録機能 利用者のPCから提案書をアップロードする機能
提案書のデータをXMLデータベースに格納する機能
提案状況一覧機能 一覧する条件を入力する機能
入力された一覧条件に合致する提案の概要情報を一覧表示する機能
提案書検索機能 参照したい提案書を検索する条件を入力する機能
入力された検索条件に合致した提案書を一覧表示する機能
検索結果の一覧から指定された提案書をダウンロードする機能

表1:必要な機能

   このシステムはユーザが直接操作するWebブラウザから、ビジネスロジックを実現するServletを介してデータベースにアクセスする3層レイヤのアーキテクチャを採用します(図1)。それぞれ表1の機能ごとに必要な処理を洗い出し、Servletとして実現してシステムを完成させます。

システム構成図
図1:システム構成図
(画像をクリックすると別ウィンドウに拡大図を表示します)

   ServletからNeoCoreXMSのデータベース操作を呼び出すにはJavaAPI(xmsclient)を用います。このAPIはJavaプログラムからHTTPを使用してNeoCoreXMSのサーバにアクセスするもので、検索・更新・削除などの操作を可能にします。使い方の具体例は、以下のサンプルプログラムの中で説明します。詳細についてはAPIのJavaDoc (デフォルトでは\docs\Java_APIの配下)を参考にしてください。


提案書登録機能処理の概要

   それでは機能ごとに、処理の概要と実装方法の説明を行います。提案書登録機能では、以下の処理が必要となります。

  1. 提案書アップロード処理
    ユーザから送信された提案書を取得する処理

  2. アップロードされた提案書をzip解凍してcontent.xmlを取り出す
    データベースで管理するcontent.xmlを取り出すために、アップロードされた提案書をzip解凍する

  3. 取り出したcontent.xmlをXMLDBにストアする処理
    XMLDBとのセッションを確立し、content.xmlをDBにストアする

表2:必要な処理


提案書登録機能をJavaで実装する

   これらの処理をJavaにより実装するため図2のような構成にします。

提案書登録機能構成
図2:提案書登録機能構成

   実装するために主要なクラスとしては次のようなものがあります。

FileRegisterServletクラス
送信された提案書の取得、zip解凍後に取り出されたcontent.xmlファイルをNeoCoreXMSへストアする処理を行います


提案書登録機能のプログラムサンプル

   FileRegisterServletクラスのサンプルを以下に示します。この中で赤文字部分が実際にNeoCoreXMSへファイルをストアする処理になります。セッションを確立してDBにファイルをストアする流れは、RDBのLOB型カラムに登録する場合と大きく変わるものではないということを確認してください。

FileRegisterServlet.javaのサンプルプログラム

(画像をクリックすると別ウィンドウに拡大図を表示します)

※注: サンプルのため、一部省略しています。

1   2  3  次のページ


ウルシステムズ株式会社 小松 要
著者プロフィール
ウルシステムズ株式会社
小松 要

ビジネスとITのギャップを埋めるITコンサルティングを行うコンサルタント。お客様の現場に対してIT活用の最適解を常に提供するコンサルタントを目指し日々奮闘中。現在は、もっぱらXMLDBの可能性を模索中。


INDEX
第4回:検索式を組み込んでシステムを完成させる(前編)
システムの構築をはじめる前に
  提案書登録機能の動作確認
  提案状況一覧機能をJavaで実装する