分散ソフトウェア開発について

臼井義美

 ホワイトカラーの生産性向上やソフトウェア開発などの、高度な共同並行開発作業の効率向上をめざして、分散ソフトウェアの構築が望まれている。このようなシステムでは、電子メール、ワークフロー、データベース、CASEツールなどの多くのクライアント/サーバあるいはスタンドアローンのアプリケーションが統合され、かつ異なる部門の人達の作業に合致した支援機能が提供されなければならない。

 さらに、ソフトウェアの目的とする業務を分散システムで処理するだけでなく、ソフトウェアの設計や開発そのものも分散共同開発を指向する必要がある。


分散ソフトウェア開発の目的

 かつての集中型の開発環境ではメインフレームを基盤としたTSSを用いてソフトウェアを製造し検査していたので、アプリケーションの開発と運用は同じコンピュータ環境で行われることが多かったが、分散ソフトウェアの開発ではソフトウェアの設計、製造環境と試験環境が分離されることが多い。また、手元のワークステーションで設計、製造して、試験は実際に稼働するターゲットマシンで実施することも多くなってきた。

 このように、集中型のソフトウェア開発では作成したプログラムなども集中的に管理されていたが、分散開発環境では開発中の仕様書やプログラムが個人のワークステーションなどに分散して保管されることが多く、そのためCASEツールやグループウェアなどによって統合的に管理されなくてはならない。

 そのうえ、分散環境では開発者が地理的に離れていることが多いので、仕様のレビューなどはできるだけネットワーク上の電子メールやホームページなどを有効に利用する必要がある。

 分散開発による開発プロセスの目的は、開発作業の並列化による開発期間の短縮である。開発対象のシステムを機能別に分解して、手分けして開発することによって設計、製造、試験を並列して開発が可能な部分がある。しかし、サブシステム間のインターフェースや機能分担の設計、サブシステムを組み合わせた統合テスト、仕様の変更など、共同で検討したり調整する作業が必要であるため、これらの同期をとることが非常に大切となる。このような作業を効率的に正確に実施するためにもCASEツールやグループウェアツールの役割は大きいと言わなければならない。


分散ソフトウェアの現状

 今日、インターネットの爆発的な普及によって、WWWなどと関連して実行できる分散ソフトウェアが必要になると思われる。特に、ネットワーク上に分散して接続されたクライアントとサーバの関係が、ネットワーク上で動的に形成されながら1つの業務を遂行できるような分散オブジェクトシステムが注目されている。

分散オブジェクトによるアプリケーションを利用することによって、WWWと連動してインターネット上で電子決済や電子商取引などが可能になり、JavaやActiveXなどのネットワークを前提としたオブジェクト指向言語が提供されたことによって、にわかに脚光を浴びることになった。

 また、オブジェクト技術の標準化団体であるOMG(Object Management Group)が策定したCOBRA(Common Object Request Broker Architecture)と呼ばれるオブジェクト間の通信インターフェース仕様が注目されている。もともとOMGの目的は、異機種間で実行されるオブジェクト同士が、相互に通信しあって処理を進めるネットワークシステムをマルチベンダー環境で構築できるようにすることであった。このため、OMGはOMA(Object Management Architecture)と呼ぶ参照モデルに基づいて次のような分野で分散オブジェクトシステムの標準化作業を進めてきた。

このように、分散オブジェクトを用いたシステムの開発は、COBRA仕様をベースとして今後急速に拡大するものと思われる。

CORBAのページを参照)


分散ソフトウェア開発の展望

 一方、このような分散ソフトウェアを開発する側にとっても、ソフトウェアの分散開発という方法が利用できる。しかしながら、分散開発を行うには、前述したように仕様部品の管理、組み立てた仕様の構成管理、支援ツール間のコミュニケーションを適切に行える環境が必要である。

 まず、ソフトウェア開発者の間では、ユーザの要求を獲得したり設計仕様を検討したり仕様書やプログラムのレビューを行うために、相互のコミュニケーションが頻繁に必要となる。また、データの名前や属性を途中で変更するような事態に備えて、データの一元管理も必要となる。さらに、分散して開発された仕様モジュールが結合したときに正常に稼働するかどうかを検査するためにバージョン管理が必要となってくる。

 ところが、WWWをベースにしたビジネス用の分散ソフトウェアに関しての設計方法や仕様記述の方法はまだ未着手の分野であり、今後早急にエンドユーザをも含めた設計の進め方や仕様記述の方法が求められている。