SlideShare uma empresa Scribd logo
Uso de Padrões no
Desenvolvimento de Web
Services
Um Estudo de Caso
Rafael Salerno de Oliveira
Prof Ms Vinícius Costa de Souza

S
Motivação
Integração

Multiplataforma
Disponibilização

Independência
de Tecnologia
Objetivo
• Como Reduz a Complexidade
• Comunicação Comum entre
Desenvolvedores
• Como proporciona Evolução
O que é um Web Service?
S É uma Solução que possibilita:

S Comunicação entre Aplicações Diferentes

S Interação com Diferentes Plataformas
Características
Infraestrutura aberta

Transparência de Linguagem

Design modular
“Isolar o Cliente”
Principais Tipos
Meio da Comunicação
Conteúdo da Comunicação
Padrões/Estilos de API para
Web Services

• RPC API
• Message API
• Resource API
RPC API
Remote Procedure Call
Message API
Resource API
Tipos de Padrões de Interação
Cliente-Servidor
• Request/Response
• Request/Acknowledge
• Media Type Negotiation

• Linked Service.
Request/Response
Request/Response
Request/Acknowledge
Steps no Server:
1. Recebe um Request
2. Envia um Identificador(token) ou uma URL

3. Processsa a requisição em backgroud
4. Recebe o Identificador e envia o
Request/Acknowledge
Media Type Negotiation
Linked Service
Linked Service
Padrões de
Request/Response
S Service Controller

S Data Transfer Object
Service Controller

- Controlam a execução de tarefas de negócios e
coordenam o acesso à recursos.
- Front Controller
Data Transfer Object
Data Transfer Object
Estilos de Implementação de
Web Service
Considerações para implementação do serviço
Web:
S Atomicidade - tudo ou nada

S Não gerenciar estados

S Ações quando houver composição de serviços
Estilos de Implementação de
Web Service
S Operation Script

S Command Invoker
Estilos de Implementação de
Web Service
S Transaction Script
Padrões de Infra- Estrutura
para Web Service
S Service Connector

S Service Descriptor
S Service Interceptor
S Idempotent Retry
Service Connector
S Esconde detalhes da

comunicação entre APIs
relacionadas

Idempotent Retry
S Tratar problemas relacionados a

erro de conexão
Service Descriptor
Service Interceptor
Benefícios do uso de padrões
de projeto

Diminuem
o
retrabalho
Metodologia

S Público alvo

S Técnica utiliza amostragem por conveniência
S Observação do pesquisador.
S Questionário direcionado a profissionais de

TI
Estudo de Caso
S Foi utilizado uma aplicação usada por uma

empresa de pesquisa de medicamentos.
S Algumas funcionalidades:
 Monitoramento de Portfólio de Medicamentos

 Pesquisa e Recomendação de Medicamentos
 Agrupamento de Medicamento

 Histórico do medicamento
Estudo de Caso
S P1 - Sem Padrões de Projeto para web

Services
S P2 - Com Padrões de Projeto para web

Services
S As duas aplicações realizam o mesmo

trabalho
S Tem entradas e saídas iguais o que facilita a

comparação
Estudo Comparativo

