Um omponente # é omposto de várias unidades, ada qual onstituindo
a representação do omponente em um dos omputadores onde en ontra-se
implantada. Sob a perspe tiva de pro essos, ada unidade onstitui uma fatia
de um pro esso perten ente a uma apli ação que faz uso do omponente #
(Figura 3.6). Portanto, podemos imaginar de forma intuitiva um omponente #
omo um omponente implantado em um onjunto de máquinas possuindo um
papel possivelmente diferente, denotado pelas suas unidades em ada máquina.
Isso generaliza a abordagem SCMD, omumente adotada em extensões paralelas
para modelos de omponentes, para uma abordagemMCMD (Multiple Component
Multiple Data), padrão uja importân ia tem sido re onhe ida pela omunidade
CCA para apli açõesde Computaçãode AltoDesempenho [50℄.
Fo ando em interesses, programadores podem onstruir omponentes #
ombinando-os através da sobreposição (overlapping). O ompartilhamento de
ódigo entre os omponentes é feito através de um me anismo de fusão entre os
interessesinternosaos mesmos. OperaçõesdeÁlgebraLinear,porexemplo,asquais
sãointeresses de dois oumais omponentes#, podemsefundirpara queasmesmas
possam trabalhar sobre as mesmas estruturas de dados. O ompartilhamento de
estruturas de dados é fundamental para obter melhor desempenho em operações
Figura 3.6: Usandoaindaoexemplodaseçãoanterior,um omponente# éformadopela
união das unidades perten entes a um interesse referente a um onjunto de
pro essosem um programa paralelo
omponentes omo o Fra tal[13℄.
De a ordo om [49℄, um omponente é uma unidade de omputação a qual
tem uma fun ionalidade bem denida, independentemente implantável e sujeita a
omposição de ter eiros e que pode ser agregada, por meio de one tores, a outros
omponentes para riar uma apli ação.
Cone tores permitem a orquestração de um onjunto de omponentes para
atender algumane essidade mais geral do que a fun ionalidade individual de ada
um. Segundo Allen e Garlan [2℄, one tores são onstituídos de um papel (role)
e uma ola (glue). Os papéis des revem o omportamento lo al esperado de ada
uma das partes que interagem. A ola atua omo um espe i ação que determina
asobrigações que ada omponente possui nainteração, além de sua oordenação.
Podemos armar serem os tipos de one tores suportados a ara terísti a que
diferen ia modelos e arquiteturas de omponentes. Os modelos de omponentes
que tornaram-se populares no meio omer ial suportam, em geral, one tores
assimétri os que des revem relações liente/servidor entre omponentes. Estes
modelos tem servido omo base in lusive para modelos voltados à omputação de
altodesempenho, omoCCAeFra tal. Porém,emprogramaçãoparalelaé omuma
existên iadeváriostiposde one tores,amaioriados quaisimplementandorelações
Aprin ipal onseqüên iado on eitode omponente#éotratamentouniforme
entre os on eitos usuais de omponente e one tor sob a forma de um úni o
on eito, o omponente#. Torna-se possívelque um framework ou infra-estrutura
de omponentes # suporte quaisquer tipos de one tor que possa ser programado
omo um omponente #, in lusive os que implementam a relação par-a-par entre
omponentes. O tratamento de one tores omo omponentes # é a onseqüên ia
diretadofatode queestesestão implantadosemum onjuntode máquinas,através
de suas unidades a quais implementamos papéisenvolvidos no one tor.
O omponente # formado pelas unidades orrespondentes às fatias de
Redistribuir(U,V) é um one tor uja função onsiste em repassar os dados U e
V, al ulados pelos omponentes # MultMatVet(A,X,V) e MultMatVet(B,Y,U),
para o omponente # MultVetVet(U,V). Em termos mais gerais, o omponente
Redistribuir one ta um omponente distribuído em
N
pro essadores (no aso,MultMatVet(A,X,V) e MultMatVet(B,Y,U) em dois pro essadores ada um), om
um omponente distribuído em
M
pro essadores (no aso, MultMatVet(B,Y,U)em quatro pro essadores), onde
M > N
. Os dados são transmitidos entre osomponentes pela implementaçãodoambientede omuni ação entre pro essos.
Trabalhos importantes na área de Engenharia de Software têm proposto que
one tores atuem em um papel preponderante na qualidade de um modelo de
omponentes [2,45,67℄. Por exemplo, Mary Shaw [67℄ sugere que one tores em
sistemas baseados em omponentes sejam elevados à ategoria de entidades de
primeira lasse. Sendo assim, quando one tores são tratados emseu pro esso de
desenvolvimento damesmaforma queoutros omponentes não menos importantes,
in orporamos aos mesmos as vantagens inerentes à programação orientada a
omponentes. Por exemplo, podemos denir o tipo de dado a trafegar entre
omponentesealterá-lode a ordo omane essidade. Damesmaformapoderíamos
denir e alterar um omponente interno responsável pela omuni ação entre
pro essos. Os métodos usuais baseados em imports e in ludes usados na onexão
de bibliote as de omponentes pe am por ignorar a importân ia das interações e
onexõesentre módulos. Comoexemplode modelosfo adosem one tores, itamos
dois artigosno parágrafosque seguem.
Reo[4℄ é um modelo de oordenação para a omposição de apli açõesbaseadas
em omponentes. Em Reo, os one tores são baseados em anais de omuni ação.
o ódigo que une que os omponentes possa ser adaptado om maior fa ilidade,
diminuindo o a oplamento da apli ação. Nesta dissertação, é objetivo também
implementaros one toresdos omponentes#também omoum ódigodemaisalto
nível,baseadoem anais, om omponentes#. Entretanto,omodelo#diferen ia-se
ao tratar omponentes e one tores em uma mesma abstração, o omponente #,
permitindootratamento formaluniformea esses [21℄.
Outropontoaressaltaréque omponentes#, osquaisimplementam one tores,
teriamuma oordenaçãoexógena. Dea ordo om[4℄, uma oordenaçãoexógenadiz
que as primitivas que ausam e afetam a interação de uma entidade om outras
residem em outras entidades. É possível que sejam feitas mudanças topológi as
naapli ação sem interferir nem atualizar internamenteos omponentes da mesma,
bastando apenas alterar as entidades responsáveis pela oordenação. Além disso,
one tores são baseados em eventos, ou seja, eles são sin ronizados a partir de
eventos quedisparamsuas omputações.
Em[45℄,Fiadeirointroduzumframework matemáti o, hamadode CommUnity,
oqualapresentaformalismospara a onstrução dos pro essosqueinter one tamos
omponentes em um sistema omplexo, separando-os da des rição da omputação
internados mesmo. Existe, então, uma preo upação emelevar onível de abstração
da ola, ou one tores, que unemos omponentes.