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
Scarica

BizTalk - Center