PR

“100年データベース”にXMLを採用、仮想化でOSサポート切れを乗り切る【戸田建設】

「過去の実績や履歴といった“動かない”データは厄介だ。どんどん増えるが、捨てられない。システム移行時の足かせにもなる」。戸田建設の佐藤郁氏は言う。同社はXML技術を用いて、そんな足かせからシステムを解放した。
聞き手は本誌編集長・田口 潤 Photo:陶山 勉

佐藤 郁 氏
佐藤 郁 氏
戸田建設 アーバンルネッサンス部 技術チーム 主管
橋梁やダムなどの工事現場を歴任した後、土木設計や指紋認証、GISといったシステム開発・構築などに従事。現在は土木技術の開発のかたわら、システム開発も手がけている。工学博士、技術士(建設部門、情報工学部門)

八森 眞治 氏
八森 眞治 氏
伊藤忠テクノソリューションズ 科学システム事業部 社会基盤ソリューション部 都市情報課 担当課長
1980年、センチュリリサーチセンタ(現・伊藤忠テクノソリューションズ)に入社。技術系システム開発を経て、1998年から建設会社向けのWeb- DBシステムの開発を担当。今回のプロジェクトでは、仮想化のほか全体の調整役を務めた

猪内 誠司 氏
猪内 誠司 氏
ジャストシステム エンタープライズ事業部 ビジネスパートナー営業部 アライアンスグループ 副部長
1991年にジャストシステム入社。営業部門に配属、一太郎や花子などのコンシューマ向け製品を担当後、ConceptBaseを中心とする企業向けシステムを担当。現在、販売パートナーとのアライアンス業務に携わっている

大野 絵里砂 氏
大野 絵里砂 氏
インフォマティクス 開発部 WEBソリューショングループ リーダー
販促関係のデザイナーとしてインフォマティクスに入社。ビューロチームを経験後、開発部門に配属。CADやGISシステムの開発を手がけ、2004年からはWebシステムの開発に従事。現在は、主に自治体案件を担当している

─ 100年使えるデータベースがあると聞きました。

佐藤: はい。Chronosと呼んでいます。

—ギリシャ神話の「時間の神」ですね。

佐藤: 工事実績や設計図や施工図、予算など当社が保持する膨大なデータを、ユーザーがブラウザから検索できるシステムの総称です。

─ それにしても100年って、大げさな気もしますが?

佐藤: 土木構造物の耐用年数を考えると、建築業者はそのくらいの期間はデータを保持する必要があるんです。実際、100年前に完成したダムは今も現役で使われているんですよ。

─ 建造物だとそうなるんですね。

佐藤: ええ、必然です。我々が今、作っている建造物も、これから100年使い続けられる可能性がある。

─ 建造物が現役で使われている限り、データは残しておくべきだ、と。

佐藤: 設計図や施工図などのデータは改修時だけでなく、その建造物が役割を終えて壊す段階にも役立ちます。詳細な構造が分かっているかどうかで、壊し方が違ってくるんですよ。

─ なるほど。Chronos以前にも、そういうデータを蓄積する仕組みは当然あったんですよね。

佐藤: ええ。Chronosの中核となるのは、1998年に稼働させた工事実績管理システムです。当時としては珍しいWebアプリケーションで実装したんですよ。

─ 伊藤忠テクノソリューションズ(CTC:当時はセンチュリリサーチセンタ)が開発を担当したんですか?

八森: はい。Visual BASICやCを組み合わせて作りましたが、そのころはまだ.NETのような標準技術はなかったので、試行錯誤をしましたね。

佐藤: 最初はデータを管理するだけだったのを、2000年には地図上に表示できるようにしました。

─ グーグルMapsみたいに?

佐藤: 性能は別ですけど、インフォマティクスのGISシステム「GeonoSIS」と、データベースを連携させたんです。物件ごとの緯度や経度のほか、地図情報もデータベース化しています。

─ 地図情報を、どんなふうにデータベース化するんですか?大野さん。

大野: BLOB(Binary Large OBject)というデータ型を使って、地図データをバイナリ形式で登録できるんですよ。

─ なるほど。それで、Chronosに何か問題が?

再リースは麻薬
ハードの鮮度を保ちたい

佐藤: 2002年、システムのOSであるNT4.0を搭載したハードの出荷が終了してしまったんですよ。使っていたハードのリース契約は2003年までだったので、頭を抱えました。OSを変えようとすると、アプリケーションの変更を強いられますからね。

─ 多くのユーザー企業から同じ悩みを聞きます。

佐藤: NT4.0が動くハードを必死で探しました。ようやく見つけたのが、IBM製のマシン。最後のNT4.0対応機でした。

─ そのIBM機に、従来システムをそのまま載せ替えて事なきを得た?

佐藤: なんとか。でも、5年後に再びリース切れを迎えることは分かっていた。その後、どうするかが問題でした。

─ 再リースという手は?

佐藤: 再リースはある意味、“麻薬”ですから、それだけは避けたかったんです。というのも同じマシンを再リースすると、費用はざっくり言って10分の1になります。

