機能概要

PERFORCE は以下の機能でソフトウェア構成管理を実現します。

概要

PERFORCE は高速なソフトウェア構成管理(SCM)システムです。最先端の SCM に必要な機能を全て提供しながらも、高いパフォーマンスを得られます。真のクライアント/サーバアーキテクチャを採用し、ネットワーク・ファイルのアクセ スに依存しないため、開発の初期段階から大規模で複雑な製品の開発に至るまで、軽快に動作します。さらに、ユーザのワークスペースに関する情報が合理的に 管理されているため、ユーザインタフェースが非常に使い易いです。また、 アトミック・チェンジ・トランザクション や、柔軟なクライアント・ビュー、そして、強力なブランチ機能など、PERFORCE のシステムは、使用感だけでなく機能面からも、包括的な SCM 環境を提供します。

アーキテクチャ

PERFORCE システムの各ソフトウェアの特徴は、スループットが高く負荷が小さいことです。中心となるのは PERFORCE サーバで、サーバマシン上の「ディポ」(ファイルリポジトリ)への接続を管理するコネクションベースのスタンドアロンプログラムです。ユーザは、ネット ワーク上(遠くても、近くても)の任意のワークステーションから、ローカルで起動しているクライアント・プログラムを介して PERFORCE サーバにアクセスできます。
通常、各エンジニアは各自のクライアント・ワークスペースを使用します。別に、特定の目的のワー クスペースやプロジェクトのワークスペースを使用することもできます。ユーザが使用する、リポジトリ内のファイルのビューは、クライアント・ワークスペー ス仕様によって定義されます。ワークスペース自身には、そのビューで選択されたファイルが物理的にコピーされます。
PERFORCE サーバは、要求ハンドラ、データマネージャ、ファイルライブラリアンという3つのコンポーネントから構成されます。要求ハンドラは、クライアントからの要 求を伝播し、クライアントとの通信を管理する役割を持ちます。データマネージャは、マルチユーザ用にカスタマイズされている Berkeley DB データベースパッケージに基づき、最適化されたデータベースサービスを行います。そして、ディポのバージョン化ファイルやディポに対するトランザクション の、状態および履歴を保管するメタデータベースを管理します。ファイルライブラリアンは、サーバ上のディスクにリポジトリファイルを保管する役割を持つ、 効率的なファイルアーカイバです。 RCS と互換性のあるリバースデルタ形式で、テキストファイルバージョンを保管します。バイナリファイルバージョンは、標準の圧縮フォーマットで保管されます。

異種混在ローカル/広域ネットワーク上での動作

PERFORCE のクライアントプログラムとサーバプログラムとは、ネットワーク通信が最小限になるように最適化された、単純な TCP/IP ベースのファイル転送プロトコルで接続されます。 PERFORCE は NFS のような共有ファイルシステムには依存せず、LAN や世界中で同等に動作します。クライアントのファイルは、一度取得された後は、ユーザのマシン上にローカルに存在します。編集やコンパイルのような通常の 作業に、ネットワーク接続は必要ありません。全ての PERFORCE のクライアントプログラムは、OS プラットフォームに依存することなく全ての PERFORCE サーバに対応します。すなわち、OS が混在するようなネットワーク環境での相互運用を 100% サポートします。
このようなネットワーク構造を持ちますので、PERFORCE は、広域ネットワーク上でも LAN 上と同等に動作する 唯一の SCM システムといえます。開発環境が世界中に広く分散している場合でも、単にインターネットや電話線を介して通信をしている場合でも、PERFORCE を使用することで、全てのユーザが中心のリポジトリに直接接続して作業できます。

汎用性およびプラットフォームサポート

PERFORCE システムの各ソフトウェアはすべて、ユーザアプリケーションとして C++ で実装されています。カーネルのサポートや、特別なファイルシステムは必要としません。 PERFORCE サーバはほとんどの UNIX プラットフォーム、および、Windows NT 上で動作します。PERFORCE のクライアントプログラムは全ての UNIX プラットフォーム、Windows NT 、 Windows 95 、 OS/2 、 Macintosh 、 BeOS 、 QNX 、OpenVMS 上で動作します。
日本語版の動作環境につきましては、お問い合わせください。

クライアントの状態追跡とリモート作業

PERFORCE のクライアント・ワークスペースは、開発者のローカルディスク上にある普通のファイルから構成されます。PERFORCE は全てのクライアント・ワークスペース上の作業を記録しますので、この記録を手動で作成する必要はありません。ワークスペース上のファイルのバージョン、 ワークスペース上のファイルの位置、ワークスペース上のファイルの状態、ディポ上のファイルとのマージ情報、作業状態にあるファイルの情報、これらは全て 追跡されます。また、他のユーザがどのファイルで作業をしているか、どの変更に対してマージが必要か、という情報を得ることも可能です。任意の2つのクラ イアント間で、または、クライアント・ワークスペースとディポとの間で、ファイルバージョンを比較することもできます。
PERFORCE では、ネットワークからクライアントマシンを切り離し、ローカルで作業し、後にサーバとの間の通信を再開する、という操作を、ソースを損なうことなく、行うことが可能です。

アトミック・チェンジ・トランザクション

