SlideShare uma empresa Scribd logo
1 de 90
Baixar para ler offline
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

Semelhante a Evolução das arquiteturas

AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambMicrosoft Brasil
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)DNAD
 
Architecture In a Box - Plataforma de Aplicações
Architecture In a Box - Plataforma de AplicaçõesArchitecture In a Box - Plataforma de Aplicações
Architecture In a Box - Plataforma de AplicaçõesMarkus Christen
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devopsDiego Pacheco
 
Introdução a arquitetura Serverless na AWS
Introdução a arquitetura Serverless na AWSIntrodução a arquitetura Serverless na AWS
Introdução a arquitetura Serverless na AWSTimóteo Nascimento
 
ApresentaçãO Final Campus Party
ApresentaçãO Final   Campus PartyApresentaçãO Final   Campus Party
ApresentaçãO Final Campus PartyCampus Party Brasil
 
Introdução a Web Services
Introdução a Web ServicesIntrodução a Web Services
Introdução a Web ServicesFabio Leal
 
Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011 Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011 Felipe Pimentel
 
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesPHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesiMasters
 
Running Microsoft on AWS- We got it! - SVC305 - São Paulo AWS Summit
Running Microsoft on AWS- We got it! - SVC305 - São Paulo AWS SummitRunning Microsoft on AWS- We got it! - SVC305 - São Paulo AWS Summit
Running Microsoft on AWS- We got it! - SVC305 - São Paulo AWS SummitAmazon Web Services
 
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019Renato Groff
 
Roadshow TOTVS RM 2010 v.11.0
Roadshow TOTVS RM 2010 v.11.0Roadshow TOTVS RM 2010 v.11.0
Roadshow TOTVS RM 2010 v.11.0Andre Bretas
 
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftComparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftLuciano Condé
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 
A nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemA nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemCloves Moreira Junior
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...tdc-globalcode
 
Uma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicaçõesUma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicaçõesMarkus Christen
 
Minicurso IOT com javascript - SBTI
Minicurso IOT com javascript - SBTIMinicurso IOT com javascript - SBTI
Minicurso IOT com javascript - SBTImarcochella
 

Semelhante a Evolução das arquiteturas (20)

AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcamb
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
 
3 Telas e uma nuvem
3 Telas e uma nuvem3 Telas e uma nuvem
3 Telas e uma nuvem
 
Architecture In a Box - Plataforma de Aplicações
Architecture In a Box - Plataforma de AplicaçõesArchitecture In a Box - Plataforma de Aplicações
Architecture In a Box - Plataforma de Aplicações
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
Introdução a arquitetura Serverless na AWS
Introdução a arquitetura Serverless na AWSIntrodução a arquitetura Serverless na AWS
Introdução a arquitetura Serverless na AWS
 
ApresentaçãO Final Campus Party
ApresentaçãO Final   Campus PartyApresentaçãO Final   Campus Party
ApresentaçãO Final Campus Party
 
Introdução a Web Services
Introdução a Web ServicesIntrodução a Web Services
Introdução a Web Services
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 
Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011 Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011
 
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesPHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
 
Running Microsoft on AWS- We got it! - SVC305 - São Paulo AWS Summit
Running Microsoft on AWS- We got it! - SVC305 - São Paulo AWS SummitRunning Microsoft on AWS- We got it! - SVC305 - São Paulo AWS Summit
Running Microsoft on AWS- We got it! - SVC305 - São Paulo AWS Summit
 
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
 
Roadshow TOTVS RM 2010 v.11.0
Roadshow TOTVS RM 2010 v.11.0Roadshow TOTVS RM 2010 v.11.0
Roadshow TOTVS RM 2010 v.11.0
 
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftComparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
A nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemA nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvem
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
 
Uma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicaçõesUma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicações
 
Minicurso IOT com javascript - SBTI
Minicurso IOT com javascript - SBTIMinicurso IOT com javascript - SBTI
Minicurso IOT com javascript - SBTI
 

Evolução das arquiteturas