• Nenhum resultado encontrado

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

N

pro essadores, um sub onjunto

P

de pro essadores  a responsável em al ular o produto entre a matriz

A

om o vetor

X

. Outro

sub onjunto

M

deve al ular o produto da matriz

B

om o vetor

Y

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

MatVe 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

e

X

,resultando emum outrovetor, representado

pelo omponente abstrato também desta mesma espé ie

V

. O omponente

BY U

é do mesmo tipo que

AXV

, porém apli ado aos omponentes

B

,

Y

e

U

. Os

omponentes

V

e

U

são entrada para omponentes da espé ie Sin ronizador de

tipo abstrato Redistribute, uja saída ompreende as estruturas de dados

V

_

e

U

_ , respe tivamente. Esse omponente distribui os vetores

U

e

V

, que

estão redistribuídos em

M

e

P

pro essadores, nos

N

pro essadores. Então, são

multipli adosparalelamentepelo omponente

V Ur

,detipoabstratoVe Ve Produ t,

atribuindo o resultado ao omponente de espé ie Estrutura de Dados

r

, que

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

Documentos relacionados