CyDE サイボウズデータベースエンジン
CyDE サイボウズデータベースエンジン
サイボウズ CTO 畑 慎也が語るボウズマンの心臓のメカニズム
サイボウズ株式会社 ホームページへ
サイボウズ株式会社
ホームページへ
速いデータベースには訳がある。
  サイボウズ Office はデータベースを利用した Webアプリケーションの一種であり、動作環境として CGI(Common Gateway Interface)を採用している。
CGI はたいていの Webサーバーが標準的にサポートしており、サーバーOS や Webサーバーソフトに依存しないオープンなインターネット技術の一つとして広く世界的に普及している。サイボウズ Office が安定動作するのも、実はこういったオープンで標準的な動作環境を採用していることも理由に挙げられる。しかしながら、CGI ではブラウザーからリクエストがあるたびに、CGIプロセスとしてアプリケーションが起動されるため、同時に多くのアクセスが集中するとサーバーに負荷がかかる。

CGI をよく理解していないライターが、「CGI は遅い」と安易に記事を書くのもこういった事情がある。しかし、それ以外の遅くなる原因を一つ一つ消していくと、サイボウズ Office のように高速な Webアプリケーションができるのである。

遅くなる原因の一つは、データベースとのやり取りのオーバーヘッドだ。サイボウズ Office では、データベースへの接続、データの出し入れ、クローズにかかる時間を最小化するために、極めて軽量なデータベースエンジン「CyDE」を実行ファイルに内包させている。データベースにアクセスするために別の余計なプログラムを走らせる必要はないため、プロセスが起動した瞬間にデータベースへのアクセスが開始でき、プロセスの終了とともにデータベースへの接続を終了できるのだ。さらにCyDEは、Webアプリケーションでの利用に特化させることで、接続時に発生するやり取りも最小限にし、高速化を追求している。

また、オブジェクト指向データベースとオブジェクト指向言語を組み合わせ、プログラムのサイズも極限まで小さくする努力をしている。もし、貴方が現在他社のWebグループウエアと比較検討しているのなら、プログラムサイズの大きさを比較してみて欲しい。軽量なプログラムを実現することで、プロセスの起動時間および終了時間を短縮し、サーバーのメモリなど、リソースの消費量も抑えられる。サイボウズ Office が高速に動作するのもおわかりいただけるだろう。
 
従来のCGIでの処理
(Perlなど)
CyDEの場合
データベース比較図 データベース比較図
  逆に、例えば Perl によって書かれたプログラムを考えてみよう。Perl のプログラムを実行させるときは、一度プログラムのソースを読み込んだ後、インタプリタによってコンピュータが実行できるように翻訳しなければならない。Perl プログラムをプロセスとしてサーバーに常駐させておく方法もあるが、設定が複雑であるだけではなく、Webサーバーソフトを限定するため、汎用プログラムには向いていない。

また、データをテキスト形式で保存している場合もやっかいだ。データを処理する度に、データファイルを最初から最後まで全部読み込ませる必要が出てくるため、使えば使うほど遅くなっていく。
サイボウズ Office は、実のところバージョン2まではこの方法でデータ保存を行っていた。しかしながら、ポータル環境としての個人トップページを表示させるためには全部のアプリケーションのデータをトップページの表示で読み込ませなければならない。実用的な速度でこれを実現させるためには、テキスト形式での保存は限界だった。

要はシンプルに考えることだ。CGIという標準的な環境において、高速動作を目指すのであれば、オブジェクト指向技術を駆使してシンプルに作ればよいのだ。


次のページへ



HOME販売製品とサービスダウンロードセールスパートナー導入・活用リソース
イベント・セミナー企業情報人材募集お問い合わせサイトMAP
上に戻る
サイボウズHOMEへ
商標、著作権および法律上の注意事項について個人情報の取り扱いについて
記載された商品名、各製品名は各社の登録商標または商標です。Copyright(c) Cybozu, Inc. All rights reserved.