Condividi tramite


Procedura: Implementare il routing basato sul contenuto usando le proprietà di contesto dei messaggi

Obiettivo

Questa sezione illustra come usare l'itinerario di Microsoft BizTalk ESB Toolkit Designer per creare un itinerario che seleziona un destinatario del messaggio in base alla proprietà del contesto del messaggio e quindi instrada un messaggio al destinatario usando il servizio di messaggistica Di Itinerario Broker.

In questo argomento verranno completati i passaggi seguenti:

  • Creare un itinerario con un broker di itinerari e due servizi di routing con resolver statici.

  • Testare l'itinerario usando l'applicazione di esempio Client di test dell'itinerario.

Nota

Nell'implementazione corrente non viene fornito alcun servizio broker basato sull'orchestrazione.

Prerequisiti

Le procedure descritte in questa procedura richiedono il completamento dei prerequisiti per le attività di sviluppo.

Passaggi

Per creare un modello DSL dell'itinerario ESB

  1. In Visual Studio aprire C:\HowTos\Patterns\Patterns.sln.

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse su ItinerarioLibrario, scegliere Aggiungi e quindi fare clic su Nuovo itinerario.

  3. Nella finestra di dialogo Aggiungi nuovo elemento fare clic su ItineraryDsl nel riquadro Modelli.

  4. Nella casella Nome digitare ChoiceRouter e quindi fare clic su Aggiungi.

Per configurare le proprietà dell'itinerario

  1. In Visual Studio fare clic sull'area di progettazione dell'itinerario ChoiceRouter . Nel Finestra Proprietà ChoiceRouter configurare le proprietà seguenti:

    1. Nell'elenco a discesa Esportazione modelli fare clic su Utilità di esportazione itinerari XML.

    2. Nella sezione Impostazioni extender fare clic sul pulsante con i puntini di sospensione (...) accanto alla proprietà File XML itinerario .

    3. Nell'elenco a discesa Della proprietà Modalità di esportazione fare clic su Strict.

    4. Nella finestra di dialogo Seleziona file XML digitare C:\HowTos\Itineraries\ChoiceRouter nella casella Nome file e quindi fare clic su Salva.

    Nota

    Questo passaggio consente di esportare l'itinerario come XML in un percorso di file locale. Esportando un itinerario in un percorso di file locale, anziché nel database dell'itinerario, è possibile testare l'itinerario usando l'applicazione client di test ESB. Questo processo verrà completato più avanti in questo argomento relativo alle procedure.

