Evolução das
ARQUITETURAS DE SOFTWARE
Motivacional
• Entender a diferença das arquiteturas do
presente e passado
• Situar onde entram as principais tecnologias
que usamos nessas arquiteturas
• Os principais problemas que elas buscam
solucionar
t < 1990
Pré Internet
Pré 1990
Cliente Servidor
Pré 1990
Clone Age Apenas rede
interna
Arquitetura
simples
Procedural
Cópias
“descentralizadas”
Problemas de
Rollout
Pré 1990
Clone Age
Pré 1990
Client Server - Arquitetura
TUDO UMA COISA SÓ
Arquitetura
Timeline
Desktop
Clones
1990
Pós 1990
Web Cliente Servidor
Web Cliente Servidor
Arquitetura
+
Pós 1990
Web Cliente-Servidor Linguagem diferente
para apresentação
(HTML)
Arquitetura
simples
Procedural
Fonte
centralizado
Código
“Espaguete”
Rollout++
Web Cliente-Servidor (primórdios)
algumas tecnologias populares
Arquitetura
Timeline
Desktop
Clones
Spaghetti
1990
N-LayersBLL
DAL
N-Layers
Arquitetura
BLL
DAL
Anos 2000’s
N-Layers
Separação de lógicas de
negócio, apresentação e
persistência
Orientação
Objetos++
Facilidade de
manutenção
BLL
DAL
N-Layers
Componentes
Anos 2000’s
N-Layers + Componentes
Separação de lógicas de
negócio, apresentação e
persistência
Orientação
Objetos++
Facilidade de
manutenção
BLL
DAL
Velocidade
HTML e JS
gerado
automático
Difícil integração
com frameworks JS SEO--
N-Layers
algumas tecnologias populares
Arquitetura
Timeline
Desktop
Clones
Spaghetti N-Layers
1990 2000
ainda nos Anos 2000s
MVC
MVC - Arquitetura
BLL
DAL
SERVICES
REPOSITORY
TASKS
DATAMODEL
MODEL
Anos 2000’s
MVC
Melhor
segregação das
responsabilidades
Código mais
fácil de manter
Sem
componentes
HTML
“mágicos”
Total controle
do HTML e
Java Script
gerado
Testável
MVC Vs N-Layers(componented)
MVC
algumas tecnologias populares
Arquitetura
Timeline
Desktop
Clones Spaghetti N-Layers MVC
1990 2000
Separação
FrontEnd / BackEnd
Backend Frontend
Arquitetura
Business
Logic
Data
Processamento
no cliente alivia
o servidor
Maior controle
do HTML
Separação
Backend Frontend
Várias plataformas
podem consumir as
mesmas fontes de dados
Quebra do
Monolito
FrontEnd
BackEndAnos 2000’s
Frontend vs Backend
Linguagens
Banco de Dados
WEBMobile
Desktop
Apresentação - FrontEnd
Lógica e Dados - BackEnd
Frontend
Backend
Arquitetura
Timeline
Desktop
Clones
Spaghetti N-Layers MVC
1990 2000
Evoluções do
BackEnd
Anos 2000’s
SOA (Service Oriented Architecture)
Anos 2000’s
SOA (Service Oriented Architecture)
Business
Logic
Data
Independência
de tecnologia
Reuso de
Funcionalidades
Especialização Backend
SOA
Velocidade em
novas
implementações
Centralização
Gestão de
mudança
Mas... e todas aquelas
outras letrinhas?
ESB
SOAP
REST API
ESB
(Enterprise Service Bus)
(Barramento de serviços)
Anos 2000’s
“SOA vs ESB”
ESB
algumas tecnologias populares
Mas... e todas aquelas
outras letrinhas?
ESB
SOAP
REST API
SOAP
(Simple Object Access Protocol)
Anos 2000’s
SOAP
Protocolo de comunicação para web services, MUITO bem padronizado.
Contratos fortes entre cliente e servidor
WS-Security, WS-AtomicTransaction, e muitos outros WS-AlgumaCoisa
REST API
(Representational State Transfer
Application Programming Interface)
Anos 2000’s
REST
Padrão de arquitetura sobre HTTP o mais simples e leve possível
Velocidade
Fortemente
padronizada
Padrão simples
Resultado XML
ou JSON
Sobre protocolo
HTTP
SOAP REST API
Dados
massivos
Resultado não legível
por humanos
Performance
inferior
Stateless
Contratos
fortes
Fácil de integrar
REST API
algumas tecnologias populares
Mas... e todas aquelas
outras letrinhas?
ESB
SOAP
REST API
N-Layers
Frontend
Backend
Arquitetura
Timeline
Desktop
Clones
Spaghetti MVC
SOA
1990 2000
Anos 2010’s
Micro Serviços
Arquitetura
Micro Serviços
Independência
entre times
Agilidade
Especialização Backend
Micro Serviços
Produtividade
Resiliência
Escalabilidade
Risco reduzido
em deploys
Business Logic
Repository
Arquitetura
Micro Serviços
Business
Logic
Repository
Business
Logic
Repository
Business
Logic
Repository
Mas...
O que é melhor?
SOA
vs
MicroServices
Arquitetura
SOA > Micro Services
Frontend
Backend
Arquitetura
Timeline
Desktop
Clones
Spaghetti N-Layers MVC
SOA
Micro
Services
1990 2000 2010
Cloud
Computing
Anos 2010’s
Cloud Computing
Anos 2010’s
Cloud - Auto Scaling
Anos 2010’s
Cloud - CND (Content Delivery Network)
Anos 2010’s
Cloud - Velocidade
Cloud Computing
algumas tecnologias populares
Frontend
Backend
Arquitetura
Timeline
Desktop
Clones
Spaghetti N-Layers MVC
SOA
Micro
Services
Cloud
1990 2000 2010
Evoluções do
FrontEnd
Anos 2000’s
Static to Dinamic Web
Anos 2000’s
Static to Dinamic Web
Web 2.0
Arquitetura
+
Backend
Web 1.0  Web 2.0
algumas Tecnologias Populares
Frontend
Backend
Arquitetura
Timeline
Desktop
Clones
Spaghetti N-Layers MVC
SOA
Micro
Services
Web 2.0Static Pages
Cloud
1990 2000 2010
Enquanto isso... (2000 - 2010)
Enquanto isso... (2000 - 2010)
+
Enquanto isso... (2000 - 2010)
Enquanto isso... (2000 - 2010)
Enquanto isso... (2000 - 2010)
2017 Chrome IE/Edge Firefox Safari Opera
January 73.7 % 4.9 % 15.4 % 3.6 % 1.0 %
https://www.w3schools.com/browsers/
Single Page
Applications
Anos 2010’s
SPAs
FrontEnd
MVVM
SPA
Arquitetura
Backend
UI
UI Logic
Data Binding
Notifications
Commands
Request
Request
Business Logic
SPA
algumas tecnologias populares
Frontend
Backend
Arquitetura
Timeline
Desktop
Clones
Spaghetti N-Layers MVC
SOA
Micro
Services
Web 2.0Static Pages SPA
Cloud
1990 2000 2010
Component
Based
Anos 2010’s
Component Based
Component Based
Arquitetura
Backend
Data Request
Data Request
Component Based
algumas tecnologias populares
Frontend
Backend
Arquitetura
Timeline
Desktop
Clones
Spaghetti N-Layers MVC
SOA
Micro
Services
Web 2.0Static Pages SPA Componentes
Cloud
1990 2000 2010
Considerações
Finais
• Entender a diferença das arquiteturas do
presente e passado
• Situar onde entram as principais tecnologias
que usamos nessas arquiteturas
• Os principais problemas que elas buscam
solucionar
Arquiteturas antigas
ainda dão conta do
recado
Escolha suas
tecnologias/arquiteturas
porque resolvem um
problema, não porque
são “cool”
Mesmo que seja a
melhor opção, considere
a curva de aprendizado
Bruno Trassante
bruno@cwi.com.br

