Project 2003 Sviluppare Soluzioni EPM con Project Server (1/4)

Slides:



Advertisements
Presentazioni simili
Active Server Pages ed ADO. Scrivere ASP Le pagine ASP possono contenere codice HTML o XML Le parti del documento che racchiudono codice script vanno.
Advertisements

UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
Elaborazione di Franco Grivet Chin
Accesso ai dati su Relational Database Management Systems LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
Servizi integrati e completi per la piccola impresa Andrea Candian.
Panoramica della soluzione Microsoft per la Piccola e Media Impresa.
La sinergia tra Office SharePoint Portal Server 2003 e Content Management Server 2002 Walter Cipolleschi.
Visual Studio Tools For Office 2005 Fabio Santini. NET Senior Developer Evangelist Microsoft Italy.
Office System 2007: il licensing dei prodotti server.
Crea il tuo sito con Web Matrix e il Web Hosting su ASP.NET
Consumare Web Service Andrea Saltarello
Fabio Mignani Senior Technology Specialist
Training Microsoft Visio Marzo, 2006
Sharepoint Gabriele Castellani
| | Microsoft Certificate Lifecycle Manager.
Massimiliano Bosco – Aliware – Torino – Project 2003 Sviluppare Soluzioni EPM con Project Server (2/4)
Strumenti di sviluppo Microsoft Campagna incentivi per Software Assurance Opportunità di vendita.
Web Services.
Java Enterprise Edition (JEE)
Connessione con MySQL.
WebProfessional Web Content Management System
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Università degli Studi di Modena e Reggio Emilia Facoltà dIngegneria - sede di Modena Corso di Laurea in Ingegneria Informatica Interoperabilità di componenti.
Università degli Studi di Modena e Reggio Emilia
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
OUTLINE Riprogettazione del database del portale Web della Facoltà di Ingegneria Sviluppo di una applicazione WEB DB : HOMEPAGE DOCENTI Architettura multilivello.
OPC XML Data Access Specification
Introduzione ai Web Services. E' un nuovo meccanismo RPC ottimizzato per l'uso in Internet Un qualunque Client su una generica piattaforma deve poter.
Progetto MODA-ML Biella, 30 novembre 2001 Sistema di interscambio messaggi Luca Mainetti HOC - Hypermedia Open Center Dipartimento di Elettronica e Informazione.
Web Cooperativo. Evoluzione tecnologie didattiche (Comunità di pratica e apprendimento A.Calvani - PuntoEdu) INTRANET C.M.S.
Francesca Del Corso, CCR - Gruppo Windows, Bologna 16/02/2006 SUS - WSUS per il Security Patch Management.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Marco Panella La posta elettronica Marco Panella
1 Linux day /11/2003 ADA. Dai requisiti al progetto Come nasce il progetto di una piattaforma e-learning Open Source.
Introduzione ad ASP.net
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Guida IIS 6 A cura di Nicola Del Re.
Roberto DAngelo Business Productivity Technology Specialist Office System come Smart Client.
Fabrizio Grossi Verifica delle attività. L'operato degli amministratori di sistema deve essere oggetto, con cadenza almeno annuale, di un'attività
Server Web in una rete Windows Sommario Meccanismi di accesso remoto Meccanismi di accesso remoto Introduzione ai Server Web Introduzione ai Server.
1 w w w. g a t 4. c o m WI GAT WebIngelligence rappresenta una piattaforma funzionale e tecnologica per la creazione e gestione di un datawarehouse che.
Basi di Dati e Sistemi Informativi
Sistemi Informativi sul Web
Un problema importante
Il World Wide Web Lidea innovativa del WWW è che esso combina tre importanti e ben definite tecnologie informatiche: Documenti di tipo Ipertesto. Sono.
IBM Lotus Notes e Domino
Università degli studi di Roma la Sapienza --- Laboratorio di Basi di Dati II - a.a. 2003/04 Presentato da: CAU Simone Matricola:
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
N4N Platform Architecture PA Inside outlook.
Da SQL Server a MySQL Migrazione di database SQLWays – Software per migrazione Presentazione Copyright (c) Ispirer Systems Ltd.
Pagine ASP parte 3 I data base Stefano Schacherl.
Exchange 2003 ed i “Mobile Worker”. Agenda Esigenze dei Mobile Worker Strumenti Soluzioni “legacy” Accesso ad Exchange 2003 Architetture/implementazioni.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Education & Training Training per Microsoft Access 97 Perché Education & Training ? Perché StartPoints crede nell’importanza strategica delle Risorse Umane.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
Real World data access layers DataSet vs. Custom entities Pierre Greborio Software Architect – PEWay SrL Microsoft MVP – Solutions Architect.
Esercizio ODBC. Configurare il driver ODBC Start  Control Panel  Administrative Tools Aprire: Data Source(ODBC) User DSN  Add…. Selezionare il driver.
Sviluppo per Pocket PC con SQL Server CE 2.0 Fabio Santini Silvano Coriani.NET Developer Evangelist Microsoft Corporation.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
By: Powered by:. Tecnologia Microsoft La soluzione CCAnalyzer utilizza la tecnologia OLAP (On Line Analytical Processing) di Microsoft presente nel software.
Progetto di Ingegneria del Web Anno Accademico 2007/2008 Stefano Pigiani Bruno Ricci Marco Ruzzon.
Extension pack per IIS7 Piergiorgio Malusardi IT Pro Evangelist
Servizi Internet Claudia Raibulet
 Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo  Secondo livello:
