XMLDB.jp

XMLDB解説
HOME  >  XMLDB解説  >  NeoCore活用事例:勝ち組みに学ぶシステム導入事例 ~XMLデータベース"NeoCore"活用事例(1)

NeoCore活用事例:勝ち組みに学ぶシステム導入事例 ~XMLデータベース"NeoCore"活用事例(1)

~ワークフロー管理システムに必要な非定型データは
XMLネイティブ・データベースでなければ扱えなかった~


2005年8月30日 更新



XML ネイティブ・データベースは着実に業務システムのデータベース・エンジンに採用されだしている。本記事では2回にわたって、XMLデータベース「NeoCore」の活用事例を紹介し、XMLデータベースの生かしどころを掘り起こしてみよう。第1回は住友電工フィールドシステム株式会社(以下、住友電工フィールドシステム)が開発したワークフロー管理プラットフォーム「BizCore」において、なぜXMLデータベース「NeoCore」が採用されたかを解説する。また、この事例を紹介した「@ITワンポイント・セミナー"XMLデータベースの開発方法論と実際"」の様子もレポートする。




ワークフロー管理の支援コンポーネントとして誕生した「BizCore」


ワークフローの管理は、業界や業務ごとに多様なバリエーションが存在するため、それをBPM(Business Process Management)アプリケーションとしてシステム化するのは並大抵のことではない。平均的なオフィス業務に見られる経費精算など、定型書類のフォームを回すようなシステムならともかく、稟議を必要とするフォームが数百種類も存在し、それぞれが相互に関連し合いながら進ちょくしていく設備工事のワークフロー管理などでは、イレギュラーな要求が多く、作業ごとに異なるフォームの状態遷移を管理する必要が生じる。


住友電工フィールドシステムが目指したのは、このような複雑で多くの枝分かれを持つワークフローを効率よく管理するシステムの開発だった。同社ネットワークソリューション事業部 ネットワークシステム部 部長吉江信夫氏は、「私たちに与えられたミッションは、ネットワークや複雑な業務の運用管理を支援するパッケージ製品の開発でした。そのコアになるのはワークフロー管理コンポーネントで、大量の非定型データをトランザクション管理するエンジンの実現が最大のテーマだったのです」と語る。



住友電工フィールドシステム株式会社
ネットワークソリューション事業部 ネットワークシステム部
部長 吉江信夫氏


例えば通信ネットワークケーブルの敷設工事では、電線の結合や切断といった複雑な工事をマンホールごとに行い、その進ちょくを報告し承認を得るなど、ワークフローは非常に細分化され、なおかつ多くのイレギュラーな手順が追加される。このようなワークフローをシステム化するには、データ構造に柔軟性を持たせることが必須となる。


同社が開発した「BizCore」では、帳票データ(業務の1単位)を定義し、これらに対してワークフローを定義する(図1)。帳票データは「未処理」「処理中」「処理済み」といった状態遷移を持ち、状態遷移に伴って「印刷」「メール通知」「タイマー設定」などのイベントやタスクを起動する。また、帳票データの定義に基づいてWebブラウザに帳票画面を表示させ、業務の進ちょくを確認できるようになっている(図2)。


このクエリは、2つの式を「|」で連結している。この2つは、絶対に同時に成立することがない条件「(../価格タイプについての式)」を含んでいるので、結果となる要素は常に1つである。



図1 ワークフロー定義画面
画面右側のパネル上にあるのが状態遷移の定義。青い円のような図形のアイコンが状態を表す。メールアイコンはTaskletと呼ばれるタスクだ。



図2 BizCoreによる開発手順
(1)帳票のデータ構造(スキーマ)を定義。
(2)スキーマに対するワークフローを定義。
(3)スキーマに対するWeb画面(帳票)を作成


BizCoreでワークフローの基本単位となる帳票データは、すべてXMLで管理されている。データの繰り返しや入れ子といった複雑な構造を定義し、また新たなフィールドの追加や削除を柔軟に行えるのは、XMLならではの特性による(図3)。



