Mapeamento de Gráficos de Dados SDO para Mensagens de Serviços da Web

A estrutura de mensagens de serviços da Web é descrita pelos gráficos de dados do Service Data Objects (SDO) Versão 1 para mensagens de serviços da Web.

Layout Geral de uma Mensagem de Serviços da Web

Uma mensagem de serviços da Web é descrita por uma sequência de formatações e três campos de metadados: operationName, messageName e messageType. A carga útil da mensagem é divida em três outras seções: cabeçalhos, anexos e corpo.

O nó Informação é o nível superior do gráfico de dados SDO para todas as mensagens de serviços da web. A seguinte tabela descreve as propriedades e os tipos associados do nó Info.

Nome da Propriedade Tipo de Propriedade Descrição da Propriedade
operationName java.lang.String Identifica a operação de WSDL associada à mensagem. Se o serviço de acesso a dados não puder identificar a mensagem, esse campo será nulo. Consulte o Identificando Mensagens de Serviços da Web.
messageName java.lang.String Identifica a mensagem de WSDL associada à mensagem. Se o serviço de acesso a dados não puder identificar a mensagem, esse campo será nulo. Consulte o Identificando Mensagens de Serviços da Web.
messageType java.lang.String Identifica o tipo de Serviço da Web da instância da mensagem. Esse campo pode conter os valores: input, output, fault, ambiguous. Se o serviço de acesso a dados não puder identificar a mensagem, esse campo será nulo. Consulte o Identificando Mensagens de Serviços da Web.
cabeçalhos java.util.List de objetos de dados. Contém uma lista de objetos de dados de entrada do cabeçalho. Cada cabeçalho SOAP na mensagem resulta em uma entrada de cabeçalho nesta lista. Consulte o Layout do Cabeçalho da Mensagem.
anexos java.util.List de objetos de dados. Contém uma lista de objetos de dados de entrada de anexo. Para mensagens SOAP com anexos, cada parte MIME na mensagem (exceto pela parte MIME contendo o envelope SOAP) é mapeada para uma entrada nessa lista. Consulte o Layout de Anexo da Mensagem.
body commonj.sdo.DataObject Um objeto de dados aninhado, que representa o corpo do envelope SOAP. Consulte o Layout do Corpo da Mensagem.

Identificando Mensagens de Serviços da Web

O processamento de mensagens depende de as mensagens terem ou não definições de WSDL. A quantidade mínima de informações necessárias para o processamento sem WSDL é "SOAP:". A quantidade mínima de informações necessárias para processamento com WSDL é: "SOAP:location,namespace,service,port". Se a cadeia de formatações não incluir todos esses cinco campos, o serviço de acesso a dados SOAP tentará processar as mensagens sem WSDL.

  • Processando Mensagens sem Definições WSDL: Se a sequência de formatações não incluir as informações completas do WSDL, o serviço de acesso a dados SOAP processará a mensagem sem tentar correspondê-la às definições no WSDL. Como resultado, operationName e messageName são configurados como nulos e messageType é configurado somente ao processar uma mensagem de falha.
  • Processando mensagens com definições WSDL: Se a sequência de formatações incluir <Local do WSDL>,<Espaço de nomes do serviço>,<Nome do serviço> e <Nome da porta>, os serviços de acesso a dados SOAP e Beans processarão a mensagem usando as definições WSDL do serviço.
    Nota: Em qualquer uma das seguintes circunstâncias, o processamento de mensagens SOAP falhará após fornecer todas as informações de WSDL necessárias:
    • o serviço de acesso a dados SOAP falha ao localizar o WSDL
    • o WSDL falha ao corroborar a mensagem

Quando o serviço de acesso a dados SOAP processa um pedido SOAP ou uma mensagem de resposta, ele tenta correspondê-lo com as definições de mensagens no WSDL. Normalmente, há uma definição correspondente e operationName, messageName e messageType são preenchidos apropriadamente. Se houver mais de uma definição correspondente, o serviço de acesso a dados seleciona uma definição de mensagem, preenche operationName e messageName. e configura messageType como ambiguous.

No processamento de mensagens de falha, a identificação é ligeiramente diferente. Em todos os casos a mensagem messageType é configurada como fault. Se a mensagem corresponder a uma definição de falha exclusiva no WSDL, as propriedades operationName e messageName também serão configuradas.

Layout do Cabeçalho da Mensagem

A lista de cabeçalhos contém dois tipos de entrada: entrada de cabeçalho ou entrada de cabeçalho de limite, dependendo de o cabeçalho ser ou não baseado em parte da mensagem.

O tipo de entrada do cabeçalho é usado para tratar cabeçalhos que atendem a um dos seguintes critérios:
  • o cabeçalho faz parte da mensagem modelada no WSDL
  • o cabeçalho faz parte da mensagem que não é modelada em WSDL, mas é baseado em uma parte da mensagem
Para obter um modelo desse cabeçalho, consulte Entrada do Cabeçalho.

