![]()
![]()
わずか24Kバイトという極めて小さなフットプリントを実現
エンサークでは、組み込みシステムに最適化されたリレーショナル・データベース(RDB)およびデータ管理フレームワークという両面を備えた「ENCIRQ® Data Foundation™ Framework(ENCIRQ Framework)」を開発・提供している。
自動車、携帯電話、通信機器(DSL集線装置)、ブロードバンドSTBなど、ワールドワイドで多くの製品に搭載されており、国内でもすでにPHSやIP-セットトップボックス、車載オーディオなど、高速検索機能が必要される組み込みシステムへの採用実績がある。
「組み込みシステムに向けたデータベースは、現在、いくつかのベンダーから提供されていますが、そのほとんどがエンタープライズ系のシステムに向けたものをベースに機能を削ることで省サイズ化を図ったものです。そのため、いくら小さくなったとはいっても、いまだ2M~3Mバイトものフットプリントを持つ製品がほとんどです。それに対して、ENCIRQ Frameworkは始めから組み込みシステム向けに開発されたもので、わずか24Kバイトという極めて小さなフットプリントで、しかもアプリケーションが必要とする機能を削ることなくインプリメントすることができます」(湯本氏)という。
ENCIRQ Frameworkはウインドリバー開発スィートWorkbench上で初めて動作したDBMS
もともとENCIRQ Frameworkの生い立ちは、PDA端末で株価情報や金融情報を取り込み、処理していくシステムに向けて開発された。すなわち、始めから組み込みシステムに向けて開発されたデータベースなのである。
ウインドリバーとは緊密なパートナーシップを築いており、米エンサーク社のアドバイザリーボードには米ウインドリバー・システムズ社の副会長ナレン・グプタ氏が就任しているほどだ。
「われわれの米国本社とウインドリバーの米国本社は、非常に親密な関係を築いており、日本法人同士でも同様の関係です。ウインドリバーのWorkbench上で初めて稼働したデータベースがENCIRQ Frameworkです。ウインドリバーの環境は信頼性が高く、ENCIRQ Frameworkが動作するプラットフォームとして堅牢なシステムを構築できます」(湯本氏)。
ウインドリバーは、オフィス機器においても膨大なカスタマを持つ。「われわれがアプローチしているお客様とウインドリバーのそれは重なることも多く、ウインドリバーにはさまざまな面で協力をいただいています。また、オフィス機器に限らすさまざまなシステムにおいてDBMSの必要性が増しています。新しい分野のシステムにおいても、ウインドリバーとの協力関係を活用していきたい」(湯本氏)。
ちなみに新しい分野の製品として、ウインドリバーのヘビーユーザーが開発したIP STBには、ウインドリバーのPlatform製品上でENCIRQ Frameworkが動作しているという。
組み込みシステムに向けたRDBMSの新しいチャレンジ
現在、多くの組み込みシステムにおいて、DBMSの必要性が高まっている。たとえば、HDDオーディオでは、1台で数千曲ものデータを扱うことになる。「曲の検索キーとして、曲名、アーティスト名、ジャンル、年代など、さまざまな条件が組み合わされます。すなわち、リレーショナルなデータの組み合わせによる検索が求められます」(湯本氏)という。
こういったリレーショナルなデータ検索は、エンタープライズ系のシステムでは広く普及しているのが、組み込みシステムにおいてはまだまだだ。
組み込みシステムでは、
(1)搭載されるHDDの容量は大きいがアクセススピードが遅い
(2)搭載されるメモリ容量が小さい
(3)プロセッサも低速
といったエンタープライズ系のシステムと比べて貧弱な環境にもかかわらず、扱うデータ量だけは急増しているのが現状である。
「そこで必要となるのが、組み込みシステムに向けたRDBMSにおける新しいチャレンジです」(湯本氏)いう。
チャレンジとして、
(1)手続き型SQL言語(ENCIRQ PL言語)のC言語へのプリコンパイル
(2)ストリームベースド・データマネジメントの採用
がある。
(1)ENCIRQ PL言語はオラクルのPL/SQLと同じ文法のSQL言語であり、ENCIRQ PL言語からC言語を生成する。「C言語を生成する際に、ENCIRQ Frameworkで必要とする機能だけを出力することで、最小で24KBというフットプリントを実現しています」(湯本氏)という。
(2)従来のDBは、いったん一箇所のファイルに全てのデータを保管して、それをアプリケーションがアクセスしている。ストリームベースド・データマネジメントは、連続的に入力されるデータから与えられた条件によって必要な情報だけをピックアップし、ダイナミックに処理していくものとなる。
こういった処理が行えることで、たとえば、車載システムでは、刻々と変化する各種の走行データをある一定条件で取り込み、同時にGPSと地図情報などと組み合わせてから、運転の荒さなどを判断することができ、利用状況に対応したメンテナンス情報や、よりきめ細かな自動車保険料率の設定に活かせるなど、新しいサービスを提供することも可能となる。
SQL記述とデータ管理ロジックを分離して開発できる
ここまでは主にENCIRQ FrameworkのRDBとしての特長を見てきたが、次にデータ管理フレームワークとしての側面を紹介しよう。
データ管理フレームワークとしては、
(1)データ定義やアクセス処理をENCIRQ PL言語で記述することで、データ制御コードから隠蔽できる
(2)データアクセス用APIとしてプロジェクト全体でのデータ管理手法を統一できる
といった点があげられる。
ENCIRQ Frameworkは、オラクルのPL/SQLに準拠した記述言語の「ENCIRQ PL」、ENCIRQ PLで記述されたプログラム・ロジックとデータ定義から、最適化されたアプリケーション・コードをANSI Cで生成する「ENCIRQ Generator」、アプリケーションのテスト&デバッグを行うための対話式ユーティリティの「ENCIRQ Prototyper」、高性能ミドルウエア・サービス・ライブラリの「ENCIRQ Service Libraries」などで構成される。
ENCIRQ Frameworkの開発プロセスを図1に示す。ENCIRQ PLによって記述されたSQL記述からENCIRQ GeneratorによってC言語が生成される。その際ENCIRQ Prototyperによって、テスト&デバッグを行うことができる。データベース部分のC記述とその他ロジック部分のC記述などを合わせてコンパイルし、ENCIRQ Service Libraryから提供されるライブラリとリンクさせて、最終的なオブジェクトが生成される。
![]() |
| 図1:ENCIRQ Frameworkの開発プロセス |
この流れから分かるように、SQL記述を含むデータ管理ロジックを分離して開発できる。すなわち、C言語のメインロジックからデータアクセスに関する処理をC APIという形で隠蔽することができる。現在、データとデータ管理コードが複雑化してきており、データのメンテナンスや新機能の組み込みへの負荷が急増している。ENCIRQ Frameworkを活用することで、仕様変更への柔軟な対応や開発の効率化を図ることができる。
効率良くENCIRQ Frameworkを活用できるビジュアル化ツールも開発
ENCIRQ PLは、一般のソフトウエア開発と同様にエディタなどで記述していく。「ENCIRQ PLの強みは、1行で非常に多くの処理を行うことができる点でしょう。Cで記述すると100行を超えてしまうような処理も簡単に記述できます。一方、Cから見るとENCIRQ PLの関数をコールするだけですみ、関数レベルでデータベース処理を隠蔽することができます」(高橋氏)。
すなわち、C言語の良いところと、ENCIRQ PLの良いところを組み合わせて、データベース処理部分を隠蔽できるのが大きな特長であるといえるだろう。「ENCIRQ PLは、PL/SQLに準拠しているため市販の参考書も多く、Cの経験者であれば直ぐに習得できます」(高橋氏)というのも特長のひとつとなる。
湯本氏も、「多くの組み込みシステム関連のソフトウエア・エンジニアにとって、テーブルの設計などの経験が少なく、データ・マネジメントは身近なものではありません。ENCIRQ Frameworkを活用することで、容易にデータ・マネジメント機能を実現できます」という。
このようにENCIRQ PLによる開発への壁は低いが、さらにエンサークではさらに効率よくENCIRQ Frameworkを活用できるビジュアル化ツールも開発している(図2)。これを用いることで、テーブルの定義やテーブルとアプリケーションとの関係付けなどを容易に行うことができる。「組み込みシステムの世界でもDBMSは認知されてきたところですが、DBMSのビジュアル化ツールは他にはないものでしょう」(高橋氏)という。
![]() 拡大画像 |
![]() 拡大画像 |
| 図2:ビジュアル化ツールの画面例 |
堅牢なシステムを構築できるウインドリバーのソリューションとENCIRQ Frameworkの組み合わせや、さまざまなシステム向けた豊富な実績を持つウインドリバーとの緊密なパートナーシップは、ますます重要性が高まる組み込みシステムにおけるDBMSの普及に大きく貢献していくだろう。
|
ウインドリバーパートナー製品紹介ページ
http://www.windriver.com/japan/alliances/directory/list/encirq.html




