Condividi tramite


Procedura: Trasformare un messaggio e instradare a un endpoint di servizio usando un modello di scambio di messaggi richiesta-risposta

Obiettivo

Questa sezione illustra come usare il linguaggio specifico del dominio (DSL) di ESB Designer per creare un itinerario di richiesta-risposta che può essere usato con una rampa bidirezionale. Verrà creata una lista di distribuzione per ricevere un messaggio, trasformare il messaggio, inviare il messaggio a un servizio e restituire il messaggio di risposta del servizio al mittente del messaggio originale.

In questo argomento di procedura si completeranno i passaggi seguenti:

  • Creare una lista di routing dell'itinerario con un servizio di itinerario di trasformazione che implementa una mappa di Microsoft BizTalk Server.

  • Configurare l'itinerario per instradare il messaggio trasformato a un endpoint di servizio.

  • Configurare l'itinerario per restituire il messaggio di risposta del servizio all'entità di invio originale.

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

Prerequisiti

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

Passaggi

Per creare un modello DSL di itinerariO ESB

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

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

  3. Nella finestra di dialogo Aggiungi nuovo elemento digitare RequestResponse nella casella Nome e quindi fare clic su Aggiungi.

Per configurare le proprietà dell'itinerario

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

    1. Nell'elenco a discesa Is Request Response (Risposta richiesta ) fare clic su True.

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

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

    4. Nella finestra di dialogo Seleziona file XML digitare C:\HowTos\Itineraries\RequestResponse 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, consente il test dell'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 ESB 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.Itinerary.Response.

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

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

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

  3. Fare clic con il pulsante destro del mouse sull'insieme Resolver dell'elemento del modello MapNAOrderToCNOrder 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 StaticallySpecifyTheMap.

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

    3. Nell'elenco a discesa Trasforma tipo fare clic su GlobalBank.ESB.DynamicResolution.Transforms.SubmitOrderRequestNA_To_SubmitOrderRequestCN.

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

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

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

    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.

  6. Fare clic con il pulsante destro del mouse sull'insieme Resolver dell'elemento modello RouteToCNService 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 StaticallySpecifyTheService.

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

    3. Nell'elenco a discesa Nome trasporto fare clic su WCF-BasicHttp.

    4. Fare clic sulla proprietà Transport Location (Posizione trasporto ) e quindi digitare http://localhost/ESB.CanadianServices/SubmitPOService.asmx.

    5. Fare clic sulla proprietà Spazio dei nomi di destinazione e quindi digitare http://globalbank.esb.dynamicresolution.com/canadianservices.

    6. Fare clic sulla proprietà Action e quindi digitare submitOrder.

  7. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento del modello MapNAOrderToCNOrder all'elemento del modello RouteToCNService .

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

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

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

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

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

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

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

  10. Nella casella degli strumenti fare clic su Connettore. Trascinare una connessione dall'elemento del modello RouteToCNService all'elemento del modello SendPortFilter .

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

  12. Fare clic con il pulsante destro del mouse sull'area di progettazione e quindi scegliere Convalida.

    Nota

    L'itinerario convalida; non è necessario connettere di nuovo l'off-ramp alla rampa per inviare di nuovo il messaggio di risposta all'entità richiedente. Usando una rampa bidirezionale, il messaggio finale viene restituito automaticamente all'entità richiedente.

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

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

    Nota

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

  2. Salvare tutti gli artefatti del progetto.

  3. In Esplora risorse passare a C:\HowTos\Itineraries. Si noti la creazione del codice XML dell'itinerario (RequestResponse.xml).

Per testare l'itinerario

  1. Aprire l'applicazione di esempio Client di test dell'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 dell'itinerario deselezionare la casella di controllo Usa servizio WCF .

  3. Nella sezione Opzioni servizio Web selezionare la casella di controllo Servizio bidirezionale e quindi fare clic su Carica itinerario.

  4. Nella finestra di dialogo Apri file itinerari passare a C:\HowTos\Itineraries. Selezionare RequestResponse.xmle quindi fare clic su Apri per caricare l'itinerario.

  5. Fare clic su OK per cancellare il messaggio Itinerario caricato correttamente .

  6. Nel client di test dell'itinerario fare clic sul pulsante con i puntini di sospensione (...) accanto alla finestra Carica messaggio .

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

  8. Fare clic sul pulsante Invia richiesta . Al termine del test, fare clic su OK per ignorare la conferma visualizzata.

  9. Nella casella Risultati notare che il nodo radice del messaggio è submitOrderResponse e lo spazio dei nomi predefinito è ... canadianservices.

    Nota

    Se il messaggio di risposta richiede una trasformazione aggiuntiva prima dell'invio della risposta all'entità richiedente, è necessario usare una pipeline contenente il componente server di inoltro ESB. Per un esempio di questa funzionalità, vedere l'esempio Installazione ed esecuzione di più servizi Web.

Risorse aggiuntive

Per altre informazioni, vedere i seguenti argomenti correlati: