A especificação Descrição, Descoberta e Integração Universais (UDDI - Universal Description, Discovery, and Integration) define uma forma de publicar e descobrir informações sobre serviços Web. A UDDI tem duas funções: (1) é um protocolo baseado em SOAP que define a forma como os clientes da UDDI comunicam com os registos e (2) é um determinado conjunto de registos replicados.
Registar um serviço envolve quatro tipos de estrutura de dados de núcleo:
Para mais informações sobre tipos de dados UDDI, consulte os tópicos de referência relacionados no final deste tópico.
A Linguagem de Descrição de Serviço Web (WSDL - Web Service Description Language) é uma especificação padrão baseada em XML para a descrição de serviços Web. O WSDL define um formato XML para a descrição de serviços de rede como sendo um conjunto de terminais que operam em mensagens que contenham informações orientadas pelo documento ou pelo procedimento.
A descrição do serviço WSDL pode ser estruturada de várias formas. Contudo, para auxiliar a publicação e a localização de descrições de serviço WSDL num registo UDDI, os documentos WSDL consistem em duas partes:
Ao criar serviços Web com o ambiente em tempo de execução do Apache Axis, as ferramentas dos serviços Web criam um único documento WSDL ao gerar serviços Web a partir de beans Java ou de EJBs. Este documento WSDL contém tanto a interface de serviço, como os documentos de implementação.
Uma interface de serviço é descrita por um documento WSDL que contém os elementos de tipos, de importação, de mensagem, de portType e de associação. Uma interface de serviço contém a definição de serviço WSDL que será utilizada para implementar um ou mais serviços. É uma definição abstracta de um serviço Web e é utilizada para descrever um tipo de serviço específico. Este documento pode fazer referência a outro documento de interface de serviço ao utilizar um elemento de importação. As ferramentas dos serviços Web neste produto geram um documento de interface de serviço que contém apenas os elementos de mensagem e portType referenciados pelo documento de associação que contém apenas associações para o portType.
O documento de implementação de serviço contém os elementos de serviços. Um documento de implementação de serviço contém uma descrição de um serviço que implementa uma interface de serviço. Pelo menos um dos elementos de importação irá conter uma referência ao documento de interface do serviço WSDL. Contudo, um WSDL monolítico tal como o criado através da utilização dos ambientes em tempo de execução Axis e WebSphere não têm importações. Um documento de implementação pode conter referências a mais do que um documento de interface de serviço.
Um fornecedor de serviços aloja um serviço Web e torna acessível a utilização de protocolos, tais como SOAP/HTTP e SOAP/JMS. O serviço Web é descrito pelos documentos WSDL armazenados no servidor do fornecedor ou num repositório especial. Os documentos WSDL são referenciados pelos serviços empresariais UDDI (documentos de serviço) e pelos tModelos (documentos de associação). Estas pistas permitem a um solicitador de serviço descobrir um serviço Web.
Figura 1. Relação entre UDDI e WSDL.
A Figura 1 ilustra a relação entre UDDI e WSDL. O elemento de serviço WSDL referencia o elemento de associação WSDL. A URL do documento que contém o elemento de associação WSDL é publicada no registo de negócio UDDI como sendo um tModel. A URL do documento que contém o elemento de serviço WSDL é publicada no registo de negócio UDDI como sendo um businessService e contém informação sobre o bindingTemplate. Para mais informações sobre tipos de estrutura de dados de registo UDDI, consulte a secção de referência relacionada no final deste documento. Repare que a parte de importação do diagrama é opcional dependendo do ambiente em tempo de execução; um WSDL monolítico tal como o criado através da utilização dos ambientes em tempo de execução Axis e WebSphere não têm importações.
A implementação de serviço descreve uma instância de um serviço. A instância é definida através da utilização de um elemento de serviço WSDL. O elemento de serviço num documento de implementação de serviço é utilizado para publicar um businessService da UDDI. Ao publicar uma descrição de serviço WSDL, tem de ser publicada uma interface de serviço como sendo um tModel antes de uma implementação de serviço ser publicada como sendo um businessService.
Uma implementação de serviço é publicada num registo UDDI como sendo parte de um businessService com um ou mais elementos bindingTemplate. O businessService é publicado pelo fornecedor de serviços. É criado um novo businessService para um elemento de serviço definido no documento de implementação de serviço. É criado um novo elemento bindingTemplate dentro de um businessService para cada elemento porta definido num elemento de serviço.
Para mais informações sobre a relação entre o WSDL e o UDDI, consulte uddi.org/bestpractices.html.