Eprogram informatica V anno.
Presenta – #wpc15it1 BI005 - Real Power BI Franco Perduca Factory Software srl
Transcript della presentazione:

Project 2003 Sviluppare Soluzioni EPM con Project Server (1/4) Massimiliano Bosco – Aliware – Torino – info@aliware.it

Finalità della sessione Programmazione in Project 2003 Project Server 2003 Project Data Service (PDS) Integrazione applicazioni e connettori Esempi sui meccanismi di scambio dati con SAP, Siebel, applicativi gestionali custom di terze parti, etc. Analisi dati della raccolta di progetti (portfolio) Ottimizzazione del processo di sviluppo con le nuove tecnologie (Web Service, XML, Visual Studio .NET)

Destinatari Programmatori Office con esigenze di condivisione dei dati di progetto in team implementazione e/o migrazione a soluzioni client-server ed EPM integrazione e sincronizzazione dati tra applicazioni eterogenee Programmatori “classici” (VB, VBA, .NET) che sviluppano in client-server e devono integrare le loro applicazioni in Office

Prerequisiti Conoscenze di base della piattaforma Microsoft Project 2002 professional e server Conoscenza di base dei linguaggi di programmazione MS Visual Basic e Visual Basic .NET Concetti di base in ambito database e SQL Risulteranno utili l’esperienza nello sviluppo di applicazioni Web (ASP o ASP.NET) e la conoscenza di BizTalk server

Agenda Parte 1: programmazione in ambito EPM Alcune richieste tipiche Soluzioni stand-alone, client-server, EPM Architettura di Project Server 2003 Project Data Service (PDS) Esempio 1.1: utilizzo del PDS Parte 2: architetture di connessione Schema generale di un connettore Esempio 2.1: importare le risorse con file XML Parte 3: uso dei cubi OLAP e loro estensioni Acquisizione dati da Sharepoint Esempio 3.1: gestione rischi e problemi Parte 4: estendere il PDS con codice gestito (.NET) Schema generale di un’estensione PDS Esempio 4.1: estensione PDS in C#

Strumenti MS Project SDK 2003 go.microsoft.com/fwlink/?linkid=21722

Strumenti lato client VBA: macro recorder, IDE (automazione task, add-in, integrazione con altre applicazioni Office, etc.) Project Guide: guide e wizard personalizzabili dal programmatore con XML content definition, link a pagine HTML, script OLE DB provider: accesso ai dati del progetto sul client o in project server COM Add Ins: funzionalità aggiuntive e personalizzate richiamabili da menu (impl. VB o .NET)

Strumenti lato server Project Data Service (PDS): API basata su XML per l’accesso a progetti, risorse, custom field,… Servizio Enterprise Data Maintenance (EDM): sincronizzazione dati del PDS tramite messaggi SOAP/XML o file drop Object Link Provider (OLP): interfaccia per collegare i dati di progetto e la gestione documentale (normalmente WSS) a cui ci si deve attenere nell’integrazione con gestori di terze parti per documenti, attività, eventi, etc. Project Server Web Parts e URL options: personalizzazione delle pagine di PWA (nascondendo con le options o modificando le sezioni con le Web parts)

Alcune richieste tipiche Sincronizzare elenchi di risorse HR, Active Directory, fogli elettronici, DB, XML, etc. Sincronizzare attività Gestionali, ERP, schedulatori, etc. Personalizzare report Applicativi stand-alone, pagine ASP o ASP.NET Esportazione dei dati Testo, fogli elettronici, DB, XML Business intelligence Estensioni cubi OLAP per gestione rischi, problemi, calcolo valore della produzione, etc.

