450 likes | 650 Views
OFC339. Enterprise Project Management: Developer Options . Larry Duff Engagement Manger Microsoft Corporation. Session Objectives and Agenda. Objective. Understand programmatic interface points of the Enterprise Project Management solution. Agenda.
E N D
OFC339 Enterprise Project Management: Developer Options Larry Duff Engagement Manger Microsoft Corporation
Session Objectives and Agenda Objective Understand programmatic interface points of the Enterprise Project Management solution Agenda Project Portfolio Server Architecture & Programmability Project Server Architecture & Programmability … and Demos throughout
EPM 2007 Solution Architecture Project Managers Team Members Executives Resource Managers Team Members Executives Portfolio Analysts Line of Business Systems Clients Business Servers Platform
Projefct Portfolio Server Architecture External Application PPSI Web Access Business Object Layer Project Server Gateway Data Access Layer Portfolio Server
Project Portfolio Server Data Access External Application Read Only Web Access PPSI Business Object Layer Read/ Write Read Only Data Access Layer Read/ Write Account Data 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 data • Seven Web services exposed • LoginWindows, LoginForms • Portfolio, Program, Project, Application • Attribute • Filter • PPSI does not expose data to support complex reports • Data is returned as custom Microsoft ADO.NET 2.0 datasets • Key datasets • PortfolioServerDataSet • AttributeDataSet • PortfolioServerAttributeValueDataSet
Using PPSI • Not all Project Portfolio Server data will be exposed via the PPSI—only an important subset • PPSI 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 model • Supports both Windows Integrated authentication and user name/password-based authentication supported by Project Portfolio Server • User needs to have “Access to PPSI” permission on the Project Portfolio Server to access PPSI
PPSI Call Example PortfolioServerDataSetReadProject( intprojectID, boolincludePortfolios, boolincludeProgram, boolincludeNativePortfolio, PortfolioServerDataSet. PortfolioServerResultFilterDataTableresultFilter) ResultDS = ProjectWS.ReadProject( projectID, chkIncludePortfolios.Checked, chkIncludeProgram.Checked, chkIncludeNative.Checked, RFTable);
demo Project Portfolio Server Interface (PPSI)
Office Server 2007 Technologies Taxonomy of the Microsoft Office Server Collaboration ECM Portal Search BPM BI Project 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. TasksSchedulesResourcesBudgetsDeliverablesReports Core Workspace Services Storage Security Management Topology Site Model APIs Admin UX Delegation Provisioning Monitoring Repository Metadata Versioning Backup Rights/Roles Pluggable Auth Per Item Rights Trimming Config Mgmt Farm Services Feature Policy Extranet Rendering Templates Navigation Visual Blueprint Fields/Forms OM and SOAP Events Deployment Operating System Services Web Parts, Personalization, Master Pages, Provider Model for navigation, security, etc.
Office Server Integration • Common setup andprovisioning framework • Integrated farm-level operations • Integrated authentication framework • Web Part Framework allows easy assembly of role-based workspaces • Cross-project workspace reporting on • Issues • Risks • Commitments
Integrated Security • ASP.NET 2.0 Membership Providers • Tested with • Windows • SQL Auth • LDAP (AD) • Other Providers • SSO • ADFS • AD/ADAM
Project Server Architecture: Details External Application Cache HTTP/ SOAP HTTP HTTP/ SOAP Project Web Access SOAP Project Server Interface (PSI) Eventing Queuing Business Objects Scheduling Engine etc … Project Task Resource Assignment Data Access Layer (DAL) Content Config Draft Published Archive Reporting
Microsoft Office Project 2007 Programmability • New Server API (PSI) • Web services • Server-side events • Reporting database • Server scheduling engine • Windows SharePoint Services platform • Continued support for Visual Basic for Applications (VBA) in Project Professional 2007
Project Server Interface (PSI) • New server API—replaces PDS • Web services • Extensive data and functionality coverage • Over 350 public methods • Factored 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
demo Project Server Interface (PSI)
Creating a Project via PSI public voidQueueCreateProject ( GuidjobUid, ProjectDataSet dataset, boolvalidateOnly) public ProjectRelationsDataSetQueuePublish ( GuidjobUid, GuidprojectUid, boolfullPublish, stringWssURL ) public JobStateGetJobCompletionState ( GuidjobUID, out stringerrorString )
Update Project Team via PSI public voidCheckOutProject ( GuidprojectUid, GuidsessionUid, stringsessionDescription) public voidQueueUpdateProjectTeam ( GuidJobUid, GuidsessionUid, GuidprojectUid, ProjectTeamDataSet dataset) public voidQueueCheckInProject ( GuidjobUid, GuidprojectUid, bool force, GuidsessionUid, stringsessionDescription)
Benefits • Improved productivity • IntelliSense • Better design-time control • Development skills—developing in managed environment (Microsoft Visual C#, Microsoft Visual Basic .NET, ADO, etc.) • Plays well with Service Oriented Architecture
Working Published Archive Business Objects Internet Explorer Scheduling Engine PSI Forwarder PSI Proxies Project Professional Third-party apps Authentication Context Eventing Service Queueing Service How Does the PSI Work? Client applications Context passed to PSI 4 PSI Runs in the context of the user 1 User accesses PWA 5 2 PSI PWA authenticates user PWA DAL PSI SOAP 3 PWA generates user context domain\user
Working Published Archive Business Objects Scheduling Engine Context Eventing Service Queueing Service How Does the PSI Work? Line-of-business (LOB) applications LOB App Connector PSI Other Enterprise App DAL PSI <Impersonation> *TRUSTED PROCESS* 1 Component runs as a trusted process (runs with special credentials)
PSI Method Properties • Synchronous • Asynchronous (Queue* methods) • Server Queue • Bulk data changes • Transactional/restartable • Raise server events (More than 100 events)
Data Sets • ADO.NET 2.0 datasets used for data transfer • Typed datasets = Business Entities • Typed datasets benefits • Familiar to developers • Type safety • Design-time validation • Data presented via an object/relational model (tables) • Improved performance
demo Working with PSI Datasets
Project Server Server-side events • New server-side programming model • Out of process,and "farm friendly” • AppDomains for scalable in-hosting • Event arguments provide data, it can be supplemented with RDB and PSI calls • Pre- and post-events
Project Server Event Types • Pre- and post-events • Pre-events • Before the data is saved to the DB • Cancelable • Synchronous • Post-events • After the data has been saved to the DB • Non-cancelable • Asynchronous or synchronous
PWA PWA PWA PSI 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 Event Handler Event Handler Event Handler Event Handler Event Handler Event Handler Event Handler Business Objects Business Objects Business Objects PSI Project Server Events Architecture Events Process Eventing Service Config DB Process boundary
demo Server-Side Events
The Anatomy of an Event public class ProjectAuditEventReceiver: ProjectEventReceiver { public override void OnPublished( PSLibrary.PSContextInfocontextInfo, 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);
demo Project Server Reporting
demo Workspace Customization
Summary • Office Project Portfolio Server • Web service API (PPSI) • Read-only API • Office Project Server • Web service API (PSI) • Firewall-friendly • Reporting greatly enhanced • Server-side eventing • Customize UI via SharePoint Services technology • Samples available in Project SDK and on my Blog • http://blogs.msdn.com/lduff
Related Content Breakout SessionsOFC241 - Deploying and Configuring Microsoft Office Portfolio Server 2007 OFC339 - Enterprise Project Management: Developer Options • Chalk-TalksOFC03-TLC - Enterprise Reporting with Microsoft Office • Project Server 2007 • OFC04-TLC - Microsoft Office SharePoint Server 2007 Integration with • Microsoft Office Project Server 2007 • Hands-on LabsOFC19-HOL - Microsoft Office Project Server 2007 Development
Resources Technical Communities, Webcasts, Blogs, Chats & User Groups http://www.microsoft.com/communities/default.mspx Microsoft Learning and Certification http://www.microsoft.com/learning/default.mspx Microsoft Developer Network (MSDN) & TechNet http://microsoft.com/msdn http://microsoft.com/technet Trial Software and Virtual Labs http://www.microsoft.com/technet/downloads/trials/default.mspx Project Server and Portfolio Server SDKs http://www.microsoft.com/downloads/details.aspx?familyid=2672f6f9-7028-4b30-99a2-18cb1eed1abe&displaylang=en http://www.microsoft.com/downloads/details.aspx?FamilyId=18848D8B-6784-4E6A-B716-96D571EEB676&displaylang=en
Announcing! 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