Upload
dinhcong
View
215
Download
0
Embed Size (px)
Citation preview
LEONARD CHUCRE DE MORAES
TIAGO MARCON TRICHEZ
DESENVOLVIMENTO DE UM UDDI COM SUPORTE A
WEB SEMANTICA
Florianopolis
2010
LEONARD CHUCRE DE MORAES
TIAGO MARCON TRICHEZ
DESENVOLVIMENTO DE UM UDDI COM SUPORTE A
WEB SEMANTICA
Trabalho de conclusao de curso apresentadocomo parte das atividades para obtencao dotıtulo de Bacharel em Sistemas de Informa-cao da Universidade Federal de Santa Cata-rina - UFSC, departamento de Informatica eEstatıstica - INE.
Orientador:
Prof. Dr. Fernando Augusto Da Silva Cruz
Florianopolis
2010
Trabalho de conclusao de curso sob o tıtulo “ Desenvolvimento de um UDDI com
Suporte a Web Semantica ”, defendido por Leonard Chucre de Moraes e Tiago Marcon
Trichez, e aprovado 20 de maio de 2010, em Florianopolis, Estado de Santa Catarina, pela
banca examinadora constituıda pelos professores:
Prof. Dr. Fernando Augusto Da Silva CruzUniversidade Federal de Santa Catarina
Prof. Dr. Jose Leomar TodescoUniversidade Federal de Santa Catarina
Prof. Dr. Frank SiqueiraUniversidade Federal de Santa Catarina
Este trabalho e dedicado aos nossos familiares
e professores cuja persistencia, sabedoria e
companheirismo nos guiaram.
AGRADECIMENTOS
Ao termino deste trabalho, deixo aqui meus sinceros agradecimentos:
– a Deus por tudo;
– ao Prof. Dr. Fernando Augusto Da Silva Cruz, por toda dedicacao, paciencia e
estımulo em sua orientacao;
– a todos os professores do Departamento de Informatica e Estatıstica da Universidade
Federal de Santa Catarina;
– Aos professores Prof. Dr. Frank Siqueira e Prof. Dr. Jose Leomar Todesco pelas
valiosas sugestoes;
– a minha famılia, pelo incentivo e seguranca que me passaram durante todo esse
perıodo;
– aos amigos do curso de Sistemas de Informacao pelo agradavel convıvio;
– a todos que direta ou indiretamente contribuıram para a realizacao deste trabalho;
“ Antes sonhava. Hoje, nao durmo mais.”
Dito popular que expressa que a velocidade da evolucao tem um preco.
RESUMO
A quantidade de servicos web cresceu muito nos ultimos anos. A busca de um determinadoendereco, o cadastro para compras on-line, lista de eventos, ate informacoes de produtos eprecos. Consequentemente a busca por esses servicos tambem cresceu na mesma propor-cao, entretanto encontrar o servico desejado esta cada vez mais difıcil. Isso se torna umproblema ja que existem poucos locais que centralizam esse conjunto de servicos, ondepoderia-se acessar e efetuar a pesquisa necessaria. Existem as aplicacoes que ja fazemessa funcao, mas nao contem mecanismos de pesquisas eficientes, fazendo assim com quemuitas vezes nao se encontre o que se deseja. O trabalho seguiu em direcao a uma solucaopara esse problema, onde foi implementado um prototipo de repositorio que centralizaservicos web, tornando-se um local unico de acesso, localizacao e distribuicao dos servi-cos, contudo o repositorio tem embutido um pequeno sistema de pesquisa mais eficiente,utilizando-se de tecnicas e tecnologia atuais e disponıveis, e levando em consideracao asemantica das informacoes inseridas para essas pesquisas, dando mais significado e con-texto a pesquisa efetuada. Isso tudo com a finalidade de facilitar a publicacao e procurade um determinado servico ou conjunto de servicos.
Palavras-chave: UDDI, Web Semantica, Ontologias, implementacao, Web Services, XML,SOAP, RDF, OWL, SPARQL.
ABSTRACT
The amount of web services has grown in recent years. Since the search for a particu-lar address, the record for online shopping, list event, to request verification of productand price of products, and therefore the search for these services also increased in sameproportion, however find the desired service is increasingly difficult. This becomes a pro-blem as there are few places that centralize this set of services, which could be accessedand make the necessary research, but applications that do not contain mechanisms forefficient searches, thereby making often is not what you want. The proposal follows thework toward a solution to this problem, which will be implemented a prototype repositoryto centralize web services, becoming a single place of access, location and distribution ofservices, however the repository have built a small research system more efficient, usingthese techniques and current technology and available, and taking into account the se-mantics of the information entered for this research, giving more meaning and context ofthe research done. All this with the order to facilitate the publication and search for aspecific service or set of services.
Keywords: UDDI, Web Semantic, Ontologies, implementation, Web Services, XML, SOAP,RDF, OWL, SPARQL.
SUMARIO
Lista de siglas e reducoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 APRESENTACAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14
1.1 MOTIVACAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14
1.2 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15
1.2.1 OBJETIVO GERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15
1.2.2 OBJETIVOS ESPECIFICOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15
1.3 JUSTIFICATIVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15
1.4 METODOLOGIA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 16
2 CONCEITOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
2.1 CONCEITOS GERAIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
2.2 UDDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 19
2.2.1 WEB SERVICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
2.2.2 APACHE AXIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22
2.3 WEB SEMANTICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22
2.3.1 ENSAIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24
2.3.2 SOLUCAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 25
2.3.3 COMPONENTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 25
2.4 ONTOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27
2.4.1 FERRAMENTAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27
2.5 CODIGO ABERTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28
2.5.1 DEFINICAO OPEN SOURCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28
3 CONSIDERACOES FINAIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30
Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 31
LISTA DE SIGLAS E REDUCOES
API Application Programming Interface
DFSG Debian Free Software Guidelines
DTD Document Type Definition
EAI Enterprise Application Integration
ERP Enterprise Resource Planning
FSF Free Software Foundation
GGG Giant Global Graph
HTML Hypertext Markup Language
HTTP Hypertext Transfer Protocol
IA Inteligencia Artificial
IDE Integrated Development Environment
JDBC Java Database Connectivity
ontoKEM ontology Knowledge Engineering Managment
OSI Open Source Initiative
OWL Ontology Language Overview
RDF Resource Description Framework
RDFS Resource Description Framework Schema
RIF Rule Interchange Format
UDDI Universal Description Discovery and Integration
URI Uniform Resource Identifier
URL Uniform Resource Locator
W3C Word Wide Web Consortium
WEB Semantica Stack WSS
WWW World Wide Web
XML Extensible Markup Language
XMLS Extensible Markup Language Schema
INTRODUCAO
A utilizacao da internet e evidente, seja atraves do uso de email, acessos e publicacoes
em blogs, mensagens em redes sociais e ate bate-papo em sites de relacionamento, a
comunicacao entre pessoas e o foco principal. Contudo a internet esta sendo usada para
mais funcoes, e entre ela esta a comunicacao entre pessoas e sistemas – e mais recentemente
– entre sistemas e sistemas. Visando o compartilhamento de informacoes e a necessidade
de interoperabilidade entre esses sistemas, surge os Web Services, vindo como solucao
para uma melhor comunicacao entre sistemas distribuıdos.
Atraves de um conjunto de novos conceitos de interoperabilidade como o XML, o
SOAP e o UDDI, os Web Services vieram facilitar a comunicacao entre as aplicacoes que
residem em multiplas plataformas, usando diferentes modelos de objetos e baseados em
linguagens diferentes. Web Services e uma das tecnologias mais adequadas para comuni-
cacao entre sistemas, tendo a comunicacao entre os servicos padronizada, possibilitando
a independencia de plataforma e de linguagem de programacao. Web Service e uma apli-
cacao que aceita solicitacoes de outros sistemas atraves da internet. Observa-se que Web
Services sao servicos que visam facilitar o processamento distribuıdo em sistemas distin-
tos. Estes servicos sao baseados em um conjunto de padroes da Internet definidos pelo
W3C. Possui interfaces que podem ser descobertas e definidas atraves de artefatos XML,
e que suporta interacoes diretas com outros softwares utilizando mensagens XML atraves
de protocolos padrao da internet. O principal fator para esta aceitacao, e o fato dele ser
baseado em protocolos abertos que se utilizam de tecnologias estabelecidas na internet,
como HTTP e XML. Tem-se como exemplo de Web Services a busca por enderecos, a
busca de precos de produtos de varios sites de compra, entre outros.
Toda essa disponibilidade de servicos leva a uma grande dificuldade de encontrar o
servico desejado em meio a uma gama de servicos e servidores disponıveis, todavia pode-se
utilizar um diretorio universal de registro de web services, um repositorio centralizador,
onde seriam encontradas informacoes sobre as empresas fornecedoras de servicos e infor-
macoes dos proprios servicos. Esse repositorio e conhecido como UDDI. E uma iniciativa
em desenvolvimento no ambito do consorcio industrial com objectivo de acelerar a comu-
nicacao e utilizacao dos Web Services, pela proposta de um servico de registo de nomes
de organizacoes e de descricao do servico, que providencia tres funcoes principais, a publi-
cacao que permite a uma organizacao divulgar seus servicos, a descoberta que permite ao
cliente, procure e encontre um determinado servico e a ligacao que possibilita ao cliente,
estabelecer a ligacao e interagir com o servico. Mesmo tendo um repositorio que contenha
essas funcionalidades, encontra-se outro problema ao utilizar os servicos de UDDI atuais,
mais especificamente nas buscas dos servicos, isso devido aos termos que sao inseridos
para se efetuar a pesquisa. E necessario que o cliente informe os termos corretos a fim
de encontrar o servico desejado, e nem sempre ele tem ciencia dos termos que foram as-
sociados ao servico, isso faz com que o servico nao seja encontrado, e consequentemente,
nao seja utilizado. Uma proposta para melhorar essa busca – ou dar mais significado aos
termos inseridos – e a utilizacao se semantica, no caso utilizando a Web Semantica.
A Web semantica e uma extensao da Web atual, que permite pessoas e sistemas tra-
balharem em cooperacao. A Web semantica interliga significados de palavras e tem como
finalidade atribuir um sentido aos conteudos publicados de modo que seja perceptıvel a
humanos e computadores. O objectivo inicial da Web semantica nao e desenvolver tecno-
logias e linguagens que tornem a informacao legıvel para as maquinas. A finalidade passa
pelo desenvolvimento de um modelo tecnologico que permita a partilha global de conhe-
cimento assistido por maquinas. A integracao das linguagens ou tecnologias XML, RDF,
arquiteturas de metadados, ontologias, agentes computacionais, entre outras, favorecera
o aparecimento de servicos Web que garantam a interoperabilidade e cooperacao.
Tendo em vista esse contexto e as evolucoes que ocorrem atualmente nos sistemas
informatizados que vem a nossa proposta de trabalho, onde sera apresentado a imple-
mentacao de um prototipo de UDDI, que possui elementos semanticos com a finalidade
de melhorar as buscas dos servicos disponibilizados nesse repositorio. O desafio do pro-
jeto esta exatamente em encontrar meios de interligar essas duas tecnologias, que estao
caminhando para o mesmo ponto – UDDI e Web Semantica – evoluindo e facilitando a
utilizacao de servicos disponıveis na internet. Alem disso o projeto sera feito sobre uma
licenca open-source, com o intuito de que seja disponibilizado de forma gratuita, dando
assim oportunidade de possıveis manutencoes e evolucoes dadas pela comunidade.
14
1 APRESENTACAO
1.1 MOTIVACAO
Com o aumento na demanda de interoperabilidade da informacao entre usuarios e
processos no setor industrial, que se fortifica a medida que a informacao se estabelece
como um fator de producao, e juntamente com a arquitetura atual dos sistemas que nao
preve essa interoperabilidade, se faz necessaria uma tecnologia capaz de ultrapassar as
dificuldades estabelecidas por sistemas legados e fornecer a interoperabilidade necessaria
para a nova regra de negocio, suprindo a demanda na troca de informacoes.
A interoperabilidade e a capacidade que sistema tem de se comunicar com outro
sistema de forma transparente. Para um sistema ser considerado interoperavel, e muito
importante que ele trabalhe com padroes abertos. Independente do sistema, atualmente
se caminha cada vez mais para a criacao de padroes para sistemas.
Uma tenologia empregada na interoperabilidade da informacao sao os Web Services,
que trabalham com padroes abertos, onde o sistema com WS se tonar uma solucao na in-
tegracao e na comunicacao entre diferentes aplicacoes, possibilitando que novas aplicacoes
possam interagir com sistemas legados desenvolvidos em diferentes plataformas. Essas
aplicacoes podem estar em diferentes linguagens, pois suas informacoes sao traduzidas
para uma linguagem universal, o formato XML.
Para a representacao e estruturacao dos dados nas mensagens recebidas/enviadas dos
Web Services e utilizado o XML. As chamadas de operacoes sao codificadas no protocolo
SOAP. Os servicos sao descritos usando a linguagem WSDL. O processo de publica-
cao/pesquisa/descoberta de Web Services utiliza o protocolo UDDI. Mas existem poucos
servidores UDDI gratuitos e mais raros ainda servidores livres. O intuito do projeto e
desenvolver um servidor UDDI com diferencias, sendo livre (open source) e publico.
15
1.2 OBJETIVOS
1.2.1 OBJETIVO GERAL
Esse projeto tem como objetivo criar um servico facilitador para a publicacao , des-
coberta e ligacao de servicos oferecidos pelas organizacoes atraves de uma aplicacao open
source, sera desenvolvimento de um UDDI, Open Source e com Web Semantica.
1.2.2 OBJETIVOS ESPECIFICOS
Os objetivos especıficos deste trabalho sao:
1. Pesquisar o funcionamento dos protocolos dos servicos de web services.
2. Pesquisar os padroes de descoberta e publicacao de servicos de web services.
3. Pesquisar os fundamentos dos projetos open source
4. Pesquisar sobre as tecnologias empregadas
5. Pesquisar sobre o aplicacao da web semantica
6. Criar um plano basico para elaboracao do projeto
7. Avaliar a possibilidade de implementacao do projeto
8. Definir requisitos de implementacao
9. Definir as arquiteturas necessarias ao desenvolvimento da aplicacao
10. Implementar
11. Executar testes necessario
12. Implantar
13. Disponibilizar o projeto open source dentro de um domınio publico.
1.3 JUSTIFICATIVA
Com o aumento na demanda de interoperabilidade da informacao entre usuarios e
processos no setor industrial e juntamente com a arquitetura atual dos sistemas que nao
16
preve essa interoperabilidade, se faz necessaria uma tecnologia capaz de ultrapassar as
dificuldades e suprir a demanda na troca de informacoes. Uma tenologia empregada
nesse contexto, sao os Web Services que trabalham com padroes abertos, possibilitando
que novas aplicacoes possam interagir com sistemas legados desenvolvidos em diferentes
plataformas e diferentes linguagens.
Web Services necessitam de protocolos e padroes abertos para interoperar, um desses
protocolos e o UDDI responsavel pelo processo de publicacao/pesquisa/descoberta dos
servicos. Mas como existem poucos servidores UDDI gratuitos e livres, desenvolver um
servidor UDDI livre (open source) e publico se torna uma necessidade para agilizar o
processos de troca de informacao entre sistemas, processos e organizacoes.
O projeto sera desenvolvido com uma licenca open source, sera publicado e ficara dis-
ponıvel para comunidade, para futuras implementacoes e manutencao. Um UDDI utiliza
os modelos tecnicos (tModels) para identificar e categorizar servicos, no projeto serao uti-
lizados os conceitos da Web Semantica, com uma ontologia de tarefa para classificacao dos
servicos, utilizando-se de ferramentas como ontoKEM e Protege, interligando significados
de palavras e tendo como finalidade atribuir um sentido aos conteudos publicados, sendo
um facilitador na tarefa de descoberta, tarefa que permite ao cliente, procure e encontre
um determinado servico.
1.4 METODOLOGIA
O projeto sera desenvolvido com uma licenca open source, sera publicado e ficara
disponıvel para comunidade para futuras implementacoes e manutencao. Um projeto open
source possui uma vida util garantida, pois a comunidade possui recursos humanos amplo
capaz de manter ativo, atualizado e dar suporte ao sistema. Possuira uma semantica, no
lugar dos tModels utilizados atualmente por UDDIs, que interliga significados de palavras
tendo como finalidade atribuir um sentido aos conteudos publicados, sendo um facilitador
na tarefa de descoberta, tarefa que permite ao cliente, procure e encontre um determinado
servico.
Utilizando de tecnologias como WS, XML, SOAP e WSDL para a integracao de sis-
temas e na comunicacao entre diferentes aplicacoes juntamente com o UDDI que sera de-
senvolvido, serao compridas as tres funcoes principais do UDDI: a publicacao que permite
a uma organizacao divulgar seus servicos, a descoberta que permite ao cliente, procure
e encontre um determinado servico e a ligacao que possibilita ao cliente, estabelecer a
17
ligacao e interagir com o servico.
Com um prazo estimado em oito meses para cumprir todas as etapas do projeto,
divididos em dois meses para pesquisa, cinco meses para desenvolvimento e o perıodo
final para implantacao, testes e correcoes, alem da apresentacao a comunidade academica.
18
2 CONCEITOS
2.1 CONCEITOS GERAIS
O XML (eXtensible Markup Language) e atualmente a escolha mais usada quando se
quer representar dados, e o XML Schema ou XSD, quando se quer representar os tipos
de dados. A troca de informacoes vem com o protocolo SOAP (Simple Object Access
Protocol) uma vez que e um protocolo leve. Ele e divido em duas partes, a primeira trata-
se de um conjunto de regras de como utilizar o XML no ambito da representacao os dados,
e a outra e associada ao protocolo HTTP e o formato das mensagens. Essa parte e uma
convencao de como representar as chamadas de procedimentos remotos (RPCs). Uma vez
que os servicos web que serao chamados sao desconhecidos, portanto e necessario descreve-
los. Para fazer essa descricao, ou documentacao das mensagens que os Web services
aceitam e geram, e usado o WSDL, Web Service Description Languagem (BOOTH et al.,
2004). Essa forma de fazer as coisas, esse padrao, facilita o desenvolvimento de aplicativos
e integracoes feitas pelos desenvolvedores e ferramentas. Nesse ponto ja foram atendidas
quase todas as especificacoes, restando apenas duas, as quais sao: um mecanismo para
localizar os servicos e um mecanismo para descobrir os provedores de servicos. Para
localizacao dos servicos, e mostrado o protocolo Disco (Discovery Protocol), o qual define
um formato para um documento chamado Discovery, e um protocolo para devolve-lo
(W3C, 2004). Assim, possibilitando a localizacao dos servicos, em um Web site conhecido.
Para atender a especificacao de um mecanismo para descobrir os provedores de servicos,
aparece o UDDI (Univesal Description, Discovery, and Integration), sendo um mecanismo
para os fornecedores anunciarem a existencia dos seus servicos, e para que os consumidores
possam localiza-los (W3C, 2004). Muito utilizado nos dias atuais. Definindo um Web
Service como um servico de software publicado na Web atraves do SOAP, descrito com
um arquivo WSDL e registrado em UDDI. Os Web Services prometem ser capazes de
tornar as operacoes entre os servicos altamente distribuıdos e heterogeneos hospedados
na Web, mais ricas, eficientes e dinamicas (BOOTH et al., 2004). Muito esforco tem sido
feito com o intuito de atingir essas metas, alguns exemplos sao o SOAP, WSDL e UDDI. A
19
industria tambem tem se esforcado bastante para produzir ferramentas para dar suporte
a esses tipos de aplicacoes, como IBM WebSphere, Open Net Environment and JiniTM
Network technology da SUN, DOT Net da Microsoft’s, entre outros. Outras entidades
tambem tem aplicado recursos em pesquisas que usam ou acrescentam vantagens aos Web
Services. Contudo ainda exite muito trabalho a ser feito, em particular, a possibilidade
de automatizar o descobrimento, a composicao e o monitoramento de conjuntos de Web
Services.
2.2 UDDI
O UDDI e um padrao desenvolvido para fornecer um diretorio de busca para os ne-
gocios e seus servicos. E uma especificacao tecnica que tem como objetivo descrever, des-
cobrir e integrar Web Services, e um elemento central do grupo de padroes que compoe
a pilha de componentes dos servicos web (W3C, 2004). Ele funciona como um mediador
entre o servico a ser disponibilizado e o cliente, ou seja, o seu objetivo e possibilitar que
os clientes requisitantes encontrem o fornecedor do servico. Encontra-se muitos exemplos,
entretanto o que mais se aproxima e faz entender melhor o conceito, e a analogia entre o
UDDI e uma lista telefonica, isso porque ele pode ser divido em ‘paginas’ com tres cores
distintas, assim como e feito em uma lista telefonica.
Paginas Branca: contem a informacao sobre o nome, endereco e o numero detelefone dos fornecedores do servico, alem de outras possıveis informacoes.
Paginas Amarelas: contem as listagens comerciais baseadas nos tipos dessesnegocios, de maneira organizada por categoria especıfica ou regioes demo-graficas.
Paginas Verdes: sao usadas para indicar os servicos disponibilizados porcada negocio, incluindo as informacoes tecnicas envolvidas na interacao como servico.
A arquitetura dos Servicos Web segue o conceito da arquitetura SOA, que e a arqui-
tetura orientada a servicos. Este conceito define tres papeis:
• Requisitante de servicos: aquele que procura o servico, o cliente, podendo ser uma
pessoa ou um sistema.
20
• Provedor de Servico: aquele que fornece o servico, o fornecedor, podendo ser uma
pessoa ou um sistema.
• Broker de servico: aquele que interliga, conecta, as duas partes anteriores.
O UDDI faz o papel de broker de servico, que possibilita ao requisitante encontrar o
provedor de um servico. Ele providencia tres funcoes principais, conhecidas como publi-
cacao, descoberta e ligacao:
• Publicacao: permite que um fornecedor divulgue os seus servicos.
• Descoberta: permite que o cliente, busque e encontre um servico.
• Ligacao: permite que o cliente possa manter uma conexao e interagir com o servico.
Segundo Booth, pode-se descrever o funcionamento desta arquitetura nos tres passos
seguintes: O primeiro diz respeito a publicacao, onde o fornecedor de servicos entra em
contato com o UDDI, se registra, informa os servicos disponıveis e onde encontra-los. O
segundo passo e realizado pelo Consumidor, que utiliza os metodos de busca fornecidos
pelo UDDI para encontrar as informacoes desejadas sobre entidades e servicos. De posse
das informacoes necessarias, o consumidor pode prosseguir para o ultimo estagio, onde se
comunica diretamente com o fornecedor, utilizando um de seus servicos.
A interacao entre o UDDI e os demais elementos tambem e realizada atraves do
protocolo SOAP, sendo ele proprio um Servicos Web. Mas sua especificacao ja define
alguns pontos basicos deste servico, sendo o protocolo utilizado o HTTP. Sua comunicacao
e realizada atraves de mensagens descritas na API do UDDI. Esta API descreve, para cada
metodo, a estrutura XML que deve estar contida dentro do elemento Body no pacote
SOAP, assim como a estrutura que sera retornada. A API e seus metodos sao descritos
e exemplificados em um capıtulo adiante. Mas antes de ver a API, e necessario saber a
estrutura em que os dados sao descritos em um UDDI.
2.2.1 WEB SERVICE
Um Web Service e um componente, ou uma unidade logica de aplicacoes, as quais sao
acessıveis atraves de protocolos de Internet. Ele define como componentes, os servicos que
possuem uma funcionalidade, a qual pode ser reutilizada sem a preocupacao de com ela
e implementada (W3C, 2004). Uma conotacao mais realıstica para ele seria a integracao
21
de sistemas e na comunicacao entre diferentes aplicacoes, que possibilitou que aplicacoes
pudessem interagir com sistemas legados em diferentes plataformas.
Existem algumas especificacoes e tecnologias definidas para a construcao e utilizacao
de Web Services, e essas especificacoes e tecnologias atendem aos seguintes requisitos:
uma forma comum de representar dados, um formato de mensagens comum e extensıvel,
uma linguagem de descricao dos servicos, um mecanismo para localizar os servicos e
um mecanismo para descobrir os provedores de servicos (CUNHA, 2002). Ela utiliza o
formato XML para permitir as aplicacoes enviar e receber dados, e essas aplicacoes podem
estar em diferentes linguagens, pois e traduzido para uma linguagem universal, o formato
XML, mesmo assim os desafios fundamentais na composicao de Web services consistem
do desenho, e da analise de desenvolver tecnicas e ferramentas necessarias para manipular
os aspectos inovadores do paradigma (HULL, 2004).
Existe uma grande motivacao sobre a tecnologia Web Service pois possibilita que
diferentes aplicacoes comuniquem entre si e utilizem recursos diferentes. Utilizando a
tecnologia Web Service, uma aplicacao pode invocar outra para efetuar tarefas simples
ou complexas mesmo que as duas aplicacoes estejam em diferentes sistemas e escritas em
linguagens diferentes.
Os Web Services disponibilizam os seus servicos tanto para outras aplicacoes como
para pessoas, uma vez que essa possa extrair os recursos oferecidos pelo Web Service.
Esses sao identificados por um URI, descritos em XML. Um dos motivos que tornam
os Web Services atrativos e o fato deste modelo ser baseado em tecnologias padrao, em
particular XML e HTTP. Tambem sao utilizados para disponibilizar servicos interativos na
web, podendo ser requisitados por outras aplicacoes usando o protocolo SOAP (CUNHA,
2002).
O objetivo dos Web Services e a comunicacao entre aplicacoes atraves da Internet.
Esta comunicacao e realizada com intuito de facilitar EAI que significa a integracao das
aplicacoes de uma empresa, ou seja, interoperabilidade entre a informacao que circula
numa organizacao nas diferentes aplicacoes como, por exemplo, o comercio eletronico com
os seus clientes e seus fornecedores. Esta interacao constitui o sistema de informacao de
uma empresa (GUNZER, 2002).
22
2.2.2 APACHE AXIS
O Apache Axis e uma ferramenta open-source, feita na linguagem Java e seguindo o
padrao XML. Sua utilizacao consiste na construcao de Servicos Web, sobre o protocolo
SOAP. E possıvel , atraves do Axis, que desenvolvedores possam criar aplicacoes distribuı-
das. O Axis nao possui apenas a versao em Java, existem varias outras implementacoes,
como por exemplo na linguagem C++. O projeto Apache Axis e suportado pela Apache
Software Foundation. O Axis disponibiliza duas maneiras de disponibilizar os metodos de
uma determinada classe atraves de servicos web, o JWS (Java servico web) e o WSDD
(Web Service Deployment Descriptor).
• JWS: O modo mais simples, utiliza os arquivos .jws para extrair as informacoes
necessarias.
• WSDD: Descreve com detalhes como serao criados os servicos web a partir de classes
existentes.
Com o Axis e possıvel criar e publicar servicos web, assim como as devidas aplicacoes
cliente, de forma muito simples e automatizada. Para isso basta utilizar as proprias
ferramentas do que o Axis disponibiliza. Para que a produtividade seja alta e eficaz, e
necessario que se utilize de tres ferramentas: Java2WSDL, WSDL2Java e AdminClient.
• Java2WSDL: Ferramenta responsavel por gerar um documento WSDL a partir de
uma classe ou interface Java. Este WSDL gerado e o documento na qual o proprio
Axis se baseia para criar as classes (stub e skeleton) do servico web.
• WSDL2Java: Gera as classes Java responsaveis tanto pela parte servidor (skeleton),
quanto a parte cliente (stub) dos servico webs.
• AdminClient: Ferramenta para registrar o servico web no servidor de aplicacoes
(APACHE WIKI, 2009).
2.3 WEB SEMANTICA
A Web semantica e uma extensao da Web atual, que permitira aos computadores e
humanos trabalharem em cooperacao. A Web semantica interliga significados de palavras
23
e, neste ambito, tem como finalidade conseguir atribuir um significado (sentido) aos con-
teudos publicados na Internet de modo que seja perceptıvel tanto pelo humano como pelo
computador.(BERNERS-LEE; HENDLER; LASSILA, 2008)
O conjunto que forma a Web Semantica compreende princıpios de design , trabalho
colaborativo, tecnologias de base e outras tecnologias que serao e estao sendo implemen-
tadas.(W3C, 2008d) Os outros elementos sao especificacoes formais tais como, (RDF)
formato de intercambio de dados, (RDFS) formato de anotacoes e (OWL) destinados a
descricao formal de conceitos.
Os seres humanos sao capazes de realizar tarefas distintas relacionadas ou nao entre si
ao mesmo tempo na Web, no entanto, o computador nao pode realizar as mesmas tarefas
correlacionadas ou nao, porque as paginas da Web sao desenvolvidas para serem lidas
por pessoas e, nao por maquinas. A Web Semantica tem uma visao de transformar as
informacoes compreensıveis para os computadores, onde esses possam realizar mais do
que o trabalho envolvidos na busca, compartilhamento e combinacao de informacoes na
Web.
Tim Berners-Lee em sua citacao:
I have a dream for the Web [in which computers] become capable ofanalyzing all the data on the Web – the content, links, and transacti-ons between people and computers. A ‘Semantic Web’, which shouldmake this possible, has yet to emerge, but when it does, the day-to-daymechanisms of trade, bureaucracy and our daily lives will be handledby machines talking to machines. The ‘intelligent agents´ people havetouted for ages will finally materialize. (BERNERS-LEE; HENDLER;LASSILA, 2008)
Explora um sonho onde, a Web [em que os computadores] tornam-se capazes de ana-
lisar todos os dados na Web, consolidando a Web Semantica como sendo a chave para
que isso se torne possıvel e quando isso acontecer as transacoes e meio burocraticos dia-
rios serao manipulados por maquinas falando com maquinas, concretizando os elogiados
agentes inteligentes.
Considerada como um integrador entre diferentes conteudos, aplicacoes e sistemas de
informacao, a Web Semantica, onde se intensificam experimentos, devido ao rapido cresci-
mento do uso da Web e a inovacao e renovacao das tecnologias de conteudo da informacao.
Essa rapidez no crescimento proporciona o impulso na criacao e difusao de tecnologias
inovadoras da Web Semantica, mas onde a verdadeira e previstas Web Semantica esta
muito atrasada, causando incoerencias de informacao, tais como, as expressoes metada-
dos, ontologias e Web Semantica que sao utilizados de forma inconsistente, geralmente
24
estes termos sao usados como terminologia cotidiana de pesquisadores que abrangendo
um vasto conteudo para diferentes tecnologias, conceitos e areas de aplicacao.
Alem da confusao com relacao ao estado atual das tecnologias previstas para a rea-
lizacao da Web Semantica. Gerber, Barnard e Van der Merwe resumem o estado atual
da Web Semantica em tecnologias paradas e a um conjunto de termos. O modelo arqui-
tetonico proposto por Tim Berners-Lee e usado como base para apresentar um modelo
de estado que reflete tecnologias atuais e emergentes (GERBER; MERWE; BARNARD,
2008).
Tim Berners-Lee descreveu a web semantica como um componente da ’Web 3.0’.
People keep asking what Web 3.0 is. I think maybe when you’ve got anoverlay of scalable vector graphics - everything rippling and folding andlooking misty — on Web 2.0 and access to a semantic Web integratedacross a huge space of data, you’ll have access to an unbelievable dataresource. (BERNERS-LEE; FISCHETTI, 1999)
Onde ele realiza uma comparacao da Web 2.0 como uma olhar nebuloso sobre sobre-
posicao de graficos vetoriais escalaveis e a Web Semantica sera o acesso a um recurso de
dados inacreditavel com um espaco enorme de dados integrados.
2.3.1 ENSAIO
Arquivos de um computador podem ser divididos em documentos e dados onde os
documentos sao lidos por seres humanos diretamente e os dados sao lidos por aplicativos
que permitem que sejam vistos por seres humanos.
A World Wide Web atual e baseada principalmente em documentos (HTML), uma
convencao de marcacao que e usada para a codificacao de um corpo de texto intercalado
com objetos multimıdia, como imagens e formas interativas. Nesses documento tags de
metadados, fornecem um metodo pelo qual os computadores podem classificar o conteudo
das paginas Web.
Com o formato HTML pode-se criar e apresentar uma pagina com uma lista de itens
onde, o formato HTML pode dizer onde devem ficar posicionado tais itens como imagens e
textos em resumo informa a localizacao do conteudo na tela para o aplicativo que ler esse
documento, mas nao a uma maneira de afirmar quais desses itens estao relacionados entre
si, se a valor ou proporcao de um tem influencia nos demais itens, nao ha com afirmar
que tipo de documento esta formando os dados apresentados.
25
No ambito de se utilizar tecnologias existentes para realizar melhorias na semantica
empregada a documentos da Web surgem por exemplo a Semantic HTML que, se refere
a pratica tradicional do HTML com marcacao de intencao, deixando a especificacao dos
detalhes do layout para o navegador, em combinacao com Cascading Style Sheets, mas
esta pratica esta aquem de especificar a semantica de objetos ou ainda no mesmo contexto
os Microformats que, representam tentativas oficiais de estender a sintaxe HTML para
criar maquina de marcacao semantica legıvel sobre os objetos.
2.3.2 SOLUCAO
A solucao da Web Semantica e composta por um conjunto de especificacoes que trata
de publicar em lıngua especifica para os dados, onde o formato HTML descreve os docu-
mentos e as ligacoes entre eles e as especificacoes RDF, OWL, XML descrevem os objetos
arbitrarios. Tim Berners-Lee chama a rede resultante de dados ligados a Giant Global
Graph, em contraste ao baseado em HTML na World Wide Web.
Combinadas essas tecnologias fornecem descricoes para complementar ou substituir
o conteudo de documentos web, tornando-os uma descricao dos dados armazenados na
Web. Essas descricoes sao legıveis a maquinas que utilizam gestores para dar significado
ao conteudo, isto e, descrevem a estrutura do conhecimento que os humanos tem sobre
esse conteudo, de tal forma que uma maquina pode processar o proprio conhecimento
utilizando processos semelhantes ao raciocınio dedutivo humano e inferencia, obtendo
resultados mais significativos auxiliando na coleta de informacoes automatizadas e de
investigacao.
2.3.3 COMPONENTES
A web semantica compreende as tecnologias e especificacoes do XML, XML Schema,
RDF, RDF Schema e OWL, que sao organizados na Web Semantica Stack. A OWL Web
Ontology Language Overview descreve a funcao e a relacao de cada um desses componentes
da Web Semantica:
• XML fornece uma sintaxe elementar para a estrutura de conteudo dentro de docu-
mentos, mas nao associa semantica com o significado do conteudo das mesmas.
• XML Schema e uma linguagem utilizada para fornecer e restringir a estrutura e ao
conteudo dos elementos contidos nos documentos XML.
26
• RDF e uma linguagem simples para expressar modelos de dados, que se referem a
objetos e seus relacionamentos. Um modelo baseado em RDF pode ser representado
na sintaxe XML.
• RDF Schema e um vocabulario para descrever propriedades e classes de recursos
baseados em RDF, com semantica para generalizada hierarquias de tais propriedades
e classes.
• OWL adiciona vocabulario para descrever propriedades e classes: entre outros, as
relacoes entre as classes, a igualdade, a tipagem de propriedades, caracterısticas das
propriedades, e enumerou as classes.
• SPARQL e um protocolo e linguagem de consulta para as fontes de dados da web
semantica.
Figura 1: Camadas Web Semantica (W3C, 2007)
Algumas padronizacoes, camadas e melhorias para criacao e utilizacao da semantica
mesmo que nao plenamente implementadas e funcionais integramente incluem:
• Rule Interchange Format (RIF) como a camada de Regra da Web Semantica Stack
Unificando Logica e camadas de prova sao submetidos a investigacao activa.
• Servidores que expoem os sistemas existentes de dados usando o RDF e normas
SPARQL.
27
• Meta tags em documentos HTML fornecem informacoes para os motores de busca
da Web, que podem considerar a informacao como a compreensao do conteudo
humano sobre o documento ou pode simplesmente como metadados que representam
o documento.
• Uniform Resource Identifier (URI) identifica tudo que possa ser ser descrito, de
forma a web semantica, o que muitas vezes gerada semantica automaticamente, em
vez de manualmente.
• E, com o vocabularios de metadados (ontologias) e mapas entre os vocabulos, da
possibilidade aos criadores de documento de marcar seus documentos para que os
agentes possam utilizar as informacoes fornecidas nos metadados. Agentes auto-
matizados para executar tarefas para os usuarios da web semantica utilizam esses
dados em forma de servicos.
2.4 ONTOLOGIA
Na filosofia se refere a questao da existencia. No contexto do compartilhamento de
conhecimento, tem um sentido diferente, o termo significa a especificacao de uma concei-
tuacao, isto e, descreve conceitos e relacoes que podem existir para um agente ou uma
comunidade de agentes.
Projetar uma ontologias tem a finalidade de permitir o compartilhamento de conheci-
mentos e reutilizacao. Existe algumas maneiras de se escrever uma ontologia, uma delas e
como um conjunto de definicoes do vocabulario formal, se tornando um acordo para utili-
zar um vocabulario de uma maneira que seja consistente em relacao a teoria especificada
pela ontologia.
2.4.1 FERRAMENTAS
Protege e um editor livre, de ontologias de codigo aberto e tambem um framework de
base de conhecimento. A plataforma suporta as duas principais formas de modelagem de
ontologias que podem ser exportadas para uma variedade de formatos incluindo RDFS,
OWL e XML Schema. E baseado em Java, extensıvel, e fornece um ambiente plug-
and-play que faz dele uma base flexıvel para prototipagem rapida e desenvolvimento de
aplicacoes.
ontoKEM e uma ferramenta permite a construcao de ontologias de forma intuitiva
28
e adota praticas de varias metodologias (RAUTENBERG et al., 2008) se diferenciando
de outras ferramentas pelo valioso processo de documentacao (relatorios e graficos), que
facilita a comunicacao com os especialistas de domınio. A ferramenta possui sua limitacoes
levando em consideracao que e voltada para a pesquisa e desenvolvimento de ontologia no
meio academica. Mas essas limitacoes estao sendo sanadas, algumas ja em curso, para a
distribuicao de uma versao academica.
2.5 CODIGO ABERTO
O termo codigo aberto, do ingles open source, foi criado pela OSI (Open Source
Initiative) se refere ao mesmo que software livre, into e, respeita as quatro liberdades
definidas pela Free Software Foundation. Uma licenca de software livre e tambem uma
licenca de codigo aberto, com diferencas em discussao. A FSF usa o termo ‘Software
Livre’ para trazer um discurso baseado em questoes eticas, direitos e liberdade, a OSI usa
o termo ‘Codigo Aberto’ para discursar sobre um ponto de vista puramente tecnico, sem
conflitar questoes eticas.
2.5.1 DEFINICAO OPEN SOURCE
A definicao do Open Source foi criada pela Open Source Iniciative(OSI) a partir do
texto original da Debian Free Software Guidelines (DFSG) e determina que um programa
de codigo aberto deve garantir:
1. Distribuicao livre: A licenca nao deve restringir de nenhuma maneira a venda ou
distribuicao do programa gratuitamente, como componente de outro programa ou
nao.
2. Codigo fonte: O programa deve incluir seu codigo fonte e deve permitir a sua dis-
tribuicao tambem na forma compilada. Se o programa nao for distribuıdo com seu
codigo fonte, deve haver algum meio de se obter o mesmo seja via rede ou com
custo apenas de reproducao. O codigo deve ser legıvel e inteligıvel para qualquer
programador.
3. Trabalhos Derivados: A licenca deve permitir modificacoes e trabalhos derivados, e
deve permitir que eles sejam distribuıdos sobre os mesmos termos da licenca original.
4. Integridade do autor do codigo fonte: A licenca pode restringir o codigo fonte de ser
distribuıdo em uma forma modificada apenas se a licenca permitir a distribuicao de
29
arquivos patch(de atualizacao) com o codigo fonte para o proposito de modificar o
programa no momento de sua construcao. A licenca deve explicitamente permitir a
distribuicao do programa construıdo a partir do codigo fonte modificado. Contudo,
a licenca pode ainda requerer que programas derivados tenham um nome ou numero
de versao diferentes do programa original.
5. Nao discriminacao contra pessoas ou grupos: A licenca nao pode ser discriminatoria
contra qualquer pessoa ou grupo de pessoas.
6. Nao discriminacao contra areas de atuacao: A licenca nao deve restringir qualquer
pessoa de usar o programa em um ramo especıfico de atuacao. Por exemplo, ela
nao deve proibir que o programa seja usado em um empresa, ou de ser usado para
pesquisa genetica.
7. Distribuicao da Licenca: Os direitos associados ao programa devem ser aplicaveis
para todos aqueles cujo o programa e redistribuıdo, sem a necessidade da execucao
de uma licenca adicional para estas partes.
8. Licenca nao especıfica a um produto: Os direitos associados ao programa nao devem
depender que o programa seja parte de uma distribuicao especıfica de programas. Se
o programa e extraıdo desta distribuicao e usado ou distribuıdo dentro dos termos
da licenca do programa, todas as partes para quem o programa e redistribuıdo
devem ter os mesmos direitos que aqueles que sao garantidos em conjuncao com a
distribuicao de programas original.
9. Licenca nao restrinja outros programas: A licenca nao pode colocar restricoes em
outros programas que sao distribuıdos juntos com o programa licenciado. Isto e, a
licenca nao pode especificar que todos os programas distribuıdos na mesma mıdia
de armazenamento sejam programas de codigo aberto.
10. Licenca neutra em relacao a tecnologia: Nenhuma clausula da licenca pode estabele-
cer uma tecnologia individual, estilo ou interface a ser aplicada no programa(OPEN
SOURCE INITIATIVE, 2009).
31
REFERENCIAS
APACHE WIKI. Axis General. 2009. Disponıvel em:<http://wiki.apache.org/ws/FrontPage/Axis/AxisGeneral/>. Acesso em: 20 nov.2009.
BERNERS-LEE, T.; FISCHETTI, M. Weaving the Web. San Francisco: HarperSan-Francisco, 1999.
BERNERS-LEE, T.; HENDLER, J.; LASSILA, O. The semantic web. ScientificAmerican Magazin, mar. 2008.
BOOTH, D. et al. Web services architecture. W3C Working Group, 2004.
CHEBOTKO, A.; LU, S. Querying the semantic web: An efficient approach usingrelational databases. LAP Lambert Academic Publishing, 2009.
CIENCIA DA INFORMAcaO.
CUNHA, D. Web Services, SOAP e Aplicacoes Web. 2002. Disponıvel em:<http://devedge-temp.mozilla.org/viewsource/2002/soap-overview/index pt br.html>.Acesso em: 20 nov. 2009.
GERBER, A.; BARNARD, A.; MERWE, A. V. der. A semantic web status model.Integrated Design and Process Technology, 2006.
GERBER, A.; MERWE, A. V. der; BARNARD, A. A functional semantic webarchitecture. European Semantic Web Conference 2008, 2008.
GUNZER, H. WIntroduction to Web Services. 2002. Disponıvel em:<http://bdn.borland.com/java/webtech/0,1418,10018,00.html>. Acesso em: 20nov. 2009.
HULL, R. Tools for composite web services: A short overview. Lucent Technologies,2004.
JAVAFREE.ORG. Web Services. Construindo, disponibilizando e acessando Web Servicesvia J2SE e J2ME. 1997. Disponıvel em: <http://www.javafree.org/artigo/871485/>.Acesso em: 01 set. 2009.
JORDAN, L. F. Desenvolvendo um prototipo do uddi. Universidade Federal de SantaCatarina, 2004.
NETSCAPE DEVEDGE. Web Services, SOAP e Aplicacoes Web. 2008. Disponıvel em:<http://devedge-temp.mozilla.org/viewsource/2002/soap-overview/index pt br.html>.Acesso em: 01 set. 2009.
32
OPEN SOURCE INITIATIVE. The Open Source Definition. 2009. Disponıvel em:<http://www.opensource.net/docs/osd>. Acesso em: 01 set. 2009.
PROTeGe. Welcome to Protege. 2009. Disponıvel em: <http://protege.stanford.edu/>.Acesso em: 24 nov. 2009.
RAUTENBERG, S. et al. ontokem: uma ferramenta para construcao e documentacao deontologias. Seminario de Pesquisa em Ontologia no Brasil UFF - IACS, 2008.
RECKZIEGEL, M. Descrevendo, descobrindo e integrando Web Services - UDDI. 2006.Disponıvel em: <http://imasters.uol.com.br/artigo/4474/ webservices/ descrevendodescobrindo e integrando web services uddi/>. Acesso em: 20 nov. 2009.
ROSA, J. H. da. Web services. Universidade do Vale dos Sinos, 2008.
SAML. Organizatuion for the advancement of structured information standards. SAMLSpecification, 2001.
SHANNON, V. A more revolutionary web. International Herald Tribune, 2006.
W3C. Web Services Architecture. 2004. Disponıvel em: <http://www.w3.org/TR/ws-arch/>. Acesso em: 20 nov. 2009.
W3C. Semantic Web, and Other Technologies to Watch. 2007. Disponıvel em:<http://www.w3.org/2007/Talks/0130-sb-W3CTechSemWeb/#(24)>. Acesso em: 25nov. 2009.
W3C. Design Issues. 2008. Disponıvel em: <http://www.w3.org/DesignIssues/>. Acessoem: 20 nov. 2009.
W3C. Semantic Web Activity. 2008. Disponıvel em: <http://www.w3.org/2001/sw/>.Acesso em: 20 nov. 2009.
W3C. Semantic Web Activity Statement. 2008. Disponıvel em:<http://www.w3.org/2001/sw/Activity.html>. Acesso em: 20 nov. 2009.
W3C. Semantic Web Frequently Asked Questions. 2008. Disponıvel em:<http://www.w3.org/2001/sw/SW-FAQ>. Acesso em: 20 nov. 2009.