• Nenhum resultado encontrado

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 os

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

Documentos relacionados