S O que foi Comparado :
 Padrões de Projetos

 Frameworks
 Número de Linhas de Código

 Complexidade Ciclomática (IF,WHILE e FOR)
 Manutenibilidade (facilidade, precisão, segurança na
Complexidade Ciclomática
M=D+1 onde:
D=ponto de decisão (IF,FOR,WHILE)

Valores de Referência:
− 1-10, métodos simples, sem muito risco
− 11-20, métodos medianamente complexos, com
risco moderado
− 21-50, métodos complexos, com risco alto
− 51 ou mais, métodos instáveis de altíssimo risco.
(MCCABE,1976)
Service Design Patterns - Study Case
Resultados Obtidos
Projeto 2
• Padrão Arquitetural SOA

• Estilo de RPC API
• Linked Service com serviço raiz com pontos de
entrada
• Data Transfer Object para tratar dados
recebidos e Enviados e deixar o cliente a parte
Resultados Obtidos
• Operation Transcripts para ter um único ponto
de controle transacional

• Comand Invoker para que o Serviço não
conheça o modelo de domínio e fazer com que
o cliente conheça apenas interfaces de saída
• Service Interceptor para realizar validações
Resultados Obtidos
• O projeto 2 teve aproximadamente 1200 linhas a mais
que o projeto 1
• Complexidade Ciclomática foi considerada:
P1 - “medianamente complexo, com risco
moderado”
Resultados Obtidos
P1

P2
Resultados Obtidos
• A manutenibilidade foi de 1h e 30 min a menos
no projeto 2
Casos de manutenção:
• Suporte a relatórios em CSV

• Manutenção no agrupamento por medicamentos
do mesmo tipo
• Ordenação de medicamentos após o
agrupamento do mesmo tipo
Estudo Qualitativo
S Pesquisa com dez profissionais

S Objetivo :
Importância dos padrões de projeto

É determinado pelo tempo de

experiência?
Estudo Qualitativo

Experiência na área de TI em anos:
5 anos

6 anos 8 anos 5 anos 12 anos

3 anos

1 ano 4 anos 5 anos

2 anos
Estudo Qualitativo
Estudo Qualitativo
Estudo Qualitativo
Estudo Qualitativo
Conclusão do Estudo
Qualitativo
S A maior parte das pessoas sabem que os

Padrões de projeto tem benefícios
S A complexidade e quando se usar pode

estar ligado a tempo de experiência
S Dependendo do contexto que se trabalha

a pessoas acham que o framework pode
ser mais importante que o Padrão de
Considerações Finais

• Complexidade
• Manutenção
•

Código Duplicado

• Comunicação
Referencial
Service Design Patterns - Study Case

Mais conteúdo relacionado

PDF
Design de Serviços no Setor Público: Estudo de caso da Lei de Liberação de Ev...
PPT
Web Service - XML
PPT
WebServices-XML
PPT
Engenharia de software orientada a servicos
PPTX
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
PPTX
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
PPT
Arquitetura orientada a servicos soa
PDF
Arquitetura orientada a serviços (SOA)
Design de Serviços no Setor Público: Estudo de caso da Lei de Liberação de Ev...
Web Service - XML
WebServices-XML
Engenharia de software orientada a servicos
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura orientada a servicos soa
Arquitetura orientada a serviços (SOA)

Semelhante a Service Design Patterns - Study Case (20)

PPT
Web Services - Grupo F
PPTX
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
DOCX
Arquitetura Orientada a Serviços e BPM
PPT
Design Patterns
PDF
Web services
PDF
Padrões de Projeto de Software
PDF
Trabalho Final PSDC - Simião
PDF
Um método para o desenvolvimento de software baseado em microsserviços
PPTX
Soa conceitos
PPTX
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
PPT
pec-12-patterns-intro.ppt
PDF
JustJava 2005: Web Services em Java com o JWSDP 1.5
PPTX
Padrões de projeto - Adapter, Proxy, Composite e Bridge
PPTX
Qualidade de Código
PPSX
Seminários V - Ads -UNOPAR ARAGUAINA,TO - POLO II
PDF
Introdução a Padrões de Projeto
PDF
Microservices, soa e o melhor das filas
ODP
PRODUCT LINE UML SYSTEM Uma aplicabilidade de desenvolvimento de uma linha de...
PPTX
07182803-4929-40ED-AB7E-2C5F9B6B90DD.pptx
PDF
Aula de Sistemas Distribuídos - Padrões de Projeto de Middleware
Web Services - Grupo F
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura Orientada a Serviços e BPM
Design Patterns
Web services
Padrões de Projeto de Software
Trabalho Final PSDC - Simião
Um método para o desenvolvimento de software baseado em microsserviços
Soa conceitos
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
pec-12-patterns-intro.ppt
JustJava 2005: Web Services em Java com o JWSDP 1.5
Padrões de projeto - Adapter, Proxy, Composite e Bridge
Qualidade de Código
Seminários V - Ads -UNOPAR ARAGUAINA,TO - POLO II
Introdução a Padrões de Projeto
Microservices, soa e o melhor das filas
PRODUCT LINE UML SYSTEM Uma aplicabilidade de desenvolvimento de uma linha de...
07182803-4929-40ED-AB7E-2C5F9B6B90DD.pptx
Aula de Sistemas Distribuídos - Padrões de Projeto de Middleware
Anúncio

Mais de Rafael Salerno de Oliveira (20)

PPTX
TDC - Qual o tamanho adequado de um micro serviço?
PDF
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
PPTX
PDF
Aws Network Introduction
PDF
Aws system manager
PDF
Front end architecture
PDF
Domain driven design com functional programing(f#)
PPTX
Thinking in systems
PPTX
Design pattern for mobile Android IOS
PPTX
Hammock Driven Development
PPTX
Responsibility Driven Design
TDC - Qual o tamanho adequado de um micro serviço?
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Aws Network Introduction
Aws system manager
Front end architecture
Domain driven design com functional programing(f#)
Thinking in systems
Design pattern for mobile Android IOS
Hammock Driven Development
Responsibility Driven Design
Anúncio

Último (16)

PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Arquitetura de computadores - Memórias Secundárias
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
COBITxITIL-Entenda as diferença em uso governança TI
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Processos na gestão de transportes, TM100 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Termos utilizados na designação de relação entre pessoa e uma obra.pdf

Service Design Patterns - Study Case