FeaturesPluginsDocs & SupportCommunityPartners

Noções básicas do serviço de reserva de viagens


Conteúdo


Visão geral

O Serviço de reserva de viagens é um processo comercial de amostra fornecido com o NetBeans Enterprise Pack 5.5.

O Serviço de reserva de viagens age como um agregador lógico dos outros serviços e é baseado na lógica comercial típica dos sistemas de reserva de viagens, como descrito abaixo.

  • O processo presume que um cliente inicia o processo enviando uma mensagem que contém um documento de itinerário de viagem parcial.
  • O itinerário da viagem do cliente pode ter:
    • Nenhuma reserva pré-existente ou
    • Uma combinação de reservas pré-existentes de linha aérea, carro e/ou hotel.
  • O Serviço de reserva de viagens examina o itinerário do cliente de entrada e processa esse itinerário para conclusão.
  • Se o itinerário do cliente não contiver uma reserva de linha aérea pré-existente, o Serviço de reserva de viagens passará o itinerário para o respectivo serviço de parceiro, o Serviço de reserva de linhas aéreas, para adicionar a reserva de linha aérea.
  • O Serviço de reserva de linha aérea passa o itinerário modificado de volta para o Serviço de reserva de viagens.
  • O Serviço de reserva de viagens executa uma lógica semelhante nas reservas de carro e hotel. Em cada caso, ele delegará a provisão real da reserva para o Serviço de reserva de veículos e o Serviço de reserva de hotel.
  • Finalmente, o Serviço de reserva de viagens passa o itinerário completo de volta para o cliente original, concluindo o processo.

Para obter mais informações sobre como trabalhar com o NetBeans IDE, consulte a página Docs & Support no site na Web do NetBeans.


Pré-requisitos

Este tutorial presume que você possui algum conhecimento básico ou experiência de programação na linguagem e na plataforma Java e no NetBeans IDE.

Requisitos do sistema

Este tutorial presume que o seu sistema atende aos requisitos especificados na seção Requisitos do sistema das Notas de versão do NetBeans Enterprise Pack 5.5.

Software necessário para o tutorial

Antes de começar, instale o seguinte software em seu computador:

  • NetBeans IDE 5.5 com NetBeans Enterprise Pack 5.5 (download)

superior


Configurando o ambiente do tutorial

O tempo de execução JBI e o servidor de aplicativos Sun Java System deve ser configurado corretamente e estar em execução para que o aplicativo possa ser implantado.

Primeiro, realize as seguintes etapas para confirmar que o servidor JBI foi iniciado:

  1. Abra a janela Tempo de execução.
  2. Expanda o nó Servidores.
  3. Se o nó já contiver um servidor de aplicativos Sun Java, pule para a etapa 5.
  4. Se o nó não contiver um servidor de aplicativos Sun Java, siga estas etapas:
    1. Clique com o botão direito do mouse no nó Servidores e escolha Adicionar servidor.
    2. Na caixa de diálogo Adicionar instância do servidor, escolha Servidor de aplicativos Sun Java.
    3. Clique em Próximo.
    4. No Local da plataforma, especifique C:\Sun\AppServer. Esse é o caminho de instalação padrão do servidor de aplicativos, conforme definido pelo instalador do Enterprise Pack. Selecione Registrar domínio local padrão.
    5. Clique em Próximo.
    6. Forneça este nome de usuário e esta senha para o servidor de aplicativos: admin/adminadmin. Este é o nome de usuário e senha padrão definidos pelo instalador.
    7. Clique em Finalizar
  5. Clique com o botão direito do mouse no nó do Servidor de aplicativos Sun Java System e escolha Iniciar. Se a opção Iniciar não estiver disponível e se houver um triângulo verde ao lado do nó do Servidor de aplicativos Sun Java System, seu servidor já está em execução.

    Servidor de aplicativos em execução

superior


Criando um novo projeto com o projeto de amostra Serviço de reserva de viagens

Para criar um novo projeto usando a amostra do Serviço de reserva de viagens:

  1. No menu principal do IDE, escolha Arquivo > Novo projeto.
  2. Em Categorias, selecione Amostras > Service Oriented Architecture.
  3. Em Projetos, selecione Serviço de reserva de viagens.
  4. Clique em Próximo.

    Novo projeto

  5. Digite o nome de projeto e o local da sua escolha, ou aceite os padrões.
  6. Clique em Finalizar.
  7. A janela Projetos agora contém dois nós de projeto: um para TravelReservationService, um módulo BPEL, e um para TravelReservationServiceApplication, um projeto de aplicativo composto.

    Dois projetos