Per definire la struttura dell'itinerario

  1. Dalla casella degli strumenti trascinare un elemento del modello On-Ramp nell'area di progettazione. Nel Finestra Proprietà OnRamp1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare ReceiveNAOrder.

    2. Nell'elenco a discesa Extender fare clic su On-Ramp Extender.

    3. Nell'elenco a discesa Applicazione BizTalk fare clic su Microsoft.Practices.ESB.

    4. Nell'elenco a discesa Porta di ricezione fare clic su OnRamp.Itinerario.

  2. Dalla casella degli strumenti trascinare un elemento del modello di Service Di Itinerario Broker nell'area di progettazione e quindi posizionarlo sul lato destro dell'elemento del modello On-Ramp . In ItineraryBrokerService1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare RouteBrokerService.

    2. Nell'elenco a discesa Extender fare clic su Estensione broker di messaggistica.

    3. Nell'elenco a discesa Contenitore espandere ReceiveNAOrdere quindi fare clic su Gestori di ricezione.

    4. Nell'elenco a discesa Nome servizio fare clic su Microsoft.Practices.ESB.Routey.Services.Broker.MessagingBroker.

  3. Fare clic con il pulsante destro del mouse sull'insieme Filter e quindi scegliere Aggiungi nuovo filtro. Nel Finestra Proprietà Filter1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare ASMXFilter.

    2. Fare clic sull'elenco a discesa Filter Implementation (Implementazione filtro filtro) e quindi su XPath Filter (Filtro XPath).

    3. Fare clic sulla proprietà Expression e quindi digitare count(/ContextProperties/Property[@name='InboundTransportLocation'][contains(., 'ProcessItinerary.asmx')]) > 0.

  4. Fare clic con il pulsante destro del mouse sull'insieme Filter e quindi scegliere Aggiungi nuovo filtro. Nel Finestra Proprietà Filter1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare WCFFilter.

    2. Fare clic sull'elenco a discesa Implementazione filtroe fare clic su Filtro XPath.

    3. Fare clic sulla proprietà Expression e quindi digitare count(/ContextProperties/Property[@name='InboundTransportLocation'][contains(., 'ESB. ItineraryServices.WCF')]) > 0.

  5. Fare clic con il pulsante destro del mouse sull'insieme Resolver dell'elemento modello RouteBrokerService e quindi scegliere Aggiungi nuovo sistema di risoluzione. Nella Finestra Proprietà Resolver1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare ResolverBrokerRoute.

    2. Nell'elenco a discesa Implementazione resolver fare clic su MessageContext Resolver Extension .In the Resolver Implementation list, click MessageContext Resolver Extension.

  6. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento del modello ReceiveNAOrder all'elemento del modello RouteBrokerService .

  7. Dalla casella degli strumenti trascinare un elemento modello Del servizio itinerario nell'area di progettazione e quindi posizionarlo sotto l'elemento del modello RouteBrokerService . Nel Finestra Proprietà ItineraryService1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare RouteToFileFromASMX.

    2. Nell'elenco a discesa Estensione servizio itinerario fare clic su Estensione messaggistica.

      Nota

      Questa proprietà definisce che il processo verrà eseguito in una pipeline (messaggistica). In alternativa, se il processo verrà eseguito in un'orchestrazione, impostare la proprietà Extender del servizio di itinerario su Orchestration Extender.

    3. Nell'elenco a discesa Contenitore espandere ReceiveNAOrdere quindi fare clic su Gestori di ricezione.

    4. Nell'elenco a discesa Nome servizio fare clic su Microsoft.Practices.ESB.Services.Routing.

  8. Fare clic con il pulsante destro del mouse sull'insieme Resolver dell'elemento del modello RouteToFileFromASMX e quindi scegliere Aggiungi nuovo sistema di risoluzione. Nella Finestra Proprietà Resolver1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare ResolverFromAsmx.

    2. Nell'elenco a discesa Implementazione resolver fare clic su Estensione resolver statico.

    3. Nell'elenco a discesa Nome trasporto fare clic su FILE.

    4. Fare clic sulla proprietà Posizione trasporto e quindi digitare c:\howtos\out\asmx%MessageId%.xml.

  9. Dalla Casella degli strumenti trascinare un elemento del modello Off-Ramp nell'area di progettazione e quindi posizionarlo a destra dell'elemento del modello RouteToFileFromASMX . Nel Finestra Proprietà OffRamp1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare SendASMXOrder.

    2. Nell'elenco a discesa Extender fare clic su Off-Ramp ESB Extender.

    3. Nell'elenco a discesa Applicazione BizTalk fare clic su GlobalBank.ESB.

    4. Nell'elenco a discesa Porta di trasmissione fare clic su DynamicResolutionOneWay.

  10. Dalla casella degli strumenti trascinare un elemento modello Del servizio itinerario nell'area di progettazione e quindi posizionarlo tra l'elemento del modello RouteToFileFromASMX e l'elemento del modello SendASMXOrder . Nel Finestra Proprietà ItineraryService1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare SendPortFilterASMX.

    2. Nell'elenco a discesa Estensione servizio itinerario fare clic su Off-Ramp Extender.

    3. Nell'elenco a discesa Off-Ramp espandere SendASMXOrder e quindi fare clic su Invia gestori.

  11. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento del modello RouteToFileFromASMX all'elemento del modello SendPortFilterASMX .

  12. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento del modello SendPortFilterASMX all'elemento del modello SendASMXOrder .

  13. Dalla casella degli strumenti trascinare un elemento modello Del servizio itinerario nell'area di progettazione e quindi posizionarlo a destra dell'elemento del modello RouteBrokerService . Nel Finestra Proprietà ItineraryService1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare RouteToFileFromWCF.

    2. Nell'elenco a discesa Estensione servizio itinerario fare clic su Estensione messaggistica.

      Nota

      Questa proprietà definisce che il processo verrà eseguito in una pipeline (messaggistica). In alternativa, se il processo verrà eseguito in un'orchestrazione, impostare la proprietà Extender del servizio di itinerario su Orchestration Extender.

    3. Nell'elenco a discesa Contenitore espandere ReceiveNAOrdere quindi fare clic su Gestori di ricezione.

    4. Nell'elenco a discesa Nome servizio fare clic su Microsoft.Practices.ESB.Services.Routing.

  14. Fare clic con il pulsante destro del mouse sull'insieme Resolver dell'elemento modello RouteToFileFromWCF e quindi scegliere Aggiungi nuovo sistema di risoluzione. Nella Finestra Proprietà Resolver1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare ResolverFromWCF.

    2. Nell'elenco a discesa Implementazione resolver fare clic su Estensione resolver statica.

    3. Nell'elenco a discesa Nome trasporto fare clic su FILE.

    4. Fare clic sulla proprietà Percorso trasporto e quindi digitare c:\howtos\out\wcf%MessageId%.xml.

  15. Dalla casella degli strumenti trascinare un elemento modello Off-Ramp nell'area di progettazione e quindi inserirlo a destra dell'elemento modello RouteToFileFromWCF . Nell'Finestra Proprietà OffRamp1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare SendWCFOrder.

    2. Nell'elenco a discesa Extender fare clic su Off-Ramp ESB Extender.

    3. Nell'elenco a discesa Applicazione BizTalk fare clic su GlobalBank.ESB.

    4. Nell'elenco a discesa Invia porta fare clic su DynamicResolutionOneWay.

  16. Dalla casella degli strumenti trascinare un elemento modello del servizio Itinerario nell'area di progettazione e quindi inserirlo tra l'elemento modello RouteToFileFromWCF e l'elemento modello SendWCFOrder . Nell'Finestra Proprietà ItinerarioService1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare SendPortFilterWCF.

    2. Nell'elenco a discesa Estensione servizio itinerario fare clic su Off-Ramp Extender.

    3. Nell'elenco a discesa Off-Ramp espandere SendWCFOrder e quindi fare clic su Invia gestori.

  17. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento modello RouteToFileFromWCF all'elemento modello SendPortFilterWCF .

  18. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento modello SendPortFilterWCF all'elemento modello SendWCFOrder .

  19. Dalla casella degli strumenti trascinare un elemento modello Routey Outport sul bordo destro di RouteBrokerService. Nell'Finestra Proprietà ItinerarioBrokerOutPort1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare Porta WCF.

    2. Nell'elenco a discesa Filtro fare clic su WCFFilter.

    3. Nell'elenco a discesa Resolver fare clic su ResolverBrokerRoute.

  20. Dalla casella degli strumenti trascinare un elemento modello Routey Outport al bordo inferiore di RouteBrokerService. Nell'Finestra Proprietà ItinerarioBrokerOutPort1 configurare le proprietà seguenti:

    1. Fare clic sulla proprietà Name e quindi digitare PORTA ASMX.

    2. Nell'elenco a discesa Filtro fare clic su ASMXFilter.

    3. Nell'elenco a discesa Resolver fare clic su ResolverBrokerRoute.

  21. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento modello di porta WCF all'elemento modello RouteToFileFromWCF .

  22. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento modello di porta ASMX all'elemento modello RouteToFileFromASMX .

Per esportare il modello da usare con il client di test di itinerario

Nota

È necessario esportare l'itinerario due volte: una volta in XML e una volta al database per testare il routing tramite il broker.

  1. In Visual Studio fare clic con il pulsante destro del mouse sull'area di progettazione dell'itinerario ChoiceRouter e quindi scegliere Esporta modello.

    Nota

    Viene visualizzata la versione XML dell'itinerario in Visual Studio.

  2. In Esplora risorse passare a C:\HowTos\Itinerari e quindi notare la creazione del codice XML di itinerario (ChoiceRouter.xml).

  3. In Visual Studio fare clic con il pulsante destro del mouse sull'area di progettazione dell'itinerario ChoiceRouter e quindi scegliere Esporta modello.

  4. Nella Finestra Proprietà fare clic su Esportazione itinerari di database nell'elenco a discesa Esportazione modelli.

  5. Nella Finestra Proprietà impostare la proprietà Database itinerario stringa di connessione per puntare al database di itinerario.

  6. Nell'elenco a discesa Proprietà Stato itinerario selezionare Distribuito.

  7. In Visual Studio fare clic con il pulsante destro del mouse sull'area di progettazione dell'itinerario ChoiceRouter e quindi scegliere Esporta modello.

Per testare l'itinerario

  1. Aprire l'applicazione di esempio client di test di itinerario usando il collegamento creato durante i prerequisiti per le attività di sviluppo (C:\HowTos\ESB.Itinerary.Test.exe - Collegamento).

  2. Nel client di test itinerari deselezionare la casella di controllo Usa servizio WCF e quindi fare clic su Carica itinerario.

  3. Nella finestra di dialogo Apri file itinerario passare a C:\HowTos\Itinerari. Selezionare ChoiceRouter.xmle quindi fare clic su Apri per caricare l'itinerario.

  4. Fare clic su OK per chiudere il messaggio "Itinerario caricato correttamente".

  5. Nel client test itinerari fare clic sul pulsante con i puntini di sospensione (...) accanto alla casella Carica messaggio .

  6. Nella finestra di dialogo Seleziona documento XML da caricare passare a C:\Patterns\HowTos. Selezionare NAOrderDoc.xml e quindi fare clic su Apri per caricare il messaggio di test.

  7. Fare clic sul pulsante Invia richiesta . Al termine del test, fare clic su OK per chiudere il messaggio di conferma visualizzato.

  8. In Esplora risorse passare a C:\HowTos\Out. Verificare che i messaggi ASMX%MessageID%.xml siano stati scritti in questa directory.

  9. Fare clic sulla casella di controllo Test client Di itinerario Usa servizio WCF . Nella casella Nome itinerario digitare ChoiceRouter e quindi fare clic sul pulsante Invia richiesta . Al termine del test, fare clic su OK per chiudere il messaggio di conferma.

  10. In Esplora risorse passare a C:\HowTos\Out. Verificare che i messaggi WCF%MessageID%.xml siano stati scritti in questa directory.

Risorse aggiuntive

Per altre informazioni, vedere i seguenti argomenti correlati: