< Anterior | Próximo >

Lição 1.3: Incluindo Eventos, Assinaturas e Métricas

Antes de Iniciar
Antes de começar, você deve executar Lição 1.2: Criando modelos de monitor.
Por Que e Quando Desempenhar Esta Tarefa
Nesta lição você continuará a trabalhar no modelo do monitor. Para a primeira tarefa, verifique se importou os Recursos da Amostra no espaço de trabalho.

Incluindo Definições de Eventos

  1. Na visualização Explorador de Projetos, clique com o botão direito do mouse na pasta Definições de Eventos e clique em Importar.
  2. No assistente de Importação, clique em Geral > Sistema de Arquivos, em seguida, clique em Avançar.
  3. Clique em Procurar ao lado do campo do diretório From e, em seguida, localize e selecione o diretório de seu espaço de trabalho atual. Clique em OK.
  4. No lado esquerdo do painel está uma lista de diretórios dentro do espaço de trabalho. Selecione SampleResources. No lado direito está uma lista de arquivos. Selecione LimousinesEvents.xsd.
  5. Clique em Procurar localizado ao lado do campo da pasta Into.
  6. Selecione a pasta Limousines_Part_1 e clique em OK e, em seguida, clique em Concluir.

Incluindo Assinaturas de Eventos de Entrada

  1. Clique com o botão direito do mouse na definição Viagem MC e, em seguida, clique em Novo > Evento de Entrada. O assistente Criar Novo Evento de Entrada é aberto.
  2. Digite carDispatched no campo Nome. Este é o nome deste evento de entrada.
  3. Clique em OK. O painel à direita mostra os Detalhes do Evento de Entrada.
  4. Digite uma descrição breve desse evento de entrada. Por exemplo, digite relatório do evento de que uma limusine foi despachada para uma viagem.
  5. Role para baixo e procure os Detalhes do Tipo de Evento. Na tabela de Partes do evento, clique em Incluir. O assistente Criar um Tipo de Parte do Evento é aberto.
  6. Digite o conteúdo no campo Nome do assistente. O campo ID é preenchido com o mesmo valor automaticamente.
  7. No campo Tipo, clique em Selecionar Tipo. O assistente Selecionar Tipo de Dados de Parte do Evento é aberto.
  8. No assistente, selecione Escolher o tipo de dados dos esquemas XML acessíveis nesse projeto de monitor e expanda o arquivo LimousineEvents.xsd. Selecione lmo:dispatchLimousine e clique em Concluir.
  9. Clique em Concluir no assistente Criar um Tipo de Parte do Evento.
  10. Role para baixo até a seção Condição do Filtro.
  11. Dentro do campo Condição do Filtro, digite a expressão fn:exists(carDispatched/content/lmo:limousineId). Você pode utilizar o recurso Assistente de Conteúdo do produto para construir a expressão XPath. Para invocar o Assistente de Conteúdo, pressione Ctrl+Barra de Espaços.
  12. Role para baixo até a Expressão de Correlação. Dentro do campo Expressão de Correlação, digite a expressão carDispatched/content/lmo:tripId = tripKey.
  13. No campo Se Nenhuma Instância For Localizada, selecione Criar Nova Instância.
  14. No campo Se Uma Instância For Localizada, selecione Tratar como Erro.
  15. No campo Se Várias Instâncias Forem Localizadas, selecione Tratar como Erro.
  16. Salve o projeto.
Resultados
Execute esta tarefa repetindo as etapas anteriores utilizando os valores fornecidos na tabela a seguir para os eventos de entrada restantes.
Tabela 1. Assinaturas de Eventos de Entrada de Negócios de Limousines
  carDispatched passengerPickedUp passengerDroppedOff
Descrição evento relatando que uma limusine foi despachada para uma viagem evento relatando que o passageiro foi apanhado evento relatando a conclusão da viagem (chegada no destino)
Nome e identificador de parte do evento conteúdo Conteúdo conteúdo
Tipo de parte do evento lmo:dispatchLimousine lmo:pickUpPassenger lmo:dropOffPassenger
Caminho de parte do evento cbe:CommonBaseEvent/lmo:dispatchLimousine cbe:CommonBaseEvent/lmo:pickUpPassenger cbe:CommonBaseEvent/lmo:dropOffPassenger
Condições de Filtro fn:exists( carDispatched/content/lmo:limousineID ) fn:exists( passengerPickedUp/content/lmo:limousineID ) fn:exists( dropOffPassenger/content/lmo:limousineID )
Expressão de correlação carDispatched/content/lmo:tripID=tripKey passengerPickedUp/content/lmo:limousineID=limusine e tripStatus='apanhando passageiro' passengerDroppedOff/content/lmo:limousineID=limusine e tripStatus='passageiro a bordo'
Nenhuma instância localizada Criar nova instância Tratar como erro Tratar como erro
Uma instância localizada Tratar como erro Entregar para a instância Entregar para a instância
Várias instâncias localizadas Tratar como erro Tratar como erro Tratar como erro