図3 帳票データのスキーマ定義画面


データ構造はXMLで決まり、ではデータベースは何を選ぶ?

BizCore の開発の歴史は、前身となるDr_Flow(ドクターフロー)という製品名で、2000年ごろに始まった。Dr_Flowは、稟議的というよりもトランザクション指向であり、ワークフローの一連の流れを効率的に進ちょく管理する機能を目指した。稟議だけで何百枚もあるだけでなく、業務ごとに構造が変わるという非定型なデータに対応し、さらに状態をデータベースに格納して検索性を高める機能を盛り込んだ。非定型でかつバリエーションの多い業務に対応するワークフローというニーズに対応するため、データ構造はXMLとすることは早い段階で固まったという。

しかし、そのデータを格納すべきデータベースについては、明確な見通しがあったわけではなかった。

「当初はXMLデータを変換するミドルウェアを介してRDBに格納する方法も検討したのですが、非定型のデータとRDBの相性はよくなかったのです。ちょうどそのころに第1世代のXMLデータベースが登場したので、XMLとの親和性の高さに着目して採用することにしました。XMLデータベースの採用は、当時はかなり先進的な取り組みだったはずです」と吉江氏は振り返る。

XMLデータベースで重要なのは"スケーラビリティ"だ

Dr_Flowの開発は、XMLデータベースの採用により、当初目標にしていた機能を実現することに成功した。しかし、その道のりは決して平坦ではなかったという。

「第 1世代のXMLデータベースは登場したばかりだったので、安定性に問題がありました。バージョンが上がるに従って安定度は増したのですが、スケーラビリティの問題は解決されなかったですね。ある程度のデータ量までならうまく動くのですが、われわれが扱う業務レベルまでくると、急激にパフォーマンスが低下してしまう」と、同社 ネットワークソリューション事業部 ネットワークシステム部 SP2課 課長 杉本恵俊氏は指摘する。


住友電工フィールドシステム株式会社
ネットワークソリューション事業部 ネットワークシステム部 SP2課
課長 杉本恵俊氏

2004年、Dr_Flowのバージョン4相当の製品を現在のBizCoreにバージョンアップする際、スケーラビリティ改善のために複数のXMLデータベース、およびXMLTypeデータ型がサポートされたOracleを評価したという。

「いったんは、XMLデータベースに業務システムのスケーラビリティを期待するのは無理だとあきらめかけていたのですが......」(杉本氏)、そこで出会ったのがDPP(Digital Pattern Processing)*注と呼ばれる独自の検索技術をベースにして高速検索性能をうたった「NeoCore XMS」だった。

*注:DPP(Digital Pattern Processing)

DPPとは、データベース中の検索対象になり得るパターンを「アイコン」と呼ばれる符号に置き換え、同時にクエリも「アイコン」に置き換え、両者を照合することで高速な検索を実現するもの。インデックス領域を検索することなしにデータを抽出でき、データ量が増加しても検索性能に大きな差が出ないという特徴を持つ。



図4  DPP(Digital Pattern Processing)の仕組み
DPPは検索対象を「アイコン」に置き換えて検索式とパターン・マッチさせることで高速検索性能を実現している。


「XML データベースやRDBのXML機能がどのようなものか理解していたわれわれにとって、NeoCore XMSのDPPは意表を突かれるアーキテクチャで、これならうまくいくだろうと直感しました。実際に製品を評価すると、第1世代のXMLデータベースでは急激にパフォーマンスが低下するデータ量であっても、NeoCore XMSは非常によいパフォーマンスを示し、なおかつデータベースとしての安定度も高いレベルで実現されていたのです」(杉本氏)。第1世代のXMLデータベースとNoeCore XMLの検索性能は、100件や200件のデータ量では変わらないが、1000件、2000件、5000件と多くなってくるとその差は顕著に表れるという。第1世代のXMLデータベースはデータ量が増えるにつれ格段に遅くなってくるが、NeoCore XMSは性能が落ちることがなく、実用サイズのデータを問題なく扱うことができた。