Risposte Microsoft Project Professional 2003 Client Tier Microsoft Project Web Access Microsoft Office Outlook 2003 Microsoft Office Web Controls 2003 Line of Business Applications Client Tier Microsoft Office Project Server 2003 Project Data Services (PDS) Windows Sharepoint Services Session Manager View Publishing Exchange Server Microsoft Windows Server 2003 Family Windows 2000 Server Family Web Front End Services E-Mail Microsoft SQL Server 2000 Project Server Tables Project Web Tables SQL 2000 Analysis Services Database Tier

Possibili architetture Internet XML Web service N-Tier 3-Tier “Thin” Client 1-Tier (monolithic) Client logic Business logic Data storage 2-Tier “Fat” Client

Requisiti SW Sistema operativo e server Web: Windows Server 2003 (IIS 6.0) o Windows 2000 Server (IIS 5.0) Windows SharePoint Services (WSS): Project Server 2003 funziona solo con WSS – (non con SharePoint Team Services) WSS richiede Windows Server 2003 In caso di aggiornamento occorre migrare da STS a WSS Database: SQL Server 2000 SP3 o MSDE 2000 SP3 SQL Server 2000 Analysis Services se occorre DTC (partizionando il DB SQL) Visual Studio .NET, opp. SOAP Toolkit 2.0 o superiore .NET Enterprise Servers (p. es. BizTalk) se occorre

Internet Information Services Architettura SQL Server 2000 Internet Information Services WSS Database Windows Sharepoint Services Internet Explorer Project Web Access View Tables Project Server 2003 Core Oulook 2003 PWA Tables Session Management Service Project Data Tables View Processing Service Project Professional Scheduled Process Service SQL Analysis Server OLAP Cubes Client Application Database

Requisiti SW Scelta del DB SQL Server 2000 Obbligatorio in ambienti di produzione Consente prestazioni e scalabilità ottimali Fornisce gli “Analysis Services” per generare report avanzati e cubi OLAP MSDE Non fornito con l’installazione Non prevede la connessione agli “Analysis Services” e quindi non è possibile generare cubi e/o report avanzati Ha delle limitazioni sul numero di batch T-SQL concorrenti e quindi in definitiva sul numero di utenti contemporanei

Project Data Service (PDS) PDS è l’API di Project Server Supporto per i metodi delle versioni precedenti Due ruoli: Servizio middle tier ProjectsStatus: elenco progetti e informazioni base ResourcesStatus: elenco risorse e stato Security gatekeeping ProjectsAccess: accesso al progetto e check out ResourcesAccess: accesso a risorse e check out

PDS e i Web Services Componenti accessibili per mezzo di Internet anziché DCOM Implementati con standard Internet aperti XML, XSD, HTTP, SMTP SOAP I consumatori spediscono e ricevono messaggi XML Web Services Description Language Sono definiti in termini di formati e ordine di precedenza dei messaggi Discovery Document W3C prevede che il sito offra un documento che descrive i servizi attivi UDDI W3C ha standardizzato un insieme di criteri per pubblicazione e ricerca

Uso di PDS Preliminarmente: Da programma: Scaricare la guida PDS Reference da MSDN Installare Visual Studio .NET(oppure il SOAP Toolkit 3.0) Da programma: Effettuare il logon a PDS con UserID e password Ottenere il security cookie Preparare la richiesta XML Inviare il flusso XML unito al security cookie Ricevere la risposta XML

Uso di PDS Preliminarmente: Da programma: Scaricare la guida PDS Reference da MSDN (link da SDK o download.microsoft.com) Installare Visual Studio .NET (oppure il SOAP Toolkit 3.0) Da programma: Effettuare il logon a PDS con UserID e password Ottenere il security cookie Preparare la richiesta XML Inviare il flusso XML unito al security cookie Ricevere la risposta XML

Uso di PDS (2) Demo: Esempio di accesso in VB 6 con SOAP Toolkit 3.0 Esempio di accesso in C# da Visual Studio .NET

Background su PDS Introdotto per la prima volta in Project 2002 Usato da vari tipi di client per l’accesso ai dati della raccolta di progetti Project professional Project Web Access Applicativi sviluppati da solution provider Accede alle tabelle e alle viste del DB di project server con funzione di gateway

Background su PDS (2)

