プロフィール
  • プロフィール画像
  • アイコン画像 ニックネーム:lgixjxyiphgkyu
読者になる
2010年06月
« 前の月    |    次の月 »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Yapme!一覧
読者になる
Javaを使ってる? ならばオブジェクトデータベースだ! / 2010年06月29日(火)
 「エンジニアはみんなオブジェクト指向言語を使っているのに、なぜオブジェクトデータベースを使わないんだろう? まるで、高級なポルシェに乗っているのに、ガレージではバラバラに分解して格納しているみたいだ」――そんなジョークが社内ではやっていると話すのは、インターシステムズソフトウェア開発担当副社長 ロバート・ネーグル(Robert Nagle)氏だ。オブジェクトデータベースであるCaché(キャシエ)を販売する同社の取り組みについて、開発者でもある同氏にインタビューを行った。

●オブジェクトデータベース市場は拡大している

 ネーグル氏はインターシステムズの状況について「2009年、経済はリーマンショックで縮小した。そのころインタビューを受けていたなら、弱気な発言をしていたかもしれない」と述べる。しかし同社はこの状況においてあえて投資を行い、730名だったスタッフを1000名にまで増やしたという。しかも、その増員のほとんどが技術スタッフだ。その結果、2009年は5%成長となり、売上の85%がオブジェクトデータベースのCachéによるものだという。

 海外では、Cachéが特に医療系で強いという。Cachéは臨床用のアプリケーションのバックエンドとして「最も使われているデータベース」(ネーグル氏)で、アメリカの上位20位に入るすべての病院で利用されている。

 これには、2つの理由があるという。1つは「ほかの領域に比べ、医療系で利用されるデータモデルが大変複雑なこと」。繰り返し項目が多く、通常のリレーショナルデータベースでは現実的な対応が難しいほどの複雑なモデルが要求される分野だという。

 「病院のデータモデルは複雑な上に、各組織ごとに1000万人から1500万人分のデータを大変長い期間保持しなくてはならず、データ量も多い。これに対応できるのもCachéの利点だ」(ネーグル氏)

 2つ目は「急激に動く業界」であることを挙げる。アメリカにおける病院のシステムはアプリケーションのカスタマイズ要求が多く、継続的に改修が発生している。それに対応するにも、データモデルを柔軟に拡張できるCachéが生きてくるという。

●開発方針は「シンプル・イズ・ベスト」

 では、このような分野に通常のRDBを利用してしまうとどうなるのだろうか。ネーグル氏は「もちろん、RDBでも対応はできる。しかし、シンプルにはならないので、開発のためには多くの人的リソースを必要とする」という。ここで問題になるのは、そのような大人数を擁するプロジェクトは「コミュニケーションが複雑になるため、“Less Progress”になる」ことだ。

 ここには、ネーグル氏の「エンジニア」としての知見が生きている。同氏にCachéのデザイン哲学を尋ねたところ、「システム内部はとにかくシンプルに」というひと言が帰ってきた。その理由として、「シンプルの利点は2つ。1つは速くてスケーラブルな仕組みになる。もう1つは、バグがなくなることだ」と答える。複雑さは性能の敵であり、信頼性の敵で、システムを作るには、その複雑性を取り除くことに注力すべきだという。

 「Cachéは何度もバージョンアップをしており、そのたびにいろいろな新機能を追加している。しかし、どれだけ便利になったとしても『前のバージョンよりも遅くしない』という原則を貫いている。インターシステムズの開発者は、まずパフォーマンスを第一に考えてコーディングを始める。パフォーマンスはあとから付け加えるものではない」(ネーグル氏)

 CachéにはSQLによるアクセスもでき、RDB的な側面を持っている。そのため、オブジェクト指向言語に慣れたエンジニアであれば、特に習得すべきスキルはないという。「オブジェクトデータベースを知らないエンジニアは、これを利用して成功した事例をケーススタディとして学んでほしい。理論ではない。その成功事例を見ればきっと分かるはずだ」(ネーグル氏) 6月29日15時3分配信 @IT
http://headlines.yahoo.co.jp/hl?a=20100629-00000000-zdn_ait-sci
 
   
Posted at 19:12/ この記事のURL
P R
カテゴリアーカイブ
月別アーカイブ
 
 
Powered by yaplog!