Your SlideShare is downloading. ×
0
Repositório Social de  Serviços Web Henrique Dias Orientador Leandro Wives UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTI...
Agenda <ul><ul><li>Contexto </li></ul></ul><ul><ul><li>Objetivos </li></ul></ul><ul><ul><li>Estratégia </li></ul></ul><ul>...
Projeto Dodona Arquitetura de Sistemas orientada à Serviços Composição de Serviços Web Repositório de Serviços Web Recomen...
 
Repositório de  Serviços Web   ° Contexto Repositório Social de Serviços Web
Recomendação de Serviços Web Sintática ? Semântica Prabhakar [2005] QoS Thio  [2005] Contexto Repositório Social de Serviç...
Armazenamento dos  Serviços Web Centralização Organização Recomendação   ° Objetivos Repositório Social de Serviços Web
Substituição dos  Serviços Web Indisponibilidade Tempo de Resposta Qualidade de Resposta Objetivos Repositório Social de S...
Repositório Social de Serviços Web Importação de diversos serviços web Relacionamento por similaridade sintática Recomenda...
Importação de Serviços Web WebCrawler de Serviços Web ° Estratégia Repositório Social de Serviços Web Cliente SOAP PHP Ban...
Relações entre os Serviços Web Similaridade sintática dos  parâmetros de entrada da funções Similaridade entre funções ger...
WebCrawler de Serviços Web ° ° ° ° ° ° ° ° ° Algoritmos Repositório Social de Serviços Web Search  Engine Google, Yahoo, B...
Consumo de WSDL pelo SOAP PHP ° ° ° ° ° ° ° ° Algoritmos Repositório Social de Serviços Web Lista de Serviços Web WSDL SOA...
Hashing de Tipos ° ° ° ° ° ° ° Algoritmos Repositório Social de Serviços Web insereItem (idCarinho, idItem, quantidade, ob...
Propagação do Hashing ° ° ° ° ° ° Algoritmos Repositório Social de Serviços Web
Comparação das Funções ° ° ° ° ° Algoritmos Repositório Social de Serviços Web Hash(f1)    0  2  0  9   0  0  3 Hash(f2)  ...
Equação das Funções ° ° ° ° Algoritmos Repositório Social de Serviços Web
Algoritmo de Vizinhança ° ° ° Algoritmos Repositório Social de Serviços Web
Equação das Funções ° ° Algoritmos Repositório Social de Serviços Web INSERT INTO function_rel SELECT f.id, function.id,  ...
Equação dos Serviços Web ° Algoritmos Repositório Social de Serviços Web
Equação dos Serviços Web Algoritmos Repositório Social de Serviços Web INSERT INTO webservice_rel  SELECT id1,id2, ROUND(S...
Serviços Web Importados ° ° ° ° ° ° Resultados Repositório Social de Serviços Web 434 229 16 2.564 4.332 434.172 159.550 3...
Tempo de Execução 38 mil funções             1,5 bilhões de relações ° ° ° ° ° Resultados Repositório Social de Serviços W...
Subconjunto escolhido ° ° ° ° Resultados Repositório Social de Serviços Web 500 funções     250.000 rel.   13 s 100 Serviç...
Relações do subconjunto ° ° ° Resultados Repositório Social de Serviços Web 1.418 757 533
Diagrama de Relações entre os Serviços Web ° ° Resultados Repositório Social de Serviços Web
Diagrama de Relações entre os Serviços Web ° Resultados Repositório Social de Serviços Web
Componentes comparados Resultados Repositório Social de Serviços Web Funções do Google Search: doGoogleSearch  (string, st...
Objetivos Alcançados Repositório de Serviços Web Valores de Relacionamentos entre  os Serviços Web ° ° ° Conclusão Reposit...
Análise Crítica   “ Idéias verdes incolores  dormem furiosamente” Noam Chomsky ° ° Conclusão Repositório Social de Serviço...
Limitações Tempo de execução das consultas Interface de Recomendação   Categorização dos Serviços Web ° Conclusão Repositó...
Trabalhos Futuros Grafo das relações dos Serviços Web Otimização das consultas Influenciar outras recomendações   Mapas au...
Muito Obrigado! Perguntas?  Henrique Dias Orientador Leandro Wives UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE ...
Upcoming SlideShare
Loading in...5
×

Repositório Social de Serviços Web

572

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
572
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • ... fala sobre Repositório... ??
  • Onde se insere conceitos. Objetivos propostos pelo trabalho. Estratégias uilizadas. Detalhamento das estratégias e técnicas utilizadas na seção de algoritmos. Resultados obtidos com a criação do repositório. Objetivos alcançados, analise crítica, limitações, trabalhos futuros.
  • Complementar o projeto. Projeto visa criar um repositório de recom. para sistemas de arquitetura orientada à serviços. A existência de sistemas baseados em composição de serviços web, necessitam, em alguns casos, substituir esse serviços. Recomendação de serviços web existentes em um repositório.
  • Ao invés de ter os serviços de um sistema distribuidos espalhados.
  • Repositório organizado para utilizar melhor recomendar os serviços.
  • Existem trabalhos que abordam recomandação semântica. Serviços já organizados em categorias por qualidade de serviços.(tempo de resposta, avaliação do usuário).     Não existe trabalho que recomendam os serviços pela avaliação sintática de suas funções.
  • Objetivos do repositório.     Vou poder recomandar e substituir os serviços de forma mais dinâmica por eles estarem centralizados e organizados em repositório único.
  • Porque recomendar os serviços web? Sistema composto por serviços necessita substituí-los quando estão indisponíveis. Localização geográfica influencia tempo de resposta. Qualidade de resposta avaliada pelos usuários. Previsão do tempo com mais precisão.
  • Então para criar um repositório social...   Composto por serviços web importados da internet para fazer avaliação de similaridade entre eles. Serviços similares serão recomendados de acordo com a afinidade existente no repositório.
  • Para a importação foi constuido um WebCrawler. Busca na internet diversos descrições serviços web. SOAP PHP consome as descrições dos serviços encontrados. Banco de dados faz o cálculo de relacionamento e similaridade dos serviços encontrados.
  • Para relacionar os serviços foi analisado os parâmetros de entrada das funções deste serviços e avaliada a similariadade entre essas funções. Em seguida, a similaridade das funções vai gerar os relacionamentos entre os serviços. O melhor relacionamento entre as funções de dois serviços gera o relacionamento entre as funções.
  • Webcrawler varreu os resultados de pesquisas em diversas ferramentas de busca na internet, utilizando os recursos de pesquisa por tipo de arquivo WSDL. Script PHP faz a requisição no buscador que ao responser é analisado por uma expressão regular que busca padrão de texto que identifique um endereço de descrição de serviços web WSDL. A URL é inserida no banco de dados.
  • Depois que a URL está armazenada no banco de dados. Eu vou varrer essas URLs analisando eles com o cliente SOAP PHP e inserir todos os componente descritos no WSDL no banco de dados. Consumir o WSDL. Para cada serviço é inserido no banco as duas funções, para cada função os seus paramâmetros que compõe a função, os tipos complexos descritos e as partes de cada tipo complexo. Para cada tipo complexo e função eu associo um número que identifica a quantidade de tipos simples existente nesta estrutura.
  • Esse número que eu associa a uma função ou tipo complexo foi chamado de Hashing de tipos. Como funciona esse Hashing de Tipos? Ele identifica a quantidade de tipos simples encontrados na função ou tipo complexo. A repetição dos tipos simples nessa estrutura.   Para não haver overflow de uma casa cardinal, foi utilizado um número na base 20 que foi suficiente para os serviços encontrados. Para não haver supressão nem sobreposição de uma casa cardinal na outra.   A casa cardinal é um contador dos tipos simples de uma estrutura.   Para os tipos complexos que são compostos por outros tipos complexos, eu preciso propagar esse hashing  de tipos para os tipos que o contém ou para uma função.
  • Pegando um exemplo existente no serviço web de pesquisa do Google. O Hashing de Tipo da função será o a soma do hashing de tipos dos seus parâmetros. No caso, o parâmetro é um único tipo complexo. O hashing desse tipo será a soma de seus tipos simples e os tipos complexos existentes nessa estrutura.
  • Para compara duas função já com os seus hashing de tipos definidos. Somar a quantidade de parâmetros das suas funções, subtrair pelo módulo da diferença entre a quantidade de cada tipo simples das duas funções e dividir pela total de parâmetros para obter um percentual de similaridade entre as duas funções. Essa abordagem foi utilizada para que duas funções idênticas tivessem 100% de afinidade.
  • A formula resultante desse algoritmo que calcula o percentual de similaridade entre as funções é representado por essa equação. A FUNÇÃO ALFA representa o somatório dos parâmetros existentes nas duas funções. A FUNÇÃO DELTA é o módulo da diferença entre a quantidade de um tipo simples entre as duas funções.
  • Indexação de registros em raciocínio baseado em casos,    onde define a semelhança entre dos casos com o somatório dos atributos dos casos utilizando uma função de similaridade.
  • Essa é parte da consulta SQL que gera o percentual de similaridade entre as funções. A função SUBSTR captura a casa cardinal representando cada tipo simples e converte para a base decimal para fazer a soma do TOTAL DE PARÂMETRO DAS DUAS FUNÇÕES.   MÓDULO DA DIFERENÇA entre os tiplos simples das duas funções.
  • Depois de obter a similaridade entre as funções eu já posso calcular as afinidades entre os serviços web para gerar as relações dos serviços no repositório social. Algorítmo otimista considera a melhorar relação entre uma função do serviço web 1 e qualquer função do serviço web 2. Assim fazendo a média das funções  para obter o valor de relação dos serviços. Essa abordagem foi utilizada para quandos dois serviços idênticos forem comparados gerar uma relação de 100%.
  • A fórmula que define esse cálculo é apresentação nesta equação, onde: Somatório das maiores relações entre uma função do serviço web 1 e qualquer função do serviço web 2. O SQL abaixo represente a equação.
  • Agora eu vou mostrar alguns resultados destre trabalho. Erros de Parsing: WSDL não descitos no formato WSDL 1.1 Erros de banco: inserções sem referência cancelavam importação. Erros de Schema: Ausência de descritores XSD (extesões da descrição) Timeout: Serviços não mais existentes na URL encontrada.
  • Depois da importação, ao executar as consultas que geram as similaridades entre as funções, o banco de dados demorou tempo demais para gerar os valores. Um subconjunto de 9mil funções ainda assim demorou tempo demais e a quantidade de serviços web ainda era grande demais para executar a consulta que gera os relacionamentos entre os serviços.
  • Foi escolhido um subconjunto ainda menor. Os primeiros 100 serviços importados com sucesso somando 500 funções. Como mesmo alguns serviços web importados com sucesso tinham problemas de referência entre suas funções com demais serviços, não foram gerados todos os relacionamentos entre sos serviços.   Problemas de referência: inconsistência dos tipos complexos.
  • Das 6.500 relações entre os serviços web, por ser um algortimo otimista, foi obtido 1400 relacionamento perfeitos entre os serviços web. Nos outros valores de relacionamento houve uma distribuição mais natural, com um pico nos relacionamentos entre 70 e 60%.
  • Dos 100 serviços selecionados no subconjunto, foram analisados mais profundamente algumas relações entre grupos de serviços semelhantes. Foi analisado grupos de serviços com funções semelhantes para ver o nível de similaridade sintática entre esses serviços. FindAdrress: serviço de conversão CEP-Endereço É um resultado bem variado entre serviços de mesma função.
  • Analisando o serviço do Google de pesquisa de páginas com outros serviços diversos. Verifica-se que realmente serviços com sintática semelhante tiveram melhor afinidade. O serviço do Google tem bastante uso de tipos string. HeartBeat: API de Rede Social   NWIS: Informações de estações de trem   ShipService: trabalham mais com tipos numéricos. EcoSMS: tipos texto.
  • Algumas estruturas do serviço web do Google, HeartBeat e NWIS. Funções do Google tem vários parâmetros do tipo string. Tipos complexos do HeartBeat e NWIS são compostos por diversas estruturas do tipo string.
  • Alguns objetivos que foram realizados com sucesso. Foi elaborado um respositório grande com diversos serviços web encontrados na internet. Com mais serviços do que eu imagina que conseguiria com os buscadores. Foram obtidos diversos valores interessantes de relacionamento entre um subconjunto dos serviços web encontrados. Assim pode ser avaliado o uso desses valores para outras aplicações de recomandação.
  • Repositório sintática não resolve todo o problema de recomendação.   Uma função que recebe um inteiro e retorna uma string pode ser completamente diferente de uma outra com os mesmos parâmetros.   Duas funções sintáticamente semelhantes podem ter semânticas diferentes. Similaridade ingênua. Frase célebre de Noam Chomsky que critica a gramática no mesmo sentido que eu critico o meu trabalho. Chomsky: Gramaticalmente correta, semânticamente incoerente. Relação sintática não garante relação semântica. Posso ter duas funções sintaticamente diferentes com a mesma função.   Consulta de temperatura local com entrada CEP(numérico) e outra texto(nome da cidade) retornando o valor da temperatura.
  • SQL não da suporte de operações para bases diferentes da decimal. É necessário conversão. Não há interface de comunicação para acesso de outros sistemas, nem para consulta nem para recomendação para substituição. Foco do trabalho era a criação do repositório social. Sem categoria, dificulta  uma melhorar recomendação entre os serviços. Serviços de mesma categoria com maior afinidade sintática, devem ser recomendados aos invés de serviços em outras categorias.
  • Criação de grafo para visualização das relações entre os serviços encontrados na internet. Utilizar uma estrutura numérica mais eficiente para o hashing de tipos. Sem necessidade de conversão. Analisar todos os serviços não só o subconjunto. Mesclar a afinidade sintática para influenciar outras sistemas de recomendação de serviços web. Algoritmos de mineração de dados para mapas auto-organizados.
  • Fico disponível para perguntas.
  • Transcript of "Repositório Social de Serviços Web"

    1. 1. Repositório Social de  Serviços Web Henrique Dias Orientador Leandro Wives UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA
    2. 2. Agenda <ul><ul><li>Contexto </li></ul></ul><ul><ul><li>Objetivos </li></ul></ul><ul><ul><li>Estratégia </li></ul></ul><ul><ul><li>Algoritmos </li></ul></ul><ul><ul><li>Resultados </li></ul></ul><ul><ul><li>Conclusão </li></ul></ul>Agenda Repositório Social de Serviços Web
    3. 3. Projeto Dodona Arquitetura de Sistemas orientada à Serviços Composição de Serviços Web Repositório de Serviços Web Recomendação de Serviços Web   ° ° ° Contexto Repositório Social de Serviços Web
    4. 5. Repositório de  Serviços Web   ° Contexto Repositório Social de Serviços Web
    5. 6. Recomendação de Serviços Web Sintática ? Semântica Prabhakar [2005] QoS Thio  [2005] Contexto Repositório Social de Serviços Web
    6. 7. Armazenamento dos  Serviços Web Centralização Organização Recomendação   ° Objetivos Repositório Social de Serviços Web
    7. 8. Substituição dos  Serviços Web Indisponibilidade Tempo de Resposta Qualidade de Resposta Objetivos Repositório Social de Serviços Web
    8. 9. Repositório Social de Serviços Web Importação de diversos serviços web Relacionamento por similaridade sintática Recomendação por afinidade ° ° Estratégia Repositório Social de Serviços Web
    9. 10. Importação de Serviços Web WebCrawler de Serviços Web ° Estratégia Repositório Social de Serviços Web Cliente SOAP PHP Banco de Dados Relacional
    10. 11. Relações entre os Serviços Web Similaridade sintática dos  parâmetros de entrada da funções Similaridade entre funções gera o relacionamento entre os serviços web  Estratégia Repositório Social de Serviços Web
    11. 12. WebCrawler de Serviços Web ° ° ° ° ° ° ° ° ° Algoritmos Repositório Social de Serviços Web Search  Engine Google, Yahoo, Bing Script PHP Banco de Dados
    12. 13. Consumo de WSDL pelo SOAP PHP ° ° ° ° ° ° ° ° Algoritmos Repositório Social de Serviços Web Lista de Serviços Web WSDL SOAP PHP MySQL
    13. 14. Hashing de Tipos ° ° ° ° ° ° ° Algoritmos Repositório Social de Serviços Web insereItem (idCarinho, idItem, quantidade, observação, reservar) 0  1  0  1  0  0  3 Token, Boolean, NCName, String, anyURL, QName, int
    14. 15. Propagação do Hashing ° ° ° ° ° ° Algoritmos Repositório Social de Serviços Web
    15. 16. Comparação das Funções ° ° ° ° ° Algoritmos Repositório Social de Serviços Web Hash(f1)    0  2  0  9   0  0  3 Hash(f2)    0  5  0  3   0  0  7 Total          0  7  0 12  0  0 10  = 29 Diferenças  0  3  0  6   0  0  4  = 13 Percentual de Similaridade = 55%
    16. 17. Equação das Funções ° ° ° ° Algoritmos Repositório Social de Serviços Web
    17. 18. Algoritmo de Vizinhança ° ° ° Algoritmos Repositório Social de Serviços Web
    18. 19. Equação das Funções ° ° Algoritmos Repositório Social de Serviços Web INSERT INTO function_rel SELECT f.id, function.id,     ROUND (             ABS(  CONV(SUBSTR(LPAD(f.code,8,'0'),1,1),20,10)                    + CONV(SUBSTR(LPAD(function.code,8,'0'),1,1),20,10))             -             ABS(  CONV(SUBSTR(LPAD(f.code,8,'0'),1,1),20,10)                     - CONV(SUBSTR(LPAD(function.code,8,'0'),1,1),20,10))             /             ABS(  CONV(SUBSTR(LPAD(f.code,8,'0'),1,1),20,10)                    + CONV(SUBSTR(LPAD(function.code,8,'0'),1,1),20,10))            ,5) as relation FROM Function f JOIN Function
    19. 20. Equação dos Serviços Web ° Algoritmos Repositório Social de Serviços Web
    20. 21. Equação dos Serviços Web Algoritmos Repositório Social de Serviços Web INSERT INTO webservice_rel SELECT id1,id2, ROUND(SUM(max_rel)/count(max_rel),5) FROM    (SELECT f1.idwebservice AS id1,        f2.idwebservice AS id2, MAX(relation) AS max_rel FROM function_rel fr INNER JOIN function f1 ON f1.id = fr.id1 INNER JOIN function f2 ON f2.id = fr.id2 GROUP BY f1.id, f2.idwebservice) AS temp GROUP BY 1,2
    21. 22. Serviços Web Importados ° ° ° ° ° ° Resultados Repositório Social de Serviços Web 434 229 16 2.564 4.332 434.172 159.550 39.726 38.824 7.590
    22. 23. Tempo de Execução 38 mil funções             1,5 bilhões de relações ° ° ° ° ° Resultados Repositório Social de Serviços Web 9 mil funções             93 milhões de relações   1 dia, 16 horas e 30 minutos            5.5GB
    23. 24. Subconjunto escolhido ° ° ° ° Resultados Repositório Social de Serviços Web 500 funções     250.000 rel.   13 s 100 Serviços Web 6.500 rel. 7 s
    24. 25. Relações do subconjunto ° ° ° Resultados Repositório Social de Serviços Web 1.418 757 533
    25. 26. Diagrama de Relações entre os Serviços Web ° ° Resultados Repositório Social de Serviços Web
    26. 27. Diagrama de Relações entre os Serviços Web ° Resultados Repositório Social de Serviços Web
    27. 28. Componentes comparados Resultados Repositório Social de Serviços Web Funções do Google Search: doGoogleSearch (string, string, int, int, boolean, string, boolean, string,string, string) doGetCachedPage (string,string) doSpellingSuggestion (string,string) Tipos complexos do HeartBeat: User (int, string, string, int, string, int, string, string, string, string, string, string, string, string, int) Person (int, string, int, int, string, string, string, string, string, string, int, int) Tipos Complexos do NWIS: GetStationsWithWQParameter (string, string, string, string, string, string, string, string) GetChart (string,string,string,string) GetWQValues (string,string,string,string)
    28. 29. Objetivos Alcançados Repositório de Serviços Web Valores de Relacionamentos entre  os Serviços Web ° ° ° Conclusão Repositório Social de Serviços Web
    29. 30. Análise Crítica   “ Idéias verdes incolores  dormem furiosamente” Noam Chomsky ° ° Conclusão Repositório Social de Serviços Web
    30. 31. Limitações Tempo de execução das consultas Interface de Recomendação   Categorização dos Serviços Web ° Conclusão Repositório Social de Serviços Web
    31. 32. Trabalhos Futuros Grafo das relações dos Serviços Web Otimização das consultas Influenciar outras recomendações   Mapas auto-organizados Conclusão Repositório Social de Serviços Web
    32. 33. Muito Obrigado! Perguntas?  Henrique Dias Orientador Leandro Wives UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×