─ それは喜ばしいことでは。

佐藤: 一時的にはね。でも、いったん費用を圧縮してしまうと、翌年からの予算がつかなくなる。ハードの買い換えが必要になったとき、いきなり「これまでの10倍の予算が必要です」と言ってもなかなか通らないでしょう?

─ 確かに。

佐藤: それに、ハードはある程度、新しい状態にしておかなければなりません。古いハードを使い続けていると、故障時に必要な部品在庫がなくなるリスクが出てきますから。

─ とはいえ、望むOSを搭載したハードはもう入手できない。

佐藤: まさに、「ああ無情」ですよ。

─ 嘆いてばかりもいられない。どうしました?

佐藤: 潔く最新のOSにして、データベースも最新のバージョンに入れ替えようと決意しました。

エンジニアとして何も生まない開発は許さない

─ 腹をくくった。データベースは何を使っていたんですか?

佐藤: Oracle8です。しかし、ここで大きな壁に突き当たりました。Oracle8を、最新版にコンバートできなかったんですよ。

─ え、なんで?上位互換性はあるでしょう?

八森: もちろんあります。ただ先ほど申し上げた通り、既存システムはWebベースで開発するためにかなりの作り込みを施していました。その影響で、データベースを最新版に移行するにはアプリケーションのソースコードをすべて書き換えなければならなかったんです。

佐藤: そんな何も生まない開発作業は、エンジニアの1人として許せませんでした。だって、システム機能は以前と変わらないでしょう?

─ それはもっともだ。

佐藤: そこへ、“天の声”が届いた。

─ どんな声?

佐藤: 仮想化です。さっそく八森さんに相談したところ、「やりましょう」と言ってくれた。

八森: ちょうどそのころ、CTCとしても仮想化に力を入れ始めていたんですよ。社内で検討した結果、ハードウェアは当社が多くの開発実績を持つHP製、仮想化ソフトはVMwareという組み合わせを提案しました。

─ VMware上でNTをゲストOSとして動かすということですね。それならハードに依存せず、古いOSを延命できる。

八森: そういうことです。デバイスドライバの違いはVMwareが吸収するので、過去のシステム環境を作り直す必要もありません。

Ajax採用で表示速度を向上

新小岩陸橋 2007年10月、東京都葛飾区に竣工した新小岩陸橋。佐藤氏が所属する戸田建設アーバンルネッサンス部が三菱重工鉄構エンジニアリングと共同開発した技法により、6カ月という短期間で完成した

佐藤: 仮想化を機に、地図情報システムも改修することにしました。

─ その狙いは?

佐藤: 検索速度を向上するためです。グーグルMapsが登場してからというもの、ユーザーニーズがかなり高度化しました。社内のあちこちから「なんでこのシステムはこんなに検索が遅いんだ。グーグルなら、瞬時に結果を表示するのに」という文句が来ていた。

─ 検討段階を経て、実際にプロジェクトが始まったのは?

八森: 仮想化に着手したのは、2008年初め。4月には、作業を終えました。

大野: 地図情報システムのほうは、3月から当社内で準備を始めておき、5月から本格的な作業を開始。11月に、完了しました。

─ 地図情報システムの改修というと、具体的には何をしたんですか?

大野: 主に、Ajax対応です。

佐藤: Ajaxを使えば、画面をリロードせずに更新できるでしょ。だから、検索結果の表示が速いんですよ。

大野: 従来システムでは、Javaアプレットでブラウザに画面を返す仕組みでした。画面データをキャッシュしておき、表示を早くするといった工夫はしていましたが、グーグルの操作感には及びませんでした。

─ 難しい開発でしたか。

大野: すでに、当社でAjax対応の地図ライブラリを作成してあったので、ゼロからの開発と言うわけではありませんでした。ただ、戸田建設の標準ブラウザがFirefoxということで、その点は手を入れる必要がありました。地図ライブラリはもともと、Internet Exploler上で動作する前提だったので。

─ すると、従来システムを仮想化環境に移行し、地図情報システムを強化したものがChronosということ?

佐藤: 実はもっと大きな変更があります。データをXML化する機能を導入したんですよ。

データを構造化して串刺し検索を実現

─ 詳しく教えてください。

佐藤: Chronosとまとめて呼んでいますが、そのなかには営業情報を登録するデータベース、実績を登録するデータベース、役所に提出する資料を登録するデータベースなど複数のデータベースがあります。従来は、これらの異なるデータベース間を横断検索できなかった。

─ それに対して、ユーザーから不満の声が上がっていた?

佐藤: そうなんです。「グーグルは、1つの画面で検索キーワードを入力すれば、世界中のデータベースから情報を引っ張ってくる。ところが、うちの会社ではシステムごとにいちいち検索し直さなければならない。なぜだ」というわけです。

─ グーグルの影響は大きい(笑)。

佐藤: そこでXMLです。データをXML化してしまえば、一括して検索できるようになります。実を言うと、いずれはデータを構造化すべきだとは前々から考えていました。XMLデータベースと言われるものはほとんどすべて試しました。

