agenda project portfolio server architecture & programmability project server architecture &...

45

Upload: mark-horn

Post on 22-Dec-2015

228 views

Category:

Documents


1 download

TRANSCRIPT

OFC339

Enterprise Project Management: Developer Options

Larry DuffEngagement MangerMicrosoft Corporation

Agenda

Project Portfolio Server Architecture & Programmability

Project Server Architecture & Programmability

… and Demos throughout

Session Objectives and Agenda

Understand programmatic interface points of the Enterprise Project Management solution

Objective

EPM 2007 Solution Architecture

Line of Business Systems

Executives Portfolio Analysts

Project Managers

Executives Resource Managers

Team Members

Platform

Clients

BusinessServers

Team Members

Microsoft Office Project Portfolio Server 2007

Projefct Portfolio Server Architecture

PortfolioServer

Business Object Layer

PPSI

ExternalApplication

Data Access Layer

Web Access

Project Server

Gateway

Project Portfolio Server Data Access

Account Data

Business Object Layer

PPSI

External Application

Data Access Layer

Web Access

ReadOnly

ReadOnly

Read/Write

Read/Write

Account Index

Project Portfolio Server Interface Overview

The Project Portfolio Server Interface (PPSI) are read-only Web service APIs which expose a subset of Portfolio Server dataSeven Web services exposed

LoginWindows, LoginForms

Portfolio, Program, Project, Application

Attribute

Filter

PPSI does not expose data to support complex reportsData is returned as custom Microsoft ADO.NET 2.0 datasetsKey datasets

PortfolioServerDataSet

AttributeDataSet

PortfolioServerAttributeValue DataSet

Using PPSI

Not all Project Portfolio Server data will be exposed via the PPSI—only an important subsetPPSI exposes the following attributes

Default Attributes For example Project Name, Project ID, Workflow Class, Workflow Status, etc.

Custom Attributes Attributes created by users via the Attribute Definition wizard

Any PPSI call will be authenticated based on the Portfolio Server Authentication modelSupports both Windows Integrated authentication and user name/password-based authentication supported by Project Portfolio ServerUser needs to have “Access to PPSI” permission on the Project Portfolio Server to access PPSI

PPSI Call Example

PortfolioServerDataSet ReadProject(int projectID, bool includePortfolios, bool includeProgram, bool includeNativePortfolio,PortfolioServerDataSet.

PortfolioServerResultFilterDataTable resultFilter)

ResultDS = ProjectWS.ReadProject(projectID, chkIncludePortfolios.Checked,

chkIncludeProgram.Checked, chkIncludeNative.Checked, RFTable);

DEMOProject Portfolio Server Interface (PPSI)

Microsoft Office Project Server 2007

Office Server 2007 TechnologiesTaxonomy of the Microsoft Office Server

Applications/ Solutions

DiscussionsCalendarsE-MailPresenceProject Mgt. “Lite”Offline

AuthoringApprovalWeb PublishingPolicy/AuditingRights MgtRetentionMulti-LingualStaging

MySitesTargetingPeople FindingSocial NetworkingPrivacyProfiles

IndexingRelevanceMetadataAlertsCustomizable User Exper.

Rich FormsWeb FormsBiz Data CatalogData in ListsLOB ActionsSingle Sign-OnBizTalk Integr.

Server Calc.Web RenderingKPIsDashboardsReport Ctr.SQL RS Int.SQL AS Int.

Collaboration ECM Portal Search BPM BI

TasksSchedulesResourcesBudgetsDeliverablesReports

Project

RepositoryMetadataVersioningBackup

Storage

Rights/RolesPluggable AuthPer ItemRights Trimming

Security

Admin UXDelegationProvisioningMonitoring

Management

Config MgmtFarm ServicesFeature PolicyExtranet

Topology

RenderingTemplatesNavigationVisual Blueprint

Site Model

Fields/Forms OM and SOAPEventsDeployment

APIsCore Workspace Services

Web Parts, Personalization, Master Pages, Provider Model for navigation, security, etc.

Operating System Services

Office Server Integration

Common setup andprovisioning frameworkIntegrated farm-level operationsIntegrated authentication frameworkWeb Part Framework allows easy assembly of role-based workspacesCross-project workspace reporting on

Issues

Risks

Commitments

Integrated Security

ASP.NET 2.0 Membership ProvidersTested with

Windows

SQL Auth

LDAP (AD)

Other ProvidersSSO

ADFS

AD/ADAM

Draft Published Archive Reporting

Project Server Architecture: Details

Data Access Layer (DAL)

Eve

ntin

g

Que

uing

Business Objects

Project Task Assignment etc …Resource

Scheduling Engine

Project Server Interface (PSI)

ConfigContent

ExternalApplication

CacheHTTPHTTP/

SOAPHTTP/ SOAP

Project Web Access

SOAP

Microsoft Office Project 2007 Programmability

New Server API (PSI)Web services

Server-side eventsReporting databaseServer scheduling engineWindows SharePoint Services platform Continued support for Visual Basic for Applications (VBA) in Project Professional 2007

Aaron Finklelstein
SPEAKER: Did you want "Project Server" in this title, or did you mean "Microsoft Office Project 2007?" (We'd need first reference here if it's the program, not the server)

Project Server Interface (PSI)

New server API—replaces PDSWeb servicesExtensive data and functionality coverage

Over 350 public methodsFactored by business entities (17 Web services)

Accessed via SOAP over HTTP Firewall-friendly (works over port 80, 443)

Managed code (.NET Framework 2.0)Data transfer via ADO.NET datasets Supports managed and unmanaged clients

DEMOProject Server Interface (PSI)

Creating a Project via PSI

public void QueueCreateProject (Guid jobUid, ProjectDataSet dataset,bool validateOnly)

