Project Server 2007 Connector (PS-TFS Connector) Released
Well, we've done it! I have had my head buried deep in the sand for some time now working countless hours on the PS2007-TFS Connector, but I am both happy and relieved to say that we have released it to the public. You can find it at http://www.codeplex.com/pstfsconnector.
Documentation on the Connector is sparse right now. I will be working on revising design documents and text over the next few weeks as I also battle any bugs that arise. However, I thought I would take this opportunity to introduce you to the Connector and provide a brief overview of what it is and how it works. Hopefully, I will whet your appetite to find out more about it. In the blogs that follow this, I will dive deeper into the depths of the Connector.
What is its purpose?
If you just want one sentence to sum up what it does, the Connector synchronizes WorkItems within a TFS Project with Assignments within a PS2007 Project. Of course, there is more involved than that. Resources often need to be created and added to project teams, data needs to be transformed as it moves back and forth, different actions within the WorkItem approval process need to be considered, etc. But in a nutshell, its purpose is to synchronize WorkItems with Assignments.
This capability allows project managers to see, in 'real time' the status of tasks and issues as they are being worked on by developers. Likewise, it allows developers the ability to work with greater agility as assignments are added, removed, or updated by project managers.
How does it work? (Very high level)
The Connector takes advantage of new features within Project Server 2007 that have been built to ease integration with it. Namely, these are the PSI web methods and the ability to extend Project Server 2007 with custom Event Handlers. The PSI methods are used to update information within and read information from Project Server. The Event Handlers are used to send notifications to the Connector when assignments have been created, accepted, and rejected, and projects have been checked in, published, and deleted.
Figure 1 - High-level design of the Connector
Within TFS, a subscription is created for the WorkItemChangedEvent and the Connector is notified when changes occur within associated projects within TFS.
The Connector manages the associations between the WorkItems within TFS and the assignments within Project Server for projects that a user of the Connector has identified. As changes occur within one system, data is transformed such that the other system can readily consume it. The 'magic' really happens in the way the data is mapped and modified as it moves back and forth between systems.
In my next blog, I will walk you through a simple 'day in the life' of a WorkItem (within the Connector).
Hope this helps,
Lenny