SlideShare uma empresa Scribd logo
1 de 39
Arquitetura:umaquestãodeestilo?
byVanilsonBurégio
vanilson.com
vanilson@gmail.com
UniversidadeFederaldePernambuco
CentrodeInformática,Recife,Pernambuco-Brazil
vanilson.com
Arquitetura
vanilson.com
Porquearquitetura?
vanilson.com
Necessidadedeumaarquitetura...
● 38anosdeconstrução–147pedreiros,
0(zero)arquitetos
● 160salas–40quartos,6cozinhas,2
porões,950portas
● 65portasviradasparaparedes,
●13escadariassemuso,
●24claraboiasnopiso
Nãoexistenenhumaplantada
construção
Winchester “Mystery” House
vanilson.com
Earquiteturadesoftware?
vanilson.com
ArquiteturadeSoftware
Oqueé?
“A arquitetura de software de um programa ou sistema
computacional é a estrutura (ou estruturas), a qual envolve os
elementos de software, as propriedades desses elementos
visíveisexternamenteeseusrespectivosinter-relacionamentos”
SoftwareArchitectureinPractice.
LenBass,PaulClements,RickKazman
vanilson.com
Quaisosprincipaisfatorespara
umbomdesign?
vanilson.com
Principaisfatoresparaumbomdesign
Baixo Acoplamento Alta Coesão
Fonte:borba.blog.br
vanilson.com
Eestiloarquitetural?
Oqueé?
vanilson.com
EstiloArquitetural
Conjuntoderegraserestrições[constraints]impostasaoprojetodeumprodutoparaa
obtençãodepropriedadesdesejadas.
Desenvolvimento
Conjunto de Constraints
Propriedades
Benéficas
Estilo
Arquitetural
LimitaVisa
Obter
Estabelece
Produto
Umaarquiteturasegueumestiloarquitetural...
Definiçãogenérica:
By Vanilson Burégio
vanilson.com
vanilson.com
Naconstruçãocivil…
vanilson.com
Construção
ConjuntodeConstraints
Propriedades
benéficas
Estilo
Arquitetural
LimitaVisa
obter
Permitir o escoamento
rápidodaneve
Estabelece
Ex.:Telhadodeveser
íngreme
ChaléSuíco
Arquiteturasdistintas,omesmoestilo.
vanilson.com
EnocontextodeSOFTWARE?
vanilson.com
Design
ConjuntodeConstraints
AtributosdeQualidade
Estilo
Arquitetural
Alta disponibilidade,
performance,
discoverability,
Segurança,
interoperability,etc..
Limitamcomoa
aplicaçãodeveser
construída,comoseus
componentese
conectoresdevemse
comunicar.
SOA,REST,Camadas, CDB,
Client-server, Pipes&filters…
Software
Softwareéoproduto.
Estabelece
LimitaVisa
obter
vanilson.com
Para responder: http://bit.ly/AQ_NTI
vanilson.com
Adotandoessadefinição…
 Podemosconsidercomoestilosarquiteturais…
SOA
Pipes&filters
REST
Camadas
Client-server
peer-to-peer
Data-flow
Blackboard
Publish-subscribe
Event-based
….
vanilson.com
ArquiteturaVsEstilo
 ÉpossívelcriarmosarquiteturasDISTINTASparasistemas
específicosutilizandooMESMO estilo!
vanilson.com
Algunsexemplosdeabordagens
analisadassobaperspectivadeestilos
arquiteturais…
vanilson.com
 Constraint
– Projetar o sistema como um conjunto de filters que transformam stream de dados de entrada em um stream de
dadosdesaídaeospipesconduzemosstreamsdedados.
– Filtrossãoindependentes(nãoarmazenamestado)enãotêmconhecimentodosfiltrosconectados aele.
– Exemplos: Unix: ps–a|grepjava|sort. Estiloadotado pelasaplicaçõesgeradascomoifttt.com, Yahoopipes,etc
 AtributosdeQualidade
– Execuçãoconcorrente;
– flexibilidade de composição: filtros podem ser adicionados, substituídos, e reusados, sendo possível combinar 2
filtrosquaisquer);
– composição comportamental: o comportamento do sistema é a sucessão dos comportamentos dos seus
componentes (filters).
EstiloArquiteturalPipes&Filters
vanilson.com
 Constraint
– Decompor a aplicação em componentes
(funcionais ou lógicos) reutilizáveis que expõem
interfacesbemdefinidasdecomunicação
 AtributosdeQualidade