public ProjectRelationsDataSet QueuePublish ( Guid jobUid, Guid projectUid, bool fullPublish, string WssURL )

public JobState GetJobCompletionState ( Guid jobUID, out string errorString )

Update Project Team via PSI

public void CheckOutProject ( Guid projectUid, Guid sessionUid, string sessionDescription)

public void QueueUpdateProjectTeam ( Guid JobUid, Guid sessionUid, Guid projectUid, ProjectTeamDataSet dataset)

public void QueueCheckInProject ( Guid jobUid, Guid projectUid, bool force, Guid sessionUid, string sessionDescription)

Benefits

Improved productivityIntelliSenseBetter design-time control

Development skills—developing in managed environment (Microsoft Visual C#, Microsoft Visual Basic .NET, ADO, etc.)Plays well with Service Oriented Architecture

How Does the PSI Work? Client applications

PWA

PSI Forwarder

PSI Proxies

Eventing Service

Queueing Service

PSI

DAL

PSI

Business Objects

SchedulingEngine

Working

Published

ArchiveContext

Authentication

Project Professional

Internet Explorer

Third-partyapps

domain\user

SOAP

User accessesPWA

1

PWA authenticates user2

PWA generatesuser context

3

Context passed to PSI

4PSI Runs in the contextof the user

5

How Does the PSI Work? Line-of-business (LOB) applications

LOB App Connector

Eventing Service

Queueing Service

PSI

DAL

PSI

Business Objects

SchedulingEngine

Working

Published

Archive

Context

<Impersonation>

*TRUSTED PROCESS*

Componentruns as a trusted process(runs with special credentials)

1

Other Enterprise App

PSI Method Properties

SynchronousAsynchronous (Queue* methods)

Server Queue

Bulk data changesTransactional/restartable Raise server events (More than 100 events)

Data Sets

ADO.NET 2.0 datasets used for data transferTyped datasets = Business EntitiesTyped datasets benefits

Familiar to developersType safety Design-time validationData presented via an object/relational model (tables)Improved performance

DEMOWorking with PSI Datasets

Datasets Unlock Project Server

Project Server Server-side events

New server-side programming modelOut of process,and "farm friendly”AppDomains for scalable in-hostingEvent arguments provide data, it can be supplemented with RDB and PSI callsPre- and post-events

Project Server Event Types

Pre- and post-eventsPre-events

Before the data is saved to the DBCancelable Synchronous

Post-eventsAfter the data has been saved to the DBNon-cancelableAsynchronous or synchronous

Eventing Service

Config DB

Events Process

Event Handler

Event Handler

Event Handler

Event Handler

Event Handler

Event Handler

Event Handler

Event Handler

Event Handler

Event Handler

Event Handler

Event Handler

Event Handler

Event Handler

PSI

PSI

Business Objects

Business Objects

Business Objects

Process boundary

Project ServerEvents Architecture

Event Handler

Event Handler

Event Handler

Event Handler

Event Handler

Event Handler

Event Handler

PWAPWAPWA

DEMOServer-Side Events

The Anatomy of an Event

public class ProjectAuditEventReceiver: ProjectEventReceiver

{

public override void OnPublished(

PSLibrary.PSContextInfo contextInfo,

ProjectPostPublishEventArgs e)

{

ProjectChange pc = new ProjectChange(contextInfo, e);

ProjectChangeFile.Write(@"C:\AuditFiles", pc);

base.OnPublished(contextInfo, e);

}

}

// Part of serialize:

return projectWs.ReadProject(projectUid, ProjectWS.DataStoreEnum.PublishedStore);

Save

Publish

ReportAnalyze

Refine

Project Server Data Engine

Three Schemas – One Database

Reporting Database

Core EPM

DEMOProject Server Reporting

Workspace Customization

DEMOWorkspace Customization

Summary

Office Project Portfolio ServerWeb service API (PPSI)

Read-only API

Office Project ServerWeb service API (PSI)Firewall-friendlyReporting greatly enhancedServer-side eventingCustomize UI via SharePoint Services technology

Samples available in Project SDK and on my Bloghttp://blogs.msdn.com/lduff

Q&A

Breakout SessionsOFC241 - Deploying and Configuring Microsoft Office Portfolio Server 2007OFC339 - Enterprise Project Management: Developer Options

Chalk-TalksOFC03-TLC - Enterprise Reporting with Microsoft Office

Project Server 2007OFC04-TLC - Microsoft Office SharePoint Server 2007 Integration with

Microsoft Office Project Server 2007

Hands-on Labs OFC19-HOL - Microsoft Office Project Server 2007 Development

Related Content

Resources

Technical Communities, Webcasts, Blogs, Chats & User Groupshttp://www.microsoft.com/communities/default.mspx

Microsoft Developer Network (MSDN) & TechNet http://microsoft.com/msdn http://microsoft.com/technet

Trial Software and Virtual Labshttp://www.microsoft.com/technet/downloads/trials/default.mspx

Microsoft Learning and Certificationhttp://www.microsoft.com/learning/default.mspx

Project Server and Portfolio Server SDKshttp://www.microsoft.com/downloads/details.aspx?familyid=2672f6f9-7028-4b30-99a2-18cb1eed1abe&displaylang=enhttp://www.microsoft.com/downloads/details.aspx?FamilyId=18848D8B-6784-4E6A-B716-96D571EEB676&displaylang=en

The Microsoft Office SharePoint Conference 2008

March 3rd – 6th 2008 at the Washington State Convention and Trade Center, Seattle, USA

Sign up for more information and registration notification at http://www.mssharepointconference.com

Announcing!

Complete an evaluation on

CommNet and enter to win!

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market

conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.