Demonstração
Exibir demonstração

Serviços de parceiro

O Serviço de reserva de viagens se comunica com seus serviços de parceiro através de suas interfaces públicas. Essas interfaces são definidas nos arquivos WSDL específicos do parceiro.
O IDE inclui um projeto EJB empacotado chamado ReservationPartnerServices. O projeto ReservationPartnerServices contém uma implementação básica EJB e baseada em JMS dos três serviços de parceiro. Esses serviços de parceiro são o Serviço de reserva de hotel, o Serviço de reserva de veículos e o Serviço de reserva de linhas aéreas.
Esses serviços da Web de parceiro devem ser implantados no servidor de aplicativos Sun Java empacotado para que você possa testar a execução do processo Serviço de reservas de viagens.

Essa implementação destina-se somente a servir como um harness de teste do processo do Serviço de reserva de viagens. A implementação dos serviços de parceiro não deve ser de nenhum interesse para o desenvolvedor do BPEL. Eles são meramente pré-requisitos para a testabilidade do Serviço de reserva de viagens.

Siga estas etapas para abrir e implantar o ReservationPartnerServices:

  1. Escolha Abrir > Abrir projeto no menu principal.
  2. Use o assistente para Abrir projeto para navegar para o diretório TravelReservationService.
    O diretório que contém o TravelReservationService também contém o ReservationPartnerServices empacotado.
  3. Selecione o ReservationPartnerServices e clique no botão Abrir pasta do projeto.

    Abrir projeto dos serviços de parceiro

  4. Clique com o botão direito do mouse em ReservationPartnerServices e escolha Implantar projeto. Isso implanta o ReservationPartnerServices.
  5. Verifique se o aplicativo ReservationPartnerServices foi implantado com êxito, realizando as seguintes etapas:
    • Alterne para a janela Tempo de execução e expanda o nó do Servidor de aplicativos Sun Java System.
    • Expanda o nó Aplicativos e expanda o nó Módulos EJB.

      Serviços de parceiro implantados

Demonstração
Exibir demonstração

superior


Implantando o projeto BPEL no servidor de aplicativos

Um projeto BPEL não pode ser implantado diretamente. Você deve adicionar um projeto BPEL, como um módulo JBI, em um projeto de aplicativo composto. Em seguida, você pode implantar o projeto de aplicativo composto. Desimplantar o projeto torna a composição do serviço disponível no servidor de aplicativos, permitindo, portanto, que suas unidades de serviço sejam executadas.

  1. Clique com o botão direito do mouse no nó do projeto de implantação TravelReservationServiceApplication, na janela Projetos, e escolha Adicionar módulo JBI.
    O assistente para Selecionar projeto se abre.
  2. Selecione TravelReservationService no assistente para Selecionar projeto.

    Selecione TravelReservationService

  3. Clique no botão Adicionar arquivos Jar do projeto.
  4. Na janela Projetos, expanda TravelReservationServiceApplication > Módulos JBI.
  5. Observe que o nó TravelReservationService.jar é adicionado.

    TravelReservationService.jar é adicionado

  6. Clique com o botão direito do mouse no nó do projeto TravelReservationServiceApplication e escolha Implantar projeto no menu pop-up.
  7. Na caixa de diálogo Aviso, verifique se o servidor de aplicativos Sun Java 9 está selecionado e clique em OK.
  8. A implantação foi bem sucedida, a seguinte mensagem for exibida na janela Saída:

    Construção bem sucedida

Demonstração
Exibir demonstração

superior


Realizando uma execução de teste do processo do Serviço de reserva de viagens

O recurso de execução de teste permite que os desenvolvedores do processo comercial testem seus processos. Os processos BPEL são implantados no tempo de execução do BPEL, que gerencia o ciclo de vida do processo. Um processo BPEL começa com uma atividade Receber ou Selecionar responsável por iniciar o processo.

Um processo BPEL também é um serviço da Web. Como qualquer serviço da Web, um processo BPEL possui um arquivo WSDL que descreve sua interface pública. Essa interface, por sua vez, descreve as operações e as mensagens que os clientes podem alcançar para criar a instância do processo. Durante a recepção de uma mensagem destinada a uma dessas atividades Receber, o tempo de execução BPEL criará uma instância do processo BPEL e entregará a mensagem para a instância do processo a fim de que seja processada.

