Microsoft SharePoint Team Services Integration Architecture and ExtensibilityThis content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.
Ying Wang and Frederique Klitgaard
Microsoft Project Server 2002
Microsoft Project Web Access 2002
Microsoft SharePoint Team Services
Summary: This white paper describes how SharePoint Team Services can be used with Microsoft Project Server, presenting integration information as well as an overview of deployment, document and issue management, and feature administration. (14 printed pages)
By integrating SharePoint™ Team Services from Microsoft with Microsoft® Project Server, Microsoft Project can leverage the document management technology (document library and list management technology) of SharePoint Team Services and provide a method that's easy to set up and use for sharing project-related documents and issues with team members and other stakeholders. Because SharePoint Team Services is fully integrated with Microsoft Office XP, it's especially useful for storing Office XP documents.
Taking full advantage of the Web-based team collaboration features of Microsoft Project, SharePoint Team Services allows you to integrate documents and issues with the project management process.
This white paper describes how SharePoint Team Services can be used with Microsoft Project Server. It describes integration information as well as information about deployment, document and issue management, and feature administration.
SharePoint Team Services is integrated with Microsoft Project Server to make communicating and sharing project information easier. With Microsoft Project Server, SharePoint Team Services works as a component of the server rather than a stand-alone program. Microsoft Project Server automatically configures SharePoint Team Services, but some manual configuration and administration may be required as well. For SharePoint Team Services to work with Microsoft Project Server, Microsoft Windows® user accounts (domain and local) must be used.
When you use SharePoint Team Services with Microsoft Project Server, it enables the Documents and Issues features in Microsoft Project Web Access so that you can view and submit project-related documents and issues.
Features of SharePoint Team Services
SharePoint Team Services Web sites include unique features that enhance collaboration with project document management and project issue tracking. Using SharePoint Team Services, you can:
- Create project document libraries to submit project documents and view documents quickly.
- Track issues in the predefined issue list and customize the issue template per project.
- Allow authorized users to create custom views with additional fields for document libraries and issue tracking lists.
- Secure documents and issues at the team Web site level to prevent unauthorized users from viewing and editing documents and issues.
- Secure remote administration from both the command line and Hypertext Markup Language (HTML) Administration pages to enable Microsoft Project Server to programmatically and remotely administer SharePoint Team Services subwebs.
- Add users and perform other Web administration tasks by using an easy HTML interface.
For additional information on SharePoint Team Services, see the SharePoint Team Services Administrator's Guide.
SharePoint Team Services Architecture
The architecture of SharePoint Team Services is based on the architecture of Microsoft FrontPage® Server Extensions 2002 and uses the Internet Server Application Programming Interface (ISAPI). Like FrontPage Server Extensions, SharePoint Team Services works with Microsoft Internet Information Services (IIS) on the Windows operating system and relies on a database, such as Microsoft SQL Server™ or Microsoft Data Engine (MSDE) database. When created, a SharePoint Team Services Web site is immediately live on the server.
When SharePoint Team Services is installed on a Web server, SharePoint team Web site authoring and administration is available from any computer that has Microsoft Internet Explorer 5 or later. Authoring and administration features are also available from a client program compatible with SharePoint, such as the Microsoft Office 2000 client or the Office XP client, whether the computer is on the Internet or on an intranet.
Figure 1 illustrates the SharePoint Team Services architecture in action.
Figure 1. SharePoint Team Services architecture
Communication between a client computer and a Web server running SharePoint Team Services uses the same open Hypertext Transfer Protocol (HTTP)-based protocol that Web browsers on a client computer use to interact with a Web server. No file sharing access on the Web server computer is needed, and neither File Transfer Protocol (FTP) nor telnet access is required. No proprietary file system sharing calls are necessary to use SharePoint Team Services.
Some features (such as exporting to a spreadsheet) use ActiveX® components and require Microsoft Internet Explorer, but most content is returned to the client computer in HTML format.
Because SharePoint Team Services relies on both the file system and a database to track information about the Web site, these systems must be synchronized. For example, a list in a SharePoint Team Services Web site is a combination of data in the database and the HTML files. SharePoint Team Services provides tools for backing up the database but uses the usual operating system tools to back up the file system. Be sure to back up the file system whenever you back up the database. Keeping file system and database backups synchronized will help simplify the process if you ever need to restore your Web site.
When Microsoft Project Server is used with SharePoint Team Services to enable document library and issue tracking features, it uses the following integration architecture.
Figure 2. Integration architecture
Document libraries and the issue list
A default SharePoint team Web site allows multiple document libraries to be created and multiple documents to be uploaded into each document library. SharePoint Team Services provides server-side schema template files to define fields and view schemas for storing or displaying list data, such as document properties and document library details. SharePoint Team Services schema files are modified for Microsoft Project to add specific document properties that are useful for project management.
An issue list is a customized SharePoint Team Services list file. When modifying SharePoint Team Services server-side template files for Microsoft Project, a default issue list is created for each team Web site; the default issue list provides specific fields for issue tracking for project management.
After the Microsoft Project Server administrator has run the custom SharePoint Team Services setup and configuration program for Microsoft Project (Stswiz.exe), the SharePoint Team Services server-side template is automatically replaced with a specific template for Microsoft Project.
After a team Web site is provisioned on the Web server with the modified SharePoint Team Services template, document libraries and the issue list with the extended and modified fields are created for the site. Microsoft Project Server displays the interface for interacting with project document libraries and the issue list to Microsoft Project Web Access, and stores information about links between documents or issues and projects or tasks in the Microsoft Project Server database.
Communication between Microsoft Project Server and a Web server running SharePoint Team Services
Microsoft Project Server uses multiple means (based on variations of HTTP protocol) to communicate with Web servers running SharePoint Team Services.
Microsoft Project Server requests and receives data from SharePoint Team Services through XMLHTTP. Microsoft Project Server then parses the XML results returned by SharePoint and renders the data in Microsoft Project Web Access. For example, Microsoft Project Server displays data in custom view lists for documents and issues in the left navigation pane of Microsoft Project Web Access, or on the linked documents or issues page that displays when you click the Link Documents or Link Issues buttons.
Microsoft Project Web Access pages display a portion of the SharePoint Team Services user interface in IFRAMES by passing the URL of the SharePoint Team Services form to the IFRAME. This occurs, for example, when a user opens a document library and is presented with the document list, or when a user drills down to project issues and is presented with the issue list in Microsoft Project Web Access pages.
- HTTP-based administrative protocol
Microsoft Project Server remotely administers SharePoint Team Services Web sites using an HTTP-based protocol. Microsoft Project Server implements the protocol within custom forms to pose requests to the ISAPI file Fpadmdll.dll in Microsoft Windows (Program Files\Common Files\Microsoft Shared\web server extensions\50\isapi\_vti_adm folder). Microsoft Project Server uses this protocol to administer a server running SharePoint Team Services remotely—for example, remotely creating a subweb when a project is published to Microsoft Project Server, adding users to appropriate roles in the subweb, and deleting project subwebs.
Middle layer: Object Link Provider
The object link provider object (ProjObjProv.dll) resides in the middle layer of Microsoft Project Server. It exposes interface methods for linking documents and issues to projects and tasks. The link information is stored in the Microsoft Project Server database.
The objects related to tasks and projects are not limited to SharePoint Team Services documents and issue items. As long as the unique identifier of an object can be expressed in URL, XML or table IDs, an external object can be easily associated with projects and tasks, or with other external objects via the object link provider.
Front end: Microsoft Project Web Access
Microsoft Project Web Access is the single access point for project-related documents and issues. A user should always upload a document or create an issue by using Microsoft Project Web Access.
Figure 3. Team collaboration on documents and issues
A SharePoint Team Services subweb is provisioned for each project published to the Microsoft Web Server database. When a project is published to Microsoft Project Web Server for the first time, Microsoft Web Server programmatically provisions the subweb. In enterprise mode, a project could have multiple versions. A subweb is created only for the published version of the project.
When a project subweb is provisioned, the following actions occur:
- The project subweb does not inherit security from its parent subweb. Therefore, users must be added into roles on each subweb to access project documents and issues in Microsoft Project Web Access.
- A Windows user account that is specified during setup is the default administrator for each project subweb.
- Four custom roles are created on the subweb:
- Administrator (Microsoft Project Server) is a replica of the default Administrator role.
- Project Manager (Microsoft Project Server) is a replica of the default Advanced Author role.
- Team Member (Microsoft Project Server) is the Project Manager role minus the Design List right.
- Browser (Microsoft Project Server) is a replica of the default Browser role.
- Microsoft Project Server users are added into their respective roles on the subweb based on their access to a project specified in Microsoft Project Server.
- Microsoft Project Server users who have the global Manage SharePoint Team Services permission are added into the Microsoft Project Server Administrator role of the subweb.
- Project managers who have published a project are added into the Project Manager (Microsoft Project Server) role of the subweb.
- Users who have Save Project permission to save a project are added into the Project Manager (Microsoft Project Server) role of the subweb.
- Team members who have task assignments in a project are added into the Team Member (Microsoft Project Server) role of the subweb.
- Users who have Open Project permission on the project are added into the Browser (Microsoft Project Server) role of the subweb.
The automatic subweb provisioning works seamlessly for an end user. A project manager creates a project plan, assigns tasks to resources, and publishes the project to Microsoft Project Server. When the plan is published successfully, the project manager can immediately browse to the project document libraries and create project issues because the SharePoint Team Services subweb has already been provisioned, and the project manager has been given the appropriate rights to interact with the document and issues.
Document and issue security is set on the project level, not on the list level or list item level. Document and issue lists share the same security settings. A project manager can create document libraries, upload documents, create and modify issues, and add new fields to a document or issue list in the project subweb. A team member can create, upload, and modify documents and issues, but does not have permission to add new fields to a document or issue lists. A reviewer can view the documents and issues but cannot edit document properties or the content of documents and issues.
When you use Microsoft Project Server Setup to install and configure a Web server running SharePoint Team Services, the Setup program creates the subweb called MS_ProjectServer_PublicDocuments. Document libraries in this subweb serve as an organization's public document depository as defined in Microsoft Project Server.
The following user roles are created for this subweb:
- Administrator (Microsoft Project Server)
- Project Manager (Microsoft Project Server)
Users are added to Microsoft Project Server in appropriate roles, either through the Microsoft Project Web Access Admin center or a project is published from Microsoft Project. Users with permission to manage SharePoint Team Services in Microsoft Project Server are automatically added as Microsoft Project Server Administrators. All other Microsoft Project Server users are added as Microsoft Project Server Project Managers so that every Microsoft Project Server user can create document libraries, extend document properties, and upload documents into the public documents subwebs.
Like project documents, public documents are accessible in the Documents center of Microsoft Project Web Access.
Other list items in the SharePoint subweb
A SharePoint subweb contains lists other than the documents and issues, such as events, announcements, discussions, and other custom lists. These other SharePoint lists are not accessible from Microsoft Project Web Access. With their Web browsers, users can navigate directly to the specific subwebs that contain the other lists. For easier access, a URL pointing to the subweb link can be placed on the Microsoft Project Web Access Home page.
System Requirements and Prerequisites
Before you install SharePoint Team Services and Microsoft Project Server on your Web server, make sure that you have installed the required hardware and software.
For more information on system requirements, see the server requirement documentation on the Microsoft Project Server 2002 CD.
Because Microsoft Project 2002 supports intranet deployment only, you cannot use the Internet to manage documents and issues.
Using Existing SharePoint Team Services
If SharePoint Team Services is not already installed on a designated Microsoft Windows server, you can use Microsoft Project Server Setup to install SharePoint Team Services.
If SharePoint Team Services is already installed with another program, such as Office XP with FrontPage or FrontPage 2002, Microsoft Project Server Setup automatically configures SharePoint Team Services exclusively for Microsoft Project Server. For this reason, it is recommended that you dedicate a physical server with SharePoint Team Services to Microsoft Project Server.
Depending on the size of your workgroup, you can deploy a single server or multiple servers. The following are some example configurations for various sizes of groups:
- Small workgroup deployment (10 to 20 people). Single server for Microsoft Project Server, SharePoint Team Services, and MSDE.
Note If you use MSDE, you must install SharePoint Team Services separately and then run Microsoft Project Server Setup to configure SharePoint Team Services.
- Departmental deployment (100 people). Multiple servers:
- One server for Microsoft Project Server
- One server for SharePoint Team Services
- One server for SQL Server
- Enterprise deployment (500 people, many projects). Multiple servers:
Note Both Microsoft Project Server and Web servers running SharePoint Team Services must reside in the same Windows domain.
- One or more servers for Microsoft Project Server
- Multiple servers for SharePoint Team Services
- One server for SQL Server
Although Microsoft Project Server supports Microsoft Project Server accounts, SharePoint Team Services and Microsoft Project Server integration features require Windows user accounts (domain and/or local).
When SharePoint Team Services is integrated with Microsoft Project, and the Documents and Issues centers have been enabled on Microsoft Project Server, document libraries and issue lists can be created to provide easy access to project-related documents and issues. As soon as a project is published on Microsoft Project Server, a SharePoint Team Services subweb is created for that project as a space for document libraries and issue lists. An administrator can also manually provide a SharePoint Team Services subweb for this purpose. Each project has its own subweb. There is also the public documents subweb that serves as the depository of documents public to the organization.
Document libraries store a collection of documents like a file folder. These documents can be created based on document templates that are associated with document libraries. An authorized user (typically the project manager) defines document library properties, the default document template it uses, and access permissions to the documents published to a document library.
There are two types of document depositories in Microsoft Project Web Access:
- Project document library
This document library stores documents that are related to a specific project. Each project can have multiple document libraries, and authorized users can create additional document libraries for the project. Project managers, who by default have Design List permission on SharePoint Team Services, can make changes to specific document libraries.
- Public document library
This document library stores documents that are accessible to all users in the organization. The server administrator defines who has access to documents in this document library. By default, all users in the Microsoft Project Server can create document libraries and contribute documents.
When creating a document library, an authorized user, such as a project manager, can use default document library properties defined during Setup or specify new document library properties. A user may want to define a property that helps track documents in the project.
- To simplify document creation, an authorized user can define a template to be used for the document library.
- For ease of use, authorized users can create multiple views for a document library.
- Users can search document libraries for specific information. To find a document, the Search tool searches through all document libraries on the server and returns only documents that a user has permission to view.
- E-mail notifications can alert the project manager when a document is added to a document library or when a document has changed in a project.
- Documents in a document library are, by default, associated with a project. A project manager or a team member can associate documents with specific project tasks that have been published to Microsoft Project Server as new or changed assignments.
- Documents are clearly marked by a document indicator and appear in the timesheet, Tasks center, and Project center of Microsoft Project Web Access. For example, you can access documents submitted into a project lists in the Project center.
Issue tracking improves the efficiency and effectiveness of project management because it allows you to communicate about problems and related action items with team members and stakeholders. Issue tracking provides rich reporting, status indications, e-mail notifications, and alerts to help ensure that issues that come up during the completion of a project get attention and are resolved.
With SharePoint Team Services, each issue is treated as a documented collaborative discussion that typically has a process controlling its lifetime. Typically, someone starts the issue process by opening a new issue. Others can then add information to the discussion field of this issue. Eventually, helpful information can be entered in the resolution field, and, depending on the type of solution, the issue can be marked as closed or postponed.
SharePoint Team Services provides three levels of security on issues for a project:
- Read-only permission for stakeholders who need to review issues.
- Edit permission for authorized users, such as team members, who can create and edit issues.
- Edit and customization permission for project managers who can customize the specific fields (such as the priority, discussion, or resolution fields) and views (such as the issue list view) used for issues.
An administrator and a project manager can also define additional views for issues in a project. A new view is defined by specifying the visible fields in the issue list, the order of issues in the list, the filters applied, and the number of items displayed on a page.
Issues can be associated with projects, tasks, documents, and other issues. When an issue is linked to a task, it can affect the task directly, have the task as a work item, or be related to the task.
Issues are clearly marked by an issue indicator and appear in the timesheet, Tasks center, and Project center of Microsoft Project Web Access. For example, newly assigned issues appear on the Home page, and you can access issue lists of projects in the Project center.
E-mail notifications can alert you when issues have been opened, assigned, or updated, and you can keep track of the status of issues. Depending on the actions taken to resolve them, issues appear as active, closed, or postponed.
Document and issue property lists can be customized to better meet your needs. By default, a Microsoft Project Server administrator or a project manager can extend the properties of the document libraries and add additional tracking fields for issues.
- For a document library, an authorized user can change the name of the lists, security settings, and views; add new columns; and change the order of the fields in a column.
- For the issue list, an authorized user can add new columns, change the order of the fields in a column, and add additional issue views.
- For existing document columns, the title, status, and ownership settings can be changed.
- For existing issue columns, the title, status, priority, assignment, ownership, and due date settings can be changed.
When creating or updating views, an authorized user can specify the columns to display, the order that the columns are displayed in, the criteria used to filter information displayed in the columns, and the number of items to be displayed.
In Microsoft Project 2002 SharePoint Team Services provides document library and issue tracking features. However, SharePoint Team Services may not meet an enterprise user's needs for a sophisticated document management or issue tracking process.
As an alternative, Microsoft Project Server can function as a platform where solution providers can integrate third-party document management or issue tracking applications with Microsoft Project Server. The Object Link Provider (OLP) object provides programmable interfaces for linking projects and tasks to generic external objects, such as documents residing in a third-party document management system and issues residing in a third-party issue-tracking application.
The following are scenarios for developing solutions that leverage the OLP object:
- Integration with an existing Microsoft product store (SharePoint Portal Server or Microsoft Exchange) for collaboration objects.
- Replacement of the Microsoft Project Server document library solution and integration of Microsoft Project Server with a third-party document store—for example, Documentum, DocShare, or Lotus Notes.
- Replacement of the Microsoft Project Server issue tracking application and integration with a third-party issue tracking application.
- Customization of the existing integration of Microsoft Project Server and SharePoint Team Services.
Object Link Provider
The Object Link Provider (OLP) object is a server-side object that provides programmability interfaces for linking tasks and projects to external objects.
OLP works as follows:
- First, the solution registers the objects, which can be projects, tasks, documents, or issues with Microsoft Project Server. Objects can be described using XML or a unique ID.
- Next, the solution creates links between any two registered objects based on the feedback from the user interface.
- Finally, the solution queries for all linked objects given a specific object ID and displays information in the user interface.
The architecture diagram is shown in Figure 4.
Figure 4. Object Link Provider architecture diagram
The OLP adds, deletes, or updates rows in the following two tables in the Microsoft Project Server database:
It also exposes application-programmable interfaces, which allow a solution provider to:
- Create, delete, or update objects in the Objects table.
- Create and delete object relationships in the Object Links table.
- Link or unlink generic objects to projects.
- Link or unlink generic objects to tasks.
As a result, tasks and projects stored in Microsoft Project Server can be associated with external objects. The objects can be documents stored in Lotus Notes, issues stored in a custom issue-tracking application, discussions stored in SharePoint Team Services subwebs, or risks stored in a custom risk-tracking application.
You can also expect to associate objects external to Microsoft Project Server to other objects external to Microsoft Project Server. The features shipped with Microsoft Project 2002 demonstrate that an issue stored in the SharePoint Team Services database can be linked to multiple documents also stored in the SharePoint Team Services database. Similarly, an issue can be linked to discussion items and a document can be linked to a risk.
For more information on how the OLP works, see the Microsoft Project 2002 Software Development Kit, available soon on the Microsoft Project Developer Portal on MSDN®, the Microsoft Developer Network.
Microsoft Project 2002 includes SharePoint Team Services to provide document library and issue tracking features. These two features greatly enhance collaboration in planning, executing, and closing a project. Together, Microsoft Project 2002 and SharePoint Team Services provide an integrated collaboration solution that combines ease of use and end user flexibility. Both Microsoft Project 2002 and SharePoint Team Services are built on the Microsoft .NET server platform and provide a rich middle-tier service. The OLP enables customers to replace solutions that are shipped with Microsoft Project 2002 and integrate project data with their preferred document management, issue tracking, or third-party collaboration applications.
For More Information
More information on Microsoft Project Server and SharePoint Team Services is available online from Microsoft.
Specifically, the following sources may be of interest:
- Microsoft Project Server 2002 Architecture and Extensibility
- Microsoft Project 2002 Enterprise Project Management Architecture Guide
- Microsoft SharePoint Team Services Resources
- Microsoft Project Technology Center on TechNet
Ying Wang is a program manager in the Microsoft Project Business unit, and is focused on Web collaboration technologies for Microsoft Project.
Frederique Klitgaard is a technical writer with the Microsoft Project team who specializes in team collaboration among other topics.