PERFORCE のモデルでは、論理的な変更(チェンジ)が、処理の1単位として扱われます。データベースの完全性は、サーバの各処理時に保証され、論理的な各チェンジは 一意にかつ永久的に識別されます。アトミック・チェンジという本質的な集合データによって、ファイルバージョンと外部の作業(例えばバグフィックス、 ECO、プログラム仕様作成)との関係が明確になります。ファイルの追加、削除、リネームについても、編集作業と同様に追跡されます。
PERFORCE には、サブミット済チェンジの内容を、選択的に自由にクライアント・ワークスペース内に同期するメカニズムがあります。

並行開発とブランチ

PERFORCE は並行開発の2つの形式をサポートしています。一方は、ディポの同一コードライン内のファイルに対し、複数のユーザが同等に作業する形式です。すなわち、 2人のプログラマが同じプロジェクト上の同じファイルに対し、同時に作業できます。もう一方は、複数のコードラインを並行に存在させたり、互いに関連付け たりする形式です。つまり、リリース済み製品のコードラインと、開発中のコードラインとを共存させることができます。 PERFORCE は複数のコードライン間の反映時に行われた変更を追跡し、コードライン間のマージを自動化します。その結果、ユーザは、並行開発作業やリリース済みプロ ジェクトに対する作業を行うことができ、プロジェクト間の変更を調和させることもできます。
PERFORCE には Inter-File Branching TM と呼ばれる、独特の簡潔なブランチモデルがあります。これによって、ディレクトリネームスペース上の自然な階層構造に基づき、 コードラインの作成や管理という作業を、簡単に行えます。

管理

PERFORCE の構造は単純ですので、管理が簡単です。サーバやクライアントプログラムのインストールには特別な権限は必要なく、OS への依存性も低く、サードパーティやアドオンのソフトウェアも必要ありません。すべての PERFORCE 製品は、アップグレードを含め、PERFORCE の Web サイトからダウンロードすることができます。 PERFORCE の 1ユーザ1ライセンスというライセンスは、ライセンスサーバを使用せず、ライセンスがないためにユーザが作業できないという事態も引き起こしません。 
最小限のシステム管理で、チェックポイントとバックアップの計画、および、リソースの監視を行うことができます。 PERFORCE には、継続的なジャーナル機能とオンラインのチェックポイント機能がありますので、バックアップのために作業を中断する必要はありません。

ラベル

PERFORCE には、クライアントのファイルリビジョンの正確な構成を、特定の名前を持つ仕様として管理する機能があります。これによって、リリースにラベルを適用した り、リリースのビルドに必要なファイル構成を再現したりすることが可能になります。さらに、アトミック・チェンジ・トランザクションの記録自身が、ディポ の各時点に対する明示的なラベルですので、ユーザがラベルを定義する必要性が低くなります。

レポート機能とチェンジ・レビュー機能

PERFORCE には、クライアント・ワークスペースの状態、ファイル変更履歴、現在進行中の作業、 ディポのコードラインに対するワークスペースの現状、複数のコードラインの間の関係、これらに関する記録があります。
単純で柔軟な変更レビューメカニズムがあり、E-mailで特定のチームに変更を知らせるプログラムが提供されています。これと同等のメカニズムによって、 欠陥追跡システムの情報更新も自動的に実行できます。

欠陥追跡

PERFORCE は「チェンジリスト」(アトミック・チェンジ・トランザクション)と「ジョブ」(バグレポート、ECO、拡張要求等の、意味的な作業単位)との関連を管理 します。「ジョブ」というメタデータは、基本的な欠陥追跡用として使用することもできますし、別の欠陥追跡システムとの連携を実現するために使用すること もできます。

クライアントAPI

PERFORCE には、クライアント API がありますので、簡単にご希望のフロントエンドを開発できます。チェックイン/チェックアウトの制御やファイルのバージョン管理が必要な、大きいアプリ ケーションに対し、PERFORCE をそのコンポーネント、サブシステムとして埋め込むことができます。例えば、WebKeeper モジュールは、PERFORCE API を使用して Apache HTTP web サーバを PERFORCE クライアントとして動作させ、PERFORCE サーバに対しバージョン管理されたファイルを直接要求させることができます。

Web コンテンツ管理

PERFORCE の構造は Web コンテンツ管理(WCM) のバージョン管理や構成管理に適しています。 クライアント・ワークスペースを Web サイトのファイルシステムとして扱い、ディポからクライアント・ワークスペースへファイルをコピーする手順を PERFORCE コマンドライン・クライアントを使用して自動化すれば、Web サイトに直接アクセスする必要性はなくなります。 PERFORCE のクライアント・ワークスペース追跡機能は、Web サイトの構成の指定、監視に応用できます。 Web に発行される構成は、PERFORCE のラベルと Inter-File Branching TM を使用して制御できます。 PERFORCE は、ファイルベースの全ての Web サーバ構造、および、Web 作成環境と互換性があります。

開発プロセスの実装

PERFORCE は、開発プロセスに関する規則や制限を課さないにも関わらず、ソース管理の指針を幅広くサポートします。 Inter-File Branching TM によって、共存する複数のコードラインを、ソフトウェア開発の全工程を通して、簡単に発展させることができます。 チェンジリストとジョブというメタデータは、ファイルバージョンとユーザ定義の工程との関連付けを行います。サブミット前トリガは、チェンジリストのコメ ントと別の処理属性との正当性を評価します。サブミット後レビューは、E-mailの自動発送と状態の自動通知を行います。外部のプロジェクト管理システ ム、欠陥監視システムはコマンドインタフェースやクライアント API を介して、PERFORCE と通信することができます。

詳細情報

PERFORCE のより詳しい情報、説明をご希望の方は、 ss_sales@toyo.co.jp まで、ご連絡ください。