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
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
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
16
Con Information Bridge
InfoPathAttached Schema
Documents
Smart Tags
Visual Studio .NET /
VSTO / Sm
artTag
Information B
ridgeD
eclarative Solution Tools
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
19
Office Application Context
&Action Service
Task Pane
Flusso
Data Feed
Utente seleziona“Show Details”
1Naviga attraverso i servizi8
10 Chiama il servizio da eseguiredocumento 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
Naviga7
8
Esegue azioni
10Metadata
Interpreta il contextutilizzando i metadati
2
Interpreta Markup
ApplicazioneOffice
Task Pane
Interpreta il contextutilizzando i metadati
2
20
Metadati
Reference
Entity
View
Action
Operation Web ServiceOperation
Namespace
Act (Reference,Act Schema)
Put (Reference, Update Schema)
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: OverviewUI 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 Service3
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’ utenteRequisiti 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
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
44
Schema completo dei metadatiMetadata
Scope
Entity
ViewReference
Operation
Schema
Relationship
Web ServiceOperation
ActionGet()
Operation
Put()Operation
Act()Operation
ViewLocator
PortsTransformations
Groups
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
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!
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
Action1
SOAPOperation
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
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
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
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
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
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