IPA


開発成果一覧へ





2004年度第2回未踏ソフトウェア創造事業  採択案件評価書


 



1.担当PM

 

 加藤 和彦 (筑波大学 電子・情報工学系 教授)



2.採択者氏名


 代表者

 樋口 証 (Gentype Inc. 代表取締役)

共同開発者

 なし



3.プロジェクト管理組織


 日本エンジェルズインベストメント株式会社



4.委託金支払額


 6,200,000円



5.テーマ名

 

 ウェブデータベースサーバGWSの開発



6.関連Webサイト


 http://www.gentype.com/



7.テーマ概要


 本プロジェクトで開発したGWSは,ウェブブラウザを使って操作をするデータベース管理システムである.データベースの作成,テーブルの定義の変更,データの入力,閲覧,検索などを全てウェブブラウザを使っておこなうことができる.GWSエンドユーザを主なユーザ対象としているが,プログラマがスクリプトを使って簡単なウェブアプリケーションを作成するための開発環境として利用することもできる.




8.採択理由

 

 オリジナルのデータモデル,プログラミング(スクリプティング)の最小化,高速な動作性能,Web上での利用に特化等を目指したデータベースサーバの提案である.新規性と有用性の両面において高い水準を備えている.既に実用に供しているオープンソースソフトウェアの開発経験を有し,ビジネス展開も視野に入れている.本事業による支援にふさわしい開発プロジェクトである.




9.開発目標


 本プロジェクトは,以下を実現するような,データベース管理システムを組み込んだウェブサーバ(ウェブデータベースサーバ)を開発することを目的とした.

  (1) 複雑な構造をもったデータベースをエンドユーザでも簡単にデザインすることができる.

  (2) スクリプトによって拡張できる.スクリプトは標準的な言語で書くことができる.

  (3) エンドユーザに配慮し,なるべくスクリプトを使わずに高機能なデータベースを作成できるようにする.

  (4) 簡単な設定によってマルチユーザの,またユーザの役割ごとにアクセス制限をかけることができる.

  (5) Javaなどで書かれたカスタムウェブアプリケーションにくらべて大幅に性能が劣るようなことが無い程度の,十分な性能を持つ.




10.進捗概要


 GWSは主に以下のようなコンポーネントから構成される.

 

 a. HTTPサーバ

 HTTPサーバコンポーネントは,ウェブブラウザなどのHTTPクライアントから接続を受け付け,クライアントとリクエストハンドラとの間の橋渡しをおこなうコンポーネントである.GWSのHTTPサーバコンポーネントはシングルプロセス・マルチスレッド型のサーバである.

 

 b. 静的データハンドラ

 静的データハンドラは,内容がほとんど変化しないようなデータを返すリクエストハンドラである.通常はディスク上のファイルの内容をそのままレスポンスとして返す.

 

 c. DBハンドラ

 DBハンドラは,データベース上のデータなどの,頻繁に変化するデータを返すリクエストハンドラである.受け取ったリクエストは,リクエストパーザによって送信されたフォームの内容などを解析され,データベース上などで処理がおこなわれたのち,HTMLジェネレータによってデータをHTMLに変換し,それをレスポンスとして返す.あるいはHTMLフォームのかわりにXMLデータをやり取りすることもあり(XMLウェブサービス),その場合はXMLパーザによって内容が解析される.

 

 d. リクエストパーザ

 リクエストパーザは,HTMLフォームの内容を解析し,GWS内部形式(GWSデータモデル)のデータへ変換する.

 e. HTMLジェネレータ

 GWS内部形式のデータを,ウェブブラウザから閲覧できるようにHTML形式に整形する.

 f. スキーマエディタ

 スキーマエディタは,データベース構造をユーザが作成・編集するためのコンポーネントである.スキーマエディタによってデータベース構造が変更されると,その内容に応じてバックエンドのRDB上にテーブルが構成される.

 g. DBバインダ

 DBバインダは,バックエンドのRDB上のテーブルに格納されたデータと,GWS内部形式のデータを相互変換する処理をおこなう.

 h. 管理コンソール

 サーバ全体の設定を管理し,必要に応じてワーカープロセスを起動・停止する.自身はワーカープロセスから独立したプロセスとして動作する.

 i. 型ライブラリ

 型ライブラリは,文字列型や整数型などといったデータベース項目の型に応じた処理をおこなうためのライブラリである.項目のオプションなどの設定内容によって,スクリプトを実行したりすることもある.

 j. セッションデータプール

 セッションデータプールは,セッション内でのみ保存されるデータ(セッションデータ)をメモリ上に記録しておくプールである.GWSでは主に,ウィザード形式ナビゲーションを使用する際にセッションデータが作成される.




