Tópicos de Sistemas
de Informação A
Carlos Oberdan Rolim
Ciência da Computação
UDDI
(Universal Description, Discovery
and Integration protocol)
Motivação
Definição
UDDI cria uma plataforma padrão que possibilita que
companhias e aplicações encontrem e usem Web
Services de forma rápida, fácil e dinâmica
Permite a criação de registros centrais de serviços com
diferentes propósitos
Tem como objetivo ser um mediador do serviço, permitindo
que os clientes requisitantes encontrem um fornecedor do
serviço apropriado
Definição
Esforço de líderes de mercado de serviços eletrônicos
através do consórcio OASIS
Segundo a Organization for the Advancement of Structured
Information Standards, é um elemento central do grupo de
padrões que compõe a pilha de componentes dos serviços
web
Definição
A especificação UDDI define:
APIs SOAP utilizadas para publicar e obter informações de um registro
UDDI
Esquemas XML do modelo de dados do registro e do formato das
mensagens SOAP
Definições WSDL das APIs SOAP
Definições de registro UDDI (modelos técnicos - tModels) de diversos
sistemas de identificação e categorização, que podem ser utilizados
para identificar e categorizar registros UDDI
Origem
Criado em parceria com Ariba, IBM e Microsoft
Versão 1.0
lançada em Setembro 2000
Em Maio de 2001
Microsoft e a IBM lançaram, o primeiro site operador de UDDI, o
UDDI Registry.
Origem
Em Junho de 2001, foi anunciada a versão 2.0 de UDDI,
incluindo novas características contendo:
Suporte melhorado para internacionalização. Neste sentido, negócios
podem descrever eles próprios e seus serviços descritos em múltiplos
idiomas.
Suporte melhorado para descrever organizações complexas. Por
exemplo, para um negócio poder publicar unidades de negócio,
departamentos, ou divisões em empresas, e atrelá-los juntos sob um
único chapéu.
Um conjunto melhorado de opções de busca.
Versão atual 3.0
Fevereiro de 2005
Arquitetura Orientada-a-Serviço e UDDI
Links de
Documentos
WSDL
Publicação
API UDDI
Mensagens SOAP
Busca
Aplicação de Negócio
Aplicação de Negócio
Provedor do Serviço
Consumidor
do Serviço
O Processo da Descoberta de um
Serviço: Discovery
Discovery é o processo de localizar serviços na Web
através de registries.
Registries de serviços na Web são repositórios contendo
documentos que descrevem dados de negócios
Registries, também, proporcionam características tais como,
capacidade de busca e acesso programático para aplicações
remotas
O Processo da Descoberta de um
Serviço: Discovery
Usando um registry, uma organização que deseja utilizar,
por exemplo, um serviço para processar pagamentos de
tickets de alimentação, por exemplo, pode localizar todos os
serviços disponíveis publicamente, que proporcionam a
necessária funcionalidade.
A organização pode comparar serviços e então tomar a
decisão, de qual serviço, melhor se ajusta às necessidades
da organização.
Discovery pode ser caracterizado em Discovery direto ou
Discovery indireto.
Discovery direto
Discovery direto é o processo de obter dados a partir de um
registry mantido por um provedor de serviço.
Dados obtidos por Discovery direto são mais precisos e,
portanto, confiáveis, visto que a organização que provê a
informação também opera o serviço na Web.
Discovery indireto
Com discovery indireto, uma organização obtém dados
através de uma terceiro registry, cujos dados podem não ser
precisos, porque provedores de serviço poderiam não
atualizar informação nesse registry tão freqüentemente.
Quando realizando Discovery indireto, organizações devem
colocar a seguinte questão:
Quão freqüente, terceiros registries interagem com provedores de
serviço para garantir que os dados são ainda precisos?
Embora discovery indireto tenham seus “drawbacks”, ele
ainda permite avaliar serviços de vários provedores antes
do compromisso para usar um serviço particular.
Componentes UDDI
Núcleo constituído de duas partes:
UDDI é uma especificação técnica para construir um diretório
distribuído de negócios (businesses) e serviços na Web. A
informação UDDI é armazenada dentro de um formato específico XML,
definido por WSDL e XML Schema. A especificação inclui detalhes de
uma API própria para buscar dados existentes ou publicar novos dados.
UDDI Business Registry, também conhecido como “UDDI cloud
services” é uma implementação operacional completa da
especificação UDDI. Tal parte habilita qualquer um a buscar dados
UDDI existentes, e também, a qualquer empresa registrar-se a si
própria e seus respectivos serviços
Componentes UDDI
A informação capturada no contexto UDDI são classificadas
em três categorias principais:
Páginas brancas
Páginas amarelas
Páginas verdes
Páginas brancas
Páginas Brancas (White Pages)
incluem informação geral sobre uma empresa específica, como por
exemplo, nome de um negócio, descrição do negócio, informação de
contato, endereço, números de telefone, fax, ou mesmo incluir
identificadores de negócios (business identifiers), no formato de
classificações Dun & Bradstreet’s D-U-N-S (Data Universal Numbering
System), que são números de nove dígitos atribuídos a negócios.
UDDI versão 2.0 oferece suporte para identificadores específicos de
indústrias, tal como o sistema do Standard Industrial Classification
(SIC), o qual atribui identificadores numéricos únicos a indústrias. Por
exemplo, 7371 representa Serviços de Programação de Computadores
e 2621 representa Paper Mills.
Páginas amarelas
Páginas Amarelas (Yellow Pages)
incluem dados de classificação geral para qualquer empresa ou
serviço oferecido. Por exemplo, esses dados podem incluir a indústria,
o produto, ou códigos geográficos baseados sobre taxionomias
padronizadas.
Páginas verdes
Páginas Verdes (Green Pages)
contém informação técnica sobre um serviço na Web (Web service)
Geralmente, essa informação inclui um apontador (ponteiro) para uma
especificação externa e um endereço para invocar o serviço.
UDDI não é restrito a descobrir serviços baseados em SOAP. Ao
contrário, pode ser usado também, para descrever qualquer serviço,
desde uma única página Web ou endereços de email, até serviços
CORBA, Java RMI, ou mesmo, serviços EJB.
Tipos de registros previstos
Privado
registro interno
protegido por um firewall
isolado da rede pública.
acesso as tarefas administrativas e aos dados do registro é de forma
segura.
os dados não são compartilhados com outros registros
Analogia: intranet
Tipos de registros previstos
Semi-Privado
registro desenvolvido dentro de um ambiente controlado.
acesso para o mundo externo é controlado e é compartilhado apenas
com sócios externos confiáveis
tarefas administrativas podem ser delegadas a partes confiáveis
podem ser compartilhados dados com outros registros de um modo
controlado
Analogia: Extranet
Tipos de registros previstos
Público
Da perspectiva de um usuário final, um registro público parece ser um
serviço em uma “nuvem”.
Ainda que possam ser efetuadas funções administrativas de forma
segura, o acesso aos dados dos registros é essencialmente aberto e
público.
Os dados podem ser compartilhados ou transferidos para outros
registros.
Analogia: site web
Domínio público
Domínio semi-privado
UBR
Nodo 2
Registro
Publicar
Publicar
Privado
R
e
p
l
i
c
a
r
Registro
Privado
Registro
Privado
afiliado
Domínios compartilhados
Registro
Publicar
Privado
Afiliado
UBR
Domínio privado
Nodo 1
Diagrama de interação dos registros UDDI versão 3.
Estrutura de uma publicação UDDI
Baseado em XML
Tecnologia neutra de dados e permite descrever relações hierárquicas
de um modo natural
Usa XSD
UDDI XSDS definem alguns tipos centrais de centro de
informação que provê os tipos de informação que os
usuários e aplicações precisariam conhecer por usar um
serviço de rede particular
Junto, estes formam um modelo básico de informação e um
framework para interação de registros UDDI
Divide-se nos seguintes elementos:
businessService
businessEntity
bindingTemplate
tModels
Estrutura de uma publicação UDDI
businessEntity:
representa o provedor de um Web Service.
Apresenta dados de contato, categoria, serviços oferecidos,
identificadores de negócio de uma determinada organização / empresa.
01 <businessEntity businessKey="uuid:C0E6D5A8-C446-4f01-99DA-70E212685A40"
02 operator="http://www.ibm.com" authorizedName="John Doe">
03 <name>Cia Oi</name>
04 <description>descricao</description>
05 <contacts>
06 <contact useType="general info">
07 <description>Informacoes gerais</description>
08 <personName>Joao</personName>
09 <phone>0123-4567</phone>
10 <email>[email protected]</email>
11 </contact>
12 </contacts>
13 <businessServices> ... </businessServices>
14 <identifierBag>
15 <keyedReference TModelKey="UUID:8609D82E-FE1F-4E5B-B203-3CB14AD31423"
16 name="D-U-N-S" value="123456" />
17 </identifierBag>
18 <categoryBag>
19 <keyedReference TModelKey="UUID:C0C9FEF3-173F-414D-8A2B-5004328E5BB2"
20 name="NAICS" value="112343" />
21 </categoryBag>
22 </businessEntity>
Exemplo de businessEntity
Estrutura de uma publicação UDDI
businessService:
elemento filho do elemento businessEntity
descreve a função de negócio de um serviço.
Indicadores únicos que indicam as categorias as quais o Web Service
pertence (businessKey, serviceKey).
01 <businessService serviceKey="uuid:D6F1B765-BDB3-4837-828D-8284301E5A2A"
02 businessKey="uuid:C0E6D5A8-C446-4f01-99DA-70E212685A40">
03 <name>Oi Web Service</name>
04 <description>Eh um oi Web service</description>
05 <bindingTemplates> ... </bindingTemplates>
06 <categoryBag />
07 </businessService>
Estrutura de uma publicação UDDI
bindingTemplate:
referencia os detalhes técnicos do serviço, interface ou API.
01 <bindingTemplate serviceKey="uuid:D6F1B765-BDB3-4837-828D-8284301E5A2A"
02 bindingKey="uuid:C0E6D5A8-C446-4f01-99DA-70E212685A40">
03 <description>Hello World </description>
04 <accessPoint URLType="http">http://localhost:8080</accessPoint>
05 <TModelInstanceDetails>
06 <TModelInstanceInfo TModelKey="uuid:EB1B645F-CF2F-4868705F5904">
07 <instanceDetails>
08 <overviewDoc>
09 <description>Descricao WSDl</description>
10 <overviewURL>http://localhost/helloworld.wsdl</overviewURL>
11 </overviewDoc>
12 </instanceDetails>
13 </TModelInstanceInfo>
14 </TModelInstanceDetails>
15 </bindingTemplate>
Estrutura de uma publicação UDDI
tModels: qualquer conceito abstrato pode ser registrado,
como taxonomia, transportes, assinaturas digitais, etc.
Em muitos casos, o tModel contém o arquivo WSDL que
descreve a interface SOAP do serviço web, mas o tModel é
flexível o suficiente para descrever quase todo tipo de
serviço.
01 <TModel TModelKey="uuid:xyz987..."
02 operator="http://www.ibm.com" authorizedName="John Doe">
03 <name>Oi Interface Port Type</name>
04 <description>descricao</description>
05 <overviewDoc/>
06 <overviewURL>http://localhost/helloworld.wsdl</overviewURL>
07 </overviewDoc>
08 </TModel>
Estrutura de uma publicação UDDI
Estrutura UDDI
Modelo de dados
Modelo de dados
As versões 2 e 3 do UDDI adicionaram dois tipos para
facilitar a afiliação dos registros, são:
publisherAssertion: cria o relacionamento entre entidades no registro.
Subscription: localiza mudanças para uma lista de entidades.