[レポート]
株式会社 オージス総研
オブジェクトテクノロジソリューション部
森島 みどり
はじめまして。広場の編集委員に名を連ねて早3年、ようやく記事デビューのMorishimaです。
さて、このたび11月18日〜22日にアメリカのボストンで開催されたSD(Software Development Conference & Expo) East 2002に、XGrottoという新サービスを発表しに行ってきましたのでその報告をしたいと思います。
XGrottoとは何かといいますと、私たちが開発した「目指せYahoo!なWebサービス統合プラットフォーム」です。詳細は、本プロジェクトのリーダーであるO氏の記事を読んでください(次号掲載予定です)。また、すでにWebで公開されてますので、ぜひ実際に動かしてみてください(まだ英語版しかありませんが)。
さて、私はひょんなことからこのXGrottoの開発メンバーになり、またまたひょんなことからボストンに発表しに行くことになったのでした。初めてのアメリカ出張ということもあり、荷物大魔王の私は、まるまる2日をパッキングに費やし、初めからスーツケースいっぱいで日本を旅立ったのでした。
私たち(大先輩のD氏と私)がまず降り立ったのは西海岸のサンフランシスコでした。そこから1時間ほど離れたところにあるシリコンバレーのパロアルトには、O氏が働いているOGIS Internationalのオフィスがあります。今回のXGrottの開発では、リーダーのO氏はパロアルト、私たち開発チームは日本で作業を行っていました。そのため、ここで1週間ほど最後の開発と打ち合わせを行いました。
OGIS Internationalがあるパロアルトは、とてもかわいらしい街でした。オフィスはこじんまりとした木造立てのビルにありました。玄関を入ったところに水の流れるオブジェがあり、また木の匂いも香るマイナスイオンたっぷりの環境でした。トイレに行くのに鍵が必要なこと以外は、とても快適に仕事をすることができました(安全のためにトイレには鍵がかかっているのです)。
XGrottoの本番機への移行も無事に済ませた私たち(今度はO氏を含む3人)は、ボストンに降り立ちました。ちょうどその日は雨だったこともあり、パロアルトと比べて寒いのなんのって。家にコートを置き忘れてきたO氏は、ホテルとカンファレンス会場から外に出ない!と宣言しておられました(ホテルと会場はつながっていたのです)。
今回のSD Eastは、Embedded Systems Conferenceと併設して開催されました。展示会場は、Embeddedの方が大きく、組み込み市場のホットさを実感しました。SD Eastの方は、O氏の話によると前年よりも出展数が少なかったそうです。主な出展者は、Javaや.Net, Web Serviceに関連するベンチャー企業でした。
展示会は、11月19日と20日の2日間。展示会開催当日までネットワークがつながらなかったことと、展示会が始まってから後ろのブースにLANケーブルを通すためにブースの壁に穴を開けられたこと以外は、特に大きなトラブルはありませんでした。あ、あとは、社名が書いてある看板を一度、持っていってしまわれたことくらいでしょうか。「どうして?」と聞くと「ここには会社のロゴはないのが正しいんだ。間違えて書いてしまったから書き直してくる」とか言ってました(せっかく書いてくれたのに、もったいない。ちょっとゆがんでたけどね)。
さて、お客様は当初の心配をよそに、たくさんの方が訪れてくれました(1日目は、会場で食事やビールが振舞われていたせいかもしれません。お寿司をほおばりながら説明を聞いてまわっている方もいました)。日本の展示会とくらべて、みな非常に熱心に話を聞いてくれました。XGrottoではなく、私のノートPCにのみ興味を持った人もいましたが。。。「It's very small!」うんぬん)。でも、本当にまじめにじっくり話を聞いてくださる方が多く、とても驚きでした。
また、今回、プレスリリースとブースで配布するために、パンフレットを大量に作成しました。この紙が、アメリカではとにかく分厚くて立派な紙じゃないといけないらしいです。そのため、その紙をシリコンバレーで印刷して持ってきたのですが、その重かったこと!(と言っても私が運んだわけではないですが)。ただし、アメリカではパンフレットを通りすがりの人に配ったりはせず、本当に興味のある方だけが持っていってくれます。そのため、ほぼ配り終えたときにはなかなかのうれしさがありました。
そんなこんなで、今回の出展は大成功を収め、ほっと胸をなでおろした一同だったのでした。
![]() |
![]() |
SD East 2002 | 展示会会場:閉会間近に撮ったので人はまばらです。 |
さてさて、今回の出張の目的はセッションを聴くことではなかったのですが、たまたま1つだけ無料で聴講できることになったので、喜んで聞きに行ってきました。すっかりAmblerさんファンになった私が選んだセッションは、Amblerさんによる「Mapping objects to relational databases」。Agile Modelingのセッションもあったのですが、OR(Object to Relational Database)マッピングに興味があったのでこちらを受講してきました。たくさんの質問が飛び交う非常に活発なセッションでした。
Amblerさんは、Agile Modelingの他に「Agile Data(AD) Method」という方法論も提唱しています。これは、現在のソフトウェアシステムにおけるデータの重要性と、システムをデータという側面から扱うために立場の異なるITプロフェッショナルたち(ソフトウエア開発者、DBA、、、)がどのように強調して作業を行えばよいかという点に焦点を当てた方法論です。
今回は、それに関連して、オブジェクトとリレーショナルデータベースのマッピング(ORマッピング)についてのお話でした。Amblerさんによると、「ORマッピングは、方法さえ知っていれば全く難しくない」のだそうです。詳細は最後に紹介するHPを参照して頂くことにして、ここではORマッピングの「成功の秘訣」のみ簡単に紹介したいと思います。
オブジェクトにPersistent Object ID(POID)を持たせましょう。Keyには、ビジネス上の意味を持つnational key(自然キー)ではなく、システム中でユニークなsurrogate key(代理キー)を使いましょう。生成には、HIGH/LOW Strategyが使えます。例えば、HIGHはサーバーで一意の数字、LOWはセッションごとに一意の数字にします。(例)1234500001, 1234500002, ...
クラスからデータモデルを作成するのではなく、データモデルからクラスモデルを作成しましょう。
データモデリングとクラスモデリングを並行して行うのはやめましょう。
RDBでは複数テーブルのアクセスにjoinを使うようにと言いますが、遅くなるのでやめましょう。大きなjoinよりも数回の小さなアクセス(traverse)の方が効率的なことが多いです。
可能な限りレガシーシステムのスキーマを使うのはやめましょう。どうしても利用しなければならない場合は、ビューやストアドプロシジャーなどスキーマのラッパーやラッパーオブジェクトを作ることを考えましょう。
see The Design of a Robust Persistence Layer for Relational Databases
現在ではデータモデラーは補助的な役割しか担っていないと考えがちですが、データが重要であるソフトウェアシステムでは重要な役割を担っています。
成功する方法を選びましょう
私が勉強不足なだけかもしれませんが、「1.national keyよりもsurrogate keyが望ましい」と「4.joinの代わりにtraverseを使おう」については意外に思いました。ぜひ試してみたいと思います。「2.データモデルからクラスモデルを作成しよう」と「3.並行したモデリングは破滅への近道」については、これまでの開発でも痛感したことなので、やっぱりなと思いました。「5.レガシースキーマを使うのはやめよう」については、なるべくそうしたいですよね。。。
© 2002 OGIS-RI Co., Ltd. |
|