11.成果


  ・データモデル  

  データベースに格納するデータの構造を表現するデータモデルとして,XMLのスキーマ言語をベースに拡張した,ネットワーク型に近いデータモデルを使用している.ユーザは,テーブルなどの複合型と文字列などの単純型を階層状に構成することによってデータ構造を定義する.
 

 ・統一的ウェブサービスのサポート  

  通常,ユーザはウェブブラウザを使ってGWS上のデータベースへアクセスするが,それらのウェブブラウザを使った操作のそれぞれについて,全く同じ操作をウェブサービスのインタフェースを通じて実行することもできるようになっている.データベース上のデータの読み書きだけでなく,データベース構造の変更や,あるいはデータベースの新規作成などといったあらゆる操作がウェブサービスのインタフェースを通じて実行可能である.そのため,ユーザ(人間)がウェブブラウザを使っておこなうような操作はすべて,ウェブサービスを使って自動化することができる.

 

 ・豊富な数値型のサポート  

  従来のウェブデータベース管理システムは数値のサポートが弱いものが多かったが,GWSは数値のサポートが非常に強力である.GWSでは,以下の3つの多倍長数値型を持つ.

  i) 整数型.既定では格納する数値の範囲に制限は無いが,オプションで最大値と最小値を指定することもできる.

  ii) 有理数型.整数の四則演算の結果を誤差なく格納できる.有理数型項目の値はデータベースに書き込まれる前に自動的に通分される.

  iii) n進数型.2から36までの基数が指定でき,指定された基数の位取り記数法で表現された小数を誤差なく格納できる.オプションとして小数点以下の桁数を指定できる.

 

 ・トランザクション  

  従来のウェブデータベース管理システムの多くはACIDトランザクションを持たず,データ破壊が頻繁に起きていたが,GWSはACIDトランザクションを持つため停電などの事故がおきてもデータが壊れない.

 

 ・高性能  

  従来のウェブデータベース管理システムの多くは,Javaなどで作られたカスタムウェブアプリケーションと比較すると大幅に性能が低く,性能が要求される場合には利用できなかった.一方GWSはカスタムウェブアプリケーションに匹敵するほど高性能である.また,GWSのウェブサーバとしての性能自体も非常に高く,静的データの取得ではカーネル内HTTPアクセラレータに匹敵するほどの性能を持つ.




12.プロジェクト評価


 高機能,高性能,高い使い勝手の三拍子を同時に達成したことを高く評価する.XMLのスキーマ言語をベースに拡張した,新たなデータモデルを提案し,実現していることも,オリジナリティ溢れるソフトウェアの設計として大いに評価したい.また,これまでの開発者のサーバソフトウェアの開発経験を存分に活かし,高い性能を達成しており,高い実用度を有している点も素晴らしい.

 



13.今後の課題


 ぜひ達成して欲しい最大の今後の課題は,本ソフトウェアの社会への普及である.今後もどんどん機能拡張を行っていくことは,これまでの開発者の開発状況から見て間違いなく続いていくであろうが,それと並行し,社会への普及に向けた活動をしていくことを切に期待する.


  ページトップへ   





  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004