Escolar Documentos
Profissional Documentos
Cultura Documentos
Sandro S$ Andrade
INF016 Arquitetura de Software
04 Projetando Arquiteturas
Sandro Santo! Andrade
sandroandrade@ifba.edu.br
In!tituto Federal de %ducao& 'i(ncia e Tecnologia da )a*ia
"e+artamento de Tecnologia %letro,%letr-nica
Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema!
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
./0eti#o!
:e"uera8!o de rojeto
Projeto greenfield
Seara8!o de concerns
Abstra8!o
Godu%aridade
Ante"ia8!o de mudan8as
Abstra8!o e G2quinas
Sim%es9
Seara8!o de concerns9
Seara8!o de concerns9
Confer-n"ias t'"ni"as
Inibe a ino+a8!o
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! e 1adr5e! Arquiteturai!
47em%o em software9
4sti%os e adr0es
odem ser
"ara"teri5ados
tanto ara
rob%emas
equenos quanto
mais "om%e7os
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! e 1adr5e! Arquiteturai!
47em%o em software9
Sistemas web
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
1adr5e! Arquiteturai!
State-Logic-Display (Three-Tier)
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
1adr5e! Arquiteturai!
Model-View-Controller (MVC)
<o&o de ouso
%unar9
-eedback im%D"ito
atra+'s do ambiente
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
Introduo ao! %!tilo! Arquiteturai!
Ser!o estudados9
Ob1ect-Oriented
4sti%os em Camadas9
Virtual Machines
Client-Server
2atch-Se"uential
ipe-and--ilter
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
Introduo ao! %!tilo! Arquiteturai!
2lackboard
2asic 5nterpreter
Mobile Code
ublish-Subscribe
#vent-2ased
eer-to-eer
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
Tradicionai! influenciado! +or linguagen! de +rogramao
Ob1ect-Oriented
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
Tradicionai! influenciado! +or linguagen! de +rogramao
Ob1ect-Oriented ;**?9
Ob1ect-Oriented ;**?9
4e!umo9 estado fortemente en"asu%ado "om fun80es que oeram neste estado6 sob a forma de
objetos. *bjetos de+em ser instan"iados antes que seus m'todos sejam in+o"ados
'om+onente!9 objetos ;instLn"ias de uma "%asse?
'onectore!9 in+o"a80es de m'todos ;procedure calls que maniu%am estado?
%lemento! de "ado!9 ar&umentos de m'todos
To+ologia9 ode +ariar arbitrariamenteQ "omonentes odem "omarti%(ar dados e interfa"es de
fun80es atra+'s de (ierarquias de (eran8a
4e!tri5e! Adicionai!9 &era%mente mem3ria "omarti%(ada ;ara onteiros? e single-threaded
8ualidade! Indu9ida!9 inte&ridade de oera80es nos dados dados s!o maniu%ados somente or
fun80es aroriadas. Abstra8!o deta%(es de im%ementa8!o est!o o"u%tos
:!o! T;+ico!9 quando deseja/se um re%a"ionamento forte entre entidades do mundo fDsi"o e do
ro&ramaQ ro3sitos eda&3&i"osQ sistemas "om estruturas de dados "om%e7as e dinLmi"as
1recau5e!9 uso em sistemas distribuDdos requer a%&uma so%u8!o de middlewareQ re%ati+amente
inefi"iente ara a%i"a80es de a%to/desemen(o "om &randes estruturas de dadosQ aus-n"ia de
rin"Dios estruturantes adi"ionais ode resu%tar em a%i"a80es a%tamente "om%e7as
4elacionamento com <inguagen! de 1rogramao e Am/iente!9 <a+a6 CNN
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
Tradicionai! influenciado! +or linguagen! de +rogramao
47em%os9
Client-Server
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
%m 'amada!
Virtual Machines9
Virtual Machines9
4e!umo9 sequ-n"ia ordenada de "amadasQ "ada "amada ;ou m2quina +irtua%? ofere"e um "onjunto
de ser+i8os que odem ser a"essados or ro&ramas ;sub/"omonentes? de uma "amada a"ima
'om+onente!9 "amadas ofere"endo ser+i8os ara outras "amadas6 tii"amente "omostas de
+2rios ro&ramas ;sub/"omonentes?
'onectore!9 tii"amente procedure calls
%lemento! de "ado!9 arLmetros que transitam entre as "amadas
To+ologia9 %inear ara m2quinas +irtuais estritas e &rafo dire"ionado a"D"%i"o em interreta80es mais
fra"as
4e!tri5e! Adicionai!9 nen(uma
8ualidade! Indu9ida!9 estrutura de deend-n"ia "%araQ "omonentes em uma "amada suerior s!o
imunes a modifi"a80es das "amadas inferiores desde que as ese"ifi"a80es do ser+i8o n!o mudemQ
"omonentes em uma "amada inferior s!o tota%mente indeendentes de "amadas sueriores
:!o! T;+ico!9 rojeto de sistemas oera"ionais6 i%(as de roto"o%os de rede
1recau5e!9 m2quinas +irtuais estritas "om muitos nD+eis odem ser re%ati+amente inefi"ientes
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
%m 'amada!
Client-Server9
Client-Server9
4e!umo9 "%ientes en+iam requisi80es de ser+i8o ao ser+idor6 que rea%i5a as oera80es requeridas e
resonde "onforme ne"ess2rio "om as informa80es so%i"itadas. 1oda "omuni"a8!o ' ini"iada e%os
"%ientes
'om+onente!9 "%ientes e ser+idor
'onectore!9 remote procedure callsQ roto"o%os de rede
%lemento! de "ado!9 arLmetros e +a%ores de retorno "onforme en+iados e%os "one"tores
To+ologia9 em dois nD+eis6 "om mE%ti%os "%ientes rea%i5ando requisi80es ao ser+idor
4e!tri5e! Adicionai!9 n!o e7iste "omuni"a8!o entre "%ientes
8ualidade! Indu9ida!9 "entra%i5a8!o da "omuta8!o e dos dados no ser+idor6 que torna a
informa8!o disonD+e% ara os "%ientes. Am Eni"o ser+idor oderoso ode ser+ir muitos "%ientes
:!o! T;+ico!9 onde ' ne"ess2rio "entra%i5a8!o de dadosQ onde ro"essamento e arma5enamento de
dados se benefi"iam de uma m2quina de a%ta "aa"idadeQ e onde "%ientes rea%i5am &era%mente
tarefas sim%es de interfa"e de usu2rio6 tais "omo em di+ersos sistemas de informa8!o
1recau5e!9 quando a %ar&ura de banda ' %imitada e e7iste um &rande nEmero de "%ientes
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
%m 'amada!
2atch-Se"uential9
2atch-Se"uential9
4e!umo9 ro&ramas distintos s!o e7e"utados em ordemQ os dados s!o assados6 sob a forma de
b%o"os ;a&re&ados?6 de um ro&rama ara o r37imo
'om+onente!9 ro&ramas indeendentes
'onectore!9 m!os (umanas que "arre&am as fitas entre os ro&ramas ;sneaker-net?
%lemento! de "ado!9 e%ementos a&re&ados e7%D"itos que6 a3s o t'rmino da e7e"u8!o de um
"omonente6 s!o reassados deste ara o r37imo "omonente
To+ologia9 %inear
4e!tri5e! Adicionai!9 um Eni"o ro&rama e7e"uta or +e5 at' o seu t'rmino
8ualidade! Indu9ida!9 e7e"u80es sear2+eisQ sim%i"idade
:!o! T;+ico!9 ro"essamento de transa80es em sistemas finan"eiros
1recau5e!9 quando intera8!o entre "omonentes ' requeridaQ quando "on"orr-n"ia entre
"omonentes ' ossD+e% ou ne"ess2rio
4elacionamento com <inguagen! de 1rogramao e Am/iente!9 nen(um
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
)a!eado! em Flu3o de "ado!
ipe-and--ilter9
ipe-and--ilter9
4e!umo9 ro&ramas distintos s!o e7e"utados6 oten"ia%mente de forma "on"orrenteQ os dados s!o
assados6 sob a forma de f%u7o6 de um ro&rama ara o r37imo
'om+onente!9 ro&ramas indeendentes ;fi%tros?
'onectore!9 roteadores e7%D"itos de f%u7os de dados ;pipes?Q ossi+e%mente ' um ser+i8o
disonibi%i5ado e%o sistema oera"iona% ou e%a %in&ua&em de ro&rama8!o
%lemento! de "ado!9 n!o definidos e7%i"itamente6 or'm de+em ser streams %ineares de dados
To+ologia9 pipeline6 embora bifur"a80es sejam ossD+eis
8ualidade! Indu9ida!9 fi%tros s!o mutua%mente indeendentes. 4struturas sim%es de "(e&ada e
saDda de f%u7os de dados fa"i%itam no+as "ombina80es de fi%tros
:!o! T;+ico!9 ro&rama8!o de a%i"a80es baseadas em rimiti+as de sistemas oera"ionais
1recau5e!9 quando estruturas "om%e7as de dados re"isam ser transferidas entre "omonentesQ
quando interati+idade entre os ro&ramas ' ne"ess2rio
4elacionamento com <inguagen! de 1rogramao e Am/iente!9 Ani7 s(e%%
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
'om =emria 'om+artil*ada
2lackboard9
Ana%o&ia9
2lackboard9
4e!umo9 ro&ramas indeendentes a"essam e se "omuni"am e7"%usi+amente atra+'s de um
reosit3rio &%oba% de dados6 "on(e"ido "omo blackboard
'om+onente!9 ro&ramas indeendentes ;knowledge sources? e blackboard
'onectore!9 a"esso ao blackboard ode ser atra+'s de refer-n"ia direta a mem3ria6 procedure call ou
uma "onsu%ta em um ban"o de dados
%lemento! de "ado!9 dados arma5enados no blackboard
To+ologia9 em estre%a6 "om o blackboard no "entro
>aria5e!9 .? ro&ramas "onsu%tam o blackboard ara +erifi"ar se a%&um +a%or de seu interesse
mudouQ /? um blackboard manager notifi"a atua%i5a80es do blackboard aos "omonentes interessados
8ualidade! Indu9ida!9 estrat'&ias "om%etas de so%u8!o ara rob%emas "om%e7os n!o re"isam
ser r'/%anejadas6 ois s!o determinadas or +is0es6 em "onstante mudan8a6 dos dadosSrob%ema
:!o! T;+ico!9 so%u8!o (eurDsti"a de rob%emas em a%i"a80es de Inte%i&-n"ia Artifi"ia%
1recau5e!9 quando e7iste uma estrat'&ia bem/estruturada de so%u8!oQ quando as intera80es entre
os ro&ramas indeendentes requerem "oordena80es "om%e7asQ quando as reresenta80es dos
dados do blackboard mudam frequentemente ;requerendo modifi"a80es em todos os arti"iantes?
4elacionamento com <inguagen! de 1rogramao e Am/iente!9 +ers0es que ermitem
"on"orr-n"ia entre os ro&ramas requerem rimiti+as ara &eren"iar o blackboard "omarti%(ado
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
'om =emria 'om+artil*ada
3ule-2ased 4 #%pert
System ;ouso %unar?9
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
)a!eado! em Inter+retadore!
47e"u8!o9
1? Ini"ia/se no estado ini"ia% de e7e"u8!o
B? *bt'm/se o rimeiro ;r37imo? "omando a ser e7e"utado
C? 47e"uta/se o "omando sobre o estado atua%
4? A+an8a/se ara um no+o estado
T? Pro"ede/se F e7e"u8!o do r37imo "omando ;&oto B?
2asic 5nterpreter9
2asic 5nterpreter9
4e!umo9 o interretador ana%isa e e7e"uta "omandos de entrada6 atua%i5ando o estado or e%e
mantido
'om+onente!9 interretador de "omandos6 estado do ro&ramaSinterretador e interfa"e de usu2rio
'onectore!9 tii"amente o interretador de "omandos6 interfa"e de usu2rio e estado s!o fortemente
a"o%ados +ia procedure calls ou shared state
%lemento! de "ado!9 "omandos
To+ologia9 tr-s "amadas a%tamente a"o%adasQ o estado ode estar searado do interretador
8ualidade! Indu9ida!9 ossibi%idade de "omortamentos a%tamente dinLmi"os6 onde o "onjunto de
"omandos ' dinami"amente modifi"adoQ a arquitetura do sistema ermane"e ina%terada enquanto
no+as fun"iona%idades s!o "riadas "om base nas rimiti+as e7istentes
:!o! T;+ico!9 e7"e%ente ara ermitir a ro&rama8!o e%o usu2rio fina%Q ara suortar mudan8a
dinLmi"a do "onjunto de fun"iona%idades
1recau5e!9 quando ro"essamento r2ido ' ne"ess2rio ;"3di&o interretado ' e7e"utado de forma
mais %enta que "3di&o "omi%ado?Q &eren"iamento de mem3ria ode se tornar um rob%ema6
ese"ia%mente quando mE%ti%os interretadores s!o simu%taneamente e7e"utados
4elacionamento com <inguagen! de 1rogramao e Am/iente!9 7isp e Scheme s!o %in&ua&ens
interretadas e s!o e+entua%mente uti%i5adas ara "onstruir outros interretadoresQ ma"ros
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
)a!eado! em Inter+retadore!
2asic 5nterpreter
;ouso %unar?9
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
)a!eado! em Inter+retadore!
Mobile Code9
C%assifi"a80es9
Code on (emand
3emote #valuation
Mobile Agent
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
)a!eado! em Inter+retadore!
Mobile Code9
Code on (emand9
3emote #valuation9
Mobile Agent9
Mobile Code9
4e!umo9 o "3di&o se des%o"a "om o objeti+o de ser interretado em outro hostQ deendendo da
+aria8!o do esti%o o estado ode tamb'm se des%o"ar
'om+onente!9 do"a de e7e"u8!o ;que trata o re"ebimento e im%anta8!o do "3di&o e do estado? e o
interretadorS"omi%ador de "3di&o
'onectore!9 e%ementos e roto"o%os de rede que ema"otam "3di&o e dados ara fins de
transmiss!o
%lemento! de "ado!9 reresenta80es de "3di&o sob a forma de dadosQ estado do ro&rama e dados
To+ologia9 em rede
>aria5e!9 code on demand6 remote evaluation e mobile agent
8ualidade! Indu9ida!9 adatabi%idade dinLmi"aQ se benefi"ia do oder "omuta"iona% a&re&ado nos
hosts disonD+eisQ dependability me%(orada em fun8!o da ro+is!o de mi&ra8!o ara no+os hosts
:!o! T;+ico!9 quando deseja/se ro"essar um "onjunto e7tenso de dados %o"a%i5ados remotamenteQ
quando deseja/se "onfi&urar dinami"amente um n3 atra+'s da in"%us!o de "3di&o e7terno
1recau5e!9 ase"tos de se&uran8a ;"3di&os ma%i"iosos?Q quando re"isa/se a%to "ontro%e sobre as
diferentes +ers0es do software im%antadasQ quando o "usto de transmiss!o ' maior que o de
ro"essamentoQ quando as "one70es de rede n!o s!o "onfi2+eis
4elacionamento com <inguagen! de 1rogramao e Am/iente!9 %in&ua&ens de scripting ;e79
,avaScript?Q "omuta8!o em grid
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
)a!eado! em Inter+retadore!
Mobile Code
;ouso %unar?9
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
)a!eado! em In#ocao Im+l;cita
ublish-Subscribe9
ublish-Subscribe sim%es9
ublish-Subscribe9
ublish-Subscribe9
4e!umo9 subscribers so%i"itamS"an"e%am o re"ebimento de mensa&ens ese"Dfi"asQ publishers
mant-m uma %ista de assinantes e a e%es en+iam mensa&ens de forma sDn"rona ou assDn"rona
'om+onente!9 publishers6 subscribers6 pro%ies ara &eren"iamento da distribui8!o
'onectore!9 procedure calls ;dentro de ro&ramas? ou roto"o%os de redeQ assinaturas baseadas em
"onteEdo requerem "one"tores mais sofisti"ados
%lemento! de "ado!9 assinaturas6 notifi"a80es e informa80es ub%i"adas
To+ologia9 subscribers se "one"tam diretamente aos publishers ou atra+'s de intermedi2rios
>aria5e!9 usos ese"Dfi"os do esti%o odem requerer assos arti"u%ares na assinatura e
"an"e%amentoQ suorte a "orresond-n"ias "om%e7as entre interesses de assinatura e informa8!o
disonD+e% ode ser rea%i5ada or intermedi2rios
8ualidade! Indu9ida!9 dissemina8!o ;one-way? efi"iente de informa8!oQ bai7o a"o%amento
:!o! T;+ico!9 dissemina8!o de notD"iasQ ro&rama8!o de interfa"es &r2fi"as de usu2rioQ jo&os
multiplayer baseados em rede
1recau5e!9 quando o nEmero de assinantes de uma mesma informa8!o ' a%to &era%mente '
ne"ess2rio um roto"o%o ese"ia%i5ado de broadcast
4elacionamento com <inguagen! de 1rogramao e Am/iente!9 &era%mente disonibi%i5ado or
a%&uma te"no%o&ia de middleware
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
)a!eado! em In#ocao Im+l;cita
#vent-2ased9
#vent-2ased9
#vent-2ased9
#vent-2ased9
4e!umo9 "omonentes indeendentes emitem e re"ebem6 de forma assDn"rona6 e+entos transmitidos
or barramentos de e+entos
'om+onente!9 rodutores e "onsumidores indeendentes e "on"orrentes de e+entos
'onectore!9 barramento de e+entosQ em "ertas +aria80es6 mais de um "one"tor ode ser uti%i5ado
%lemento! de "ado!9 e+entos dados en+iados "omo entidades de rimeira/ordem atra+'s de
barramentos de e+entos
To+ologia9 "omonentes se "omuni"am somente "om os barramentos de e+entos
>aria5e!9 a "omuni"a8!o dos "omonentes "om os barramentos ode a"onte"er em modo push ou
pull
8ualidade! Indu9ida!9 a%tamente es"a%2+e%Q f2"i% de e+o%uirQ efeti+o ara a%i"a80es a%tamente
distribuDdas e (etero&-neas
:!o! T;+ico!9 interfa"es &r2fi"as de usu2rioQ a%i"a80es wide-area en+o%+endo artes indeendentes
;mer"ado finan"eiro6 %o&Dsti"a6 redes de sensores?
1recau5e!9 n!o (2 &arantia se ou quando um e+ento arti"u%ar ser2 ro"essado
4elacionamento com <inguagen! de 1rogramao e Am/iente!9 te"no%o&ias de middleware
orientado a mensa&ens ;,MS6 CO32A #vent Service6 MSM8?
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
)a!eado! em In#ocao Im+l;cita
eer-to-eer ;/?9
eer-to-eer ;/?9
eer-to-eer ;/?9
eer-to-eer ;/?9
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! Arquiteturai!
eer-to-eer
47em%o9
Sint2ti"as9
SemLnti"as9