870 likes | 943 Views
Scoprirete che su Office non si può solo contare ma anche sviluppare. Information Bridge Framework. Luca Regnicoli MCSD.NET MCSE+I MCDBA MCT luka@devleap.it. Agenda. Information Bridge Overview Architettura Web services Solution Metadata User Interface Region Search
E N D
Scoprirete che su Office non si può solo contare ma anche sviluppare
Information Bridge Framework Luca Regnicoli MCSD.NET MCSE+I MCDBA MCT luka@devleap.it
Agenda • Information Bridge Overview • Architettura • Web services • Solution Metadata • User Interface Region • Search • Smart tags e attached schema documents • Hyperlinks • Deployment
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
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
Il problema Outlook Maria, Controlla il codice di assistenza SR27090 della Contoso. Gran capo • 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 Copia & Incolla Trova il cliente
Information Bridge Framework: Mission Enable information workers to discover, engage, and act on enterprise business objects from within Office CRM ERP
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)
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
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
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
Con Information Bridge InfoPath Attached SchemaDocuments Smart Tags Information Bridge Client Run-time Codice per UI complesse Connessioni dichiarativeverso i servizi UI dichiarativa del task pane Managed, Connected Solution Schema Visual Studio .NET / VSTO / SmartTag Information Bridge Declarative Solution Tools Web services sviluppati seguendo le Guidelines di IBF Data Sources, Apps
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
Flusso 3 Recupera le informazioni dal servizio addetto Context&Action Service 4 Interpreta i dati di instanza 1 Utente seleziona“Show Details” 7 Naviga all’interno del servizio Interpreta Markup documento con markup<ERP:OrderID=4711> </ERP:Order> Task Pane Task Pane Recupera l’instanza di info Line of BusinessService 8 Naviga attraverso i servizi Interpretae Visualizza 10 Chiama il servizio da eseguire Naviga Esegue azioni 5 Presenta i dati nel Task Pane 6 Utente naviga(nel Task Pane) 2 Interpreta il contextutilizzando i metadati 9 Information Bridge Framework Utente seleziona un’azione 9 Metadata Office Application ApplicazioneOffice 7 10 3 4 5 6 8 2 Interpreta il contextutilizzando i metadati Data Feed
Metadati Namespace Entity View Reference Action Web Service Operation Operation Get (Reference) Put (Reference, Update Schema) Act (Reference,Act Schema)
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
Metadati HTML Windows form Actions Namespace Namespace Entity Entity Entity Entity Ref 3 Ref 1 Ref 4 View 1 View 2 Relationship View 3 Ref 2 Action 1 Action 2 Action 3 ServiceOp 1 ServiceOp 1 ServiceOp 1 UI Op 1 UI Op 1 UI Op 1 Web Services .net Assembly
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 UI - Smart Tag
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 UI – Attached Schema Document
End to End Model 1 Esporre applicazioni enterprise come Web services IBF-compliant 4 Inserire smart tags in documenti Data Source CustomApplication SAP Metadata 3 Deploy Office Professional 2003 con Information Bridge Client 2 Creare Solution Schema • Relazioni cross-services • Collegamenti a elementi UI • Autorizzazioni • Azioni 5 Click su smart tags Web Service Web Service Web Service
DevTools: Overview MS Word Task Pane Label Label Option1 Option1 Child Child Child Child MSCRM Custom Metadata Designer SAP Web Service Web Service Web Service Context & Action Service Metadata UI Design .NET Developer XSL or Windows Forms Metadata Designer Developer/ Business Analyst Authentication Manager Web Services Development .NET Web Services Developer
DevTools: Metadata Designer 1 MD importa file xml 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 Crea relationships tra views 3 Pubblicazione verso Metadata Service Metadata Service Metadata • 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
Deployment MetaData Service Web Server SQL 2000 Server Distribution Server AuthorizationManager Client • 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 • Requisiti del server: • Microsoft Windows Server 2003 • IIS 6.0 • Authorization Manager • SQL Server 2000 SP3a • .NET Framework 1.1 + SP1
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
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
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
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
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
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
Schema • Uno schema XSD definisce una struttura dati • Metadati di IBF utilizzano schema come dati di input o output
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
Stop! Aiuto non mi ricordo niente!! • Entity • Cliente • View • ClienteDettaglio <ClienteDettaglio xmlns=“urn-SampleSolution-Data”> <Nome>Luca</Nome> <Cognome>Regnicoli</Cognome> <Email>luka@devleap.it</Email> </ClienteDettaglio>
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
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
Schema completo dei metadati Metadata Scope Groups Relationship Entity ViewLocator View Reference Schema Action Get() Operation Operation Web Service Operation Put() Operation Act() Operation Ports Transformations
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)
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)
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
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
Transformation • Oggetti utilizzati da IBF per convertire uno schema in un’altro • Divise in tre categorie • XSLT • XPath • Regular Expression
Group • Meccanismo di classificazione per applicare permission a operazioni sui metadati • Utilizzati da Authorization Manager • Role-based security