Background su PDS Garantisce la consistenza dei dati nel DB Gestisce una connessione al DB in nome e per conto del client Autentica il client e accede ai dati rilevanti del progetto Fornisce metodi per l’accesso diretto alle viste del DB Usato nella personalizzazione dei report Non è permesso l’accesso diretto alle tabelle per assicurare che l’utente veda i soli dati per cui dispone dei privilegi d’accesso

Accesso diretto

Accesso diretto (2) Il client effettua il logon a Project Server Se ok richiede a PDS i dati della connessione con GetLoginInformation Se ok effettua una connessione diretta al database e richiede il relativo SPID Al PDS richiede l’accesso al progetto o alla risorsa con ProjectAccess o ResourceAccess rispettivamente Effettua le query sul DB richiamando direttamente le viste Al PDS comunica la fine dell’operazione per mantenere la sicurezza dei dati con ProjectAccessCompleted o ResourceAccessCompleted Quindi chiude la connessione

Accesso diretto (3) GetLoginInformation Avviene inviando la seguente richiesta SOAP <Request> <GetLoginInformation/> </Request>

Accesso diretto (4) La risposta in XML è la seguente: <Reply> <HRESULT>0</HRESULT> <STATUS>0</STATUS> <UserName>Administrator</UserName> <GetLoginInformation> <DBType>0</DBType> <DVR>{SQL Server}</DVR> <DB>ProjectServer</DB> <SVR>MYPROJECTS</SVR> <ResGlobalID>1</ResGlobalID> <ResGlobalName>resglobal</ResGlobalName> <UserName>MSProjectUser</UserName> <Password>password</Password> </GetLoginInformation> </Reply>

Accesso diretto (5) Con la GetLoginInformation otteniamo i dati per una connessione ADO E’ di vitale importanza considerare da subito gli aspetti di sicurezza UserID e password per l’accesso al DB viaggiano in chiaro La connessione deve essere protetta con SSL se la rete non è fidata (es. Internet)

Accesso diretto (6) Una volta aperta la connessione ADO occorre recuperare con una query T-SQL lo SPID da ripresentare al PDS per le richieste successive La query è banale: SELECT @@SPID Project Server utilizza lo SPID per tracciare gli accessi in lettura e in lettura/scrittura ai progetti e alle risorse globali (tabelle MSP_PROJ_SECURITY e MSP_RES_SECURITY)

Accesso diretto (7) L’utente che vuole accedere ai dati del progetto per creare un report deve prima richiamare ProjectsAccess specificando l’ID del progetto (ottenuto p.es. da ProjectsStatus), lo SPID e il relativo timestamp. Nella tabella MSP_PROJ_SECURITY appare una riga come la seguente: PROJ_ID SEC_SPID SEC_SPIDDATESTAMP SEC_READCOUNT SEC_WRITECOUNT ------- -------- ----------------------- ------------- -------------- 1 51 2001-10-17 10:55:00.000 1 0

Accesso diretto (8) La chiamata in XML è la seguente: <Request> <ProjectsAccess> <Mode>0</Mode> <SPID>58</SPID> <SPIDTimestamp>20011017105500</SPIDTimestamp> <Project> <ProjectID>3</ProjectID> </Project> </ProjectsAccess> </Request>

Accesso diretto (9) Nella risposta XML otteniamo la lista dei progetti e delle eventuali risorse globali: <Reply> <HRESULT>0</HRESULT> <STATUS>0</STATUS> <UserName>Administrator</UserName> <ProjectsAccess> <Mode>0</Mode> <ResGlobalID>1</ResGlobalID> <ResGlobalName>resglobal</ResGlobalName> <Project> <ProjectID></ProjectID> <ProjectName> </ProjectName> <ProjectType></ProjectType> <ReplyStatus></ReplyStatus> </Project> </ProjectsAccess> </Reply>

Accesso diretto (10) La sicurezza e l’integrità dei dati sono assicurate dalle regole seguenti: L’account utente specificato nella stringa ADO deve avere i permessi di accesso alle viste di SQL server L’account MSProjectUser creato in fase di installazione dispone dei privilegi necessari in quanto appartiene al ruolo MSProjectRole ma non ha accesso diretto alle tabelle Eventuali deroghe devono seguire le linee guida contenute nel file PJDB.HTM contenuto nella directory di installazione di Project Server Non è garantita la compatibilità dei client che accedono alle tabelle con versioni future di PDS

Accesso diretto (11) Esempio di vista SQL per sola lettura: CREATE VIEW dbo.MSP_TASKS_PROJ_READVIEW AS SELECT * FROM MSP_TASKS WHERE PROJ_ID IN (SELECT PROJ_ID FROM MSP_PROJ_SECURITY WHERE @@SPID = SEC_SPID AND SEC_READCOUNT > 0) WITH CHECK OPTION

