windows sharepoint services v3 · windows sharepoint services v3.0 (wss) about this material •...
TRANSCRIPT
Windows SharePoint Services v3
Key Integration Concepts
The Challenge
How to integrate existing
applications and services with Windows SharePoint Services v3.0 (WSS)
About this material
• Research:
– How does Project Server 2007
integrate and use Windows
SharePoint Services v3.0?
• Take away:
– What “best practices” can we derive from this integration effort?
Why Use WSS?
• SharePoint provides a user
friendly, consistent, customizable interface to your applications and services
• SharePoint provides rich workflow and task features
• SharePoint provides for user authentication
Areas of Focus
• Intro to Project Server 2007
• Shared Services
• Workflow integration
• Web Services API
• Content Linking and Embedding
• Administration
• Security
• Conclusions
Areas of Focus
• Intro to Project Server 2007
• Shared Services
• Workflow integration
• Web Services API
• Content Linking and Embedding
• Administration
• Security
• Conclusions
Intro to Project Server
• Project Application Service
• Project Sites
• Project Server Interface (PSI)
Areas of Focus
• Intro to Project Server 2007
• Shared Services
• Workflow integration
• Web Services API
• Content Linking and Embedding
• Administration
• Security
• Conclusions
Shared Services
• Some services should be shared
• Services require configuration
• Each web application may require
unique services configuration
• Examples:
– Business Data Catalog
– Project Application Services
SSP Association
SPFarm (SharePoint Farm)
WebApplication
AP.ThreeWill.Com
Shared Resource Provider
Shared Service Provider 2
BDC
Payroll
BDC
Benefits
WebApplication
HR.ThreeWill.Com
WebApplication
IT.ThreeWill.Com
WebApplication
Dev.ThreeWill.Com
Shared Resource Provider
Shared Service Provider 1
BDC
Defect Tracking
BDC
CRM
SPFarm (SharePoint Farm)
SPService
Project Application Service
SPService
Excel Calculation Services
SPServer
Farm Server 1
SPServer
Farm Server 2
SPServiceInstance
Project Application Service running on
Farm Server 2
WebApplication
SharePoint - 80
Shared Resource Provider
Shared Service Provider 1
Project Site
PWA1
Project Site
PWA2
SPSite
PWA1
Associated by ID
Shared Resource Provider
• Internal class name for the Shared
Service Provider
• Provides for services configuration
Shared Resource Provider configuration
• Shared Service Database
– BDC configuration
• Hashtable of properties
– My Site Web App
– My Site Relative Path
• Parent of SPPersistedObjects
– ProjectSites
Shared Resource Provider configuration
BDC example
• SQLSessionProvider provides
access to the correct SSP database
Project Server Example
• ProjectSite derived from
SPPersisted object
• Parent of ProjectSite set to SSP
• SPPersistedChildCollectionretrieves ProjectSites
Project Application “Shared” Service
• Windows Services wrapper
• Provisions the Queue Service and the Event Service
What to take away…
• Options for SSP Configuration:
– SPPersistedObject
– Properties Hashtable of the SRP
– SSP Database
• Consider creating your own shared services provider
Areas of Focus
• Intro to Project Server 2007
• Shared Services
• Workflow integration
• Web Services API
• Content Linking and Embedding
• Administration
• Security
• Conclusions
Workflow Integration Requirements
• Manage external entities using
SharePoint workflow features
• Display workflow status and
history of external entities
• Use external security groups or users in Workflow scenarios
SharePoint Workflow Basics
Based on Lists or Content Types
SharePoint Workflow
Workflow History
SharePoint Workflow
• Tasks List for user interaction
Proposal Approval Workflow
• Proposal stored in MS Project
database
• Proposal Reviewers group
defined in MS Project database
• Present Workflow History, Workflow Status, and User
Interaction in SharePoint
Define a proxy list
• Proposal Proxy List
• Hidden ProposalUid field points to the Proposal
• Use custom code to populate to create the list item
Define External User Groups
Start the workflow
Start the Workflow
Build list of approvers
Workflow Execution courtesy of SharePoint
• User interaction via the tasks list
• Workflow history via the workflow history list
Workflow Completion
External ApplicationSharePoint
External User Group
Approvers
External User
External User A
External User
External User B
External Entity
Proposal
Proxy List Item
Approval Workflow
Workflow Instance
SharePoint User
Domain\User A
SharePoint User
Domain\User A
What to take away…
• Create a “proxy” list• Proxy List items reference
external objects
• Start the workflow in custom code
• Use SharePoint features for user
interaction and workflow history
• Use List event handlers to update external entities
Break
Areas of Focus
• Intro to Project Server 2007
• Shared Services
• Workflow integration
• Web Services API
• Content Linking and Embedding
• Administration
• Security
• Conclusions
Web Services API
• Derived from SPService
• SPServiceInstance defines contributing servers
Project Server Interface (PSI)
• Exposed as set of Web Services
• Service endpoint provided by the ProjectApplicationService
• Services address is derived by round-robin algorithm across SPServiceInstances
Web Services Context
• PSIProxyBase is base for all PSI
web service proxies
• Context data is added to the
webRequest headers collection in the GetWebRequest override of PSIProxyBase
• SiteGuid, UserGuid, UserNameamong properties transmitted
What to take away…• Create an SPService
• Create one or more SPServiceInstances
• For Web Service calls use a round-robin algorithm to choose a service instance
• Call on the SPService to build the URI of the web service
• Use the headers collection of the
web request to transmit context
Areas of Focus
• Intro to Project Server 2007
• Shared Services
• Workflow integration
• Web Services API
• Content Linking and Embedding
• Administration
• Security
• Conclusions
Content Linking and Embedding
• Custom Web parts
• Application Pages
• Site Templates
Custom Web Parts
• Data access achieved via Web
Services API
• Web Services API provides for
scalable solution by selecting among one or more SPServiceInstances
• Binaries are GAC deployed
• .Webpart files deployed as part of PWA site template
Base Web Part class
• Base web part provides for web
services access
• Service end point:
– Based on the context (the site)
– Configured as a web part property
Application Pages
• Deployed to the PWA folder
beneath the Layouts folder
• References custom master page
also deployed to the PWA folder
• Includes web.config to add namespaces and controls.
• Master pages include core.css and override with custom css
PWA Site Template
• Includes .webparts
• Includes site pages
– Use default masterpage
– Include default web parts
– Customizable
What to take away…
• Create base web part class for
providing access to external data
• Use the SPServiceInstances for
the appropriate web service to allow for scalable web services
• Deploy web parts to the GAC
• Create your own master page and stylesheets for application pages where necessary
Areas of Focus
• Intro to Project Server 2007
• Shared Services
• Workflow integration
• Web Services API
• Content Linking and Embedding
• Administration
• Security
• Conclusions
Administration
What to take away…
• Liberal use of Application Pages
Areas of Focus
• Intro to Project Server 2007
• Shared Services
• Workflow integration
• Web Services API
• Content Linking and Embedding
• Administration
• Security
• Conclusions
Security
• Users in external applications
are correlated to SharePoint users
• Users are added to external groups
• User ID and User Name is
submitted in the Headers collection of web request calls
Correlating Users
Adding users to external groups
What to take away…
• Correlate SharePoint users with
external users when necessary
• Use external groups when
necessary
Areas of Focus
• Intro to Project Server 2007
• Shared Services
• Workflow integration
• Web Services API
• Content Linking and Embedding
• Administration
• Security
• Conclusions
Conclusions
• Consider a custom implementation of the Shared Service Provider
• Link SharePoint list items to external entities for Workflow integration
• Use the SPService to configure and manage web services
• Web parts, site pages, application pages provide a view of external data
More Conclusions…
• Use Application pages to provide
for administrative functions
• Correlate SharePoint users to
external users when necessary
• Add correlated users to external groups using SharePoint user
interface
What are you taking away
from today’s presentation?
Your Conclusions
Downloads/Resources
Project Server 2007 evaluation
- http://technet.microsoft.com/en-
us/evalcenter/bb738023.aspx
Lutz reflector
- http://www.aisto.com/roeder/dotnet
GACView
- http://www.nirsoft.net/dot_net_tool
s/gac_viewer.html
Other Next Steps
• Visit our homepage –www.threewill.com
• Visit the ThreeWill blog –www.worktogetherbetter.com
• Visit our technical blog –www.implementingsharepoint.com
• Upcoming Seminars –http://www.threewill.com/events/
• Subscribe to ThreeWill Newsletter –http://www.threewill.com/newsletter/
• Free video on Exploring SharePoint 2007 –http://www.threeill.com/video/
Other Next Steps
• Visit our SharePoint Resource
Guide –http://www.wssresourceguide.com
• Visit our SharePoint Showcase Site (featuring the SharePoint Application Templates)http://www.sharepointshowcase.com
Questions?