Upload
mark-horn
View
225
Download
1
Tags:
Embed Size (px)
Citation preview
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
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);
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
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
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
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
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);
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
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!
© 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.