Ravenbrook / Projects / Perforce Defect Tracking Integration / Version 2.4 Product Sources / Design

Perforce Defect Tracking Integration Project

Perforce Defect Tracking Integration Architecture

Richard Brooksby, Ravenbrook Limited, 2000-08-10

1. Introduction

This document describes the architecture of the Perforce Defect Tracking Integration.

This document is incomplete. It is intended as a brief introduction to the architecture for version 0.1 of the P4DTI product.

This document will be modified as the product is developed.

The intended readership of this document is product developers.

This document is not confidential.

2. Overview

The architecture of the integration divides into two parts: the replicator and the tracker-client.

The replicator is a process which copies (replicates) data between a defect tracker and a Perforce server in order to keep each one up to date with changes made in the other. This allows developers to do their routine defect resolution work entirely from their Perforce client, without needing to use the defect tracker's interface. It also allows developers to relate their changes to defect tracking issues.

The tracker-client is an extension to the defect tracker's interface which allows it to act as a Perforce client. This allows developers to do their routine defect resultion work entirely from the defect tracker's interface, without needing to use an ordinary Perforce client.

The replication and tracker-client combination was chosen as the architecture for the P4DTI project after a careful analysis of several alternatives [RB 2000-06-22].

3. The Replicator

Data needed to meet the integration requirements is stored in both the defect tracker's database and Perforce's database. In practice, this is:

A process establishes and maintains consistency between the two databases, copying data back and forth as needed. See figure 1.

Figure 1. The replication architecture
Diagram of the replication architecture

Queries from the defect tracker's interface can be resolved using only the defect tracker's database. Queries from Perforce's interface can be resolved using only Perforce's database.

4. The Tracker-client

The defect tracking client is also a Perforce client. The defect tracking client connects to the Perforce server using the Perforce API. It provides an interface through which the user can carry out routine software configuration management tasks from the defect tracker's interface. See figure 2.

Figure 2. The Tracker-client architecture

A. References

[GDR 2000-05-08] "Architecture Proposals for Defect Tracking Integration"; Gareth Rees; Ravenbrook Limited; 2000-05-08.
[GDR 2000-05-30] "Analysis of architectures for defect tracking integration"; Gareth Rees; Ravenbrook Limited; 2000-05-30.
[RB 2000-06-08] "Platform Analysis of Proposed Architectures"; Richard Brooksby; Ravenbrook Limited; 2000-06-08.
[RB 2000-06-22] "Architecture Recommendation for Defect Tracking Integration"; Richard Brooksby; Ravenbrook Limited; 2000-06-22.

B. Document History

2000-08-10 RB Created based on "Architecture Proposals for Defect Tracking Integration" [GDR 2000-05-08].
2001-03-02 RB Transferred copyright to Perforce under their license.

This document is copyright © 2001 Perforce Software, Inc. All rights reserved.

Redistribution and use of this document in any form, with or without modification, is permitted provided that redistributions of this document retain the above copyright notice, this condition and the following disclaimer.

This document is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holders and contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this document, even if advised of the possibility of such damage.

$Id: //info.ravenbrook.com/project/p4dti/version/2.4/design/architecture/index.html#2 $

Ravenbrook / Projects / Perforce Defect Tracking Integration / Version 2.4 Product Sources / Design