service design patterns - study case

Download Service Design Patterns - Study Case

Post on 07-Jul-2015

109 views

Category:

Technology

2 download

Embed Size (px)

TRANSCRIPT

  • 1. Uso de Padres no Desenvolvimento de Web Services Um Estudo de Caso Rafael Salerno de Oliveira Prof Ms Vincius Costa de SouzaS

2. Motivao IntegraoMultiplataforma DisponibilizaoIndependncia de Tecnologia 3. Objetivo Como Reduz a Complexidade Comunicao Comum entre Desenvolvedores Como proporciona Evoluo 4. O que um Web Service? S uma Soluo que possibilita:S Comunicao entre Aplicaes DiferentesS Interao com Diferentes Plataformas 5. Caractersticas Infraestrutura abertaTransparncia de LinguagemDesign modular Isolar o Cliente 6. Principais Tipos 7. Meio da Comunicao 8. Contedo da Comunicao 9. Padres/Estilos de API para Web Services RPC API Message API Resource API 10. RPC API Remote Procedure Call 11. Message API 12. Resource API 13. Tipos de Padres de Interao Cliente-Servidor Request/Response Request/Acknowledge Media Type Negotiation Linked Service. 14. Request/Response 15. Request/Response 16. Request/Acknowledge Steps no Server: 1. Recebe um Request 2. Envia um Identificador(token) ou uma URL3. Processsa a requisio em backgroud 4. Recebe o Identificador e envia o 17. Request/Acknowledge 18. Media Type Negotiation 19. Linked Service 20. Linked Service 21. Padres de Request/Response S Service ControllerS Data Transfer Object 22. Service Controller- Controlam a execuo de tarefas de negcios e coordenam o acesso recursos. - Front Controller 23. Data Transfer Object 24. Data Transfer Object 25. Estilos de Implementao de Web Service Consideraes para implementao do servio Web: S Atomicidade - tudo ou nadaS No gerenciar estadosS Aes quando houver composio de servios 26. Estilos de Implementao de Web Service S Operation ScriptS Command Invoker 27. Estilos de Implementao de Web Service S Transaction Script 28. Padres de Infra- Estrutura para Web Service S Service ConnectorS Service Descriptor S Service Interceptor S Idempotent Retry 29. Service Connector S Esconde detalhes dacomunicao entre APIs relacionadasIdempotent Retry S Tratar problemas relacionados aerro de conexo 30. Service Descriptor 31. Service Interceptor 32. Benefcios do uso de padres de projetoDiminuem o retrabalho 33. MetodologiaS Pblico alvoS Tcnica utiliza amostragem por convenincia S Observao do pesquisador. S Questionrio direcionado a profissionais deTI 34. Estudo de Caso S Foi utilizado uma aplicao usada por umaempresa de pesquisa de medicamentos. S Algumas funcionalidades: Monitoramento de Portflio de Medicamentos Pesquisa e Recomendao de Medicamentos Agrupamento de Medicamento Histrico do medicamento 35. Estudo de Caso S P1 - Sem Padres de Projeto para webServices S P2 - Com Padres de Projeto para webServices S As duas aplicaes realizam o mesmotrabalho S Tem entradas e sadas iguais o que facilita acomparao 36. Estudo ComparativoS O que foi Comparado : Padres de Projetos Frameworks Nmero de Linhas de Cdigo Complexidade Ciclomtica (IF,WHILE e FOR) Manutenibilidade (facilidade, preciso, segurana na 37. Complexidade Ciclomtica M=D+1 onde: D=ponto de deciso (IF,FOR,WHILE)Valores de Referncia: 1-10, mtodos simples, sem muito risco 11-20, mtodos medianamente complexos, com risco moderado 21-50, mtodos complexos, com risco alto 51 ou mais, mtodos instveis de altssimo risco. (MCCABE,1976) 38. Resultados Obtidos Projeto 2 Padro Arquitetural SOA Estilo de RPC API Linked Service com servio raiz com pontos de entrada Data Transfer Object para tratar dados recebidos e Enviados e deixar o cliente a parte 39. Resultados Obtidos Operation Transcripts para ter um nico ponto de controle transacional Comand Invoker para que o Servio no conhea o modelo de domnio e fazer com que o cliente conhea apenas interfaces de sada Service Interceptor para realizar validaes 40. Resultados Obtidos O projeto 2 teve aproximadamente 1200 linhas a mais que o projeto 1 Complexidade Ciclomtica foi considerada: P1 - medianamente complexo, com risco moderado 41. Resultados Obtidos P1P2 42. Resultados Obtidos A manutenibilidade foi de 1h e 30 min a menos no projeto 2 Casos de manuteno: Suporte a relatrios em CSV Manuteno no agrupamento por medicamentos do mesmo tipo Ordenao de medicamentos aps o agrupamento do mesmo tipo 43. Estudo Qualitativo S Pesquisa com dez profissionaisS Objetivo : Importncia dos padres de projeto determinado pelo tempo deexperincia? 44. Estudo QualitativoExperincia na rea de TI em anos: 5 anos6 anos 8 anos 5 anos 12 anos3 anos1 ano 4 anos 5 anos2 anos 45. Estudo Qualitativo 46. Estudo Qualitativo 47. Estudo Qualitativo 48. Estudo Qualitativo 49. Concluso do Estudo Qualitativo S A maior parte das pessoas sabem que osPadres de projeto tem benefcios S A complexidade e quando se usar podeestar ligado a tempo de experincia S Dependendo do contexto que se trabalhaa pessoas acham que o framework pode ser mais importante que o Padro de 50. Consideraes Finais Complexidade Manuteno Cdigo Duplicado Comunicao 51. Referencial