Scoprirete che su Office non si può solo contare ma anche sviluppare

87
1 prirete che su Office non si può solo contare ma anche svilup

description

Scoprirete che su Office non si può solo contare ma anche sviluppare. Information Bridge Framework. Luca Regnicoli MCSD.NET MCSE+I MCDBA MCT [email protected]. Agenda. Information Bridge Overview Architettura Web services Solution Metadata User Interface Region Search - PowerPoint PPT Presentation

Transcript of Scoprirete che su Office non si può solo contare ma anche sviluppare

1

Scoprirete che su Office non si può solo contare ma anche sviluppare

2

Information Bridge Framework

Luca RegnicoliMCSD.NET MCSE+I MCDBA MCT

[email protected]

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

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

18

Architettura

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

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 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

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

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

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