– reusabilidade;
– facilidade de deployment: substituição de uma
versão do componente por outra não gera
impactos no sistema, pois a interface de
comunicaçãodocomponenteémantida;
– redução de custo: uso de componentes de
terceiros permite a diluição do custo de
desenvolvimento emanutenção
EstiloArquiteturalbaseadoemcomponentes
vanilson.com
 Constraint
– “Segregrar”osistemaem2tiposdeaplicações,onde
a aplicação do tipo cliente faz requisições ao
servidor.
– Na maioria dos casos, o servidor implementa toda a
lógicadaaplicaçãoeacesso aosdados
 AtributosdeQualidade
– Maior segurança: todos os dados ficam armazenados
no servidor, que geralmente oferece maior controle
desegurançaqueasaplicações clientes;
– acessoadados centralizado;
– fácil manutenção: atualizações e reparados da
aplicaçãofeitosemumúnicoponto:servidor.
EstiloArquiteturalclient-server
vanilson.com
EstiloArquiteturalemCamadas
Constraints
Dividirlogicamenteosistema emcamadascomresponsabilidades bemdefinidas.As
funcionalidadesdosistema sãoseparadas deacordocomospapéis decada camada
Modelomaiscomum:MVC(acessoadados,apresentação econtrole).
Acamada superiorutiliza osserviços fornecidospela camada inferior,nuncao
contrário!
AtributosdeQualidade
AumentodaCoesão;
Performance:adistribuição dascamadas sobre múltiplas camadas físicaspode
melhoraraescalabilidade, tolerânciaafalhas,eperformance.
Isolamento:épossívelisolaratualizações tecnológicas (upgrades)emcamadas
individuaisparareduzirriscoseminimizaroimpactoemtodosistema.
Manageability.Aseparação deconceitoscoreajudaaidentificardependências e
organizarocódigoempartes maisfáceisdegerenciar
Reusabilidade: definiçãodepapéispromovereusabilidade. NomodeloMVC,por
exemplo,acamada docontroladorpodeserfacilmente reutilizada comumacamada de
apresentação diferente(jáfizisso).
vanilson.com
EstiloArquiteturalSOA(Service-OrientedArchitecture)
Constraint
Aplicaçãodeveexporeconsumirfuncionalidadescomoum
serviço,usandocontratosemensagens
AtributosdeQualidade
Abstração.Serviçossãoautônomoseacessadosatravésdeum
contratoformal,queproveBAIXOacoplamentoeabstração
Discoverability:serviçospodemexpordescriçõesquepermitem
outrasaplicaçõeseserviçoslocalizá-loseautomaticamente
determinarainterface;
Interoperabilidade:comoosprotocoleseformatosdedadossão
baseadosempadrõesdaindústria,oprovedoreconsumidorde
umserviçopodeserconstruídoeimplantadoemdiferentes
plataformas
vanilson.com
WebServices
SOAP-BasedWebService
● ExpõeOPERAÇÕESquerepresentamLÓGICA
● UsaMétodoHTTPPOST
● Suportaconversações statelessestateful
● WSDL
RESTWebService
● Expõerecursosquerepresentamdados
● UsaHTTPVerbs(GET/POST/DELETE)
● ÊnfaseemcomunicaçãopontoapontoemcimadeHTTP
● Suportamúltiplos formatos
● Ênfaseemcomunicaçãostateless
vanilson.com
Semserviço
EstiloArquiteturalSOA(Service-OrientedArchitecture)
vanilson.com
Com serviço
EstiloArquiteturalSOA(Service-OrientedArchitecture)
Semserviço
vanilson.com
Mas,enaPRÁTICA?
vanilson.com
Importante!Estilosevoluemparasatisfazer
necessidadesemergentes…
vanilson.com
PrimeiraLeideArquiteturadeSoftwaredeBorba
Todaarquiteturadefinida
estáerrada!
Fonte:borba.blog.br
vanilson.com
SegunfaLeideArquiteturadeSoftwaredeBorba
Todaarquiteturadefinidaque
comprovadamentefunciona
estaráerradaembreve.
Fonte:borba.blog.br
vanilson.com
EstudodeCaso
TWITTER
TabelaÚnica
PartiçãoporPK
Paraencontrar tweetsrecentesporusuário tem
queprocuraremNpartiçõesPartiçãoporUsuário
Paraencontrarumtweetporidtemqueprocurarem Npartições
PartiçãoporTempo
Fontes:borba.blog.br;http://slidesha.re/fViE3Y
vanilson.com
FacebookBigPipe
Servidor
HTTPRequest
Threads
Fontes:borba.blog.br ;http://on.fb.me/155VstG
vanilson.com
Comodocumentartudoisso?
vanilson.com
DiferentesVisões
vanilson.com
EnocontextodeSOFTWARE?
vanilson.com
Diferentes Visões
vanilson.com
Qualoníveldedocumentaçãoideal?
vanilson.com
Resultado da Enquete (http://bit.ly/AQ_NTI)
VanilsonBurégio
[vanilson.com]–[vaab@cin.ufpe.br]
By Vanilson Burégio
vanilson.com
Obrigado!

Mais conteúdo relacionado

Mais de Vanilson Buregio

Ensinando e Aprendendo com Tecnologia: Como Inovar em Sala de Aula?
Ensinando e Aprendendo com Tecnologia: Como Inovar em Sala de Aula?Ensinando e Aprendendo com Tecnologia: Como Inovar em Sala de Aula?
Ensinando e Aprendendo com Tecnologia: Como Inovar em Sala de Aula?Vanilson Buregio
 
Minicourse - RiPLE : The RiSE Process for Product Line Engineering
Minicourse -  RiPLE : The RiSE Process for Product Line EngineeringMinicourse -  RiPLE : The RiSE Process for Product Line Engineering
Minicourse - RiPLE : The RiSE Process for Product Line EngineeringVanilson Buregio
 
Socm_www2013: Social Machines: A Unified Paradigm to describe Web-Oriented Sy...
Socm_www2013: Social Machines: A Unified Paradigm to describe Web-Oriented Sy...Socm_www2013: Social Machines: A Unified Paradigm to describe Web-Oriented Sy...
Socm_www2013: Social Machines: A Unified Paradigm to describe Web-Oriented Sy...Vanilson Buregio
 
Software, abstração de que?
Software, abstração de que?Software, abstração de que?
Software, abstração de que?Vanilson Buregio
 
C.R.U.I.S.E. - Component Reuse In Software Engineering
C.R.U.I.S.E. - Component Reuse In Software EngineeringC.R.U.I.S.E. - Component Reuse In Software Engineering
C.R.U.I.S.E. - Component Reuse In Software EngineeringVanilson Buregio
 
Arquitetura, implementações além do "concreto"?
Arquitetura, implementações além do "concreto"?Arquitetura, implementações além do "concreto"?
Arquitetura, implementações além do "concreto"?Vanilson Buregio
 
Sem tempo, sem foco, sem respostas... e agora?!
Sem tempo, sem foco, sem respostas... e agora?!Sem tempo, sem foco, sem respostas... e agora?!
Sem tempo, sem foco, sem respostas... e agora?!Vanilson Buregio
 
Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?Vanilson Buregio
 

Mais de Vanilson Buregio (10)

Ensinando e Aprendendo com Tecnologia: Como Inovar em Sala de Aula?
Ensinando e Aprendendo com Tecnologia: Como Inovar em Sala de Aula?Ensinando e Aprendendo com Tecnologia: Como Inovar em Sala de Aula?
Ensinando e Aprendendo com Tecnologia: Como Inovar em Sala de Aula?
 
13socm04 buregio
13socm04 buregio13socm04 buregio
13socm04 buregio
 
Socm2013 collective memo
Socm2013 collective memoSocm2013 collective memo
Socm2013 collective memo
 
Minicourse - RiPLE : The RiSE Process for Product Line Engineering
Minicourse -  RiPLE : The RiSE Process for Product Line EngineeringMinicourse -  RiPLE : The RiSE Process for Product Line Engineering
Minicourse - RiPLE : The RiSE Process for Product Line Engineering
 
Socm_www2013: Social Machines: A Unified Paradigm to describe Web-Oriented Sy...
Socm_www2013: Social Machines: A Unified Paradigm to describe Web-Oriented Sy...Socm_www2013: Social Machines: A Unified Paradigm to describe Web-Oriented Sy...
Socm_www2013: Social Machines: A Unified Paradigm to describe Web-Oriented Sy...
 
Software, abstração de que?
Software, abstração de que?Software, abstração de que?
Software, abstração de que?
 
C.R.U.I.S.E. - Component Reuse In Software Engineering
C.R.U.I.S.E. - Component Reuse In Software EngineeringC.R.U.I.S.E. - Component Reuse In Software Engineering
C.R.U.I.S.E. - Component Reuse In Software Engineering
 
Arquitetura, implementações além do "concreto"?
Arquitetura, implementações além do "concreto"?Arquitetura, implementações além do "concreto"?
Arquitetura, implementações além do "concreto"?
 
Sem tempo, sem foco, sem respostas... e agora?!
Sem tempo, sem foco, sem respostas... e agora?!Sem tempo, sem foco, sem respostas... e agora?!
Sem tempo, sem foco, sem respostas... e agora?!
 
Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?
 

2013 05-27-arquitetura uma-questao_de_estilo_nti-vaab