Microsoft Office Project Server 2007
-
Project Server Interface ( PSI ) を使用したソリューション 開発 -
アジェンダ










Project Server 2003 と Project Server 2007 の アーキテクチャの相違
Project Server 2003 の アーキテクチャ
Project Server 2007 の アーキテクチャ
Project Server 2003 における、エンタープライズ ソリューション 開発の
問題点
Project Server 2007 における、エンタープライズソリューションの開発
PDS と PSIのプログラミングモデル
PDS と PSI におけるプログラミングモデル の 比較
PSI を利用した開発のポイント
PSI による、ソリューション 開発の可能性
セクション のまとめ
2
Project Server 2003 と Project Server 2007 の
アーキテクチャの相違
◆ スケジュール エンジン

クライアントサイド、サーバーサイド?
◆ サーバーサイド API

PDS (Project Data Service) と PSI (Project Server Interface) ?
Project Server 2003 以前
スケジュール
エンジン
Project Professional
2003 に 実装
サーバーサイド PDS
(Project Data Service)
プログラミング
インターフェース
Project Server 2007
Project Professional 2007
Project Server 2007
に 実装
PSI
(Project Server Interface)
3
Project Server 2003 の アーキテクチャ
◆ スケジュールエンジン

Project Professional に 実装され、 シミュレーション、Project DB の Read、
Update 処理は、Project Professional が行う
◆ PDS (Project Data Service)

Project Professional と Project DB をつなげるための、中間層として機能
Project Server
Core
Project Pro
SOAP
PDS
View
Scheduling
Engine
ODBC
Project
Data
4
Project Server 2007 のアーキテクチャ
◆ スケジュールエンジン

PSI のバックグラウンド にも 実装され、 Project Professional は、 PSI を使
用して、Project Server の データストア の Read、Update 処理を行う
◆ PSI (Project Server Interface)

ProjectDB の データソースロジック を実装したサーバーアプリケーションとし
て機能
PWA
Project Server
SOAP
Authentication
Project Pro
Working
Scheduling
Engine
SOAP
PSI
Scheduling
Engine
Published
Version
5
Project Server 2003 における、
エンタープライズ ソリューション 開発の問題点
◆ Project Server 2003 で用意された API


クライアント API ( Microsoft Project Object Library )
サーバー API ( Project Data Service )
◆ PDS ( Project Data Service ) の実情
スケジュールエンジンを持たない
限られた機能 ( メソッド )
スケジュール エンジン を持つ
Microsoft Project Object Library
の必要性
PDS 拡張 ( PDS Extension ) の 必要性
PDS Extension へ データソースロジック
実装 の 困難
6
Project Server 2007 おける、
エンタープライズ ソリューション 開発
◆ Project Server 2007 で用意された サーバーサイド
API PSI ( Project Server Interface )




サーバーサイド スケジュールエンジンを実装
PDSのような、中間層のインターフェースではなく、すべての Project クライア
ントツール の データソースロジック としての位置づけ
23本のWebサービス、350以上のメソッドを実装しており、多機能
サーバーサイド の イベントハンドラの実装
7
PDS 、PSI のプログラミングモデル
◆ PDS と PSI の 相違点
PDS
インターフェース XML ベース
PSI
ADO.NET DataSet ベース
必要条件
SOAP が使用できる言語
.NET Framework 2.0 プラッフォフ
ォーム
開発言語
C# , VB.NET , VB 6.0 ,
C/C++ , VBScript ,
Jscript etc
C# , VB.NET etc
8
PDS と PSI における
プログラミングモデル の 比較
C# ,
VB.NET ,
VB 6.0 ,
C/C++ ,
VBScript ,
Jscript etc
3rd Party App
PDS メソッド
( XML )
ビジネス ロジック
PDS 要求送信
ビジネス ロジック
C# ,
VB.NET ,
etc
メソッド
SOAP
PDS 応答受信
PDS
Project
Database
PDS 戻り値
( XML )
.NET Framework 2.0
PSI
3rd Party App
ビジネス ロジック
DataSet
PSI オブジェクト
.NET ランタイム
SOAP
スケジュール
エンジン
Project
Database
ビジネス ロジック
9
PSI を利用した開発のポイント
- ① 認証処理 -
◆認証処理



