PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Sistemas Distribuídos Web Services
Advertisements

Terminologia Definicao Construção Exemplos
Boas Práticas Adotadas em um Projeto de Design de Testes – Um relato de experiência
Modelagem de Software Orientado a Objetos
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Sistemas Distribuídos:Definições e Caracteristicas
Adriano Teixeira João Vide Luís Silva Maria Pedroto
Sistemas Distribuídos Web Services
Component-Based Frameworks for E-Commerce Agnaldo Kiyoshi Noda.
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
Componentes: A Abordagem Catalysis
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Desenvolvimento e Avaliação de Algoritmos.
Seminário de Andamento UNILASALLE André Sandri Maio 2006 PROFILE EM UML PARA MODELAGEM SIMPLIFICADA DE INTERFACES GRÁFICAS EM APLICATIVOS.
DAS Sistemas Distribuídos para Automação Industrial
Tecnologia em Redes de Computadores
ESCOLA POLITÉCNICA DE PERNAMBUCO
Estudo comparativo de arquitecturas para aplicações empresariais
Prof. Jorge Luis Risco Becerra Auxiliares:Prof. Eduardo Lobo
SOA - Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a serviços
Pontifícia Universidade Católica de Campinas
Técnicas e Projeto de Sistemas
Planejamento e Gerenciamento de Projetos
Rodrigo de Souza Couto Redes de Computadores II
Minicurso PHP – Parte 2 João Paulo Ribeiro jpribeiro.com
Arquitetura de software
Arquiteturas de Referência
Fase de Elaboração: Fluxo de Requisitos
Ethos: Sistema Distribuído para Suporte ao Comitê de Ética em Pesquisa Autor: Rodrigo Stefani Domingues Orientador: Prof. Dr. Carlos M. T. Toledo Faculdade.
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
7 Consistência e replicação capítulo Andrew S. Tanenbaum
Introdução a Desenvolvimento de Sistemas
Introdução a Desenvolvimento de Sistemas
Projeto de Arquitetura de Software Visão Geral
O Processo de desenvolvimento de software
Estratégia Organizacional
Aluna: Carolina Paloma Gasperoni
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
RESTFul com Slim Framework
Da Introdução à Prática
Representação Arquitetural
Padrão- MVC Model, View, Controller
A Planejamento de Tecnologia da Informação nas Empresas – 3ª Fase continuação Diagrama de Entidade - Relacionamento Representa o relacionamento de todas.
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
RUP - Cap. 4 – Processo Centrado na Arquitetura
Padrões de Interação com o Usuário
Decisão #1 Decisão-chaveUtilização de C para desenvolvimento do MCTCore. DriversRNF: O código deve ser escrito na linguagem C. Descrição O sistema legado.
IEEE Melhores Práticas para Descrições de Projeto de Software (DPS)
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
LINQ e Entity Framework
April 05 Prof. Ismael H. F. Santos - 1 Modulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
© 2007 by Pearson Education ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 1 Reuso de Software.
WSDL Web Services Description Language. Tecnologias Relacionadas Web Services SOAP (Simple Object Access Protocol) HTTP (HyperText Markup Language) UDDI.
Abstrações de um Sistema Utiliza um conjunto selecionado de conceitos e regras de forma a focar em aspectos específicos de interesse num sistema. Visão.
Análise de estratégias para implantação de segurança em arquiteturas orientadas a serviços Dezembro/2010 Itabaiana/SE Universidade Federal de Sergipe –
Arquitetura de Software Projetos de Interface
Estilos Arquiteturais
WebPTM Web Project and Time Manager Autor: Daniel Nicoletti Orientador: Prof. Dr. Carlos Miguel Tobar Toledo Co-Orientador: Murilo Woigt Miranda PONTIFÍCIA.
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína XP (EXTREME PROGRAMMING) Pós-Graduação em Engenharia de Software Metodologias.
Professora Michelle Luz
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
Emerson Felipe GOVERNO DO ESTADO DE PERNAMBUCO ESCOLA TÉCNICA ESTADUAL MARIA EDUARDA RAMOS DE BARROS.
Ana Cláudia Feliciano Abreu Jonas Brito Maicon Ribeiro Marcelo Carvalho Marcelo Farias Marcos Rozzeto Pablo Alves Silvana Torres GESTÃO DO CONHECIMENTO.
SOA SOA – Arquitetura Orientada a Serviços Conceitos e Aplicações
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Qualidade do Ponto de Vista de Gestão Aplicado na Homologação de software Márcia Falcão 27/03/2007 Qualidade do Ponto de Vista de Gestão, aplicado na Homologação.
Web Services / SOA. O cenário de TI nas corporações Novas tendências batiam à porta das corporações Migraram o foco do “gerenciamento de dados” para o.
Transcrição da apresentação:

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Instituto de Ciências Exatas e Informática Análise teórica e prática de serviços web baseados em SOAP e REST sob a perspectiva dos arquitetos de software Rafael Cruz Teixeira Orientador: Pedro Alves de Oliveira BELO HORIZONTE 03/12/2011

