日本IBMが開催する「渋谷テクニカルナイト」は、同社が取り組む最新技術の動向を週替わりで紹介する技術者向けのセミナー。新製品や製品化前の技術、そして今後の技術トレンドを解説するとあって、社外のデベロッパーの参加も多いと言います。今回は、「XML DBがもたらす新しいイノベーション」と題した講演を行った同社のエバンジェリスト 中林紀彦氏に、XMLデータを扱えるデータベース『DB2 9』の魅力などについてお話をうかがいました。
--現在のお仕事とこれまでのキャリアについてお聞かせください。
中林氏: 所属はソフトウエア事業で、エバンジェリストとして製品のテクノロジーを広めるのが一番の仕事です。XMLデータベースと、今年製品化を計画しているマッシュアップ関連の製品を担当しています。弊社の製品の良さを皆さまに知っていただくことと共に、技術者育成に注力しています。
このため、技術者に情報を提供したり、セミナーなどで実際に製品を体感いただく場を作ったりしています。他には、IBMが関わっている「XMLコンソーシアム」の「XML DB部会」や「WEB2.0部会」などにも参加しています。最近では、気象庁さんの発表するデータのXMLでの標準化の取り組みにも参加しました。
私自身は、大学時代、計算化学の分野で計算機を使った分子構造のコンピュータシミュレーションなどを研究していました。ちょうどインターネットが普及しつつある時期で、自分たちで研究室のインターネット系のインフラ構築なども行っていました。当時大学のネットワーク環境がリッチでしたので、グローバルIPアドレスを持っていて、それを自分のPCに割り当てるといった、今では考えられないようなこともしていました。
こうしてインターネットに触れるうち、世の中のパラダイムを変えるポテンシャルを持ったIT業界で活躍したいと思い、弊社で言うエンドユーザーの企業に入りました。その会社では、ITの企画をしていました。その後、自身の技術をもっと高めたいという思いから、6年前に中途入社でIBMに入りました。それからはずっとデータベース製品の技術担当として、お客様のデータベースの技術的な支援をさせていただいています。
XMLデータベースの担当をするきっかけとなったのは、2年ほど前にリリースした『DB2 9』です。この製品の一番のセールスポイントは、実績のあるリレーショナル構造に加えて、ネイティブのXML構造のデータを扱えることです。XMLを扱うアーキテクチャは、5年以上前から研究所のほうで一から開発していたもので、実際かなりいい出来になっていると思いますし、おかげさまでお客様からいい評価をいただいています。
--XMLを扱えるようになったという「DB2 9」にはどんな特徴がありますか?
中林氏: 「DB2 9」は、簡単にいうとXMLをストアできるデータベースです。しかし、これまでは、それを実現するのはなかなか難しかったという背景があります。2003年頃、一時的にXMLデータベース製品が盛り上がった時期があるのですが、当時は、ファイルベースでXMLを扱うものが多く、パフォーマンスやスケーラービリティ、運用面などに問題があり、普及には至りませんでした。例えば、一つのXMLを更新する際、ほかのデータをSELECTできなかったり、オンラインでのバックアップができなかったりといった問題です。
「DB2 9」は、トランザクションやメンテナンスの面では、これまでのRDB(リレーショナルデータベース)のノウハウを活用し、XMLのパフォーマンス面では、XMLのノードのツリー構造を格納するストレージエンジンといった新しいアーキテクチャを構築し、諸問題を乗り越えました。
--渋谷テクニカルナイトの講演では、従来のRDBに縛られたサービスの例をお話されていましたが、XMLデータベースを活用するとどういったサービスが提供できるのでしょうか?
中林氏: 今までのRDBですと、データベースのテーブルがきっちりと決まっていて、テーブルに新たな列というか属性を追加することが困難でした。例えば、テレビを購入したいと考えている人に、各製品の価格・性能を比較するようなサービスを提供するとします。テレビの種類として、プラズマテレビ、液晶テレビといったものがありますが、プラズマと液晶それぞれを別のデータベースで管理していた場合、両者を横断して比較することが難しく、あくまでもプラズマか液晶といったカテゴリ内での製品比較に留まってしまいます。たとえプラズマも液晶も比較できるようなデータベースにしていたとしても、有機ELテレビといった、新しく登場したカテゴリの製品にすぐに対応することは困難です。
こうした柔軟な属性追加に対応できるよう、XML情報の列を持たせているというのが「DB2 9」の特徴です。属性の追加に際し、属性ごとに列を追加するのではなく、XML列にさまざまな属性を持ったXMLを格納することで属性の追加に柔軟に耐えられるようになっています。XMLをそのまま格納するだけだと、エレメント名などが冗長になってしまいますので、それを整数に置き換えて圧縮して格納するなどの処理を行っています。イメージとしてはXMLの列を追加しているというものですが、XMLの情報については、XML専用のストレージに入り、RDBの列は今までどおりの扱い方をしています。
先日の講演では、先ほどのテレビの比較検討サービス以外にも、携帯電話サイトにおいて、ユーザーのマイメニューを自由に編集・設定できるといったものや、不動産の検索サービスにおいて、従来からの定型の属性以外に、「バルコニーが20㎡以上」といったユーザーごとに異なるこだわりで検索できるようなサービスへの対応についても説明しました。また最近では、健康診断のデータもXMLで持つようにすれば、「メタボ検診」といった新たな検診項目が増えた場合に対応できるといった話題もあります。RDBだけでは、このような変化の多い物や人の属性を管理することに限界があり、それを補うのがXMLデータベースのメリットと考えています。
--それでは、サービス提供側のメリットについておきかせください。
中林氏: これまでのアーキテクチャですと、まずデータベースのテーブル構造をきっちり決めないと、サービスの提供ができないといった問題があります。テーブルのスキームを決めてからでないと、アプリケーション、データベース、テーブルを構築していく流れに乗せることができません。特に、エンドユーザーの意見を汲み取って、素早くサービスを提供するといった柔軟性が求められるインターネットでのサービスを提供する場合などは、非常に苦労されるのはないかと思います。
企業のシステムは、減価償却を考えると4~5年のタイムスパンで計画されるケースが多く、要件を決めるときに5年後のビジネスプロセスがどうなっているかを予想する必要があります。しかし、RDBで要件定義をきっちりやって、数年のタイムスパンを見越したシステムを入れてしまうと、ビジネスプロセスが変わったときに要件の変更に耐え切れず、大規模な変更が入るケースが最近多くなっています。
XMLデータベースを活用すれば、DB管理者はスキームの変更に振り回されることがなくなります。例えば、「システムを変更するので、深夜にデータベースの内容を変える作業をやってください」といった負担が減ります。またアプリケーション開発者も、データベースの変更を待たずに構造変化に対応できます。最低限のルールを決めておくことで、WebデザイナーがWebページのフォームを書き換えるだけで対応できるといった仕組みの提供も可能になるからです。
また、データベースが柔軟になることで、これまでにないデータを保有できるというメリットもあります。格納する場所が限られているデータベースの場合、データを更新した場合に現時点でのデータしか参照できませんが、新たに「更新履歴」も扱えるような構造にもできます。例えば、お客様の履歴、移動履歴、お客様データの変更履歴をとっておいて、カスタマーサービスに利用する場合に、「いつ何を購入された」「結婚で姓が変わった」「引越して住所が変わった」などといった情報があることでさまざまなメリットを提供できると思います。データベースに新たに「時間」という軸が追加され、三次元的になったといってもよいでしょう。
このようなメリットから経営面では、ビジネスの俊敏性が増し、かつ強い競争力が持てるようになると考えております。
--導入事例として講演でも紹介されていた自動車製造業様のケースについてお聞かせください
中林氏: この事例は、Excelで管理している製品データのバックエンドのデータベースとして採用されたものです。導入前は、Excelだけで管理されていました。このデータは膨大で、横255列とエクセルの最大値まで使われており、これを各担当者に配布し、入力してもらいます。それぞれ入力担当が入力したデータが、集計担当者のもとに集められ、さらにExcelで集計を行っていました。
導入後のメリットとしては、まず集計工数の短縮が挙げられます。これまで数時間かかっていた処理をデータベース側で担当しますので、数分レベルにまで短縮できます。次に、運用負担が低いというメリットもあります。システムを導入したにも関わらず、入力担当者はこれまでどおりExcelを使用するため作業内容は変わりません。入力担当者はXMLを入力する必要はなく、Excelの内容がXMLに反映される仕組みとなっているからです。データベースが柔軟になっていますので、フロントエンドの自由度という意味で、Excelも一つの選択肢と言えます。そしてやはり、項目やレコードの追加などに柔軟に対応できるため、メンテナンス工数も削減されるという効果も期待できます。
--XMLデータベースについてエンジニアの方はどう捉えているのでしょうか? またどういった学習が必要になってくるのでしょうか?
中林氏: 「DB2 9」は、これまでのRDBと比較すると、XMLが使えるという革新性がありますので、エンジニアの方は魅力的に思っていらっしゃるようです。セミナーでもそういった意見をいただきました。学習については、基本的にRDBなので、RDBが使えることと、XMLの基礎知識が必要です。XMLに関してはさまざまな情報源がありますので、RDBを使ったことがある方ならそれほど難しいことではないでしょう。IBMのdeveloperWorksなどで学習コンテンツも配布しておりますので、ぜひ触って体感してほしいと思います。保証や保守サポートがなく、機能が一部制限されている無償版の「DB2 Express-C」も提供しています。
XMLデータベースについてもう少し深くやってみたい場合はXQueryなども学習する必要があります。XML技術者認定制度「XMLマスター」を目指すのもいいでしょう。手前味噌ですが、実は私「XMLマスター:プロフェッショナル(データベース)」の合格者第一号なんです。受講者の声としてXMLマスターのWebページにも掲載されています。この試験は、XMLの応用的な内容も問われますので、資格を取ることが目的のものではなく、実践的なスキルが身につくようになっています。
--個人的に注目している技術についてお聞かせください。
中林氏: XMLの利用でデータベースが柔軟になっていますが、同時に携帯電話や地デジといった、PCのWebブラウザ以外のメディアへのXML活用も進んでいますので、エンドユーザーが利用するフロントエンドの自由度についても注目しています。先ほど携帯電話サービス向けのマイメニュー管理のお話をしましたが、前回の講演では、『Dojoツールキット』を使ったメニュー編集・管理画面のサンプルも説明しました。Webブラウザ上でHTMLフォームを使ってカテゴリーの選択やアイテムの位置変更などを行おうとすると結構大変なのですが、Ajaxを活用したDojoツールキットなら、マウスでドラッグ&ドロップしてアイテムを移動したり階層を変えたりといった操作が簡単にできます。こうした、自由度のあるリッチなインターフェイスを提供できる技術には興味がありますね。
--セミナーでは、「次の十年へ」と締めくくっていらっしゃいましたが、今後の展望についてお聞かせください。
中林氏: インターネットが普及はじめたこの十年で、世の中が変化してきました。次の十年でも同じような、かなり劇的な変化が起こると思っています。私は、その中でXMLデータベースやXMLの技術を使い、世の中のパラダイムを変えていくような動きに貢献できればと思っています。日本の技術者の皆さんには、XMLデータベースを使って世界を変えるような面白いサービスを考えてもらいたいです。そんな皆さんを支えていきたいと思っています。
直近では、また渋谷テクニカルナイトにて講演を行います(「あらゆるビジネス・データをマッシュアップ ~Enterprise 2.0は新しい局面へ」)。前回はXMLデータベースの話をしましたが、次回は私のもう一つの担当分野であるエンタープライズ向けマッシュアップの新製品についてお話する予定です。