Integrazione di dati ed applicazioni eterogenee con BizTalk Server 2004 Dal mapping allo sviluppo di un adapter con Visual Studio .Net 1 Agenda • • • • • • • Overview su BizTalk Un problema: Alarm Engine La definizione dei messaggi (Schemas & Mapping) Il trattamento dei messaggi (Orchestrazioni) Le business-rules E se non ho un adapter? Summary 2 L’architettura tecnica Orchestration (Business Process) Other Applications Activation and Instance Management Administration Correlation and Content-Based routing Deployment Business Intelligence Message Box (Store) Process Management Trading Partner Management Reporting Message Pipelines (Interrogate/Translate) Decode Encode Decrypt Encrypt Authenticate Parse Extract Sign Serialize Properties Monitoring Custom Components Adapters (Transport) HTTP SOAP/Web Services File BizTalk MSMQ/T SQL FTP SAP MQSeries Custom Adapters 3 Il flusso dei dati Business Process Orchestration Receive Location Send Port Receive Adapter Send Adapter Receive Pipeline Mapping <tag> <tag> <tag> <tag> Message Box Send Pipeline 4 BizTalk: Elementi Progettuali Schemas Definizione dei documenti Orchestration Customer Name Modellazione dei processi di business Title Record Item PO Header Field1 PO Field2 Status Field3 Item Status ItemID Qty UnitPrice Field1 Date Field2 Field3 Pipelines Visual Studio .NET Mapping Header PO Elaborazione dei messaggi Trasformazioni Status Item Field1 Field2 Field3 Order PO Date Detail FieldA FieldB 5 Sviluppo e Deployment con Solution Explorer in Visual Studio .NET • Impostazioni dei progetti BizTalk. – Strong name per installazione in GAC – Informazioni di versioning – Source control • References verso: – .NET or COM+ libraries – Web services • Aggiunta di altri progetti BizTalk o Visual Studio .NET nella stessa soluzione. • solution. • Deploy delle DLL di BizTalk in GAC e nel DB BizTalkMgmtDb di BizTalk 6 Configuration Management con BizTalk Explorer in Visual Studio .NET • Collegato al DB SQL BizTalkMgmtDb • Mostra gli assemblies di BizTalk deployati. • Binding delle porte di invio e ricezione • Enlist/unenlist e start/stop delle orchestrazioni • Configura porte e gruppo di invio e ricezione • Configura roles e parties 7 Agenda • • • • • • • Overview su BizTalk Un problema: Alarm Engine La definizione dei messaggi (Schemas & Mapping) Il trattamento dei messaggi (Orchestrazioni) Le business-rules E se non ho un adapter? Summary 8 Un problema: Alarm Engine L’Alarm Engine è un broker su cui convergono eventi di business che scatenano delle segnalazioni in real-time Dal CRM vengono ricevuti i questionari di customer satisfaction CRM Il business rules engine contiene i criteri di estrazione dei dati Legacy (Simulato) Alarm Engine Business Rules Engine Il legacy viene continuamente analizzato alla ricerca di informazioni rilevanti SharePoint Gli allarmi vengono pubblicati su SharePoint Portal Server 9 Agenda • • • • • • • Overview su BizTalk Un problema: Alarm Engine La definizione dei messaggi (Schemas & Mapping) Il trattamento dei messaggi (Orchestrazioni) Le business-rules E se non ho un adapter? Summary 10 BizTalk: Elementi Progettuali Schemas Definizione dei documenti Orchestration Customer Name Modellazione dei processi di business Title Record Item PO Header Field1 PO Field2 Status Field3 Item Status ItemID Qty UnitPrice Field1 Date Field2 Field3 Pipelines Visual Studio .NET Mapping Header PO Elaborazione dei messaggi Trasformazioni Status Item Field1 Field2 Field3 Order PO Date Detail FieldA FieldB 11 Cos’è uno schema di BizTalk? XML Schema --- • BizTalk utilizza l’XML Schema Definition Language (XSD) Uno schema XML definisce: Elementi Attributi Tipi di dati Cardinalità dei tags Campi obbligatori Ricorrenze multiple <xs:element name="Item"> <xs:complexType> <xs:sequence> <xs:element name="Description“ type="xs:string" /> <xs:element name="Quantity" type="xs:int" /> <xs:element name="UnitPrice" type="xs:string" /> <xs:element name="TotalPrice" type="xs:decimal" /> <xs:element name="ItemID" type="xs:long" /> </xs:sequence> </xs:complexType> </xs:element> XML Instance --- <Item> <Description>Description_0</Description> <Quantity>10</Quantity> <UnitPrice>UnitPrice_0</UnitPrice> <TotalPrice>10.4</TotalPrice> <ItemID>10</ItemID> 12 </Item> Tipologie di schema supportate Tipologia di Schemi XML Supporta nativamente tipi di messaggi XML Definiti tramite XML Schema definition language (XSD) Flat File Node Dettagli Structure Start Length Description Delmited UnitPrice Delmited 0 50 50 10 Quantity Delmited 60 10 TotalPrice ItemID Status Delmited Delmited Delmited 70 80 99 10 10 1 Property Supporta formati di files delimitati o posizionali Gli attributi sono usati per rappresentare i valori Le informazioni dei tag sono memorizzate tramite le annotation di XSD Special purpose schema type Definizione di campi proprietà promossi I campi Property possono essere direttamente acceduti dai componenti di BizTalk Server 13 Creazione di uno schema con il BizTalk Editor Schema Tree View XSD View 14 Demo BizTalk Editor • Abbiamo bisogno dei seguenti messaggi: – Form Richiesta Credito Contiene i dati di un’intervista – Validazione Richiesta Credito Contiene il risultato della valutazione del credito – Segnalazione Portale E’ un messaggio che dovrà essere pubblicato sul portale 15 BizTalk: Elementi Progettuali Schemas Definizione dei documenti Orchestration Customer Name Modellazione dei processi di business Title Record Item PO Header Field1 PO Field2 Status Field3 Item Status ItemID Qty UnitPrice Field1 Date Field2 Field3 Pipelines Visual Studio .NET Mapping Header PO Elaborazione dei messaggi Trasformazioni Status Item Field1 Field2 Field3 Order PO Date Detail FieldA FieldB 16 Cos’è una mappa? • Definisce la corrispondenza tra records e campi in due schemas differenti Trasformazione dei dati Esegue calcoli ed elaborazioni sui dati Inserisce automaticamente i dati a runtime tra messaggi Traduzione dei dati Cambiamento del formato dei dati tra messaggi Esempio: trasformazione verso e da flat file e XML Source Schema Destination Schema Record Order PO PO Number Status Date ItemID Item No Qty UnitPrice Quantity Order Status Date 17 Creazione di una mappa con il BizTalk Mapper BizTalk Mapper Diventa attivo quando una mappa è aperta o modificata in un progetto Gli schemas devono essere parte di un progetto o devono essere referenziati in un altro assembly Source Schema Map Zone Destination Schema 18 Cos’è un Functoid? E’ un tecnica per effettuare delle operazioni sui dati mappati 70+ functoids predefiniti Aggiunta e modifica di dati Cambiamento di data e ora Campi per il concatenamento Trasformazioni complesse Functoids custom Funzionalità personalizzate Functoid per lo scripting Sviluppabili in VB o C# Destination Schema Source Schema Record PO (..) Order PO Number Status Date ItemID Item No Quantity Qty UnitPrice Date X Order Status Total Price 19 Functoids Base Category Usage Conversion To convert to and from ASCII, and between numeric bases such as hexadecimal and octal. Cumulative To perform mathematical operations in looping records, such as averages and concatenation. Database To extract data from a database and use it in destination instance messages. Date and Time To retrieve the current data and time, and to calculate delta times. Logical to perform a variety of logical operations, such as greater than and logical existence . Mathematical to perform a variety of mathematical operations, such as addition and multiplication . Scientific to perform a variety of scientific operations, such as logarithms and trigonometry. String to perform a variety of string functions, such as trimming and concatenation. 20 Aggiunta dei Functoids ad una Mappa 2 Link functoids to fields (..) 1 Drag functoid from Toolbox to map 3 Configure functoid inputs 21 Gestione dei Map Zone Layers Le Pages consentono di ridurre la complessità di una mappa Map Zones E’ possibile creare fino a 20 layers E’ possibile isolare le diverse parti di una mappa E’ possibile lavorare indipendentemente sulle singole mappe I functoids connessi DEVONO risiedere sullo stesso layer Grid Preview Lavora con una porzione di una mappa “grande” Destination Schema Source Schema Record PO (..) Order PO Number Status Date ItemID Item No Quantity Qty UnitPrice Date X Order Status Total Price Page 1 Page 2 Page 3 Page 4 22 Demo BizTalk Mapper • Abbiamo bisogno delle seguenti mappe: – Valutazione Credito Applica delle regole per identificare dei dati sensibili e generare un allarme – Risultato 2 Segnalazione Portale Arrichisce le informazione dell’allarme per consentire la pubblicazione sul portale. 23 Agenda • • • • • • • Overview su BizTalk Un problema: Alarm Engine La definizione dei messaggi (Schemas & Mapping) Il trattamento dei messaggi (Orchestrazioni) Le business-rules E se non ho un adapter? Summary 24 BizTalk: Elementi Progettuali Schemas Definizione dei documenti Orchestration Customer Name Modellazione dei processi di business Title Record Item PO Header Field1 PO Field2 Status Field3 Item Status ItemID Qty UnitPrice Field1 Date Field2 Field3 Pipelines Visual Studio .NET Mapping Header PO Elaborazione dei messaggi Trasformazioni Status Item Field1 Field2 Field3 Order PO Date Detail FieldA FieldB 25 Cos’è un’orchestrazione? Purchase Order Handle Approval Query Receive Approval Status Update Submit Request Approve Validate Email User Message to User Send Email Status to Unsubmited Call Validate Schedule Change Status Email User Hold for Approval 26 I passi nello sviluppo di un’orchestrazione Steps: 1 Definizione degli schemas per descrivere il formato dei messaggi 2 Aggiunta di shapes per rappresentare le azioni dei processi di business 3 Assegnamento o trasformazione dei dati tra i messaggi 4 Definizione delle porte di invio e ricezione per i messaggi 5 Definizione delle variabili di orchestrazione e dei tipi 6 Binding dei simboli di send e receive alle porte 7 Compilazione e verifica 27 Utilizzare l’Orchestration Designer Port Surface Port Surface ReceivePO ReceivePOPort POMessage Operation_1 > Request <New Operation> ContructInvoice POInvoiceTransform SendInvoicePort SendInvoice InvoiceMessag Operation_1 < Request <New Operation> Toolbox Port Surface Design Surface Port Surface 28 Configurazione delle espressioni Assegnamento di messaggi Assegna valori ai messaggi o a parti di messaggio Espressioni Booleane Loop shape Decide shape Delay shape Operatore == != < > <= >= exists Descrizione uguale a diverso da minore di maggiore di minore o uguale a maggiore o uguale a esiste System Date e Time Span Listen shape Delay 29 Configurazione delle variabili e dei tipi Variabili Properties Parameters Ports Messages Variables Correlation sets Role links Tipi Ports Variables Correlation Sets Role Links 30 Compilazione e verifica del progetto Build Project BizTalk Project XSD Schema Compile .NET Assembly .DLL Compilazione del progetto Compilazione degli items (schemas) Creaazione in un assembly (.DLL file) La .DLL è salvata in una cartella del progetto (…\bin\Development) Qualsiasi errore o warning è mostrato nella task list 31 Demo Orchestration • L’orchestrazione stabilisce se un allarme deve essere pubblicato sul portale. 32 Agenda • • • • • • • Overview su BizTalk Un problema: Alarm Engine La definizione dei messaggi (Schemas & Mapping) Il trattamento dei messaggi (Orchestrazioni) Le business-rules E se non ho un adapter? Summary 33 Business Rule Composer E’lo strumento che consente di definire e gestire dei metadati che consente di specificare le regole di estrazione dei dati Creazione di vocabolari con versioning Definizioni Regole di costruzione Pubblicazione di vocabulari e regole Policies Vocabolari Definizioni Rule Composer 34 Business Rules Composer: Uno scenario Validation Rule: A valid credit card number must be provided Business process Discount Rule: If Customer is a Gold Customer Then Apply 10% discount Dynamic business policy management Cross-field/constraint validation Decision support Customization Rule: If the purchase amount is over 500 Then obtain Manager’s approval Human based workflow Workflow customization Business Process Automation Engine Orchestration Rules Tracking Service Service Service Messaging Bus Intelligent routing Intelligent notification Routing Rule: If the customer wants to buy cars Then route to car dealer If the customer wants to buy books Then route to bookstore Notification If purchase order amount is more than $1000 Then notify sales manager Key performance indicators (KPI) reasoning Business Activity OLAP Purchase Volume Rule: If the purchase volume is over 100 Then start the premier procurement process 35 Agenda • • • • • • • Overview su BizTalk Un problema: Alarm Engine La definizione dei messaggi (Schemas & Mapping) Il trattamento dei messaggi (Orchestrazioni) Le business-rules E se non ho un adapter? Summary 36 Tempi di implementazione e roll-out contenuti Sono disponibili oltre 350 adapters AS/400 ADDS Regent 40 ADDS Viewpoint ADM11 AFP ALL-IN-1 Ampex 230 AXIS Navigator Bull TP CORBA Cobol Cufer T205 DEC VT Deployment DG 216 DG5220 DL/1 DMS EBCDIC EDI (X12) EDIFACT Essbase Focus Galileo Hazeltime 1500 HP 700/92/2392A IBM 3101 IBM3151/3161 IBM 3270/E ICL 7561 IDS-II IN2 SM9400g/j INFOAccess Infoman Java EJB Oracle DB2 Sybase Informix Progress CICS IMS IMS DC/TM JMS KSAM Loopback MDIS PRISM 8/9 Microfusion MF-30 MODEL 204 MQSeries ShareBase MVS SIF Mumps SUPRA Omnidex System 2000 Oracle AQ Tandem NonStop/ P9 ANSI TS530 PACE Televideo 910-955 PC Monitor Teradata Pick TI924 PT200 Total QSAM VT QUME QVT WYSE Red Brick RMS RPG SCO ANSI CA-Datacom/DB CA-IDMS CA-Ingres Ingres dBase ADABAS ISAM C-ISAM Cloudbase ALLBASE/SQL SQL/DS HIPAA, HL7 (Healthcare) RosettaNet (High Tech) CIDX (Chemical) O/POS & RBI (Retail) FIX, SWIFT (Financial) cXML, xCBL (Suppliers) XA Transactions ODBC OLE DB JDBC HTTP/S FTP Rdb Net-ISAM Baan Broadvision Cove Systems Covisint FrontStep Hogan i2 Integral J.D. Edwards Mapics McHugh Mega Navision Onyx Oracle e-bus Peachtree PeopleSoft Peregrine Pivotal QAD Quickbooks Remedy RethinkNDo SAP Scala ServiceSwitch Siebel Staffware Ultimus Vantive Visibility Walker Int Worldtrak 37 Generic Adapter: www.gotdotnet.com Custom Adapter BTS Adapter FW Generic Adapter 38 Caratteristiche di un Adapter • Communication direction – Receive – Transmit • Adapter "code" hosted – In process – Out of process • Communication pattern – One way – Request/Response – Solicit/Response (…significa Sincrono) • Host Binding – Static – Dynamic – the target • Adapter capabilities – Asynchronous adapter – Transactional – Batch support 39 Agenda • • • • • • • Overview su BizTalk Un problema: Alarm Engine La definizione dei messaggi (Schemas & Mapping) Il trattamento dei messaggi (Orchestrazioni) Le business-rules E se non ho un adapter? Summary 40 Summary • Un esempio complesso per mostrare la possibilità di BizTalk di integrare qualsiasi piattaforma • Esiste molto altro ancora – Web Services (provider e consumer) – HWS – Enterprise Single Sign On – Trading Partners – Adapter (SQL Server, MSMQ, SAP, …) • Vision – Connettere Sistemi, Persone e Partners commerciali tramite processi aziendali flessibili – Design for Change 41 Next steps • BizTalk http://www.microsoft.com/biztalk/ • Business Process Integration Center http://msdn.microsoft.com/bpi/ • Powertoys http://blogs.msdn.com/luke/articles/365678.aspx 42 Domande & Risposte 43