【リレーコラム:XMLの今と未来】 XMLシステム構築とスワローズ
2001年11月15日作成
吉田 晃伸
日本・アメリカ(注1)ともに、プロ野球のシーズンが終了した。21世紀初のペナントレースということでシーズン前から大変に注目を集めた一年であったが、今世紀初のセリーグチャンピオンという栄冠にヤクルトスワローズ(注2)が輝いた(注3)。また、日本シリーズでは「いてまえ打線」を誇る大阪近鉄バッファローズ(注4)の打線をみごとに抑え、今世紀初の日本一の栄冠を手にしたのである。
スワローズファンである筆者としてはこの上ない記憶に残る楽しいシーズンとなった。シーズン前の大方の予想ではスワローズは阪神タイガースと最下位争い、良くてもAクラスが精一杯では無いかとの評判であったからだ(実際にファンである私もそう思っていた)。しかし、シーズンが開幕してみればスワローズは順調に勝ち進み、最強といわれた読売ジャイアンツを倒し、6月1日から勝率首位(今年は隠れ首位と呼ばれたが・・^^;)の座を守りつづけたのである。
一方、海の向こうのアメリカでもイチロー(注5)や佐々木(注6)の所属するシアトルマリナーズ(注7)が、ワールドシリーズ制覇こそならなかったが、シーズンでは圧倒的な強さを見せ、シーズンの最高勝利数記録に並んだことはご記憶に新しいところであろう。
さて、これがいったいXMLとなんの関連があるのか?と思われるかもしれない。それはなぜこの両チームが優勝できたかという点を考えてみると、その法則がXMLを使ったシステム構築にも当てはまるのことに気が付いたからだ。では優勝の要因を分析してみよう。今年の強さのカギは投手陣、打撃陣の充実ということがあげられる。
打線を充実といっても某球団のように、4番バッターばかりをそろえれば良いわけではない。1番バッターには1番バッターの役割が、2番バッターには2番バッターの役割が存在するので、打順ごとの役割を見極め、その役割に合った人物を配置することが重要である。これによって打線の点が線となってつながり、どこからでも点の取れる強力な打線になっていたのである。これは投手陣にも同様のことが言える。先発は先発の役割、中継ぎは中継ぎの役割、と各々が違った役割を持っている。その役割に合った人物にその場を任せていたので、各個人は最大限の力を発揮することができたといえるだろう。先発向きの投手をそろえて、中継ぎもさせようとしても成功するとは限らないのである。これらを考えると、優勝の要因として「適材適所」というキーワードに集約できるであろう。
「優勝=良いシステム」に置き換えていただきたい。XMLを使用したシステムを構築する上でも「適材適所」というキーワードは重要である。つまりシステム構築を行う上でのXMLのメリット・デメリットを見極め「適材適所」に使用することが重要である。XMLが「良い」と聞いたからといって闇雲に用いていたのでは最適なシステムができあがるとは限らないのである。
では、実際のシステムの中でXMLをどのように用いれば、最適なシステム構築が行えるのかを考えてみよう。たとえば営業情報を入力・検索するシステムを構築する場合を考えてみよう。このシステムの中でXML化できる部分はどこであろうか?
まず思いつくのはXMLを使ってデータを保存することだろう(図2)。しかしXMLを使ってデータを保存しておくのは一番効率的なやり方だと言えるだろうか?ほとんど場合、既存の技術(リレーショナルデータベースなど)の方が効率的であると筆者は考える。データの構造の定義という意味では良いかもしれない。しかし、データの検索ロジックなどを考えてみよう。XMLには検索のためにXQuery(注8)
という規格が存在するが、まだ実装された製品は少ないし、XQueryを扱える技術者も少ない。また最近ではXMLデータベースもいくつか存在するが独自の照会言語(注9)を実装しているなど製品間の統一は図られていない。それよりは、データベースにデータを入れ、SQLを使用して検索をしたほうが、簡単であるし安定性や効率性といった点でも有利であろう。
図2 検索はXMLかデータベースか?
一方、この営業情報システムに外回りの営業がモバイルデバイスからアクセスしたい場合を考えてみよう。(図3)この場合にXMLを使用するのは最適だと筆者は考える。モバイル端末は機能を最小限に押さえているので、ブラウザによって異なる制限、規格が存在する(注10)。そのためHTMLだけでなく、それぞれに合った形式・データ量での情報を配信する必要があり、異なるファイルを用意しなければならない。これによってコンテンツの統一を図るという難しい問題が発生する。この場合はXMLを使用して、出力データを1つにまとめ、XSLT(注11)を使ってデバイスごとの形式に変換する方法を用いると効果的だろう。データソースを一元管理できるし、新しいデバイスに対応させるためにもシステムにほとんど手をいれずに、XSLTスタイルシートを増やすだけで簡単に対応できるのだ。
図3
このようにXMLを適材適所に用いることによって、最適なXMLシステムが出来上がるのである。上記の例もシステム要件や内容によって異なるが、XMLを使えば必ずよいシステムが出来るのではなく、どこにXMLを使えば効率が上がるかを考えなければならない。XMLを使っても効率が落ちてしまうこともあるのである。
今後、システムのXML対応という話はますます主流になると思われる。しかし、すべてをXML化してよいかどうか検討しながらシステム化を進めることが大切だろう。
注1:日本プロ野球機構ホームページ-http://www.npb.or.jp/
メジャーリーグホームページ-http://www.mlb.com/
注2:ヤクルトスワローズホームページ-http://www.yakult-swallows.co.jp/
注3:4年ぶり6度目の日本一。日本一の回数は読売、西武についで3番目に多い。
注4:大阪近鉄バッファローズホームページ-http://www.buffaloes.co.jp/
注5:http://mariners.mlb.com/NASApp/mlb/sea/team/sea_player_bio.jsp?club_context=sea&playerid=400085
注6:佐々木主浩ホームページ-http://www.daimajin-sasaki.com/
注7:シアトルマリナーズホームページ-http://mariners.mlb.com/
注8:http://www.w3.org/TR/xquery/
注9:たとえばYggdrasill(イグドラシル)にはXBathをと呼ばれる照会言語が存在するが、他との互換性は無い。
注10:たとえば、iModeではCHTML、EzWebではHDMLやWMLを使用しなければならない。PDAなどではCSSのスタイルシートを使えないブラウザも存在する。
注11:http://www.w3.org/TR/xslt11/