5.7 Exe ução de um Componente # no Ba k-End
5.7.2 O Método de Criação Diâmi a
EmMono, é possível que objetos sejam riados dinami amente a partirde suas
bibliote as instaladas no GAC. Dado o nome da bibliote a (assembly), e o seu
tipo,um objetoé riadoem tempo de exe ução usandoas propriedadesde reexão
(ree tion) dalinguagem C# (Apêndi e A.1,linhas 11-15).
Aodes obrirasimplementaçõespara ada omponenteinternoaum omponente
on reto no método da Figura 5.9, o DGAC salva entradas no ban o de dados
que são re uperadas pelo método reateInstan eFor. Este método re upera as
informações no ban o de dados (Apêndi e A.1, linhas 02-09, lasses DAO) e as
(linhas13-15). Através da ara terísti adareexão, presentenalinguagem C#, o
nosso método ria uma instân ia da lasse realmente asso iada às variáveis de tipo
pertinentes ao omponente on reto, garantindo a segurança de tipos. O operador
typeoféusado pararetornar otipo orretodeuma variávelde tipo. Apartirdesta
Estudo de Caso: Desenvolvimento e
Implantação de Componentes no
HPE
Este apítuloapresentaum estudode aso simplesquevisailustrarospassos do
i lo de vida de omponentes #. A apli açãoes olhida é uma generalizaçãopara o
programaparaleloapresentado noCapítulo3 omo intuito de apresentaromodelo
de omponentes # para um número arbitrário de pro essadores. Consideramos
importante ressaltar que essa apli ação, embora um simples aso de programa
paralelo, des reve omponentes de todas as espé ies propostas para o HPE,
ilustrando diversos aspe tos de sua abordagempara omposição de programas.
O apítulo está assim organizado: a Seção6.1 des reve osdetalhes daapli ação
exemplo. A Seção 6.2apresenta osprin ipais omponentes abstratos envolvidos na
elaboraçãodaapli ação. ASeção6.3mostraumexemplodeumaversão on retade
um omponente abstrato. A Seção 6.4, por m, expli a o pro esso de implantação
daapli ação, e sua exe ução.
6.1 Des revendo a Apli ação Exemplo
O projeto de implantação da nossa apli ação dene dois omponentes,
ongurados a partir do Front-End: O omponente AppExampleOwner e
AppExample. AppExampleOwner é da espé ie Apli ação. Como expli ado no
Capítulo5um omponentedaespé ie Apli ação tambémé uma omputação. Logo,
internamente a AppExampleOwner, denimos um omponente interno da espé ie
Figura 6.1: Apli ação exemplo abstrata (AppExample), apresentando seus omponentes
internos. As ores dis riminam a Espé ie deComponente.
AppExample dene o ódigo prin ipal da lógi a dessa apli ação enquanto
AppExampleOwner dene apenaso ódigoque invo ará a omputaçãodandoiní io
à exe ução. AppExampleOwner foi projetado para exe ução em um onjunto de
N
pro essadores. DessesN
pro essadores, um sub onjuntoP
de pro essadores a responsável em al ular o produto entre a matrizA
om o vetorX
. Outrosub onjunto
M
deve al ular o produto da matrizB
om o vetorY
. Portanto,N = P + M
.Apesar de AppExampleOwner ser responsável pela exe ução, estamos mais
interessados em apresentar a lógi a da omputação ontida no omponente
A Figura 6.1 dá um visão geral dos omponentes envolvidos na montagem de
AppExample, queé formado por um onjunto de omponentes de diversas espé ies
expli itadospelas elipses. Cada elipse representa um omponente #, possivelmente
formado por outros omponentes. Alguns omponentes são bási os, não sendo
formadospela omposição de outros omponentes.
Ini ialmente,apresentaremosumabreveexpli açãodesseexemplonosparágrafos
aseguirenfatizandoopapelde ada omponenteinternoeosigni adodasoperações
de entrada e saída. É importante ressaltar que a Figura6.1 não ondiz om o real
projetodo omponenteAppExample esimumasimpli açãodomesmo, onstruída
em uma ferramenta grá a vetorial, om o objetivo apenas ilustrar a hierarquia
de omponentes. Optamos poresta abordagempoisuma teladareal representação
grá adeAppExample eAppExampleOwner ausariaumapoluiçãovisualin moda
a este texto, tanto ao leitor quanto ao nosso estilo de formatação. Entretanto, os
omponentes mais simples serão mostrados em sua forma real, assim omo foram
on ebidospeloFront-End.
Comopodemosnotar,aselipsessãodis riminadaspor ores. Cada orrepresenta
umaEspé iede Componente diferente. O omponente AppExample possui diversos
omponentes internos, de outras espé ies. O omponente
AXV
, do tipo abstratoMatVe Produ t é da espé ie Computação. Seu objetivo é al ular a multipli ação
paralela entre uma matriz e um vetor, representados pelos omponentes abstratos
daespé ie Estrutura de Dados
A
eX
,resultando emum outrovetor, representadopelo omponente abstrato também desta mesma espé ie
V
. O omponenteBY U
é do mesmo tipo que
AXV
, porém apli ado aos omponentesB
,Y
eU
. Osomponentes
V
eU
são entrada para omponentes da espé ie Sin ronizador detipo abstrato Redistribute, uja saída ompreende as estruturas de dados
V
_e
U
_ , respe tivamente. Esse omponente distribui os vetoresU
eV
, queestão redistribuídos em
M
eP
pro essadores, nosN
pro essadores. Então, sãomultipli adosparalelamentepelo omponente
V Ur
,detipoabstratoVe Ve Produ t,atribuindo o resultado ao omponente de espé ie Estrutura de Dados
r
, querepresenta o es alara ser a umulado nopro essador raiz.
Note-se que os omponentes ne essitam trabalhar sobre um ambiente de
omuni ação interpro essos. O omponente da espé ie Ambiente (Environment)
está in luso nos omponentes que ne essitam deste tipo de serviço. Além disso, o
paralelaalvo.
ASeçãoseguinteapresentaos omponentes abstratosusadosna omposiçãode
AppExample.