さまざまな開発ツールが出揃う

 もう一つオブジェクト指向の普及を推進した理由として,ツールなどを含む開発環境の整備が挙げられる。ここでいうツールはコンパイラなどの言語処理系だけではない。むしろその周辺の整備の方が重要だった。

 そもそもコンパイラを見ても,例えばCコンパイラがC++コンパイル機能を標準で備えるようになったのが1990年くらいからである。また代表的なのが統合開発環境(IDE:Integrated Development Environment)。前述のようにオブジェクト指向開発においては,クラスの階層構造を初めとするクラス間の関連や,膨大なクラス・ライブラリから適切なものを選び正しく利用するといったことがやりやすくなければならない。そのためのブラウザなどはオブジェクト指向開発環境の嚆矢とも言えるSmalltalkをある程度学んだものとなっている(写真[拡大表示])。

 だがコンパイラやIDEだけでは大規模なアプリケーション開発は難しい。本来オブジェクト指向は分割統治のための考え方であり,大規模アプリケーション開発にこそ威力を発揮するものである。そこで求められるのが,開発方法論とデータベースである。開発方法論とは,システム化の対象を分析し,アプリケーションを設計するための指針である。オブジェクト指向の考え方に基づいた開発方法論を使わなければ,そのメリットを生かし切れない。一方データベースは,オブジェクトを正しく保管するためのものである。前者については1990年前後から相次ぎさまざまな手法が提案されてきた。表記法に関してはRational社のJames Rumbaugh氏,Grady Booch氏,Ivar Jacobson氏が共同で開発したUML(Unified Modeling Language)で統一された(図4[拡大表示])。開発手法に関しても,3氏が提案しているRUP(Rational Unified Process)が本命である注3)

写真●ビジュアル開発ツールの登場
ソースコードだけでWindowsなどGUIを利用したアプリケーションを開発する際に,カベとなるのがユーザー・インタフェースの設計である。どのようにGUI部品が配置されるのか,ソースコードを見てもイメージしにくいからだ。そこで登場したのがDelphiやVisual Basicのような,ビジュアルな開発ツールである。ユーザー・インタフェース部品の配置を視覚的に操作できる。さらにそれを操作したときにどう処理するかを記述することにより,プログラムを作成する。ここではDelphiの画面を示した。
 
図4●UMLで書いたクラス図の例
UML(Unified Modeling Language)を使って,システムを表現する。クラスの静的な関係を表現するクラス図のほか,動的な側面を記述する図など11種類の図が規定されている。

オブジェクトをそのまま格納する

 オブジェクトを格納するデータベースは,大きく3種類ある。既存のリレーショナル・データベース(RDB)に格納できる形にデータを変換する「アダプタ型」,参照関係を初めとするオブジェクトの表現をそのまま格納できる独特なデータ形式にした「純オブジェクト型」,RDBを拡張してオブジェクトも格納できるようにした「ORDB(Object-Relational Database)型」である。

 まず登場したのがアダプタ型である。つまりプログラムはオブジェクトの格納をアダプタに依頼する。そうするとそのアダプタがRDBの表型のデータ形式に展開し,格納するというものだ。アダプタ型は性能面で不利なため,あまり普及しなかった。

 次に登場したのが,純オブジェクト型である。米Objectivity社の「Objectivity/DB」や,米Object Design社(現在は米Progress Software社に買収)の「ObjectStore」などが有名だった。これらはオブジェクトの参照関係を表現するため,ネットワーク型のデータベースを拡張した形態を採っていた。オブジェクトの格納がスムーズで,関連をたぐる操作(オブジェクトの中に存在するオブジェクトを参照)が高速という特徴がある。半面,既存のシステムで使われていたリレーショナル・モデルとの整合性が低かったため,RDBではごく当たり前の操作ができないという欠点があった。このためCADソフトなどオブジェクトを大規模に使うシステムでは採用されたものの,基幹業務など既存のRDBが活躍する場面ではなかなか使われなかった。

 そうこうしているうちに,RDB側もオブジェクト指向に対応した。ORDBの登場である。例えば米Oracle社の「Oracle 8i」などはオブジェクトをそのまま格納できる機構を標準で備えた。さらにJava言語を使ってデータベース側で実行する手続き(ストアド・プロシジャ)を記述できるなど,着々とオブジェクト指向対応が進み,今となってはいわゆる純オブジェクト型のデータベースはあまり使われていない注4)

Javaの登場が決定打

 そして時系列で見れば,オブジェクト指向普及の決定打となったのがJavaの登場である。Javaの登場は1995年。だがJavaが普及したのは,サーバー系のシステム開発の標準APIを定めてからだ。

 具体的には,1996年に発表し,1998年から対応製品が出始めた「Enterprise JavaBeans(EJB)」に代表される企業システム向けAPI群である。Java2 Enterprise Edition(J2EE)と呼ぶ。EJBと,Webアプリケーション記述のためのServlet/JSP(JavaServer Pages),およびデータベース接続のJDBCなどから成る。なかでも特徴的なのがEJBである。これまでサーバー側で動作するアプリケーションのロジックを,クライアント・アプリケーションと同じようにコンポーネントにできる。これにより再利用性や保守性を大幅に高めた。またコンポーネント単位でフェールオーバーを実装したり,クラスタリングしたりできる。

(北郷 達郎、八木 玲子)