Scoprirete che su Office non si può solo contare ma anche sviluppare
1
Information Bridge Framework
Luca Regnicoli
MCSD.NET MCSE+I MCDBA MCT
[email protected]
2
Agenda
•
•
•
•
•
•
•
•
•
Information Bridge Overview
Architettura
Web services
Solution Metadata
User Interface Region
Search
Smart tags e attached schema documents
Hyperlinks
Deployment
3
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
4
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
5
Overview
6
Il problema
Outlook
Maria,
Controlla il codice
di assistenza
SR27090 della
Contoso.
Gran capo
Trova
Ordini
Copia &
Incolla
• 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 il cliente
7
Information Bridge Framework: Mission
Enable information workers to discover, engage,
and act on enterprise business objects from within
Office
CRM
ERP
8
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)
9
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
10
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
11
Architettura
12
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
13
Demo
14
Architettura
15
Con Information Bridge
InfoPath
Attached Schema
Documents
Smart Tags
UI dichiarativa
del task pane
Connessioni dichiarative
verso i servizi
Managed, Connected Solution Schema
Web services sviluppati seguendo le Guidelines di IBF
Data Sources, Apps
Visual Studio .NET /
VSTO / SmartTag
Codice per UI complesse
Information Bridge
Declarative Solution Tools
Information Bridge Client Run-time
16
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
17
Architettura
18
Flusso
6
9
Applicazione
Office
Office
Application
1 Utente seleziona
“Show Details”
documento
con markup
5
3 Recupera le informazioni dal
servizio addetto
4 Interpreta i dati di instanza
Context
&
Action Service
7 Naviga all’interno del servizio
8 Naviga attraverso i servizi
10 Chiama il servizio da eseguire
Interpreta
Markup
Task Pane
<ERP:Order
ID=4711>
</ERP:Order>
Recupera
l’instanza di info
Interpreta 4
e Visualizza
3
8
Naviga
Esegue azioni
5 Presenta i dati nel
Task Pane
6 Utente naviga
(nel Task Pane)
9
Utente seleziona
un’azione
Metadata
2 Interpreta il context
utilizzando i metadati
7
Line of Business
Service
10
Data Feed
Information Bridge
Framework
19
Metadati
Namespace
Entity
View
Reference
Action
Operation
Get (Reference)
Web Service
Operation
Put (Reference,
Update Schema)
Act (Reference,
Act Schema)
20
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
21
Metadati
Namespace
Namespace
Entity
Entity
Entity
Entity
View 3
Ref 4
Ref 3
Ref 1
Ref 2
View 1
View 2
Action 1
Service
Op 1
Web
Services
Action 2
Service
Op 1
UI Op 1
.net
Assembly
Relationship
UI Op 1
Action 3
Service
Op 1
UI Op 1
HTML
Windows
form
Actions
22
UI - Smart Tag
Smart tags vengono
creati:
• Recognizer di smart tag
• Inserendo i tag
manualmente dal task
pane
• Documenti auto-generati
• Copia & incolla
Information Bridge
registra un action
handler per smart tag
standard e generico
23
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
24
End to End Model
4
1
Inserire
smart tags in
documenti
5
Click su smart tags
Esporre applicazioni enterprise
come Web services IBFcompliant
Data Source
Web Service
Custom
Application
Web Service
SAP
Web Service
Metadata
3
Deploy Office Professional
2003 con Information Bridge
Client
2
Creare Solution Schema
• Relazioni cross-services
• Collegamenti a elementi UI
• Autorizzazioni
• Azioni
25
DevTools: Overview
MS Word
.NET
Developer
Task Pane
Label
Label
Option1
Option1
UI Design
XSL or
Windows
Forms
Child
Child
Child
Child
Metadata Designer
Context &
Action Service
Metadata
Designer
Developer/
Business Analyst
Metadata
Authentication Manager
MSCRM
Web
Service
Custom
Web
Service
SAP
Web
Service
Web Services Development
.NET Web
Services Developer
26
DevTools: Metadata Designer
importa file xml
1 MD
provenienti da web
services IBF-compliant
Crea progetti e scope
Crea action = SUM (operation, transforms)
Associa operation a group
Operation custom verso controlli Windows Forms
2 Sviluppatore
•
•
•
•
•
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
Crea relationships tra views
3
Pubblicazione verso
Metadata Service
Metadata Service
Metadata
27
Deployment
Client
MetaData Service
Authorization
Manager
Distribution
Server
Client framework può essere
distribuito tramite SMS, Group policy
di AD o setup eseguito dall’ utente
Web Server
Requisiti del server:
•
Requisiti del client :
•
.NET Framework 1.1 SP1
•
Office System 2003 Professional
•
Windows 2000 o XP Professional
SQL 2000 Server
Microsoft Windows Server 2003
•
IIS 6.0
•
Authorization Manager
•
SQL Server 2000 SP3a
•
.NET Framework 1.1 + SP1
28
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
29
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
30
Caffè!!! 
31
Web Services
32
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
33
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
34
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
35
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
36
Schema
• Uno schema XSD definisce una struttura dati
• Metadati di IBF utilizzano schema come dati
di input o output
37
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
38
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>
39
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
40
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
41
Demo
42
Solution Metadata… dai che sono quasi finiti 
43
Schema completo dei metadati
Metadata
Scope
Groups
Relationship
Entity
ViewLocator
View
Action
Operation
Transformations
Reference
Schema
Get()
Operation
Web Service
Operation
Put()
Operation
Ports
Act()
Operation
44
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-ofbusiness
– CRM
(Clienti)
– HR
(Dipendenti)
– ERP
(Ordini)
– SR
(Service Request)
45
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)
46
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
47
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
48
Transformation
• Oggetti utilizzati da IBF per convertire uno
schema in un’altro
• Divise in tre categorie
– XSLT
– XPath
– Regular Expression
49
Group
• Meccanismo di classificazione per applicare
permission a operazioni sui metadati
• Utilizzati da Authorization Manager
– Role-based security
50
Demo
51
User Interface Region
52
Regions
• Region - Il building
blocks fondamentale del
task pane
• Una regione ospita
solitamente un
controllo Windows
Forms
53
Action!
• Per visualizzare una Region occorre definire
una Action
• Coppia/e di Transformation e Operation
54
Action Pipeline
55
Un’azione classica: visualizzare una Region
Operation:
ShowRegion
Action
3
1
SOAP
Operation
2
1
Utente fornisce un contesto di reference come input
2
Recupero dei dati tramite una chiamata SOAP
3
Visualizza i dati risultanti in una regione
•
•
•
•
•
•
Esempio: un cliente con clienteNome=Contoso
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
Accetta input per l’operazione
Imposta le informazioni in proprietà degli user user control (txtNome.Text, ecc.)
56
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)
57
“UI” Operations - ShowRegion
• ShowRegion visualizza un controllo di
WinForm
• Classico controllo + implementazione
IRegion
• L’assembly deve avere i diritti .NET di Full
Trust
58
Altre interface utili
• 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”
59
Controllo Reference List
Titolo con menù
Reference
•
•
Descrizione espansa
Menù
Paginazione
60
Demo
61
Search
62
Search Entry Point
Main Menu
Tool Bar (optional)
Right Click
Search Tab
63
Search UI
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
64
Demo
65
Smart Tag e Attached schema documents
66
Smart Tags
67
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
68
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
69
Attached Schema Document
70
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
71
Demo
72
Hyperlinks
73
Hyperlinks
74
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-SampleSolutionData)/ref?root=TicketNumber&xmlns=urnSampleSolution-Data&Id=SR178787
• <a href=“ibf:v1/.....”>Clicca qui</a>
75
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
76
Se hyperlinks sono abilitati...
77
Demo
78
Deployment
79
Configurazione del server MDS
Tutti i servizi risiedono su un’unica macchina
MDS Read / Write
Web Service
Authorization
Manager
I servizi sono ospitati su uno o più
server separati
MDS Read / Write
Web Service
SQL Server 2000
Authorization
Manager
Web Server
SQL 2000 Server
80
Configurazione del server MDS – Non supportata
Web services e database sono ospitati
su macchine diverse
Tutti i servizi sono su server separati
81
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
82
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
83
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
84
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
85
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 
86
Scoprirete che su Office non si può solo contare ma anche sviluppare
87
Scarica

Information Bridge