Por exemplo, no caso de TravelReservationService.wsdl existe uma operação chamada buildItinerary. Esta é a operação que os clientes do TravelReservationService chamarão para iniciar uma conversação com o TravelReservationService.

<portType name="TravelReservationPortType">
	<operation name="buildItinerary">
      		<input message="tns:ItineraryIn"/>
      		<output message="tns:ItineraryOut"/>
      		<fault name="itineraryProblem" message="tns:ItineraryFault"/>
	</operation>
</portType>

Portanto, para testar um processo BPEL, você deve enviar ao tempo de execução BPEL uma mensagem destinada a uma das atividades Receber do processo.

Esta versão do BPEL Designer contém recursos para tornar esse teste uma experiência de apontar e clicar. Especificamente, com o projeto de amostra TravelReservationService, você pode enviar solicitações buildItinerary para o TravelReservationService implantado.

Procedimento de execução de teste

Para testar a execução do TravelReservationService:

  1. Expanda o nó TravelReservationServiceApplication. Este nó possui um subnó chamado Teste.
  2. Expanda o nó Teste. Haverá 4 subnós.
    • HasNoReservations - um itinerário de teste sem reservas
    • HasAirline - um itinerário de teste com uma reserva de linha aérea pré-existente
    • HasVehicle - um itinerário de teste com reservas de linha área e de veículo pré-existentes
    • HasHotel - um itinerário de teste com reservas de linha aérea, veículo e hotel pré-existentes

    Estes nós de teste são na verdade arquivos XML que contêm os dados da mensagem de SOAP. Cada um representa um caso diferente que pode ser usado para testar o TravelReservationService a fim de exercitar o processo de formas ligeiramente diferentes.

  3. Clique com o botão direito do mouse no nó HasNoReservations e escolha Testar no menu pop-up. Quando você seleciona a ação Teste, o IDE envia a mensagem de SOAP HasNoReservations para o tempo de execução BPEL. O IDE indicará se o teste foi bem sucedido.

O teste passou

Demonstração
Exibir demonstração

Observação: Se você realizar uma execução de teste em um dos cenários de teste antes de adicionar o módulo JBI ou implantar o projeto, a execução de teste falhará.

Observação: Para resolver problemas com pontos de extremidade do serviço ao realizar uma execução de teste, consulte a seção Portas de Guia do desenvolvedor para BPEL Designer: Solução de problemas para obter instruções.

superior


Depurando o processo do Serviço de reserva de viagens

Você pode usar o IDE para depurar o aplicativo BPEL de amostra.

Etapas gerais de depuração