またXMLの自由度の点でも違いはあった。第1世代のXMLデータベースは索引を使った高速化を基本としているため、数百種類の異なるスキーマに対してそれぞれに最適化した索引を設計するのは管理コストの増大につながる。だからといって、XMLデータベースに格納するためのスキーマを決めてしまうと、アプリケーション側で、XMLを採用する最大のメリットであるデータの自由度(非定型データ)を犠牲にすることになる。NeoCore XMSのアーキテクチャでは、すべてのノードに自動で索引が作成されるため、スキーマレスの自由度を確保したまま、高いパフォーマンスを獲得できるのだ。


一方、RDBのXML機能では「格納できるXMLに制約があって、入出力の際に余分な処理が必要になる。かなり複雑なXMLでも格納できなくはないが、 XMLとしての柔軟性は失われ、ただの入れ物になってしまう印象でした」(杉本氏)。RDBのXML機能は、定型データを大量に格納するRDB的な業務の一部でXMLも扱いたい、という用途に限られるだろう。

まとめ

ワークフローという非定型データを管理する業務システムにおいて、XMLデータベースがRDBに取って代わる選択肢になるのは理解していただけただろう。 XMLデータベースの生かしどころは、XMLでなければ表現できない非定型データを扱うアプリケーションとの連携にあるのは明らかである。そこで問題になるのは、業務で扱うデータ量を高速に処理できるスケーラビリティを備えているかどうかだ。最後に、杉本氏が考えるXMLデータベースの必須性能を紹介しておこう。それは「スピード」「スケーラビリティ」「安定性」である。

セミナーレポート

@IT ワンポイント・セミナー"XMLデータベースの開発方法論と実際"

XML データベースをどうやって業務システムの開発に生かしたらいいのか?本記事では、この問いに対する1つの回答として、住友電工フィールドシステム「BizCore」の事例を紹介している。@ITでは本記事の公開に先立ち、「@IT ワンポイント・セミナー」を2005年8月22日に開催し、参加者にBizCoreの事例をいち早く、またより深い内容で紹介する機会を設けた。



セッション1は@IT Database Expertフォーラムで好評連載中の「XMLデータベース開発方法論」の筆者、川俣晶氏による連載と同名の「XMLデータベース開発方法論」。ただしその内容は、記事では書ききれなかった"RDBの存在しない世界観"という刺激的なものだった。XMLデータベースの性能が十分高まればRDBは不要になるかもしれない、という主張はRDB神話を揺さぶる一撃になったに違いない。


セッション2は、本記事で取り上げたBizCore事例の紹介だ。「非定型ワークフローとXML ~XMLでやってみました~」と題して、住友電工フィールドシステムの杉本恵俊氏がBizCore開発の秘話を語った。「取りあえず何も考えずにXMLでやってみたら、後でエライ思いをしました」といったユニークな語り口で笑いをとりつつも、ワークフロー管理では非定型データをXMLで扱うのは必須だという主張は、現場のエンジニアならではの説得力があった。また、出席者からの質問で「なぜRDBのXML機能では駄目なのか」にも、明確な回答が示された。


@ITでは「@IT ワンポイント・セミナー」の第2回を今秋にも予定しているので、XMLデータベースに関心のある方はぜひ参加をご検討いただきたい。


ビジネスプロセス管理プラットフォーム「BizCore」

超高速・新世代XML DB 「NeoCore XMS」

▲このページのTOPへ

  • 無償で使える!XMLDB「NeoCore」
  • サイバーテック求人情報
  • メールマガジン申し込み
  • TEchScore

  • ▲NeoCoreについて記載されています!

  • ▲XMLマスター教則本です。試験対策はこれでばっちり!
Copyright (c) CyberTech corporation ltd. All ights Reserved. | サイバーテックについて | ご利用ガイド