開発ツールの多くは、リポジトリと似通った形をとっています。ただ、アプリケーションのソース・コードや関連情報を集中的に蓄積する場所としてのみリポジトリを用い、コンパイル時にしか活用していないのです。言い替えると、このスタイルのリポジトリは、コンパイル時に必要となる情報の再利用しか念頭に置いていません。この意味で、「受動的」なリポジトリということができ、アプリケーション開発にもたらす利点も限られています。
これに対し能動的なアクティブ・リポジトリは、アプリケーションの構築時ばかりでなく、アプリケーションの実行時も利用されます。実行時に「動的」に活用されます。「動的」とは、リポジトリに変更を施すと直ちにアプリケーションの動作にも反映される、ということも意味します。プログラムの再構築は必要ありません。
受動的なリポジトリの場合、例えば年齢を格納するフィールドは「社員の年齢」といった記述で格納されるでしょう。この記述は、社員募集画面、新規社員をデータベースに登録する画面などで共通に表示され、年齢の範囲はプログラムで確認します。
これに対しアクティブ・リポジトリの場合、この社員の年齢のフィールドは「16歳以上でなければならない」などといった妥当性規則もリポジトリ側で管理できます。社員募集のプログラムの代わりに、この規則を追加することで、実行時には、この規則に基づく検証処理が働きます。同様に、ヘルプ・テキストもリポジトリで集中管理できます。「社員の年齢」フィールドのある画面すべてで、ヘルプ表示の操作をしたときこのテキストが表示されます。
このように、アクティブ・リポジトリはアプリケーションの開発効率に直接的に寄与します。アクティブ・リポジトリで管理している実行コンポーネントは、アプリケーションのどこからでも使えます。さらに、リポジトリに蓄積された大量の情報は、他のアプリケーションと共有することも可能です。保守作業も短時間で済み、生産性は大幅に向上します。
LANSAはアクティブ・リポジトリの機能を備えた数少ない開発ツールのひとつです。
次のトピックも参照してください。