4) システム開発環境の構成方法
第4回は、オープンソースで構成されるシステム開発環境の構成方法についてです。
インターネットリサーチ・コンサルティング・企画、ウェブ翻訳から、Web制作、システム開発までオープンソース・ネットワークビジネスを提供
オープンソースによる大規模システムを構築するには、開発プロジェクトでのSE間連携を想定したシステム環境の整備が必須となります。一方、構築済みシステムについて、効率的なエンハンス実行・管理を行う上で版管理も必須となります。これらのフェーズでの開発・改訂・管理業務を一元化し、また、管理の自動化を行う事で、これらの作業工数を最小化する事ができます。
ここでは、LAPPシステムを開発・保守・管理・運用して行くためのシステムはどうあるべきか、その全体システム環境構築と、その導入・設定事例を紹介します。
通常、開発作業者は、開発サーバーを開発作業者間で共用する仕組みが用いられ、例えば、図4.1.に示すシステム間連携の仕組みを構成します。

図4.1. システム開発連携
ここでは、開発サーバーをLinuxベースのLAPPシステムとし、開発用プラットフォームは、複数のWindowsパソコンを想定しています。開発者は、各々の開発PC上でプログラムを開発して行く事になりますが、プログラムの動作検証は、LAPP環境が開発PCには用意されていないため、開発サーバー上に動作検証の時点で、プログラムをアップロードする必要があります。この開発プログラムを開発サーバー上で起動し、その処理結果について、同Webサーバーを介して、開発者の各々の開発PC上のWebブラウザーを介して検証する仕組みとして構成します。
これらの手順を繰り返し実行する事で、開発作業が進められますが、これらの作業は、上述一連の操作手順を延々と繰り返す必要があるため、煩雑な作業になります。一方、開発中のプログラムの管理も個人毎に委ねられるため、万一、開発PC障害によるデータ消失の危険性もあります。
そこで、図4.2.に示します統合開発環境を準備する事で、開発・管理運用効率を高める事ができます。

図4.2. 統合開発環境
ファイルサーバーはsambaサーバーにて構成されます。開発PCとファイルサーバーとは、WindowsOS互換でのファイル共有がなされ、開発PC上で開発されたプログラムは、ファイルサーバー上で管理される、との運用基準を定めます。この環境構築と運用基準により、開発者は、ローカルHDDへのアクセスと同一の操作にて、ファイルサーバー上に開発プログラムを保存・管理し、一方、ファイルサーバーのバックアップ機能により、ファイル/データ等を保証します。この仕組みにより、図4.1.に示す様な動作検証毎にftp通信手段を用いる制約から解放され、開発環境を向上させる事ができると共に、開発プログラム・データ保全を実現できます。
ここで、CVSを利用する上での留意点として、同サービス・ポートを予め開放しておく事が必要となります。これは、クライアントPCと開発サーバー間のCVSサービスにこのポートが用いられるためです。
TCP2401を開放するには、例えば、iptablesを用い、以下の様に設定します。

一方、ファイルサーバー上で管理される開発ファイル群のディレクトリーは、LAPP開発サーバー上のディレクトリーからマウントされる様に構成する事で、ファイルサーバー上のファイル群がLAPP開発サーバー上に存在する様に機能させる事が可能となります。その結果、開発エンジニアは、プログラムを開発しつつ、同時にその動作機能を検証する事ができるため、あたかも開発PCの閉じた環境上で、全ての開発作業を完結する事と同一の環境を提供できる事になります。この開発サーバー、ファイルサーバー、及び、開発PC間連携を図4.3.に示します。

図4.3. サーバー間連携
同図中、開発サーバーのPHP部分に着目しますと、PHPにて記述される開発プログラムはCVSにて管理され、同管理対象ディレクトリーとしてのリポジトリーが存在します。プログラム開発者は、この領域にある編集対象ファイルをチェックアウトし、各自の開発PC上での開発作業が開始されます。このチェックアウトには、CVSベースのファイル取得手段が用いられます。チェックアウトされたプログラムは、開発が完了するまでの間、担当者毎にそれぞれの開発PC上で管理され、その開発途上のプログラムは、ファイルサーバー上に保管されます。
一方、プログラムを開発する上での開発環境の一例として、PeggyProi があります。同ツールはCVS連携ii が可能であり、その編集画面例を図4.4.に示します。

図4.4. PeggyPro編集画面例
また、同CVS操作の管理例を図4.5.に示します。

図4.5. CVS管理画面例
開発途上のプログラムの動作を確認するには、ファイルサーバー上の予めプログラム開発領域として定義されるディレクトリーに当該プログラムを保存します。この保存操作は、WindowsOS上での操作方法を取る事ができます。
ファイルサーバー上のプログラム開発領域は、開発サーバー上のPHP動作領域にマウントされ、PostgreSQLとの連携動作により、その実行結果がopenSSL経由でWebサーバーから開発PC上のWebブラウザー上に表示されます。
ファイルサーバーへの保存以降の操作を繰り返し、開発を完了した時点で、完成プログラムを開発サーバー上のCVSリポジトリに対しコミットし、開発を終了します。
一方、以上一連の手順により完成したプログラム群を新しいリリース版として新規稼動させる場合、ライブラリー管理者は、開発版テスト環境にて総合試験を行ないます。最終動作確認が終了した後、正式にリリースされ、以降、版管理が行われる事になります。
上記開発フェーズでは、プロジェクトによる連携開発の形態が採られる事が多く、例えば、デザイナーによる画面設計とSEによるプログラム開発との連携作業があります。作業を効率的に進める上で、デザイナーに対しては、出来るだけPHPコーディング規約iii を意識させず、自由にデザインできる環境を提供する必要があります。例えば図4.6.に示す様なPHPで生成されるデータをHTMLプログラム内で表示するプログラミング・ルールを定めます。

図4.6. PHPプログラミング・ルール(例)
上記PHPコーディング規約を適用する事で、例えば、Dreamweaver等のWebデザイン・ツールを用いてデザイナーによる開発作業を行わせる事が可能となります。
同デザイン・ツールを用いたPHPプログラムの編集例を図4.7.に示します。同図上に示された【PHP】マーキング部分がPHPプログラムとして自動抽出・表示され、デザイナーは画面デザインに専念する事ができます。

図4.7. Dreamweaver編集画面例
コーディング・ルールiv と開発環境の整備により、例えば、SEとWebデザイナーとによる連携作業として、図4.8.に示す様な並行作業が可能となります。更に、PHPプログラミングもまた、複数のSE間の連携作業も可能であり、同一プログラムの同時編集に対する整合化は、CVSを利用する事で可能となります。

図4.8. SE/デザイナ同時開発手順例
次回は、以上の情報システムを効率的に運用管理するための管理ツールについてご紹介します。
- Anchor systems, “peggy”, (online),available from http://www.anchorsystems.co.jp/, accessed 2004-5-26.
- Peggy, “VSS , CVS , RCS によるバージョン管理”, (online),available from http://www2.noritz.co.jp/anchor/ashp/peggy/cvs/cvs_intro.html, accessed 2004-5-26.
- FFA PHP Projects, “PHPコーディング規約”, (online),available from http://www.s55.net/~paka/index.php?PHP%A5%B3%A1%BC%A5%C7%A5%A3%A5%F3%A5%B0%B5%AC%CC%F3, accessed 2004-5-26.
- 沼田 哲史 / 秋吉 綾都, ” JavaTM 言語のコーディング規約”, (online),available from http://www.tcct.zaq.ne.jp/ayato/programming/java/codeconv_jp/CodeConventions.doc. html#16712, accessed 2004-5-26.