Project Web Access (PWA) 層による認証処理
Windows 認証を行う Web サービス ・・・ LoginWindows.asmx
Form 認証を行う Web サービス・・・・・・・LoginForms.asmx
3rd Party App
認証処理
Windows 認証
OR
Form 認証
(Project Server 認証)
・Cookie
・アプリケーション の
システム資格情報
・Cookie
・UserName
・Password
PWA
認証
認証
LoginWindows.asmx
LoginForms.asmx
認証 OK
ビジネスロジック
PSI Webサービスの
インスタンス
PSI
ビジネスオブジェクト
10
PSI を利用した開発のポイント
– ② Webサービス -
PSI Web サービス
Admin
Archive
Authentication
Calendar
CubeAdmin
CustomFields
Events
LoginForms
LoginWindows
LookupTable
Notification
ObjectLinkProvider
Project
PWA
QueueSystem
Resource
ResourcePlan
Security
Statusing
TimeSheet
View
WinProj
WSSInterrop
11
PSI を利用した開発のポイント
– ③ ADO.NET DataSet -
◆ADO.NET DataSet



PSI が提供する インターフェース は、ADO.NET DataSet タイプ
PSI では、データの取得、更新追加 処理 を、DataTable に対して行う
開発者は、ADO.NET のスキルを要します
DataSet
DataTableCollection
DataTable
DataTable
DataTable
・
・
・
フィールド
DataTable
DataColumn DataColumn
・
・
・
DataRow
DataRow
・
・
・
DataRow
DataRow
・
・
・
・
・
・
データ
12
PSI を利用した開発のポイント
– ④ ProjectDataset -
◆PSI の DataSetタイプ のオブジェクトの例

ProjectDataSet が持つ DataTableCollection
ProjectDataSet
ProjectDataTable
TaskDataTable
ProjectResourceTable
AssignmentDataTable
DependencyDataTable
ProjectCustomFieldsDatatable
TaskCustomFieldsDatatable
ProjectResourceCustomFieldsDatatable
AssingnmentCustomFieldsDatatable
13
PSI による、ソリューション 開発の可能性
◆リポートツール アプリケーション の開発

詳細 且つ、横断的なプロジェクトデータ の取得が可能
◆Projectデータ更新 インターフェース の開発

整合性の保障されたデータ更新が可能
◆他システムのデータベースへ、Projectデータの自動更新

Project Server のイベントのハンドリングが可能
◆EPMソリューション データソースの一部として適用

DataSet タイプのオブジェクトによる、柔軟なデータの取り扱いが可能
14
セクションのまとめ





Project Server 2003 では、エンタープライズ ソリューションで
利用できる万能なAPI が存在しなかった。
Project Server 2007 には、サーバーサイド スケジュール エ
ンジンが搭載されている
Project Server 2007 環境では、すべての Project クライア
ントは、PSI を使用して、Project Serverのデータにアクセスし
ている。
Project Server 2007 環境では、サーバーサイド の イベント
の ハンドリング ができる。
PSI は、.NET Framework 2.0 にマネージされた ランタイムク
ラスである。
15
最後に
本書は、Microsoft Office Project Server 2007 をもとにしております。
今後リリースされるバージョンでは、紹介した内容が異なる可能性があります。
Microsoft Office Project 2007の最新情報は、下記から入手してください。
http://office.microsoft.com/ja-jp/project/default.aspx
Microsoft Office Project 2007 SDKは、下記から入手してください。
http://msdn2.microsoft.com/en-us/library/ms512767.aspx
■参考資料
・ProjectGuide.doc
・Project 2007 SDK
16
ダウンロード

Project Server 2007 には