Upload
rico-damiano
View
215
Download
2
Embed Size (px)
Citation preview
1
Scoprirete che su Office non si può solo contare ma anche sviluppare
3
Agenda
• Information Bridge Overview • Architettura• Web services• Solution Metadata• User Interface Region• Search• Smart tags e attached schema documents• Hyperlinks • Deployment
4
Agenda
• Prima parte: alla scoperta di IBF!– Introduzione a Information Bridge Framework– Demo user-side – Architettura e componenti fondamentali– Livello intro
• Seconda parte: alla conquista di IBF!– Sviluppiamo una soluzione completa– Demo dev-side – Livello advanced
5
Cosa diamo per scontato
• Conoscenza del .NET Framework – Interfaccia, Ereditarietà– Code Access Security
• Conoscenza architetture n-tier– Data Layer, Business Layer, UI Layer
• Conoscenza di XML– Document, Schema XSD, Trasformazioni XSL
• Conoscenza di Web Services– WSDL, Web Method, .ASMX
• Conoscenza di Windows Forms– Custom User Control
6
Overview
7
• E-mail e documenti si riferiscono a business entity– Clienti, Ordini, Prodotti
• Non è semplice ottenere dettagli o drill-down
• Accesso manuale a diverse applicazioni per ottenere info
Trova Ordini
Outlook
Maria,Controlla il codice di assistenza SR27090 della Contoso.
Gran capo
Copia & Incolla
Trova il cliente
Il problema
8
Information Bridge Framework: Mission
Enable information workers to discover, Enable information workers to discover, engage, and act on enterprise business engage, and act on enterprise business
objects from within Officeobjects from within Office
ERP
CRM
9
La soluzione
• Information Bridge Framework permette di lavorare con entità di business eterogenee da applicazioni Office– Word 2003– Excel 2003– Outlook 2003 (se Word è e-mail editor)– InfoPath 2003 (da v.1.5) – Internet Explorer 6.0 (da v.1.5)
10
Audience
• IBF è per– Utenti che utilizzano e-mail e documenti all’interno di
processi aziendali– Utenti che necessitano di dati forniti da fonti diverse– Utenti che possono/devono utilizzare diverse
applicazioni aziendali– Sviluppatori professionisti
• IBF NON è per– Utenti che eseguono processi aziendali strutturati
all’interno di singole applicazioni • Utenti SAP che inseriscono ordini quotidianamente
– Sviluppatori per hobby o advanced-user
11
I Pilastri: Metadati
• IBF è basato su metadati – e non sul codice
• Utilizza metadati XML per– Esporre business object (entità) – Mettere in relazione entità attraverso sistemi diversi– Definire le azioni che un utente può eseguire su
un’entità– Accedere e agire in modo contestuale su entità tramite
smart tag e attached schema document– Collegare proprietà o campi di BO a elementi di UI– Gestire la security e authorization
• Sfrutta il supporto per XML di Office 2003
12
Architettura
13
Punti chiave dell’architettura
• Separare i developer della soluzione Office dai developer di Web Services
• Ridurre il codice tramite definizioni dichiarative– Azioni, operazioni e trasformazioni
• Fornire un modo per gestire modifiche e l’evoluzione della soluzione
• Riutilizzare lo stesso codice su diverse applicazioni Office
14
Demo
15
Architettura
16
Con Information Bridge
InfoPathAttached Schema
Documents
Smart Tags
Visu
al Stu
dio
.NE
T /
VS
TO
/ Sm
artTag
Info
rmatio
n B
ridg
eD
eclarative So
lutio
n T
oo
ls
Codice per UI complesse
Data Sources, Apps
Web services sviluppati seguendo le Guidelines di IBF
Managed, Connected Solution Schema
UI dichiarativa del task pane
Connessioni dichiarativeverso i servizi
Information Bridge Client Run-time
17
Princìpi
• Web service sviluppati seguendo le linee guida di IBF– Espongono specifici metadati necessari al runtime di IBF
• Declarative solution schema– Il CAS (Context and Action Service) Metadata service consente
all’amministratore di unire vari metadati provenienti da diversi servizi e aggiungere altri informazioni quali
• Relazioni fra Web Service• Collegamenti a elementi di UI (menu, controlli di Windows
Forms, XSL)• Azioni che coinvolgono operazioni su vari Web Service• Autorizzazioni
• Client-side add-in per Office– L’engine CAS intercetta i metadati della soluzione – Interpreta il contesto Office e presenta
• Azioni disponibili• Risultato di azioni
18
Architettura
19
Office Application Context
&Action Service
Task Pane
Flusso
Data Feed
Utente seleziona“Show Details”
1
Naviga attraverso i servizi810 Chiama il servizio da eseguire
documento con markup
<ERP:OrderID=4711>
</ERP:Order>
Utente naviga(nel Task Pane)
6
6
Utente seleziona un’azione9
9
Presenta i dati nel Task Pane
5
5
Interpretae Visualizza
Interpreta i dati di instanza4
4
Information Bridge Framework
Line of BusinessService
Recupera l’instanza di info
Recupera le informazioni dal servizio addetto
3
3
Naviga all’interno del servizio7
Naviga
7
8
Esegue azioni
10Metadata
Interpreta il contextutilizzando i metadati
2
Interpreta Markup
ApplicazioneOffice
Task Pane
Interpreta il contextutilizzando i metadati
2
20
Metadati
ReferenceReference
EntityEntity
ViewView
ActionAction
OperationOperation Web ServiceOperation
Web ServiceOperation
NamespaceNamespace
Act (Reference,Act Schema)
Act (Reference,Act Schema)
Put (Reference, Update Schema)Put (Reference, Update Schema)
Get (Reference)Get (Reference)
21
Metadati
• Entity– Business object astratti
• Cliente, Ordine, Prodotto
• Views– Modi diversi di “guardare” un’entità– Ognuna ha uno schema fisso
• Actions– “Cose” che un utente può fare
• Visualizzare un ordine, Cancellare una richiesta
• Operations– Chiamata a Web Service o assembly
22
Metadati
View 2 Relationship
ServiceOp 1
UI Op 1 ServiceOp 1
UI Op 1ServiceOp 1
UI Op 1
Web Services
.netAssembly
HTML
Windowsform
Actions
Ref 3
Ref 1
Ref 2
Action 1 Action 3Action 2
View 1
Entity
Namespace
Ref 4View 3
Entity Entity Entity
Namespace
23
UI - Smart Tag
Smart tags vengonocreati:• Recognizer di smart tag• Inserendo i tag
manualmente dal task pane
• Documenti auto-generati• Copia & incolla
Information Bridge registra un actionhandler per smart tagstandard e generico
24
UI – Attached Schema Document
Dati possono essere collegati a UI in diversi modi:
• Office task pane• Floating task pane• Dialog box / menù• Windows Forms• In-line all’interno del
documento
Gli eventi sono scatenati da Information Bridge
• Information Bridge cattura gli eventi mentre l’utente si muove attraverso i nodi XML
• Information Bridge riconosce il contenuto XML corrispondente al contenuto dei metadati
25
End to End Model
Esporre applicazioni enterprise come Web services IBF-compliant
1
Data Source
CustomApplication
SAP
Creare Solution Schema• Relazioni cross-services• Collegamenti a elementi UI• Autorizzazioni• Azioni
2Deploy Office Professional 2003 con Information Bridge Client3
Inserire smart tags in documenti
4
Click su smart tags
5
Metadata
Web Service
Web Service
Web Service
26
DevTools: Overview
UI Design
Metadata Designer
Web Services Development
MS Word Task Pane
Option1Option1
ChildChildChildChild
LabelLabel
.NET Developer
XSL or Windows
Forms
Authentication Manager
Context & Action Service
Metadata
Developer/ Business Analyst
MetadataDesigner
SAP
Custom
MSCRM.NET Web
Services Developer
Web Service
Web Service
Web Service
27
Crea progetti e scope
Crea action = SUM (operation, transforms)
Associa operation a group
Crea relationships tra views
Metadata Service
Sviluppatore
Metadata
MD importa file xml provenienti da web services IBF-compliant
1
2
Pubblicazione verso Metadata Service
3
Operation custom verso controlli Windows Forms
DevTools: Metadata Designer
• Add-in per Visual Studio .NET• Importa metadati da Web services
sviluppati secondo le linee guida di IBF
• Progettare e creare tutti i metadati necessari per una soluzione
• Pubblica i metadati verso un Metadata Service
• Wizards per creare nuovi elementi
28
Deployment
MetaData Service
AuthorizationManager
SQL 2000 ServerWeb Server
Client framework può essere distribuito tramite SMS, Group policy di AD o setup eseguito dall’ utente
Requisiti del client :
• .NET Framework 1.1 SP1
• Office System 2003 Professional
• Windows 2000 o XP Professional
Client
Requisiti del server:
• Microsoft Windows Server 2003
• IIS 6.0
• Authorization Manager
• SQL Server 2000 SP3a
• .NET Framework 1.1 + SP1
Distribution Server
29
Information Bridge: In sintesi
• Integrazione fra il mondo Office e sistemi eterogenei di back-end
• Definizione dichiarativa dei componenti di una soluzione– Le relazioni fra oggetti sono definite nei metadati di una
soluzione e non nel codice– Lo sviluppatore non è sempre necessario (solo UI e WS)
• Performance– I metadati possono essere “cachati” sul client
• Semplicità di deployment– I client installano automaticamente le soluzioni nuove o
quelle modificate• Scambio asincrono (5 thread di default) di metadati
fra client e MDS
30
Information Bridge: In sintesi
• Riutilizzo di componenti UI o Web Services– Riciclabili in diverse applicazioni Office– Sopravvivono al “cambio di stagione”
• Es: nuova tecnologia di accesso ai dati• Scambio di dati xml e non di classi binarie fra i layer
• Connessione diretta fra Office e Web Service– Nessuna perdita di prestazioni causata da “hop” extra
• Invocazione dinamica di Web Service– Installazione senza codice o proxy client-side
• Dati aggiornati– I dati sono sempre “attuali” – Action operano direttamente sui Web Services
31
Caffè!!!
32
Web Services
33
Progettare i Web Services
• IBF “digerisce” qualsiasi Web Service WS-I Compliant
• Ma se seguiamo le linee guide ci semplifichiamo la vita
• Progettare i WS pensando ai metadati di IBF– Entity– View– Operation– Reference
34
Entity
• La “cosa” a cui vogliamo accedere– Business object astratti
• Cliente, Ordine, Fattura
• Punti di partenza• Forniscono un contesto
– L’utente dovrà fare “qualcosa” con un’entità• Può non avere nessuna rappresentazione a
livello database
35
View
• Rappresentazione fisica di un’entità– Un modo di “guardare” un’entità
• ClienteDettaglio• Clienti
• Ogni entità – Avrà una default View– può avere N Views
• Una View può essere una singola instanza o una lista
• Una View ha un singolo schema associato
36
Operation
• Operation == Funzione in un linguaggio object-oriented
• 10 tipi diversi di operation– Trasformazione di contenuti da uno schema
all’altro– Visualizzazione di elementi di UI– Costruzione di menù– Chiamate a assembly .NET custom– Chiamate a metodo esposto da un Web Service
37
Schema
• Uno schema XSD definisce una struttura dati
• Metadati di IBF utilizzano schema come dati di input o output
38
Reference
• Una reference è un identificatore univoco per recuperare il contenuto di una view
• Definito con uno schema• WS utilizzano reference come identificatore
per operazioni di Get o Update
• Item References– Identificano una singola instanza
• List Refences– Identificano una lista di istanze
39
Stop! Aiuto non mi ricordo niente!!
• Entity– Cliente
• View– ClienteDettaglio<ClienteDettaglio xmlns=“urn-SampleSolution-Data”> <Nome>Luca</Nome> <Cognome>Regnicoli</Cognome> <Email>[email protected]</Email></ClienteDettaglio>
40
Stop! Aiuto non mi ricordo niente!!
• Reference– <ClienteId Nome=“Luca” xmlns=“..” />
• Operation– GetClienteDettaglio(ClientId) As Cliente– Nota importantisssssima:
• Le reference sono classi complesse• A IBF piacciono molto • Possiamo utilizzare string, Int32 ma ci
complichiamo la vita con IBF
41
Linee guida
• Esporre metadati aggiungendo attributi .NET a classi e proprietà– Serializzazione XML
• Strutturare i metodi coinvolgendo reference– GetClienteDettaglio(ClienteId)
• Progettare i metodi pensando ai metadati di IBF e in particolare alle View
42
Demo
43
Solution Metadata… dai che sono quasi finiti
44
Schema completo dei metadati
Metadata Scope
Metadata Scope
EntityEntity
ViewViewReferenceReference
OperationOperation
SchemaSchema
RelationshipRelationship
Web ServiceOperation
Web ServiceOperation
ActionActionGet()
OperationGet()
Operation
Put()Operation
Put()Operation
Act()Operation
Act()Operation
ViewLocatorViewLocator
PortsPortsTransformationsTransformations
GroupsGroups
45
Metadata scope
• Categoria top-level – Contiene gli altri metadati (Entity, View, Schema)
• Partizionare metadati in raggruppamenti logici• I progetti possono essere organizzati in sezioni
corrispondenti a specifiche applicazioni line-of-business– CRM (Clienti)– HR (Dipendenti)– ERP (Ordini)– SR (Service Request)
46
View Locator
• Ogni View specifica uno schema– View data schema
• Una soluzione IBF può includere diversi modi per ottenere lo stesso View schema– ClienteDettaglio -> GetClienteById(R1)– ClienteDettaglio -> GetClienteByEmail(R2)
• View locator permettono di trasformare uno reference schema in input nel View schema– Trasformazioni XSL– Operation (Chiamata a Web Service)
47
Relationship
• Descrivono la relazione fra due View– Clienti e Ordini
• Forniscono funzionalità di navigazione fra due View
• Una relazione è una trasformazione che accetta il contenuto di una View e la converte in una reference verso un’altra View
48
Port
• Descrivono la location e i dettagli di accesso di una fonte dati– URL verso un Web Services (file .asmx)– Modello di autenticazione del servizio– Path o strong-name di un assembly .NET
• Divise in tre categorie– SOAP– Assembly .NET– File
• Trasformazioni XSL
49
Transformation
• Oggetti utilizzati da IBF per convertire uno schema in un’altro
• Divise in tre categorie– XSLT– XPath– Regular Expression
50
Group
• Meccanismo di classificazione per applicare permission a operazioni sui metadati
• Utilizzati da Authorization Manager– Role-based security
51
Demo
52
User Interface Region
53
• Region - Il building blocks fondamentale del task pane
• Una regione ospita solitamente un controllo Windows Forms
Regions
54
• Per visualizzare una Region occorre definire una Action
• Coppia/e di Transformation e Operation
Action!
55
Action Pipeline
56
Utente fornisce un contesto di reference come input• Esempio: un cliente con clienteNome=Contoso
Recupero dei dati tramite una chiamata SOAP• Utilizzo del View Locator per chiamata SOAP GetCliente• Input ClienteNome, restituisce un oggetto Cliente con <Nome>, <Cognome>, ecc.• Trasforma i dati restituiti nello schema di input necessario all’Operation ShowRegion
Visualizza i dati risultanti in una regione• Accetta input per l’operazione• Imposta le informazioni in proprietà degli user user control (txtNome.Text, ecc.)
Un’azione classica: visualizzare una Region
Action
1SOAP
Operation
2
Operation:ShowRegion
3
2
1
3
57
Operations
• Operation di tipo SOAP– Già visti nella demo sui WS
• “Custom” Operations– Agire sul documento o– Visualizzare elementi UI
• Esempi di Custom Operations• ShowRegion (custom Windows Forms control)• ShowHTML (XHTML statico)• ShowDialog (WinForms control in una dialog)
58
“UI” Operations - ShowRegion
• ShowRegion visualizza un controllo di WinForm
• Classico controllo + implementazione IRegion
• L’assembly deve avere i diritti .NET di Full Trust
59
• IRegion – Contiene una proprietà che viene impostata al cambiamento dei dati
• IMediator – Broker tra la regione e il framework
• IVisualStyles – Fornisce accesso ai temi di Office
• IApplicationService – Fornisce accesso all’oggetto “application”
• IDocumentService – Fornisce accesso all’oggetto “document”
Altre interface utili
60
Titolo con menù
Controllo Reference List
Reference• Descrizione espansa• Menù
Paginazione
61
Demo
62
Search
63
Search Entry Point
Main MenuTool Bar (optional)
Right Click
Search Tab
64
Information Bridge fornisce 3 controlli
• Controllo “Pick a Search”– Elenco di ricerche disponibili– Sensibile al contesto attuale
• Search Criteria– Ognuna è una Search Action– Search criteria mappato a
View Locator – UI personalizzabile
• Result List Region– Region Reference List
Search UI
65
Demo
66
Smart Tag e Attached schema documents
67
Smart Tags
68
Recognizer e Action Handler
• Smart Tag– Un frammento di XML incorporato all’interno di
un documento Excel, Word o email di Outlook• Classe Recognizer (ISmartTagRecognizer2)
– Identifica le keyword o regular expression– Inserisce gli smart tag nel documento
• Sottolinea il termine con una linea tratteggiata
• Classe Action Handler (ISmartTagAction2)– Gestisce i menù di smart tag e i suoi comandi
69
Smart Tag e Information Bridge
• Normalmente dovremmo creare una serie di assembly e registrarli sul client– Non è un semplice copia/incolla
• IBF installa un generico recognizer e un generico action handler
• Possiamo specificare quanti recognizer/action handler vogliamo all’interno dei metadati
• L’assembly dello smart tag viene chiamato da IBF al posto di Office
• IBF trasferisce tutte le chiamate Office dirette al generico recognizer/handler verso il recognizer/handler configurato nei metadati
70
Attached Schema Document
71
Come funziona?
• Utente entra nel nodo XML• Information Bridge gestisce l’evento XML• Il nodo viene “impacchettato” e spedito al
Information Bridge Engine come reference• Normale elaborazione di IBF
– ViewLocator / Views– Esecuzione delle operation sulla default action– Presentazione della UI (se definita)
• ShowRegion / ShowHTML / ShowDialog
72
Demo
73
Hyperlinks
74
Hyperlinks
75
Hyperlinks in Information Bridge
• URL Moniker con una specifica sintassi che puntano a una reference di metadati
• ibf:v1/Microsoft.Solutions.SampleSolution.SR/ServiceRequest/ServiceRequestDetails/Xsd.TicketNumber%20(urn-SampleSolution-Data)/ref?root=TicketNumber&xmlns=urn-SampleSolution-Data&Id=SR178787
• <a href=“ibf:v1/.....”>Clicca qui</a>
76
Hyperlinks
• Supporto ai link disabilitato di default– Abilitare EnableProtocolHandler nel Information
Bridge Settings Manager (Adm Tools)• Funzionalità di insert/copy link disabilitata
di default– Abilitare Enable Insert and Copy for <combo>
• Hyperlinks o• Hyperlinks and Smart Tags
77
Se hyperlinks sono abilitati...
78
Demo
79
Deployment
80
Tutti i servizi risiedono su un’unica macchina
I servizi sono ospitati su uno o più server separati
SQL Server 2000
MDS Read / WriteWeb Service
AuthorizationManager
Configurazione del server MDS
MDS Read / WriteWeb Service
AuthorizationManager
SQL 2000 ServerWeb Server
81
Configurazione del server MDS – Non supportata
Web services e database sono ospitati su macchine diverse
Tutti i servizi sono su server separati
82
Deploy del server
• Eseguire Microsoft.InformationBridge.Service.MSI
• Impostare le porte per i servizi di read e write– default 8081 per Read e 8082 per Write
• La path del file roles.xml è memorizzata nel database– Se aggiungiamo altri server, l’installazione
determinerà e userà automaticamente tale location
83
Configurare il server
• IIS Settings– Servizio di Read default sulla 8081 – Servizio di Write default sulla 8082 – Application pool creato durante l’installazione
• Consiglio di security– Non configurare la porta di Write su un server di
produzione– Migrazione del database tramite
• SQL Server (backup/restore, detach/attach, dts…)• Ambiente multi-server
– Creare una share per roles.xml– Aggiungere le permission alla share per ogni server di
front-end
84
Deploy del client
• Eseguire Microsoft InformationBridge.Client.MSI– UI mode – Silent mode (package SMS)
• Abilitare gli smart tag• Abilitare Word come e-mail editor di
Outlook– HTML come default e-mail format
• Configurare adeguatamente il tempo di aggiornamento della cache dei metadati
• Ospitare gli assembly degli user control (Region) in una location centralizzata
85
Configurare il client
<engine.config settings><InformationBridgeEngine> <MetadataService Url="http://iwt32:8081/Information
BridgeReadService.asmx" Assembly="" Class="" /> <Cache Enabled="true" Encryption="true" Location=""
PercentDiskSize="1" /> <CacheRefresh Enabled="true" Day="1" Hour="*" Min="*"
Sec="0" /> <Execution NumberOfThreads="5" OperationTimeout="120000"
/></InformationBridgeEngine>
Group Policy• Override del file di configurazione locale
86
Security
• HTTPS consigliato per la comunicazione fra MDS e i client
• HTTPS consigliato per la comunicazione SOAP– WSE 2.0 Adapter nel Resource Kit di IBF 1.5
• Encryption della cache locale per utente• Utilizzare Auth Manager e Groups/Roles in Active
Directory per dare accesso ai metadati• Non utilizzare dati sensibili all’interno di smart tag
– Disabilitare Tools/Options/Save/Embed Smart Tags• Firmare gli assembly con strong-name
– Policy centralizzata basata su strong-name (no URL!)• Implementare funzionalità di single sign-on per non
costringere l’utente a digitare 2948 password
87
Scoprirete che su Office non si può solo contare ma anche sviluppare