O tipo de entrada do cabeçalho de limite é usado quando a ligação SOAP da mensagem ligou uma parte do corpo no anexo MIME. (isto ocorre quando você utiliza um elemento <MIME:content> para ligar uma parte da mensagem a outro anexo). Para obter a programação consistente da mediação, todos os dados do corpo são armazenados no nó do corpo no gráfico. Ao contrário da entrada do anexo local, uma entrada de anexo de limite é colocado na lista de anexos. A entrada do anexo de limite contém os metadados MIME para o anexo e o nome da parte da mensagem que contém os dados retirados desse anexo. Isso permite que mediações designadas aos anexos do processo localizem os dados na parte do corpo do gráfico de dados. Para obter um modelo desse anexo, consulte Entrada do Cabeçalho Limitado.

Entrada do Cabeçalho

Nome da Propriedade Tipo de Propriedade Descrição da Propriedade
mustUnderstand java.lang.Boolean Transporta o valor do atributo mustUnderstand no cabeçalho SOAP, se houver.
actor java.lang.String Transporta o valor do atributo actor no cabeçalho SOAP, se houver.
any commonj.sdo.Sequence Contêiner para o conteúdo do cabeçalho SOAP.

Entrada do Cabeçalho Limitado

Nome da Propriedade Tipo de Propriedade Descrição da Propriedade
mustUnderstand java.lang.Boolean Transporta o valor do atributo mustUnderstand no cabeçalho SOAP, se houver.
actor java.lang.String Transporta o valor do atributo actor no cabeçalho SOAP, se houver.
messagePart java.lang.String Contém o nome da parte da mensagem que transporta os dados do cabeçalho da mensagem.

Layout de Anexo da Mensagem

Os anexos da mensagem são manipulados de maneira semelhante em cabeçalhos e as suas instâncias preenchem as listas de anexos no nó Info.

Há dois tipos de entrada de anexo para tratar anexos MIME: entrada de anexo e entrada de anexo de limite.

A entrada de anexo é para anexos gerais: consulte Entrada do Anexo.

A entrada de anexo de limite contém elementos <MIME:content> que liga uma parte do corpo a um anexo MIME. Se estiver programando uma mediação, será necessário saber como localizar os dados dentro do gráfico. Para obter a programação consistente da mediação, os dados do anexo serão colocados no corpo da mensagem, referidos pelo nome da parte na entrada do cabeçalho, que inclui os outros metadados MIME. Para obter um modelo desse anexo, consulte Entrada do Anexo Limitada.

Entrada do Anexo

Nome da Propriedade Tipo de Propriedade Descrição da Propriedade
contentType java.lang.String Transporta o contentType da parte MIME representada pela entrada do anexo.
contentTransferEncoding java.lang.String Transporta o contentTransferEncoding da parte MIME representada pela entrada do anexo.
contentId java.lang.String Transporta o contentId da parte MIME representada pela entrada do anexo.
data byte[] Transporta o conteúdo do elemento MIME como uma matriz de byte.

Entrada do Anexo Limitada

Nome da Propriedade Tipo de Propriedade Descrição da Propriedade
contentType java.lang.String Transporta o contentType da parte MIME representada pela entrada do anexo.
contentTransferEncoding java.lang.String Transporta o contentTransferEncoding da parte MIME representada pela entrada do anexo.
contentId java.lang.String Transporta o contentId da parte MIME representada pela entrada do anexo.
messagePart java.lang.String Contém o nome da parte da mensagem que transporta os dados deste anexo.

Layout do Corpo da Mensagem

O layout do objeto de dados no corpo é definido pelo serviço WSDL. O tipo do objeto de dados deriva-se da definição da mensagem no WSDL. O objeto de dados contém uma propriedade para cada parte na definição da mensagem. O layout de cada parte da mensagem segue a convenção para mapear o Esquema XML no SDO. Consulte o Exemplo de Código de Serviços da Web para obter informações adicionais.

Mensagem de Falha de Serviços da Web

Se a mensagem for uma mensagem de falha, o campo messageType, no nó Info do gráfico, será configurado como "fault" e o corpo da mensagem terá as seguintes propriedades:

Nome da Propriedade Tipo de Propriedade Descrição da Propriedade
faultcode javax.xml.namespace.QName Transporta o valor faultcode do elemento Falha de SOAP
faultstring java.lang.String Transporta o valor faultstring do elemento Falha de SOAP
faultactor java.lang.String Transporta o valor faultactor do elemento Falha de SOAP
detalhe commonj.sdo.DataObject Transporta o conteúdo dentro do filho do detalhe do elemento SOAP Fault
Nota: A definição do elemento de detalhe usa curingas de atributo e elemento, para que o conteúdo do objeto de dados de detalhe contenha uma Sequência. Consulte o Exemplo de Código de Serviços da Web para obter informações adicionais.

Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rjy1111
Nome do arquivo: rjy1111.html