Incluindo Definições de Métrica

  1. No esboço do modelo do monitor, clique com o botão direito do mouse na definição de contexto de monitoramento Viagem e, em seguida, clique em Novo > Métrica.
  2. Preencha o assistente Criar Nova Métrica com os seguintes valores: dropOffActualTime, dropOffActualTime e DateTime e clique em OK. A métrica é incluída no modelo do monitor.
  3. No painel à direita há informações adicionais que podem ser preenchidas para essa métrica. Por exemplo, digite a hora real da chegada do passageiro no campo descrição.
  4. Salve o projeto.
Resultados
Execute esta tarefa repetindo as etapas anteriores utilizando os valores fornecidos na tabela a seguir para as definições de métricas restantes.
Tabela 2. Métricas de Negócios de Limousine
Nome Descrição Tipo Valor padrão Outro
tripKey identificador exclusivo para esta viagem xs:string   Chave MC; comprimento <= 64
dropOffActualTime hora real da chegada do passageiro xs:dateTime    
dropOffScheduledTime a hora planejada da chegada do passageiro xs:dateTime    
dropOffAddress o endereço de destino da viagem xs:string   comprimento <= 256
driver o nome do motorista xs:string   comprimento <= 64
limusine o número da limusine despachada para esta viagem xs:integer    
passenger o nome do passageiro xs:string   comprimento <=64
pickUpAddress o endereço da saída do passageiro xs:string   comprimento <= 256
pickUpActualTime a hora real da saída do passageiro xs:dateTime    
pickUpScheduledTime a hora planejada da saída do passageiro xs:dateTime    
pickUpWasLate indicador de que a saída do passageiro demorou mais de 10 minutos xs:boolean fn:false()  
timeDispatched hora na qual o carro foi despachado para esta viagem xs:dateTime    
tripDuration a duração da viagem xs:duration    
tripStatus 'apanhando passageiro'/'passageiro a bordo'/'concluída a tempo'/'não concluída a tempo'/'desconhecido' xs:string 'desconhecido' comprimento <= 24

Mapeando Eventos de Entrada para Métricas

  1. No esboço do modelo do monitor, clique na métrica dropOffActualTime. Há informações adicionais sobre essa métrica no lado direito.
  2. Nas informações adicionais, role para baixo até a seção Expressões de Valor de Métricas e clique no botão Incluir.
  3. Clique no campo abaixo da coluna Expressão. O valor padrão no campo é <<Nenhuma expressão especificada>>.
  4. Digite passengerDroppedOff/content/lmo:timestamp nesse campo ou clique no botão com três pontos. A janela Diálogo da Expressão é aberta. Você pode digitar a expressão de caminho na janela Diálogo da Expressão. Como alternativa, você pode pressionar Ctrl+Barra de Espaço no teclado para abrir a janela do assistente de conteúdo. Expanda a árvore e navegue pelo caminho até que tenha selecionado o caminho inteiro.
  5. Pressione a tecla Enter e clique em OK. A expressão é exibida agora no campo.
  6. Salve o projeto.
Resultados
Execute esta tarefa repetindo as etapas anteriores utilizando os valores fornecidos na tabela a seguir para as expressões de mapa restantes.
Tabela 3. Mapas de Negócios de Limousine
Métrica Mapa
tripKey carDispatched/content/lmo:tripId
dropOffActualTime passengerDroppedOff/content/lmo:timestamp
dropOffScheduledTime carDispatched/content/lmo:dropOffTime
dropOffAddress fn:concat(carDispatched/content/lmo:dropOffAddress/lmo:street, ', ', carDispatched/content/lmo:dropOffAddress/lmo:city)
driver carDispatched/content/lmo:driver
limusine carDispatched/content/lmo:limousineId
passenger carDispatched/content/lmo:passenger
pickUpAddress fn:concat(carDispatched/content/lmo:pickUpAddress/lmo:street, ', ', carDispatched/content/lmo:pickUpAddress/lmo:city)
pickUpActualTime passengerPickedUp/content/lmo:timestamp
pickUpScheduledTime carDispatched/content/lmo:pickUpTime
pickUpWasLate if ( fn:exists( pickUpActualTime ) ) then pickUpActualTime > pickUpScheduledTime+ xs:dayTimeDuration('PT10M') else pickUpWasLate
timeDispatched carDispatched/content/lmo:timestamp
tripDuration if (fn:exists(dropOffActualTime) and fn:exists(timeDispatched)) then dropOffActualTimel - timeDispatched else tripDuration
tripStatus if ( fn:exists( dropOffActualTime ) ) then ( if ( dropOffActualTime <= dropOffScheduledTime ) then 'completed on time' else 'completed not on time' ) else if ( fn:exists( pickUpActualTime ) ) then 'passenger on board' else if ( fn:exists( timeDispatched ) ) then 'picking up passenger' else 'unknown'

Ponto de Verificação da Lição

Agora você está pronto para implementar o modelo do monitor. Lição 1.4: Implementando o modelo de monitor.




Feedback

(C) Copyright IBM Corporation 2005, 2008. All Rights Reserved.
This information center is powered by Eclipse technology. (http://www.eclipse.org)
< Anterior | Próximo >