Special Review for Access Developer's Toolkit
Access Developer's Toolkitとは ?
MS-DOSの時代,世界でもっとも多くのプログラムが書かれている言語は実はXBASEだった.その時代,XBASEコンパイラとして圧倒的な好評を得ていたのがCA-Clipperである.この製品は,dbadseIIIより実行速度が高速だというメリットもあったが,何よりも高価なランタイムライセンスが必要ないというのが,開発者にとって魅力的だった.
競合製品であるMicrosoft FoxProや,Borland dbaseIVも市場の要求にせまられ,ランタイムライセンスフリーの製品の販売を始めた.そういった製品群の流れにあたるのが,今回,発売されたAccess Developer's Toolkit for Windows95(以下ADT)である.
ADTは米国ではAccess1.1に対応したものから存在していたが,日本ではAccess2.0に対応したものが最初である.だから,今回が最初のバージョンアップということになる.パッケージにはAccess Developer's Toolkit Designe for Windows 95と大きく表示されている横に,Advanced Development Tools version7.0と書かれているので,ADTとは実はこちらの略称なのかもしれない.いずれにしても,version7.0である.
ADTには,いくつかの有効なツールが同梱されているが,やはり,目玉は,Accessで作成したプログラムの配布を可能にするランタイムライブラリだろう.ランタイムでできることは,もちろん,Accessでできることに準じている.ただ,Accessは付属していないため,プログラムを開発したり,データベースのデータをインタラクティブに操作するには,別にAccessを購入する必要がある.つまり,Accessを持っている人のためのツールなのである.
ただ,付属しているツールのいくつかは,Visual Basicによっても利用可能である.特にデータベースのレプリケーションマネージャーは,VB-JETデータベースエンジンの利用者にとっても有効だろう.
梱包されているツールは次のようなものである.
1. ランタイムライブラリ
2. OLEコントロール
3. セットアップモジュール作成ツール
4. ヘルプ作成ツール
5. レプリケーションマネージャ
6. アップサイジングツール
●ランタイムモジュール
ランタイムライブラリについては,多くの説明は必要ないだろう.開発者がACCESSで作成したプログラムをACCESSなしで動くようにするためのものである.実行モジュールを作成できないACCESSでは,開発したプログラムを使うのにも,一台に一つのライセンスが必要である.これは,Visual Basicのランタイムモジュールが配布自由なのとはライセンスのシステムが異なっている,ということだ.
ACCESSは開発ツールとしてみれば安価なソフトだが,クライアントライセンスとしては十分に高価である.ADTのランタイムモジュールによって,この問題を解決できる.現場のオペレーターには開発機能は必要ないわけだから,プログラム実行用のランタイムで十分だということになる.
この機能(ライセンス制度)は,クライアントを大量に導入する企業にとっては特に大きなメリットになる.ADT ver.7.0が発売されないがために,ACCESSを32bit環境に移行できなかったケースもあるはずである.
●OLEコントロール
Accessには,最初から付属しているカスタムコントロールが少ないので,それを補うためのコントロール類である.添付されているものとして,コモンダイアログ,タブコントロール,スピナー,スライダなどがある.ただ,多くはVisual Basicに付属しているものなため,Visual Basicユーザーにとって,あまり新味はない.
●セットアップモジュール作成ツール
これは開発したアプリケーションを配布するための,インストーラを作成するためのツールである.ウィザード形式の指示にしたがっていくだけで,セットアップモジュールを作成できる.
途中,選択可能なオプションは豊富で,ユーザーのニーズにあわせてカスタマイズ可能である.開発したアプリケーションを,ウィザード上で指定することで(図1),そのシステム用のインストーラを自動的に生成する.また,同時に含めるコンポーネントの指定(図2)や,ショートカットの作成を指定できるなど,かなり,実用的な機能を持っている.
Visual Basicにも,同様の機能があるので,使用したことのある方もいるだろう.ただ,機能としては,こちらの方が充実している.
図1:アプリケーションを指定し,セットアップモジュールを作成
![]()
図2:セットアップモジュールに,ACCESSランタイムを含める
![]()
●ヘルプ作成ツール
ADTにはMicrosoft Help WorkshopとWindows95ヘルプコンパイラが付属している.これらによって,プロジェクトファイルを元に,Windows95標準のヘルプが容易に作成できる.
●レプリケーションマネージャ
ランタイムモジュールを別にすれば,ADTの中で最も重要なツールがこれだろう.レプリケーション機能とは,同じデータベースを分散させて配置しておき,一定のタイミングで同期をとり,分散したデータベースの内容を統一しようというものである.これは中央管理型のクライアントサーバーシステムに対して,並列型の新しい運用形態として注目されている.元々,SQLデータベースが先に導入した機能だが,ついにPC用のJetデータベースエンジンに移植された.
レプリケーションによって,ローカルマシン内にあるデータをアクセスする必要がなくなるわけだから,SQLデータベースのようなサーバー型のデータベースよりも,Jetデータベースエンジンのようなファイル共有型の方が,この機能を採用する利点は多い.
レプリケーション機能によって,次のような効果が期待できる.
★1 データの共有
レプリケートされたテーブルは仮想的には一つのテーブルとみなすことができる.ユーザーは自分にレプリケートされたローカルテーブルをアクセスしながら,データの共有をおこなうことができる.
★2 データアクセスの高速化
レプリケートされたテーブルはローカルマシンに存在するため,データアクセスをネットワーク越しにおこなう必要がない.また.処理は自分のマシンのCPUでおこなわれるため,処理にかかる時間がサーバーの負荷に依存しない.今日のようにローカルマシンの処理性能がサーバーと差がないような状況では,負荷分散は性能向上の有効な方法である.
★3 アプリケーションの自動配布
レプリケーションはデータに対してのみおこなわれるのではなく,デザインマスターに加えられたフォームや,クエリーの変更に対してもおこなわれるため,レプリケーション先のアプリケーションを常に最新の状態に維持することができる.
★4 データのバックアアップ
レプリケーションは追加,変更されたデータに対してのみおこなわれるので,自動的に差分のバックアップをとったのと同様である.
図3:レプリケーションマネージャ
![]()
レプリケーションをおこなうために,ローカルにもサーバーと同じデータが格納されるわけだから,ローカルのハードディスクにもそれだけの容量が要求される.ハードディスクが安くなった今日だからこそ,実用的になった技術だといえる.ハードウェア的な資源の共有のためのネットワークから,純粋に情報共有のためのネットワークへと移行する時代の方法論だろう.
この機能はACCESSだけでなく,同じJetデータベースエンジン3.0を利用しているVisual Basic4.0によるプログラムでも運用可能である.ACCESSの「ツール」メニューや,VBAのMakeReplicaメソッドを用いてレプリカを作成することは可能だが,GUIツールがあるにこしたことはない.
ADTに付属しているレプリケーションマネージャ(図3)は,データレプリケションに関する設定をGUIベースでおこなうためのツールである.レプリケーション機能そのものは,Jetデータベースエンジンがサポートしており,レプリケーションマネージャは,その運用を支援するためのツールでしかない.
レプリケーション機能を利用するためには,基準となるデータベースを作成する必要がある.このデータベースをマスター,それを元に作成されたデータベースをレブリカという.マスター,レプリカ,どちらに加えたデータの変更も,相互に反映可能だが,データベースの設計の変更はマスターからレプリカに対してしかおこなえない. レプリケーション機能を利用する手順は次のようになる.
1 MDBデータベースを,デザインマスターに変換する
2 マスターを元に,レプリカを作成する
3 同期を取る
実際にレプリカとの同期をとったところを紹介しよう.
図4:デザインマスターのデータを変更
![]()
図5:レプリカのデータを変更
![]()
図6:同期を取る
![]()
図4はデザインマスターにデータを追加した画面である.同様に図5はネットワーク上の別マシンでレプリカに追加を加える.そして,「ツール」メニューから「同期」を選択し,図6のダイアログで同期を実行する.
図7:相互のデータが反映
![]()
両方の変更が反映されたのが,図7である.オートナンバー型にランダムな番号がふられているのに気づくだろう.レプリカとして指定されると,オートナンバー型は,本来のようにインクリメンタルな数値ではなく,ランダムに番号をアサインする.割り当てられた番号は,必ずしも後に追加されたものが大きいとは限らないので,プログラムがオートナンバー型の値に依存していないか注意する必要である.それでも,オートナンバー型に割り振られる数値が競合する問題を回避する手段が提供されていることは評価できる.
もちろん,レプリケーションは,このような一対一のようなものばかりでなく,多数のレプリカを同時に持つようなスタイルも選択可能である.同期をとるタイミングは,レプリケーションマネージャを使えば,スケジューラによる時間毎の設定が可能である.また,VBAコードからDAOを用いて,コードによって同期を実行することも可能である.だから,データの更新直後に,意識的に同期を取ることもできる.こうすれば,レプリカ間のデータが食い違う問題は最小限に抑えることができる.ただ,レプリケーション処理は,それなりに時間がかかるので,一般的な更新処理イベントをトリガに,同期を取ることは実用的ではない.
レプリケーション機能の問題点は,別のレプリカの同じデータに変更が加えられたとしても,同期を取るまで競合が発覚しないことである.そのため,競合を起こしていた場合には手動による解決が必要となる.
●アップサイジングツール
アップサイジングツールはACCESS 2.0の時代には,ADTとは別梱包のソフトウェアだったのが,今回は同じパッケージに収められている.その分,お買い得だともいえるが,アップサイジングツールだけがほしいという人からみれば,以前の価格(\30,000)より,出費が大分,増えることになる.
アップサイジングツールは,SQL ServerとACCESSを統合するためのツールである.ツールはアップサイジングウィザードと,SQLブラウザの2つから構成されている.以下,各々説明しよう.
●アップサイジングウィザード
アップサイジングウィザードは,ACCESSでつくったデータベースをWindowsNT上のMicrosoft SQL Serverに移植するためのツールである.セットアップをおこなうと,アドインツールとしてACCESSのメニューに登録される.
当初はACCESSでシステムを作成していたが,データの増大にともなってSQL Serverへの移行を必要とするようなケースも多いだろう.そのような場合,当然,SQL Serverの専門的な知識が必要となってくる.
SQL ServerのようなSQLデータベースとACCESSのような非SQLデータベースでは,データベース設計のパラダイムが若干違う.その差を吸収するのが,アップサイジングウィザードだといえばいいだろう.
だから,ACCESSが使えれば,そのまま,SQL Serverでシステムが組めるというのが,アップサイジングツールのセールスポイントである.だが,もちろん,ことはそんな簡単ではない.
その理由を説明する前にアップサイジングウィザードが,どのような処理をするのかを説明しておこう.
まず,データベースを移植する上で.もっとも大切なのはテーブルをSQL Serverにエキスポートすることである.ただ,これは,ACCESSのエキスポート機能をつかってODBC経由でおこなっても,容易に実現できる.アップサイジングウィザードが優れているのは,エキスポートの際にデータや,テーブル構造ばかりでなく,テーブルに設定されている入力規則や,リレーションシップまでエキスポートすることである.だが,フィールドの入力規則や,オートナンバー型フィールドなど,SQL ServerでサポートしていないACCESSの機能も多い,アップサイジングウィザードは,それらをエミュレートするためにトリガとストアドプロシージャを生成する.
だから,アップサイジングツールでアップサイズしたただけで,今までACCESSで動いていたシステムが,そのまま,SQL Serverで動くようになる.ただ,それなりに動くようになるのと,パフォーマンスを生かしきって動くとの違いは大きい.アップサイズする最大の理由は,データの量が増大したからというのが多いだろう.だから,安定性をもとめてSQL Serverに移行するわけだが,それによってパフォーマンスが劣化することは避けたいのが,人情というものだ.
しかし,アップサイジングツールを使って,従来のシステムを移行しただけでは,期待が裏切られる可能性が高い.これには,いくつかの理由がある.まず,最初にあるのが,「SQL Server=高い=速い」という思い込みだろう.シングルユーザー環境で使用する限り,Microsoft FoxProのラシュモアテクノロジーを継承するJetデータベースエンジンは,おそらく世界最高レベルの高速データベースエンジンだろう.それに比べて,格段に速い処理を期待するならば,従来よりも格段に速いマシンに載せるのが,もっとも早道である.
次の理由として考えられるのが,Jetデータベースエンジンを経由してODBC接続した場合の,テーブルオープン時のオーバーヘッドである.これは,データ件数が多いほどにテーブルを接続するために必要な時間が増大する.
そして,もっとも理解されにくいのが,データベースサーバーと,ファイル共有型データベースの仕組みの違いである.アップサイジングツールは,この2者の違いを吸収してアップサイズするが,アップサイズされたデータベースと連結されているローカルのJetエンジンは,最適化という意味で,これらの違いをまったく考慮しない.もっとも,確実 な方法で接続しているだけである.
これらの違いは,SQL Serverの実行処理がサーバー側でおこなわれているのに対し,Jetデータベースではデータベースがサーバーにあっても,処理はローカルでおこなわれているということに起因している.これは,たとえばODBCを経由していても,扱いは同じである.例外としてはMicrosoft Internet Information Server(IIS)とInternet Database Connector(IDC)を使って,Web-DBシステムを組んだ際などは,処理はサーバー側でおこなわれる.これは,ブラウザがクライアントなのではなく,一つのマシン内でIISがクライアントとなり,Jetデータベースエンジンにアクセスするからである.
ACCESSにはVisual BasicのようなRDOが搭載されていないので,この辺りのことは解決しにくい問題である.次期バージョンで,RDOが上手にインプリメントされれば,それこそ,アップサイジングウィザードは有効に働くだろう.だが,現状では,アップサイジングツールを過信してACCESSでシステム構築をおこない,都合が悪くなったら,SQL Serverを使うという作戦が成功する可能性は低い.
ただ,現行製品でも,SQL Serverを十分に知っている人が,楽をするために使うツールとしては有効である.移植に伴う多くの処理を,質問に答えるだけで自動的におこなってくれるメリットは大きい.
●SQLブラウザ
SQLブラウザを使うことによって,SQL Serverのデータベース設計が,ACCESSと酷似のインターフェイスでおこなうことができる.
SQL Serverにはエンタープライズマネージャという,データベースマネージメントツールが付属している.このツールによって,SQL Serverのほとんどの操作ができるのだが,随一できないのが,テーブルのデータ表示編集である.インタラクティブSQL機能が内臓されているので,Insert文やUpdate文を作成すれば編集も可能なのだが,もちろん,そんなことをする時代ではない.
それで,SQL Serverを使うときにはフロントエンドツールとして,常にACCESSが起動することになるわけだが,SQLブラウザがあれば,データの管理とデータベースの管理をACCESS一つでできる.もっとも,エンタープライズマネージャはできがいいし,操作が難しいものでもないので慣れてしまう方が有効かもしれない.
図8 ACCESSのアドインに登録されたアップサイジングツール
![]()
●ADTを買うべきか?
ライセンスの問題で,ランタイム版が必要という人は,何も迷うことはない.ADTをすぐに購入すべきだ.ACCESSで作成したアプリケーションをパッケージとして販売することもできるし,ACCESSをもっていない友人のために,電話帳データベースをつくってあげることもできる.本誌の「ACCESSビジネスプログラミング」の愛読者ならば,記事中でパワーアップされた実用的なサンプルアプリケーションを,会社のコンピュータにインストールすることもできる.折りしも,ソフトウェアの不正使用に関する証拠保全措置で損害賠償一億何千万円という報道も記憶にあたらしい.
しかも,けっこう有意義なおまけまでがついてくる.また,ある程度以上の規模のレプリケーションモデルを構築しようと考えている人も,レプリケーションマネージャのためだけに買ってしまうかもしれない. アップサイジングツールは,やや魅力にとぼしいが(だから,パッケージが統合されてしまったのだろう),このツールによって,SQL ServetがすっかりACCESSのバックエンドデータベースに収まってしまうのには,小気味いいものがある.
大量に売れているACCESSを入り口にして,SQL Serverへと誘い込んでしまおうというMicrosoftの戦略は実に巧みである.誘惑にともなう甘美とリスクを計りにかけて,それに乗るかどうかは,結局,本人が決めることなのだろう.
製品概要
製品名 Access Developer's Toolkit for Windows95 販売元 マイクロソフト株式会社 価格 58,000円 秋月 巌 AKIZUKI, Iwao
Visual Basic Magazine ライブラリ | Visual Basicコースホームページ
int21 ホームページ | PCDN ホームページ
![]()
HTML Converted by Falcon/礒山 賢司