─ XMLデータベースもいろいろありますよね。

佐藤: はい。調査するなかで、ジャストシステム猪内さんに出会った。2007年のことです。そのとき、猪内さんからXMLに対応したConceptBaseの最新バージョンが出ると聞きました。

猪内: 「ConceptBase Enterprise Search(CBES)」です。

佐藤: ピンと来ましたよ。ConceptBase という日本語に強い検索エンジンがXMLに対応するなら、XMLデータベースは必要なくなります。Oracle8上のデータをXML化して、CBESに流し込む仕組みさえ作ればいい。

─ データのXML化は?

佐藤: 今や、サーバーOSの機能で可能です。

─ そうか。でもその時点ではまだ、CBESの実物はなかったんですよね。

佐藤: そうですね。「できました」と連絡が来たのは翌年でした。2008年7月でしたっけ?

猪内: はい。佐藤さんと八森さんに、ユーザー企業向けのフォーラムに参加してもらいました。

八森: 話を聞いてみて、CBESはChro-nosの規模やデータの多様性に合った製品だと思いました。開発キットも標準装備していて、既存アプリケーションと連携させやすい点がよかった。

─ 八森さんも評価した。CBESの導入を開始したのはいつでしたか。

佐藤: CBESと既存のデータベース、地図情報システムをつなぐ作業を始めたのは2009年4月ごろですね。

─ CBESは、地図情報システムとも連携させたんですか。

佐藤: はい。CBESから直接検索したほうが、圧倒的にレスポンスが速いので。

精度向上のための機能がかえって逆効果に

─ 導入はすんなりいった?

佐藤: いえ、それが…(笑)。各システムのサーバー同士がうまくデータをやり取りできなかったんです。

─ それは大変だ。なんで?

八森: いろいろ調べたところ、結局は文字コードの違いが原因でした。Oracle8とGeonoSISはシフトJIS、CBESはUTF8を採用していたんです。

佐藤: それぞれ違う言葉をしゃべっていたので、会話が成立しなかったということです。

─ どうやって解決したんですか。

八森: 文字コードを変換するユーティリティを、CTCのほうで作りました。原因が分かってしまえば、対策はそんなに難しくなかったですよ。

─ ほかに何かトラブルは? あまりスムーズだと、面白くないんで(笑)。

猪内: …正直に言えば1つありました。ストップワードの問題です。

─ ストップワード?

猪内: 簡単に言うと、あまりにも出現頻度が高いので、検索語に含めるとほとんどすべてのデータが検索されてしまうような文字列のことです。助詞の「てにをは」とか、代名詞の「それ」「私」とか。それだと検索にならないので、CBESには検索精度を上げるためにストップワードを自動的に除外する機能を持たせています。ところがChronosではこの機能があだになるケースがあった。本当は検索に含めなければいけない文字列まで、除外していたんです。

─ 具体的には、どんな文字列?

猪内: 初歩的でお恥ずかしいんですが、「他社」という文字列です。

─ え、でも「他社」は一般的すぎて、検索には使えない気がしますが。

佐藤: 普通の自然文検索では、そうです。でも、Chronosの場合、当社物件か他社物件かで区分けして管理しているんです。Oracle8にも、「当社物件」「他社物件」というフィールドを持たせています。

猪内: 例えば、ユーザーが「○○地域の他社物件について調べたい」と思って検索したとしましょう。このとき、CBESは「他社」を検索条件から外して、○○地域のすべての物件を引っ張ってきてしまうんです。これでは、検索の意味がない。

─ 全文検索って、難しいですね。どう解決したんですか。

猪内: 必要に応じて、ストップワード設定を解除できるようにしました。

データのXML化でシステムの自由度が高まった

佐藤: ここまで来たら、あとは既存データをどんどんXML化して、CBESに格納するだけでした。プロジェクト全体が完了したのは6月です。

─ 稼働後、いかがですか。

佐藤: 串刺し検索のような機能や性能がよくなったのはもちろんですが、意外なメリットがありました。古いデータを気にせずに新しいシステムを作れるようになったことです。その意義は大きいですね。

─ どういうことですか?

佐藤: これまでは、過去の古いデータが入っているがゆえにシステムを捨てられなかった。仮想化してNT4.0を使い続けているのは、そこに過去のデータが入っていたからです。でも今は古いデータを構造化して、CBESに置いている。ですから例えばOracle8ベースのサブシステムは、ビジネスの変化に合わせて全く新しいシステムにできるんですよ。

─ 変化対応ですか。

佐藤: 100年保つシステムになったと思っています。

IT Leaders 毎月無料でお届けいたします

本誌は、読者登録いただくことにより、毎月無料でみなさまのお手元まで直接お届けいたします(書店などでは販売していません)。

企業の情報システムを担当する方々や事業部門のIT担当の方々、およびIT関連プロフェッショナルの方々を対象に、実践的に役立つ情報を掲載、幅広く業務にご活用いただけます。

IT Leaders新規購読お申し込みはこちらから
Ads by Google