Siga estas etapas ao depurar o aplicativo de amostra:

  1. Abra a janela Tempo de execução
  2. Expanda o nó do Servidor de aplicativos Sun Java System.
  3. No nó JBI, faça o seguinte:
    1. Expanda os mecanismos de serviço
    2. Abaixo do nó JavaEEServiceEngine, clique com o botão direito do mouse em com.sun.bpelse-1.0-2 para obter as propriedades.

      com.sun.bpelse-1.0-2

  4. Na folha Propriedades, altere DebugEnabled de Falso para Verdadeiro, e lembre-se da configuração da porta 3343. Observe que você só precisa alterar a entrada na folha Propriedades uma vez, quando começar as sessões de depuração.
  5. Selecione Executar > Anexar depurador no menu principal. O IDE exibe a caixa de diálogo Anexar.
  6. Adote o seguinte procedimento:
    1. Certifique-se de que o depurador BPEL esteja selecionado como o depurador.
    2. Certifique-se de que o nome do host seja localhost e a porta seja 3343.
    3. Clique em OK.

      Janela Anexar

    Demonstração
    Exibir demonstração

  7. Na janela Projetos, no nó TravelReservationService, clique duas vezes no arquivo TravelReservationService.bpel.
  8. No Editor de fontes, defina pontos de interrupção no código-fonte, clicando no número da linha do elemento em que você deseja colocar um ponto de interrupção. Usaremos o teste HasNoReservations, portanto, colocaremos pontos de interrupção nas atividades que chamam todos os três serviços de parceiro.
    1. Coloque um ponto de interrupção na atividade Receber ReceiveItinerary na linha 46. Essa é a atividade que inicia o processo. Se os números de linha não estiverem visíveis, escolha Exibir > Mostrar números de linha no menu principal.

      Defina um ponto de interrupção na fonte BPEL

      Você também pode definir pontos de interrupção no diagrama. Para isso, alterne para a exibição Design, clique com o botão direito do mouse no elemento e escolha Alternar ponto de interrupção no menu pop-up.

      Defina um ponto de interrupção no diagrama

      Uma caixa vermelha é mostrada na parte superior do elemento com um ponto de interrupção.

      Um ponto de interrupção no diagrama

      O comando de menu Alternar ponto de interrupção também está disponível para os elementos na exibição Lógica do navegador BPEL. Se a janela Navegador não estiver aberta, escolha Janela > Navegador no menu principal. Para os elementos com pontos de interrupção, o navegador mostra um quadrado vermelho pequeno, como o mostrado na captura de tela (ReceiveItinerary):

      Um ponto de interrupção no navegador

    2. Colocar pontos de interrupção em ReserveAirline (linha 74), ReserveVehicle (linha115) e ReserveHotel (linha 156) chama as atividades.

    Demonstração
    Exibir demonstração

  9. Agora, adicione inspeções ao projeto:
    1. Se a janela Inspeções não estiver visível, escolha Janela > Depuração > Inspeções no menu principal.
    2. Na exibição Fonte, vá para a linha 71 e copie a expressão XPath:
      not($ItineraryIn.itinerary/ItineraryInfo/ReservationItems/Item/Air)
      Como alternativa, selecione o elemento If HasAirline no diagrama e copie a expressão XPath a partir da linha Condição na janela Propriedades. Se a janela Propriedades não estiver visível, escolha Janela > Propriedades no menu principal.

      Copie a expressão XPath a partir da janela Propriedades

    3. Clique com o botão direito do mouse dentro da janela Inspeções e escolha Nova inspeção.
    4. Na caixa de diálogo Nova inspeção, cole a expressão XPath no campo Expressão de inspeção.
    5. Adicione duas inspeções para as expressões nas linhas 112 e 153. A janela Inspeções agora deve ter três itens:

      Janela Inspeções

  10. Na janela Projetos, clique com o botão direito do mouse em HasNoReservations no nó Teste em TraveReservationServiceApplication e escolha Executar.
  11. Quando o processo alcançar o primeiro ponto de interrupção, observe a janela Inspeções: ela deve conter a seqüência <Impossível avaliar a expressão> na coluna Valor de todas as três expressões. Isso acontece porque o processo parou no início da primeira atividade Receber e a mensagem ItineraryIn ainda não chegou.
  12. Clique em Continuar na barra de ferramentas Depuração (Ctrl+F5). O processo pára no segundo ponto de interrupção. Nesse momento, a mensagem ItineraryIn chegou e as condições das inspeções foram avaliadas. O valor de todas as três expressões deve ser definido como verdadeiro.
    Observação: As expressões retornam verdadeiro se a mensagem não contiver um item de reserva correspondente. Se você executar o teste HasAirline, o valor da expressão not($ItineraryIn.itinerary/ItineraryInfo/ReservationItems/Item/Air), que verifica se a mensagem de entrada não contém item de reserva de linha aérea, será definido como falso.
  13. Clique em Continuar. Observe o estado do processo BPEL na janela Instâncias do processo BPEL. Além disso, observe as variáveis mudarem seus valores à medida que o processo progride na janela Variáveis BPEL.

Demonstração
Exibir demonstração


Ações de depuração em um ponto de interrupção

Quando uma instância do processo é suspensa, você pode realizar qualquer uma das seguintes ações convencionais da barra de ferramentas Depurar (se a barra de ferramentas Depurar não estiver visível, escolha Exibir > Barras de ferramentas > Depurar):

  • Concluir sessão do depurador (Shift F5). Termina a sessão de depuração atual.
  • Continuar (Ctrl F5). Faz com que a instância do processo atual seja executada até que encontre o próximo ponto de interrupção ou até que a instância seja concluída.
  • Passar dentro (F7). Vai para a próxima atividade do BPEL. Essa etapa só é aceita na granularidade de atividade em termos da linguagem BPEL. Ela não entra em uma granularidade superior. Conforme você entra, o indicador da linha atual avançará e o conteúdo das janelas Variáveis BPEL e Inspeções pode conseqüentemente se alterar.


superior

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by