Você está na página 1de 106

INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema!

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!

Como os rojetos arquiteturais s!o "riados #

$ua% aborda&em ' ensinada aos en&en(eiros e


arquitetos #

A%&uns a"reditam que rojeto arquitetura% n!o ode


ser ensinado "omo um m'todo. )*bser+e o mestre e
arenda or osmose , )

*utros a"reditam ser um dom "om o qua% +o"- nas"e


ou n!o

.is"orda/se dessas duas +is0es


INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
./0eti#o!

1odos temos a (abi%idade de rojetar ,

* rojeto est2 sujeito a an2%ises ri&orosas e


met3di"as. 4%e n!o ' in"aa5 de ser estudado

* resu%tado deste estudo ' um "onjunto de


aborda&ens e t'"ni"as de rojeto que odem ser
des"ritas6 ensinadas6 a+a%iadas e refinadas

In+esti&ar rojetos e7istentes ajuda a identifi"ar boas


estrat'&ias

Pode/se ensinar ferramentas e m'todos sim%es de


rojeto

47iste esa8o ara a "riati+idade6 entretanto ...


INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
./0eti#o!

Aresentar aborda&ens que ajudam o estudante a


arender "omo rojetar arquiteturas9

Fundamentos do ro"esso de rojeto

Ferramentas "on"eituais b2si"as

Padr0es e esti%os arquiteturais

:e"uera8!o de rojeto

Projeto greenfield

Pro"esso de rojeto re+isitado


INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
1roce!!o de 1ro0eto

Fases ;<ones6 1=>0?9


1? @iabi%idade9 identifi"a8!o de um "onjunto de "on"eitos
+i2+eis. Am "onjunto de arranjos a%ternati+os ara o rojeto
' raidamente deri+ado
B? Projeto Pre%iminar9 se%e8!o e desen+o%+imento do me%(or
"on"eito6 o qua% ' di+idido e ro"essado6 em ara%e%o6 nas
r37imas fases
C? Projeto .eta%(ado9 desen+o%+imento das des"ri80es de
en&en(aria do "on"eito
4? P%anejamento9 a+a%ia8!o e a%tera8!o do "on"eito de modo
a adequ2/%o aos requisitos de rodu8!o6 distribui8!o6
"onsumo e des"arte
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
1roce!!o de 1ro0eto

* mode%o de <ones ' t!o am%amente uti%i5ado que '


difD"i% er"eber que outras aborda&ens s!o ossD+eis9

4%e ode n!o fun"ionar semre ou6 mesmo fun"ionando6


n!o rodu5ir os me%(ores resu%tados9

Imossibi%idade de identifi"a8!o do "onjunto de "on"eitos


+i2+eis ara a estrutura &era% do sistema ;fase 1?

A fase 1 ' &era%mente rea%i5ada or um Eni"o arquiteto.


Para sistemas &randes e "om%e7os torna/se difD"i%.
Ati%i5ar uma equie de arquitetos tra5 no+os rob%emas

.e forma simi%ar6 a aborda&em n!o ' adequada quando


deseja/se rojetar uma arquitetura ara um con0unto
de rodutos. No+amente tem/se maior "om%e7idade
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
1roce!!o de 1ro0eto

.i+ersas estrat'&ias de rojeto ;mode%os de ro"esso


a%i"ados no nD+e% de rojeto?9

Padr!o9 mode%o %inear de <ones

CD"%i"o9 se rob%emas ou aborda&ens in+i2+eis s!o


en"ontrados nas fases B/4 o ro"esso retorna a uma
fase anterior

Para%e%o9 a3s a ;ou na? fase 1 a%ternati+as


indeendentes s!o e7%oradas em ara%e%o

Adatati+o9 a estrat'&ia de rojeto a ser uti%i5ada na


r37ima fase ' de"idida no fim da fase atua%6 "om base
em insights obtidos nesta fase

In"rementa%9 rojeta/se F medida em que o


desen+o%+imento ' rea%i5ado6 me%(orando de forma
in"rementa% qua%quer rojeto e7istente a3s a fase
anterior
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
'once+o Arquitetural

'omo identifi"ar um ;ou +2rios? arranjos +i2+eis ara


o rojeto #

:esosta f2"i% 19 a%ique as ferramentas fundamentais de


rojeto ensinadas e%a 4n&en(aria de Software9 abstra8!o
e modu%aridade

S!o ne"ess2rias e Eteis mas s!o aenas ferramentas.


*nde e "omo manej2/%as #

:esosta f2"i% B9 insira8!o ,

Criati+idade ' ne"ess2rio mas n!o ' uma +arin(a m2&i"a

Pode/se minimi5ar e iso%ar as artes do rojeto que


requerem maior "riati+idade e a%i"ar t'"ni"as mais
rosai"as e re+isD+eis nas outras artes

Pre"isa/se saber6 entretanto6 onde ' ne"ess2rio a


"riati+idade e onde n!o '
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
'once+o Arquitetural

'omo identifi"ar um ;ou +2rios? arranjos +i2+eis ara


o rojeto #

:esosta mais "omum6 efeti+a e aroriada9 use sua


e7eri-n"ia a%i"ada

N!o ' uma resosta suerfi"ia%6 e7iste uma sofisti"a8!o


"onsider2+e% no uso de e7eri-n"ia

N!o ' infa%D+e% e as +e5es n!o ' sufi"iente6 entretanto


INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
'once+o Arquitetural

Ferramentas "on"eituais fundamentais9

Seara8!o de concerns

Abstra8!o

Godu%aridade

Ante"ia8!o de mudan8as

Projeto +o%tado ara &enera%idade


INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
'once+o Arquitetural
Ferramenta! Fundamentai!

Abstra8!o e G2quinas Sim%es9

Abstra8!o ' a se%e8!o de um "onjunto de "on"eitos "omo


reresentantes de um todo mais "om%e7o

Pode ser bottom-up6 artindo dos deta%(es e "(e&ando aos


"on"eitos sum2rios

4ntretanto6 quando re%a"ionado a rojeto6 &era%mente '


a%i"ado top-down9 define/se um arranjo de artes
abstratas ;"on"eitos? que "om0em a so%u8!o ainda em
a%to nD+e% e ent!o reifi"a/se estes "on"eitos em estruturas
mais "om%etas at' "(e&ar no "3di&o/fonte

Poderia ser usado os termos refinamento ou dedu8!o6


or'm uti%i5a/se abstra8!o ois e%a ser2 uma
"ara"teri5a8!o re"isa e Eti% do "3di&o/fonte
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
'once+o Arquitetural
Ferramenta! Fundamentai!

Abstra8!o e G2quinas Sim%es9

Gas a er&unta ersiste9 )$uais "on"eitos de+em ser


es"o%(idos no inD"io de um rojeto #H

4n"ontre uma )m2quinaH sim%es que ser+e "omo


abstra8!o de um oten"ia% sistema que ir2 rea%i5ar a tarefa
desejada

479 %ani%(a de "2%"u%o9 &rafo de re%a"ionamentos onde6


quando um n3 ' modifi"ado6 os re%a"ionamentos s!o
todos re/a+a%iados ara manter a %ani%(a sin"roni5ada

479 software ara m2quina de fa79 uma m2quina de


estados equena

479 sistema embar"ado em a+i0es9 %-/se os sensores6


"a%"u%a/se as %eis de "ontro%e6 en+ia +a%ores ara os
displays e atuadores e ent!o reete/se tudo no+amente
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
'once+o Arquitetural
Ferramenta! Fundamentai!

Abstra8!o e G2quinas
Sim%es9

4mbora ossam are"er


tri+iais ou inadequadas
e%as aresentam uma
rimeira "on"e8!o
%ausD+e% sobre "omo a
a%i"a8!o oderia ser
"onstruDda
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
'once+o Arquitetural
Ferramenta! Fundamentai!

4s"o%(endo o nD+e% e os termos do dis"urso9

Pre"isa/se definir o es"oo e os termos do dis"urso

A aborda&em adr!o ;%inear? demanda que o sujeito


ini"ia% de dis"urso seja o sistema inteiro

4ntretanto6 e7istem duas a%ternati+as9


1? 1raba%(ar em um nD+e% mais bai7o que o da a%i"a8!o
"omo um todo9

1raba%(a/se em a%&o que assume/se ser arte da so%u8!o.


Projeta/se neste nD+e% "om a eseran8a que +2rias so%u80es
de +2rias artes "omon(am a so%u8!o tota%

Iera%mente n!o requer muita e7eri-n"ia6 sim%esmente


quebrar o rob%ema em artes torna a maniu%a8!o do
rob%ema tota% mais f2"i%

Parti"u%armente aroriada quando j2 e7iste um "onjunto de


"omonentes reuti%i52+eis. Con(e"endo o que e%es fa5em e
"omo odem ser "omostos tra5 insights sobre a
estrutura8!o da a%i"a8!o "omo um todo
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
'once+o Arquitetural
Ferramenta! Fundamentai!

4s"o%(endo o nD+e% e os termos do dis"urso9


B? 1raba%(ar em um nD+e% mais a%to que o da a%i"a8!o
"omo um todo9

Pode si&nifi"ar reso%+er um rob%ema mais &en'ri"o

479 tratamento de entradas "om%i"adas de dados. Ge%(or


uti%i5ar uma ferramenta &en'ri"a de parser ;%e76 AN1J:6 et"?
do que desen+o%+er um "omonente ese"Dfi"o

4mbora mais oderoso que o ne"ess2rio6 sua maturidade


te"no%3&i"a e disonibi%idade de a"otes reuti%i52+eis que
im%ementam a so%u8!o resu%tam na uti%i5a8!o de um
"omonente de menor taman(o6 mais r2ido e off-the-shelf
;COTS?

479 rojeto de sistema ara de"%ara8!o de imosto de renda


onde as re&ras mudam de ano ara ano. Construir um
sistema ese"Dfi"o ou uti%i5ar uma %ani%(a de "2%"u%o
arametri5ada #
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
'once+o Arquitetural
Ferramenta! Fundamentai!

Seara8!o de concerns9

Sub/di+is!o do rob%ema em artes indeendentes

479 a interfa"e de usu2rio de uma ATM ' indeendente da


%3&i"a uti%i5ada ara "ontro%ar as oera80es ban"2rias

Se os "on"eitos s!o inerentemente indeendentes a


seara8!o ' tri+ia%

K mais difD"i% quando os rob%emas est!o aarentemente


;ou de fato? entre%a8ados

4stes entre%a8amentos o"orrem or9

Abuso de %in&ua&em9 termo Eni"o ;e79 "onta?


des"re+endo diferentes artes da a%i"a8!o

$uest0es de efi"i-n"ia9 e79 surrogate keys em ban"os de


dados
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
'once+o Arquitetural
Ferramenta! Fundamentai!

Seara8!o de concerns9

Am e7em%o imortante ' a di+is!o da estrutura do


sistema em "omonentes ;loci de "omuta8!o? e
"one"tores ;loci de "omuni"a8!o?

Frequentemente en+o%+e muitos trade-offs

Indeend-n"ia tota% de concerns ode ser imossD+e%6


requerendo uma an2%ise dos trade-offs de desemen(o6
"usto6 aar-n"ia e fun"ionais das "on"e80es a%ternati+as
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
'once+o Arquitetural
Ferramenta!2 %3+eri(ncia 4efinada

Ao mesmo temo em que as ferramentas


fundamentais s!o de uso ine&2+e% &era%mente
reresentam um &uia insufi"iente ara o rojetista

47eri-n"ia ode ser um oderoso a%iado ara


manejar as ferramentas fundamentais de modo
efeti+o

:ea%i5ar rojetos or si s3 n!o rodu5 a maturidade


ne"ess2ria ara %idar "om no+os rob%emas

K ne"ess2rio uma ref%e7!o e refinamento osteriores


de modo a "omreender os rob%emas essen"iais e
%i80es arendidas
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
'once+o Arquitetural
Ferramenta!2 %3+eri(ncia 4efinada

A meta ' a es"o%(a "riteriosa de t'"ni"as aroriadas


ao "onte7to em quest!o

In"%ui an2%ise de %i80es de su"esso mas tamb'm de


fa%(as

As %i80es n!o se restrin&em Fque%as do r3rio


rojetista9

Am%a %eitura t'"ni"a e in+esti&a8!o de boas so%u80es

Confer-n"ias t'"ni"as

N!o (2 +irtude a%&uma em rein+entar a roda


INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
'once+o Arquitetural
Ferramenta!2 %3+eri(ncia 4efinada

$uando se ossui e7eri-n"ia t'"ni"a9

K mais f2"i% en"ontrar o "onjunto ini"ia% de arranjos +i2+eis


a%ternati+os

N!o se &asta temo em ontos ara os quais j2 e7iste uma


so%u8!o +a%idada

Fa"i%ita a "omuni"a8!o na equie de desen+o%+imento

4ntretanto n!o ' %i+re de ris"os9

)$uando se est2 "om o seu marte%o fa+orito tudo assa a


se are"er "om um re&oH. Iera/se sistemas que
fun"ionam6 mas defi"ientes ou sub/3timos

As %imita80es tamb'm s!o imortadas

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 na "onstru8!o "i+i%9

Ama determinada "ombina8!o de metas e "onte7to ode


demandar a "onstru8!o de uma "asa ara uma famD%ia
equena numa re&i!o de "%ima mediterrLneo uti%i5ando
edras e te%(as "omo materiais b2si"os

* esti%o aroriado seria Single-Story Villa

47em%o em software9

Getas e "onte7to demandam o desen+o%+imento de um


sistema de instant messaging oerando entre sites remotos
de uma emresa

* esti%o aroriado seria Client-Server


%!tilo! e +adr5e! arquiteturai! s!o rojetados ara "aturar o "on(e"imento
de rojetos efeti+os no a%"an"e de metas ese"Dfi"as dentro de um "onte7to
arti"u%ar de a%i"a80es
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! e 1adr5e! Arquiteturai!

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!

As bordas do dia&rama anterior n!o s!o


re"isamente definidas

* ei7o scope n!o ' &enuinamente %inear ou


tota%mente ordenado

* que um arquiteto denomina adr!o Ar"uitetural


ode ser "(amado de #stilo Ar"uitetural or outro
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! e 1adr5e! Arquiteturai!
Domain-Specific Software Architectures

K uma "ombina8!o de9

Ama ar"uitetura de refer$ncia ara o domDnio de


a%i"a8!o

Ama bib%iote"a de "omonentes de software6 ara esta


arquitetura de refer-n"ia6 "ontendo artes reuti%i52+eis
da e%perti&e no domDnio

Am m'todo ara es"o%(er e "onfi&urar "omonentes ara


traba%(ar em uma inst'ncia da arquitetura de refer-n"ia

:eresentam a forma mais Eti% de e7eri-n"ia na


des"oberta dos arranjos a%ternati+os de rojeto
Domain-Specific Software Architectures 6DSSAs7 reresentam um
"on(e"imento substan"ia%6 adquirido atra+'s de e7tensa e7eri-n"ia6 sobre
"omo estruturar a%i"a80es "om%etas dentro de um domDnio arti"u%ar
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! e 1adr5e! Arquiteturai!
Domain-Specific Software Architectures

47em%o na "onstru8!o "i+i%9

Projeto &en'ri"o de "asas ou%ares9

S!o instan"iadas de5enas ou "entenas de +e5es

Podem +ariar em re%a8!o F mar"enaria6 esti%os das


"o%unas6 "ores6 tae8aria6 materia% do te%(ado6 et"

4ntretando s!o "asas simi%ares em re%a8!o F sua %anta


bai7a6 %o"a%i5a8!o das jane%as e todos os outros
e%ementos estruturais rin"iais

Pode/se instan"iar esta %anta &en'ri"a se&uindo as


refer-n"ias e es"o%(as do "%iente6 &erando uma
estrutura que a%'m de +i2+e% finan"eiramente '6 de
a%&uma forma6 ersona%i5ada
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
%!tilo! e 1adr5e! Arquiteturai!
Domain-Specific Software Architectures

47em%o em software9

Software ara e%etrMni"os de "onsumo9

A%i"a80es ara diferentes disositi+os e%etrMni"os odem


ser "riadas atra+'s da arametri5a8!o ou
ese"ia%i5a8!o da arquitetura "entra%

Isto ode im%i"ar na adi8!o de "omonentes nun"a antes


uti%i5ados6 or'm estas adi80es s!o rea%i5adas em
artes da arquitetura que foram re+iamente rojetadas
ara este fim

4mbora as emresas desen+o%+am a%i"a80es "om


&randes simi%aridades de estrutura6 infe%i5mente estas n!o
s!o do"umentadas6 ermane"em %atentes na mem3ria dos
en&en(eiros
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
1adr5e! Arquiteturai!

Padr0es arquiteturais s!o seme%(antes Fs (SSAs6


or'm a%i"ados em um es"oo bem mais ese"Dfi"o
1adro Arquitetural2 "o%e8!o identifi"ada de de"is0es arquiteturais de rojeto
que s!o a%i"2+eis a um rob%ema re"orrente de desen+o%+imento e
arametri5adas de modo a serem a%i"adas em qua%quer "onte7to de
desen+o%+imento de software no qua% o rob%ema aare"e
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)

Comumente emre&ado em sistemas de informa8!o9

(ata Store N J3&i"a de Ne&3"io N Interfa"e de Asu2rio

K fa"i%mente maeado em uma im%ementa8!o


distribuDda "om "omuni"a8!o +ia remote procedure
call

<o&os multi-player em rede

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)

Ati%i5ado desde a d'"ada de O0 ara o rojeto de


interfa"es &r2fi"as de usu2rio

Pode tamb'm ser +isto "omo um design pattern

Promo+e a seara8!o e6 a "onsequente


indeend-n"ia de desen+o%+imento6 da informa8!o
maniu%ada e%o ro&rama e intera80es do usu2rio
"om esta informa8!o
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)

Model9 en"asu%a a informa8!o usada e%a a%i"a8!o

View9 en"asu%a artefatos ne"ess2rios F des"ri8!o &r2fi"a


da informa8!o

Controller9 en"asu%a a %3&i"a ne"ess2ria F manuten8!o da


"onsist-n"ia entre o model e o view. K resons2+e% e%o
ro"essamento dos e+entos do usu2rio
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)

Co%abora80es entre os "omonentes ;+aria80es s!o


"onsideradas na r2ti"a?9

$uando a a%i"a8!o modifi"a um +a%or no model uma


notifi"a8!o ' en+iada F;s? view)s* de modo que a
reresenta8!o &r2fi"a seja atua%i5ada e re/e7ibida

Notifi"a80es tamb'm odem ser en+iadas ao controller6


que ode modifi"ar a view se ne"ess2rio

A view ode so%i"itar dados adi"ionais ao model

* sistema de jane%as en+ia os e+entos do usu2rio ao


controller que ode "onsu%tar a view6 obtendo informa80es
que ajudam a determinar a a8!o a ser tomada

Como "onsequ-n"ia o controller atua%i5a o model


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)

Iera%mente e7iste um a"o%amento forte entre as


a80es da view e do controller6 e+entua%mente
justifi"ando um merge destes "omonentes

MVC na +orld +ide +eb9

Model9 re"ursos web

View9 a&ente de renderi5a8!o P1GJ do browser

Controller9 arte do browser que resonde aos e+entos do


usu2rio e que interaje "om o ser+idor web ou modifi"a o
que ' e7ibido no browser. Pode tamb'm a&re&ar "3di&o
obtido do ser+idor web ;e79 ,avaScript?
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
1adr5e! Arquiteturai!
Sense-Compute-Control 6ou Sensor-Control-Actuator7

1ii"amente uti%i5ado na estrutura8!o de a%i"a80es


embar"adas de "ontro%e9

47em%os9 forno de mi"ro/ondas6 (V( players6 sistemas


automoti+os e robMs
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
1adr5e! Arquiteturai!
Sense-Compute-Control 6ou Sensor-Control-Actuator7

<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!

Prin"ia% forma de "ara"teri5ar e7eri-n"ias em


rojeto de software

4%emento "(a+e no desen+o%+imento da "on"e8!o


ini"ia% ou deta%(ada da arquitetura do sistema

S!o am%amente a%i"ados6 ref%etindo menos


"on(e"imento de domDnio do que os adr0es
arquiteturais

A fronteira entre esti%os e adr0es arquiteturais ode


n!o ser "%ara6 entretanto
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

As de"is0es e restri80es que "om0em o esti%o arquitetura%

As qua%idades ;benefD"ios? indu5idas or estas de"is0es


%!tilo Arquitetural2 "o%e8!o identifi"ada de de"is0es arquiteturais de rojeto
que9 .? s!o a%i"2+eis a um determinado "onte7to de desen+o%+imentoQ /?
restrin&e as de"is0es arquiteturais ese"Dfi"as de um sistema em arti"u%ar
dentro deste "onte7toQ e 0? indu5 qua%idades ben'fi"as nos sistemas resu%tantes
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
Introduo ao! %!tilo! Arquiteturai!

4sti%os tradi"ionais inf%uen"iados or %in&ua&ens de


ro&rama8!o

Main rogram and Subroutines

Ob1ect-Oriented

4sti%os em Camadas9

Virtual Machines

Client-Server

4sti%os Raseados em F%u7o de .ados

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!

4sti%os "om Gem3ria Comarti%(ada9

2lackboard

3ule-2ased 4 #%pert System

4sti%os Raseados em Interretadores9

2asic 5nterpreter

Mobile Code

4sti%os Raseados em In+o"a8!o Im%D"ita9

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

Jin&ua&ens tais "omo C6 CNN6 <a+a e Pas"a% odem


ser uti%i5adas ara im%ementar arquiteturas de
qua%quer esti%o

A%&uns esti%os6 entretanto6 ref%etem os


re%a"ionamentos b2si"os de or&ani5a8!o e "ontro%e
de f%u7o entre "omonentes disonibi%i5ados or
estas %in&ua&ens9

Main rogram and Subroutines

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

Main rogram and Subroutines9


4e!umo9 de"omosi8!o baseada na seara8!o de assos fun"ionais de ro"essamento
'om+onente!9 ro&rama rin"ia% e sub/rotinas
'onectore!9 function4procedure calls
%lemento! de "ado!9 arLmetros e +a%ores de retorno uti%i5ados nas sub/rotinas
To+ologia9 or&ani5a8!o est2ti"a e (ier2rqui"a de "omonentesQ &rafo dire"ionado
4e!tri5e! Adicionai!9 nen(uma
8ualidade! Indu9ida!9 modu%aridade sub/rotinas odem ser substituDdas or outras "om
im%ementa8!o diferente6 desde que a semLnti"a da interfa"e n!o mude
:!o! T;+ico!9 ro&ramas equenos e de ro3sito eda&3&i"o
1recau5e!9 n!o ' es"a%2+e% ara &randes a%i"a80esQ aten8!o inadequada Fs estruturas de dadosQ
imre+isibi%idade na determina8!o do esfor8o ne"ess2rio ara a"omodar no+as mudan8as
4elacionamento com <inguagen! de 1rogramao e Am/iente!9 %in&ua&ens de ro&rama8!o
imerati+as6 tais "omo RASIC6 Pas"a% ou C
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

Main rogram and Subroutines ;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!
Tradicionai! influenciado! +or linguagen! de +rogramao

Ob1ect-Oriented ;**?9

A Eni"a estrutura disonibi%i5ada ' um "onjunto de objetos


"ujo temo de +ida +aria de a"ordo "om os seus usos

Comreender um ro&rama ** requer entender os


numerosos re%a"ionamentos est2ti"os e dinLmi"os entre os
objetos
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
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

Ob1ect-Oriented ;**? ;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!
Tradicionai! influenciado! +or linguagen! de +rogramao

Ob1ect-Oriented ;**? ;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!
%m 'amada!

A arquitetura ' searada em "amadas ordenadas6


onde um ro&rama de uma "amada ode so%i"itar
ser+i8os de uma "amada inferior

47em%os9

Arquiteturas de sistemas oera"ionais

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

Ama "amada ofere"e um "onjunto de ser+i8os )provides


interface* que odem ser uti%i5ados or ro&ramas que
residem na;s? "amada;s? a"ima

*s ser+i8os odem ser im%ementados or di+ersos


ro&ramas dentro da "amada or'm6 ara os "%ientes
destes ser+i8os6 ta% distin8!o n!o ' aarente
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 Machines ;e7em%o?9


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 Machines ;"%assifi"a8!o?9

G2quina @irtua% 4strita9 ro&ramas de um determinado


nD+e% somente odem a"essar ser+i8os ro+idos e%a
"amada imediatamente inferior

G2quina @irtua% N!o/4strita9ro&ramas de um


determinado nD+e% odem a"essar ser+i8os de qua%quer
"amada abai7o do nD+e% em quest!o

47em%o 19 "amadas de um sistema oera"iona%9

A%i"a80es do usu2rio ;nD+e% 1?

Ser+i8o de maniu%a8!o de arqui+os e diret3rios ;nD+e% B?

(rivers de dis"o e &eren"iamento de +o%ume ;nD+e% C?

47em%o B9 roto"o%os de "omuni"a8!o em rede


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
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!

Virtual Machines ;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!
%m 'amada!

Client-Server9

G2quina @irtua% de duas "amadas "om "one70es em rede

* ser+idor ' a m2quina +irtua% abai7o dos "%ientes

GE%ti%os "%ientes odem a"essar o ser+idor

*s "%ientes s!o indeendentes

Pode/se uti%i5ar thin ;thick? clients

47em%o9 m2quina de saque e%etrMni"o ;ATM?


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
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!

Client-Server ;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 Flu3o de "ado!

Cara"teri5ado e%o mo+imento de dados entre


e%ementos indeendentes de ro"essamento
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!

2atch-Se"uential9

Am dos esti%os arquiteturais mais anti&os9 as %imita80es


dos equiamentos e7i&iam que o rob%ema fosse
sub/di+idido em "omonentes que se "omuni"a+am
atra+'s da transfer-n"ia de fitas ma&n'ti"as

47em%o9 atua%i5ar um re&istro ban"2rio de todas as "ontas


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!

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!

2atch-Se"uential ;ouso %unar?9

Indi"a qu!o inaroriado ' este esti%o ara a a%i"a8!o


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

*s fi%tros odem oerar de forma "on"orrente6 n!o '


ne"ess2rio a&uardar o t'rmino do rodutor ara que o
"omonente que "onsome a saDda do rodutor ini"ie o seu
fun"ionamento
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
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

Cara"teri5ado e%a resen8a de mE%ti%os


"omonentes que a"essam o mesmo reosit3rio de
dados ;data store? e se "omuni"am atra+'s deste
reosit3rio

Seme%(ante ao uso de dados &%obais or'm6 nestes


esti%os6 o "entro de aten8!o no rojeto '
e7%i"itamente dire"ionado ara este reosit3rio

* reosit3rio ' bem ordenado e "uidadosamente


&eren"iado
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

1em sua ori&em nas a%i"a80es de Inte%i&-n"ia Artifi"ia%

Ana%o&ia9

.i+ersos eritos ;e%perts? sentados ao redor de uma mesa


;data store? tentando "ooerar na so%u8!o de um rob%ema
&rande e "om%e7o

$uando um erito re"on(e"e que ode reso%+er a%&uma arte


do rob%ema que est2 na mesa e%e re"o%(e este
sub/rob%ema6 +ai embora e traba%(a na sua so%u8!o

$uando "on"%uDda a so%u8!o6 o erito retorna e disonibi%i5a a


so%u8!o na mesa

A disonibi%i5a8!o desta so%u8!o ode (abi%itar outro erito a


reso%+er uma outra arte do rob%ema

* ro"esso "ontinua at' que todo o rob%ema esteja reso%+ido


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
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

2lackboard ;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!
'om =emria 'om+artil*ada

3ule-2ased 4 #%pert System9

1io a%tamente ese"ia%i5ado de arquitetura "om mem3ria


"omarti%(ada

A mem3ria "omarti%(ada fun"iona "omo uma base de


"on(e"imento que "ont'm fatos e re&ras de rodu8!o
;"%2usu%as if666then sobre o "onjunto de +ari2+eis?

A interfa"e &r2fi"a de usu2rio disonibi%i5a duas oera80es


b2si"as9

4ntrada de no+os fatos e re&ras de rodu8!o

4ntrada de "onsu%tas ;goals?

Ama m2quina de infer-n"ia oera na base de


"on(e"imento em resosta Fs entradas do usu2rio
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 System9


4e!umo9 a m2quina de infer-n"ia ana%isa a entrada do usu2rio e determina se ' um fatoSre&ra ou
"onsu%ta. Se for um fatoSre&ra6 esta entrada ' adi"ionada F base de "on(e"imento. Caso "ontr2rio6 '
rea%i5ada uma "onsu%ta F base6 bus"ando re&ras a%i"2+eis6 "om o objeti+o de reso%+er a "onsu%ta
'om+onente!9 interfa"e de usu2rio6 m2quina de infer-n"ia e base de "on(e"imento
'onectore!9 "omonentes s!o fortemente inter/"one"tados "om procedure calls ou data access
%lemento! de "ado!9 fatos e "onsu%tas
To+ologia9 tr-s "amadas fortemente a"o%adas
8ualidade! Indu9ida!9 o "omortamento da a%i"a8!o ode ser fa"i%mente modifi"ado atra+'s da
adi8!o ou remo8!o dinLmi"a de re&ras na base de "on(e"imentoQ sistemas equenos odem ser
raidamente rototiadosQ Eti% ara e7%orar iterati+amente rob%emas "uja aborda&em ara uma
so%u8!o &en'ri"a n!o ' "%ara
:!o! T;+ico!9 quando o rob%ema ode ser +isto "omo uma reso%u8!o su"essi+a de redi"ados
1recau5e!9 quando muitas re&ras est!o en+o%+idas ode ser difD"i% entender as intera80es entre
mE%ti%as re&ras afetadas e%os mesmos fatosQ entender a base %3&i"a do resu%tado &erado ode ser
t!o imortante quanto o r3rio resu%tado
4elacionamento com <inguagen! de 1rogramao e Am/iente!9 Pro%o& ' "omumente uti%i5ado
ara "onstruir sistemas baseados em re&ras
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!

Cara"teri5ado e%a interreta8!o dinLmi"a6 on-the-fly6


de "omandos

Comandos s!o senten8as e7%D"itas6 ossi+e%mente


"riados momentos antes da sua e7e"u8!o6
&era%mente reresentados or um te7to que ode ser
"omreendido e editado or (umanos

Comandos s!o "onstruDdos a artir de um "onjunto de


"omandos rimiti+os r'/definidos
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?

A identifi"a8!o do r37imo "omando ode ser afetada


e%o resu%tado da e7e"u8!o do "omando anterior
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 5nterpreter9

Simi%ar ao Raseado em :e&ras S Sistema 4se"ia%ista


or'm uti%i5a um interretador de "omandos no %u&ar da
m2quina de infer-n"ia

4ste interretador e7e"uta "omandos mais &en'ri"os ;do


que infer-n"ias em re&ras? e a interreta8!o de um
Eni"o "omando ode en+o%+er +2rias oera80es
rimiti+as

A base de "on(e"imento ' simi%armente mais &en'ri"a


+isto que estruturas de dados arbitr2rias odem estar
en+o%+idas

47em%os9 f3rmu%as de uma %ani%(a de "2%"u%o s!o


interretadas e%a m2quina de e7e"u8!o ;interretador?
do sistema de %ani%(asQ m2quinas CNCQ ro&rama8!o
de trajet3rias de robMs
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 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

Permite que um "3di&o seja transmitido a um host remoto


e or este host interretado

Am e%emento de dado ;reresenta8!o de um ro&rama? '


dinami"amente transformado em um "omonente de
ro"essamento de dados

Goti+a80es ara a transmiss!o9 fa%ta de oder


"omuta"iona%6 fa%ta de re"ursos ou "onjunto e7tenso de
dados %o"a%i5ados remotamente

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

Possui re"ursos e estado or'm o "3di&o ' obtido de um host


remoto e e7e"utado %o"a%mente

3emote #valuation9

Possui o "3di&o mas n!o os re"ursos ara e7e"u8!o do


"3di&o ;e79 o interretador?

* "3di&o ' transmitido a um host remoto ara ro"essamento


;e79 grid? e os resu%tados en+iados de +o%ta

Mobile Agent9

Possui o "3di&o e o estado mas arte dos re"ursos est!o em


outro host

* "3di&o N estado N a%&uns re"ursos )agent? ' transferido ara


o host remoto

*s resu%tados n!o ne"essariamente re"isam ser en+iados de


+o%ta ao host ori&ina%
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
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

Cara"teri5ados or "(amadas que s!o in+o"adas


indiretamente e im%i"itamente em resosta a uma
notifi"a8!o ou a um e+ento

4sta intera8!o indireta entre "omonentes


fra"amente a"o%ados fa"i%ita a adata8!o e me%(ora
a es"a%abi%idade do sistema
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

A denomina8!o sur&e da ana%o&ia "om os editores


;publishers? e assinantes ;subscribers? de re+istas e
jornais9

* editor eriodi"amente "ria a informa8!o e o assinante


obt'm uma "3ia desta informa8!o ou e%o menos '
informado da sua disonibi%idade

K adequado ara a%i"a80es onde e7iste uma distin8!o


"%ara entre rodutores e "onsumidores de informa8!o9

479 a&-n"ia on-line de emre&os

@aria80es &era%mente e7istem em fun8!o da distLn"ia


entre o publisher e os subscribers e da forma de
&eren"iamento destes re%a"ionamentos
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-Subscribe sim%es9

* publisher mant'm uma %ista de subscribers

Para "ada subscriber uma procedure call ' disarada


semre que uma no+a informa8!o esti+er disonD+e%

Subscribers rea%i5am suas assinaturas "om o publisher6


informando a interfa"e de procedure ;callback? a ser
uti%i5ada quando a informa8!o for ub%i"ada

Subscribers odem "an"e%ar suas assinaturas e ter seus


rese"ti+os callbacks remo+idos da %ista de assinantes do
publisher
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

4m a%i"a80es baseadas em rede e de %ar&a es"a%a


a%&umas modifi"a80es s!o ne"ess2rias9

ublishers re"isam anun"iar ;no start-up do sistema6


eriodi"amente ou sob demanda? a e7ist-n"ia de
re"ursos de informa8!o que odem ser assinados

Assinaturas n!o s!o mais reresentadas or procedures


de callback e assam a en+o%+er roto"o%os de rede

Ase"tos de desemen(o imedem o uso de "one70es


onto/a/onto entre publishers e subscribers6
demandando pro%ies ou caches intermedi2rios
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
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

ublish-Subscribe ;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

#vent-2ased9

Cara"teri5ado or "omonentes indeendentes que se


"omuni"am somente atra+'s de e+entos transmitidos or
um barramento ;"one"tor?

Na sua forma mais ura "omonentes emitem e+entos


ara o barramento que6 or sua +e56 os re/transmite ara
todos os outros "omonentes

Comonentes odem rea&ir em resosta ao re"ebimento


de um e+ento ou i&nor2/%o

4mbora aarentemente "a3ti"o e imre+isD+e% ' simi%ar F


forma "om a qua% (umanos se "omortam em so"iedade
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

Por ra50es de efi"i-n"ia a forma ura deste esti%o


raramente ' uti%i5ada

K mais efi"iente distribuir os e+entos somente ara


aque%es "omonentes que demonstraram interesse or
e%es

Com esta modifi"a8!o o #vent-2ased se torna simi%ar ao


ublish4Subscribe6 entretanto n!o (2 distin8!o entre
rodutores e "onsumidores

A re%i"a8!o e otimi5a8!o de distribui8!o dos e+entos ;e79


re&istro de interesse em um e+ento arti"u%ar? '
resonsabi%idade somente dos "one"tores
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

Pode fun"ionar em modo9

ull )pooling*9 re"etores de e+entos "onsu%tam o


"one"tor ;de forma sDn"rona ou assDn"rona? ara
+erifi"ar se a%&um no+o e+ento est2 disonD+e%

ush9 o "one"tor re%i"a e re/transmite os e+entos aos


ossD+eis interessados

A%tamente indi"ado ara sistemas "om "omonentes


"on"orrentes a%tamente desa"o%ados onde6 em um
determinado momento6 um "omonente ode estar ou
"riando ou "onsumindo informa8!o

479 mer"ado finan"eiro S bo%sa de +a%ores


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
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

#vent-2ased ;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!
eer-to-eer

eer-to-eer ;/?9

Consiste em uma rede de peers autonMmos fra"amente


a"o%ados

Cada peer atua tanto "omo "%iente quanto ser+idor

eers se "omuni"am uti%i5ando um roto"o%o de rede6


ro+a+e%mente ese"ia%i5ado ara "omuni"a8!o / ;e79
9apster6 :nutella?

.es"entra%i5a tanto informa8!o quanto "ontro%e6 fa5endo


"om que a des"oberta de re"ursos seja um ase"to
imortante
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

eer-to-eer ;/?9

.es"oberta de re"ursos em sistemas / uros9

A so%i"ita8!o da informa8!o ' %an8ada na rede "omo um


todo

A requisi8!o se roa&a at' que a informa8!o seja


des"oberta ou a%&um %imite de roa&a8!o ;e79 nEmero
de hops? seja a%"an8ado

Se a informa8!o ' en"ontrada o peer obt'm o endere8o


direto do outro peer e o "onta"ta diretamente

K %imitado e%o a%&oritmo distribuDdo uti%i5ado ara


"onsu%tar o sistema e e%a %ar&ura de banda disonD+e%
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

eer-to-eer ;/?9

.es"oberta de re"ursos em sistemas / (Dbridos9

* ro"esso ' otimi5ado atra+'s da resen8a de peers


ese"iais6 ese"ia%i5ados na %o"a%i5a8!o de outros
peers eSou disonibi%i5a8!o de diret3rios que %o"a%i5am
as informa80es

479 9apster uti%i5a+a um ser+idor "entra%i5ado ara


inde7a8!o das mEsi"as e %o"a%i5a8!o de outros peers

4mbora o esti%o ten(a se tornado ou%ar nas a%i"a80es


de "omarti%(amento de arqui+os ' frequentemente
uti%i5ado em 2/2 commerce6 chat6 "o%abora8!o remota e
redes de sensores
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
4e!umo9 estado e "omortamento est!o distribuDdos entre peers que odem atuar tanto "omo
"%ientes quanto "omo ser+idores
'om+onente!9 peers "omonentes indeendentes "om seu estado e thread de "ontro%e r3rios
'onectore!9 roto"o%os de rede6 frequentemente ese"ia%i5ados
%lemento! de "ado!9 mensa&ens de rede
To+ologia9 em rede ;"om ossibi%idade de "one70es redundantes entre peers?Q ode +ariar
arbitrariamente e dinami"amente
8ualidade! Indu9ida!9 "omuta8!o des"entra%i5ada "om f%u7o de "ontro%e e re"ursos distribuDdos
entre os peersQ a%tamente robusto na resen8a de fa%(as em qua%quer n3Q es"a%2+e% em re%a8!o ao
a"esso a re"ursos e oder "omuta"iona%
:!o! T;+ico!9 onde as oera80es e fontes de informa8!o est!o distribuDdas e a rede ' ad-hoc
1recau5e!9 quando o temo ne"ess2rio ara re"uera8!o da informa8!o ' imortante e ' in+i2+e%
%idar "om a %at-n"ia imosta e%o roto"o%oQ se&uran8a ;de+e/se dete"tar peers ma%i"iosos e ro+er
meios ara &eren"iar a "onfian8a trust em ambientes abertos?

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

eer-to-eer ;/? ;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!
eer-to-eer

eer-to-eer ;/? ;ouso %unar?9

*bten8!o da informa8!o e%o 7unar 7ander . ;JJ1?9


1? No temo 1
0
6 JJ1 "onta"ta todas as na+es resentes no raio
de "omuni"a8!o
B? Somente JJB resonde
C? JJ1 er&unta a JJB se e%a ossui a informa8!o desejada
4? @isto que JJB n!o ossui esta informa8!o e%a reassa a
er&unta ara o seu n3 de "omuni"a8!o adja"ente JJC
;assume/se que JJB e JJC j2 se "on(e"em?
T? @isto que JJC n!o ossui esta informa8!o e%a reassa a
er&unta ara JJ46 JJ6 e JJ>
6? JJ> informa6 a JJC6 que ossui a informa8!o e a en+ia ara
e%a
>? JJC assa a informa8!o de +o%ta a JJB e6 subsequentemente6
a JJ1
4m um temo 1
n
JJ> adentra o raio de "omuni"a8!o de
JJ1 e e%as a&ora odem se "onta"tar diretamente
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

eer-to-eer ;/? ;ouso %unar?9


INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
"i!cu!!o2 1adr5e! e %!tilo!

1anto adr0es quanto esti%os ref%etem e7eri-n"ias e


"odifi"am "on(e"imentos obtidos atra+'s destas
e7eri-n"ias

Criar um bom esti%o e7i&e ref%etir sobre a e7eri-n"ia


+i+ida6 abstrair o "on(e"imento dos deta%(es
irre%e+antes e ossi+e%mente &enera%i5ar a so%u8!o
emre&ada
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
"i!cu!!o2 1adr5e! e %!tilo!

Porque ent!o ainda e7iste resist-n"ia no uso de


esti%os #

Porque e7i&e que o rojetista traba%(e dentro do "onjunto


de restri80es que "om0em o esti%o e isto )are"eH
imroduti+o ou %imitante

4ntretanto6 uma "ara"terDsti"a "uriosa e n!o/intuiti+a do


rojeto "om esti%os arquiteturais ' que6 "om a ado8!o
destas restri80es6 obt'm/se &rande %iberdade e efeti+idade
no rojeto
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
"i!cu!!o2 1adr5e! e %!tilo!
A <i/erdade da! 4e!tri5e!

4sti%os %imitam o rojetista de di+ersas formas9

A quantidade de deta%(es e "on"eitos ossD+eis de serem


uti%i5ados ode ser %imitado ;e79 somente tr-s "amadas?

A forma de intera8!o entre os e%ementos ode ter


restri80es ;e79 "omuni"a8!o somente atra+'s de e+entos?

Podem e7istir obri&a80es a serem "umridas ;e79


"omuni"a8!o mediada semre or "one"tores de
rimeira/"%asse?

Podem fa5er "om que a so%u8!o de a%&um sub/rob%ema


seja sub/3tima ;e79 e7i&ir "omuni"a8!o or streams?

Neste "aso6 entretanto6 os benefD"ios de fa"i%idade de


"omreens!o e reuso indu5idos e%o esti%o sueram
qua%quer outro benefD"io %imitado
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
"i!cu!!o2 1adr5e! e %!tilo!
A <i/erdade da! 4e!tri5e!

.e onde +-m ent!o a %iberdade e efeti+idade #

4sti%os restrin&em o fo"o6 "riando um esa8o de rob%emas


"om o qua% o rojetista n!o re"isa se reo"uar

4sti%os &arantem a a%i"abi%idade de t'ni"as arti"u%ares de


an2%ise

As restri80es ossibi%itam a uti%i5a8!o de estrat'&ias de


&era8!o autom2ti"a de "3di&o e uso de frameworks

4sti%os disonibi%i5am in+ariantes9 )desde que eu si&a estas


re&ras eu sei que isto semre ser2 +erdadeH

4sti%os tornam a "omuni"a8!o mais efi"iente e fa"i%itam a


"omreens!o das de"is0es em um temo futuro
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
"i!cu!!o2 1adr5e! e %!tilo!
'om/inao& =odificao e 'riao de %!tilo! e 1adr5e!

A %ista de esti%os aresentada n!o ' e7austi+a

Cada domDnio de a%i"a8!o oder2 ter um esti%o


ese"Dfi"o asso"iado

4ntretanto6 ' "omum que este esti%o ese"Dfi"o seja


uma a&re&a8!o ou "ombina8!o de esti%os mais
sim%es6 moti+ado e%o desejo de obten8!o de
mE%ti%os benefD"ios

47em%o9

CB U G@C N Camadas N 4+entos

:4S1 U Camadas N Interretadores N :e%i"a8!o N ...


INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
"i!cu!!o2 1adr5e! e %!tilo!
'om/inao& =odificao e 'riao de %!tilo! e 1adr5e!

SDndrome do ;AAS ;;et-Another-Architectural-Style?9

.e+e/se e+itar a "ria8!o desne"ess2ria ou imrudente de


no+os esti%os ois9

4ste no+o esti%o ro+a+e%mente reresenta a e7eri-n"ia


de um rojetista arti"u%ar e ro+a+e%mente n!o foi
"omarado "om e7eri-n"ias de outros rojetistas da
emresa ou do domDnio de a%i"a8!o

K uma ne&a8!o de uma das +anta&ens dos esti%os


romo8!o de "omuni"a8!o efeti+a entre rojetistas

A "on+eni-n"ia e erfe""ionismo raramente sueram os


benefD"ios &enuinos da a%i"a8!o "uidadosa de esti%os
j2 estabe%e"idos e bem "on(e"idos
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
"i!cu!!o2 1adr5e! e %!tilo!
'om/inao& =odificao e 'riao de %!tilo! e 1adr5e!

Se o no+o esti%o for rea%mente ne"ess2rio de+e/se


fo"ar no que ' +erdadeiramente "entra%

.e+e/se ensar que )menos si&nifi"a maisH at' que a


no+a aborda&em seja adequadamente +a%idada

1a% +a%ida8!o in"%ui a "%ara arti"u%a8!o de quais in+ariantes


s!o obtidas "omo "onsequ-n"ia das restri80es adi"ionadas
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
Design !eco"ery

4m um "en2rio idea% assume/se que a arquitetura ' a


reifi"a8!o da "on"e8!o t'"ni"a do sistema e que
est2 fie%mente ref%etida na im%ementa8!o do sistema

Infe%i5mente6 n!o ' isso que a"onte"e9

Sistemas s!o "riados e modifi"ados sem "onsidera8!o e


do"umenta8!o dos ase"tos arquiteturais

$uando um rojeto e do"umenta8!o arquitetura% est!o


resentes as futuras modifi"a80es s!o &era%mente
rea%i5adas sem muita reo"ua8!o em manter a
inte&ridade inte%e"tua%6 resu%tando em eros!o
arquitetura%9

A e+o%u8!o do software requer "on(e"imento rofundo da


a%i"a8!o6 da sua "om%e7idade6 da sua arquitetura &era%6
dos "omonentes rin"iais e suas intera80es e
deend-n"ias
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
Design !eco"ery

Para %idar "om este rob%ema &era%mente rea%i5a/se


re"uera8!o arquitetura% ;Architectural 3ecovery?9

Pro"esso onde o rojeto arquitetura% do sistema ' e7traDdo


a artir dos seus outros artefatos6 atua%i5ados de forma
mais "onfi2+e% que o rojeto arquitetura%

1ais artefatos odem ser9 requisitos6 ese"ifi"a80es


formais6 %anos de testes6 et"

A im%ementa8!o do sistema6 entretanto6 ' frequentemente


uti%i5ada "omo onto de artida ara a re"uera8!o
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! Sandro S$ Andrade
Design !eco"ery

Ama aborda&em "omum ara re"uera8!o


arquitetura% ' o clustering de entidades de
im%ementa8!o em e%ementos arquiteturais

1'"ni"as de clustering6 a deender da aborda&em


uti%i5ada ara a&ruar entidades de "3di&o ;"%asses6
ro"edimentos6 et"?6 odem ser "%assifi"adas em9

Sint2ti"as9

Fo"a e7"%usi+amente no re%a"ionamento est2ti"o entre


entidades de "3di&o/fonte. Podem uti%i5ar m'tri"as de
"oes!o e a"o%amento

SemLnti"as9

In"%ui informa80es sobre a simi%aridade "omortamenta% das


entidades de "3di&o/fonte. Pode a+a%iar6 or e7em%o6 a
frequ-n"ia de intera8!o ou o m'todo efeti+amente in+o"ado
no "aso de o%imorfismo N %i&a8!o dinLmi"a
INF016 Arquitetura de Software Graduao Tecnolgica em Anli!e e "e!en#ol#imento de Si!tema! 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!

Você também pode gostar