Mais conteúdo relacionado

PPTX
Agile + Scrum - Mindset e conceitos
PDF
INTERNSHIP REPORT
PPTX
CI Implementation with Kubernetes at LivePerson by Saar Demri
PDF
Invitation on hybrisonuniversity_go-2
PDF
Invitation on hybrisonuniversity-scala
PPTX
Scaling Jenkins with Kubernetes by Ami Mahloof
PDF
Agrochemicals knowledge-report-2016
PDF
Greenflex presentation 0117
Agile + Scrum - Mindset e conceitos
INTERNSHIP REPORT
CI Implementation with Kubernetes at LivePerson by Saar Demri
Invitation on hybrisonuniversity_go-2
Invitation on hybrisonuniversity-scala
Scaling Jenkins with Kubernetes by Ami Mahloof
Agrochemicals knowledge-report-2016
Greenflex presentation 0117

Semelhante a Evolução das arquiteturas (20)

PDF
Evolução das arquiteturas para aplicações Web
PPTX
A nova geração da arquitetura web para a era da nuvem
PPTX
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
PDF
Introdução ao desenvolvimento Web
PPT
DotNet vs. Java
PPTX
Arquitetura de Aplicações Web Cliente e Servidor
PDF
WebServices intro
PDF
Php Conf08 Enterprise Patterns
DOCX
World wide web
PPTX
Introdução ao desenvolvimento web - 2 - iDez 2010
PDF
Projeto IV - Tecnologias básicas da Web X.0
PDF
Latinoware 2012 - Desenvolvendo Interfaces com Holy
PDF
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
PPT
Web 2.0: conceito, tendências e desafios
PPTX
IntroduçãO Ao Desenvolvimento Web 2
PDF
Soa - Arquitetura orientada a serviços
PDF
04 - Felipe Oliveira - Think Decoupled! (SOA)
DOCX
Joana costa tp 1 – trabalho prático www
PDF
Introdução a Arquitetura de Sistemas
ODP
Pense Aberto, Pense Linux
Evolução das arquiteturas para aplicações Web
A nova geração da arquitetura web para a era da nuvem
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Introdução ao desenvolvimento Web
DotNet vs. Java
Arquitetura de Aplicações Web Cliente e Servidor
WebServices intro
Php Conf08 Enterprise Patterns
World wide web
Introdução ao desenvolvimento web - 2 - iDez 2010
Projeto IV - Tecnologias básicas da Web X.0
Latinoware 2012 - Desenvolvendo Interfaces com Holy
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Web 2.0: conceito, tendências e desafios
IntroduçãO Ao Desenvolvimento Web 2
Soa - Arquitetura orientada a serviços
04 - Felipe Oliveira - Think Decoupled! (SOA)
Joana costa tp 1 – trabalho prático www
Introdução a Arquitetura de Sistemas
Pense Aberto, Pense Linux
Anúncio

Evolução das arquiteturas