roteiro Contextualização do trabalho Motivação e Problema. Objetivos. Referencial Teórico Metodologia Experimento. Questionário. Considerações Finais Problemas e Limitações. Conclusão. Trabalhos futuros. Principais referências

Contexto Tema Arquiteturas para serviços web Os padrões arquiteturais estudados foram REST (Representational State Transfer – Transferência de estado representacional) e SOAP (Simple Object Access Protocol – Protocolo de acesso simples a objetos).

problema Escolha entre arquiteturas para projetar e desenvolver serviços Confiança Falta de conhecimento das possibilidades

Objetivos Objetivo Geral: Criar um guia introdutório às duas principais arquiteturas para a construção de serviços web Objetivos específicos Estudar ambas as arquiteturas, REST e SOAP, e levantar vantagens e desvantagens de cada uma com base na experiência dos arquitetos de software. Definir o que leva um arquiteto de software a escolher uma arquitetura de serviços Apontar critérios que podem ajudar na escolha da arquitetura de serviços.

Referencial teórico Estilos arquiteturais Agrupamento de conceitos de desenvolvimento de software que carregam características específicas de desempenho, forma de comunicação, forma de armazenamento das informações, com objetivos específicos de segurança, de velocidade de comunicação, de estruturação.

Referencial teórico Sistemas distribuídos Camadas Cliente-Servidor Objetos Distribuídos

Referencial teórico SOA Estilo arquitetural que propõe que as funcionalidades providas por sistemas sejam disponibilizadas na forma de serviços. Um serviço É uma representação lógica de uma regra de negócio Pode ser composto por outros serviços

Referencial teórico SOA Importância Centralização e uniformização das regras de negócio Controle e conhecimento dos serviços oferecidos Soa requer forte governança de serviços para que os mesmos não se degenerem

Referencial Teórico Arquiteturas SOA Web Services Simple Object Access Protocol (SOAP) XML, WSDL, XSD, Schema Representational State Transfer (REST) Híbrido Serviços, Sistemas, Comunicação

Experimento Descrição Upload de Arquivos REST SOAP Especificação do ambiente de desenvolvimento. Java 1.6 JBoss AXIS Jersey Hibernate MySQL Padrões de projeto Camadas Façade EJB

Experimento - resultado As provas de conceito demonstraram o quão simples pode ser desenvolver um projeto pequeno em ambas as arquiteturas, o que reforça a simplicidade do REST e ajuda a desfazer o mito de complexidade do SOAP. O desenvolvimento demonstrou que o desenho das aplicações podem ser muito semelhantes, mesmo baseadas em REST ou SOAP. A utilização de padrões de projeto permite a separação de responsabilidades de forma a manter isolada cada camada da aplicação. As duas arquiteturas apresentaram boa documentação. SOAP possui documentação mais formal e teórica, acompanhada de muitos exemplos. Já REST não possui tanta formalização.