Accesso diretto (12) Esempio di vista SQL per accesso read/write alle risorse enterprise globali (tipo 3) CREATE VIEW dbo.MSP_TASKS_RES_READVIEW AS SELECT * FROM MSP_TASKS WHERE PROJ_ID IN (SELECT PROJ_ID FROM MSP_PROJECTS WHERE PROJ_TYPE = 3) WITH CHECK OPTION

Accesso diretto (13) Esempio di uso delle viste per estrarre un elenco delle risorse impegnate in un progetto e delle relative attività: select p.TASK_ID 'Task Number', p.TASK_NAME 'Task Name', CONVERT(VARCHAR(4), p.TASK_DUR_VAR/(60*60)) + 'd' 'Duration', r.RES_NAME 'Resource Name' from MSP_TASKS_PROJ_READVIEW p inner join MSP_ASSIGNMENTS_PROJ_READVIEW a on (p.TASK_UID = a.TASK_UID) inner join MSP_RESOURCES_PROJ_READVIEW r on (a.RES_UID = r.RES_UID) order by TASK_OUTLINE_NUM

Accesso diretto (14) Esempio di output della query precedente: Task Number Task Name Duration Resource Name ----------- ------------- -------- ------------- 1 Write outline 1d Writer 2 Write draft 2d Writer 3 Create art 1d Artist

Accesso diretto (15) Al termine delle operazioni occorre richiedere a PDS la rimozione dei record nelle tabelle MSP_PROJ_SECURITY e MSP_RES_SECURITY <Request> <ProjectsAccessCompleted> <Mode>0</Mode> <SPID>58</SPID> <Project> <ProjectID>3</ProjectID> </Project> </ProjectsAccessCompleted> </Request>

Accesso a Project Server Dim sURL As String sURL = "http://myserver/projectserver/LgnIntAu.asp" Dim oXMLDocument As DOMDocument30 Set oXMLDocument = New DOMDocument30 oXMLDocument.Load sURL 'Wait for the XML Document to load from Microsoft ‘Project Server Const cTimeout As Long = 45 Dim startTime As Long, elapsed As Long startTime = Timer Do While oXMLDocument.readyState < 4 DoEvents elapsed = Timer - startTime If elapsed > cTimeout Then GoTo errTimeout Loop

Accesso a Project Server (2) Dim sCookie As String Dim oNode As IXMLDOMNode If oXMLDocument.parseError.errorCode = 0 Then If Not oXMLDocument Is Nothing Then Set oNode = XMLDocument.selectSingleNode("Reply/Cookie") If Not oNode Is Nothing Then sCookie = oNode.Text End If Else sCookie = ""

Accesso a Project Server (3) errTimeout: MsgBox prompt:="Login Timeout Occurred." & vbCrLf & "Elapsed time = " _ & elapsed & " seconds" & vbCrLf & "xmlDocument.ReadyState = " & _ oXMLDocument.readyState, Title:="Login Timeout" MsgBox prompt:=oXMLDocument.xml

Struttura delle chiamate a PDS <Request> <MethodName> <Parameter1>value</Parameter1> <Parameter2>value</Parameter2> ... <ParameterN>value</ParameterN> </MethodName> </Request>

Trattamento dei dati XML Per isolare il singolo dato occorre accedere al nodo corrispondente del documento XML col metodo selectSingleNode del parser Per inviare la richiesta a PDS si può utilizzare il metodo SOAPXmlRequest

Riferimenti download.microsoft.com MS Project Server 2003 Software Development Kit (SDK) MS Project 2003 Resource Kit Office developer center: articoli, SDK, esempi, codice http://msdn.microsoft.com/office/understanding/project/ Getting started: developing with Project 2003 http://msdn.microsoft.com/office/understanding/project/techarticles/default.aspx?pull=/library/en-us/odc_pj2003_ta/html/odc_pjgetstarted.asp/

Articoli KB Q307033 HOW TO: use an XML Web Service by using ASP.NET from an Office VBA Macro in Word or Excel Q301273 HOW TO: Write a Simple Web Service by Using Visual Basic .NET Q308359 HOW TO: Write a Simple Web Service by Using Visual C# .NET Q892964 How to troubleshoot common errors that occur when you use the PDSTest tool or the PDSTest.NET tool to test the Project Server 2003 Project Data Service KB811318 PRB: "Access Denied" Error Message When You Call a Web Service While Anonymous Authentication Is Turned Off