オルタナティブ・ブログ > Software Development >

ソフトウェア製品開発現場の視点

Windows Azure は Lotus Notes の父 Ray Ozzie の作品

»

今日は、今日と明日開かれる、Microsoft の Tech Days の1日目に参加した。昨年の10月に、ロサンゼルスで開かれた PDC のダイジェストという位置づけで、もちろん目玉のひとつは Cloud OS の Windows Azure である (もうひとつは次期 Windows の Windows 7)。

Windows Azure は Microsoft の cloud 環境ということなので注目して調べてみたところ、Lotus Notes を開発した Ray Ozzie の思想が非常に強く出ているアーキテクチャになっていると感じはじめていた。今回の Tech Days はその印象を確信に変えてくれるものであった。ソフトウェアの領域において。最新のものとして語られる技術の中には、Lotus Notes がすでに過去に実装していたものが多い。Windows Azure のデータの扱い方は、まさに Lotus Notes データベースの思想そのものである。もちろん、Lotus Notes の基本機能にはインターネットの発想は入っていないので (インターネットよりも前に作られたのだから当然)、当然進歩しているわけであるが、知れば知るほど、Lotus Notes (Ray Ozzie) がその背後に見えるようになってきた。

Lotus Notes の成功の鍵のひとつは、独自の思想で作られたデータベース "NSF" である。以前にもこのブログに書いたが、NSF はドキュメントを格納するデータベースとして設計されており、リレーショナルデータベースではない。リレーショナルデータベースとの最大の違いは、リレーショナルデータベースがデータの整合性を必須のものとしているのに対して、Lotus Notes の NSF は整合性は重視していない。したがって、トランザクションも2フェーズコミットも使わずにデータベース分散を実現している。もし同じデータに対する変更が同時にあったら、「競合文書」と呼ばれる文書が作られ、手作業で解決する必要が出てくるが、まあそれでいいじゃないという考え方である。もちろん、こんなシステムを銀行のトランザクションに使うわけにはいかないが、その制限でコストを大きく下げられるのであればそのほうが良いというアプリケーションはたくさんある。リレーショナルデータベースの普及によって、不必要なところにまで(価格的にも処理コストの面でも)高価なリレーショナルデータベースが使われてきた。Lotus Notes は、その思想によってリレーショナルデータベースを使ったシステムと差別化することができていた。

Windows Azure における最も衝撃的な内容は、Lotus Notes と同じようにデータの整合性に対して制限をつけたことである。さすがに、「手作業で修正」というようなことを、OS レベルの制限にするわけにはいかないが、変更の反映がリアルタイムでなく、並列に動作しているストレージの内容にずれがでるタイミングが存在することを踏まえた設計になっているということだ。もちろん最終的にはデータの整合性はとれるのであるが、そのタイミングはそのときのマシン負荷やデータ量などによって明確には決まらない。今後もリレーショナルデータベースを使う必要があるアプリケーションは存在するが、そこまでの厳密性が必要のないアプリケーションの場合 Windows Azure が提供するサービスを利用することで、開発コストとメインテナンスコストを大きく下げることが可能になる。

Windows Azure やその他の cloud platform の登場によって、今後のソフトウェアビジネスが大きく変る可能性が出てきた。Cloud を利用すれば、アプリケーションのスケーラビリティへの対策にコストを小さくできるとともに、アプリケーション導入後の保守作業も大きく削減できる。別の見方をすれば、規模の小さな会社であっても、大会社に大規模なアプリケーションを提供できる可能性が高くなる。小さい会社にとっては、これまで劣勢であったエリアで逆転する大きなチャンスがやってきたともいえる。いずれにせよ、今後 Windows Azure には注目しておく必要がある。

Comment(4)