Questionário Questionário Elaboração de um questionário para levantar as experiências e as decisões tomadas pelos arquitetos 10 arquitetos entrevistados Parte 1 Questionário sobre dados gerais do arquiteto, como formação e experiência. Parte 2 Questionário sobre as situações vividas com o uso de arquiteturas orientadas a serviços. Parte 3 Questionário sobre experiência com o uso de REST ou SOAP Citar pros, contras e cenarios

Questionário - resultado REST Prós Contras Fácil interoperabilidade entre as diversas implementações de REST. Formalismo pobre Praticidade na escrita de código Difícil de documentar Bom desempenho Fraca cultura empresarial Escalabilidade Não integra bem com SOAP Simplicidade Protocolos menos complexos Flexibilidade

Questionário - resultado SOAP Prós Contras Uso de WSDL para definição de tipos e interfaces Precisa-se escrever muito código para trabalhar com situações complexas Existem muitas API maduras Alta complexidade do protocolo de comunicação Existem muitas ferramentas de teste Ineficiente na gerência de recursos como banda e CPU Confiabilidade Não integra bem com REST Padrão de mercado Muito prolixo Segurança comprovada Necessita de ferramentas e frameworks para que se consiga um mínimo de produtividade

Questionário - resultado Cenários de Utilização de REST Quando simplicidade da arquitetura e desempenho forem requisitos básicos. Quando se utiliza metodologias ágeis de desenvolvimento de software. Quando o nível de segurança exigido não é muito alto. Quando os serviços ou integrações tiverem um escopo pequeno. Quando os requisitos forem pouco complexos e extensos. Quando é necessário ter grande escalabilidade.

Questionário - resultado Cenários de Utilização de SOAP Quando houver definição muito formal do serviço, como por exemplo, a definição da comunicação entre entidades distintas. Quando o ambiente for robusto o bastante para agüentar a carga de trabalho. Por exemplo, com a utilização das plataformas SAP e Oracle. Quando a segurança do tráfego de informações for um requisito essencial. Quando o cliente deseja utilizar essa arquitetura. Quando a integração a ser feita contempla sistemas com dados fortemente tipados. Quando o alvo da integração utiliza SOAP. Quando é necessária alta confiabilidade e formalização de contratos, tanto de operações como de parâmetros.

Problemas e limitações Definir o foco do trabalho Questionário Extenso Perguntas muito abstratas e às vezes repetitivas Respostas muito subjetivas

Conclusão O desenvolvimento das provas de conceito mostrou que é simples desenvolver aplicações que utilizam REST e SOAP. As API existentes encapsulam toda a complexidade dos protocolos utilizados. Com os resultados obtidos no questionário nota-se claramente que o contexto influencia muito na decisão de uma arquitetura. O tipo de projeto, a cultura da empresa, os requisitos e o domínio das tecnologias propostas influenciam diretamente nas escolhas dos arquitetos de software.

Trabalhos futuros Realizar comparação quantitativa entre REST e SOAP Evoluir as provas de conceito e avaliar a complexidade de desenvolvimento quando o requisito exigir mais da aplicação Elaborar uma documentação formal de REST

Principais referências FIELDING, Roy Thomas. Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, University of California, Irvine, 2000. COULOURIS, George; DOLLIMORE, Jean; KINDENBERG, Tim. Sistemas Distribuídos; Conceitos e Projeto. 4. ed. Porto Alegre: Bookman, 2007. TANENBAUM, Andrew S; STEEN, Maarten Van. Sistemas Distribuídos; Princípios e Paradigmas. 2. ed. São Paulo: Pearson Education, 2007. GARLAN, D; PERRY, D. Introduction to the Special Issue on Software Architecture; IEEE Transactions on Software Engineering, April 1995, pp 269-274.d FOWLER, Martin. Padrões de arquitetura de aplicações corporativas. Porto Alegre: Bookman, 2006.