sexta-feira, 17 de setembro de 2010

Componentes em CAD

Blue Gene
A indústria de software comercial teve um crescimento na complexidade dos softwares contemporâneos, requerindo um novo mecanismo a lidar de forma simples esses diversos softwares de códigos complexos. A tecnologia de componentes veio para suprir essa demanda. Brown e Wallnau[1] descrevem um componente como "uma não-trivial, quase independente, e substituível parte de um sistema que cumpre uma função clara no contexto de uma arquitetura bem definida". Assim, vários modelos de componentes comerciais foram sendo criados como o COM/COM+ (Component Object Model) da Microsoft; JavaBeans e Entreprise JavaBeans (EJB) da Sun; CORBA do OMG (Object Management Group); entre outros.

Entretanto a Computação de Alto Desempenho (CAD) ainda não soube se beneficiar dessa tecnologia de componentes, apesar de ter uma complexidade (hardware e software) maior que os sistemas convencionais. Os software comerciais e tecnologias afins tem a vantagem de crescerem mais rápidos devido ao maior investimento que as empresas fazem pois sabem que terão seu retorno financeiro e assim mais capital para investir nessas tecnologias. A CAD por ser utilizada em proporção muito menor e requerer ainda maior investimento devido a sua complexidade e os computadores serem muitos caros, não se teve o mesmo sucesso que as tecnologias comercias. Vale ressaltar que as tecnologias derivadas a partir dos softwares comercias são insufientes para atendar a demanda da CAD.

Por ter se desenvolvido a partir de demandas prioritárias de desempenho e poder computacional, vejo que a área de CAD cresceu a partir de casos isolados de sucesso tanto em hardware: através de MPP's com arquitetura bastante acoplada e propósitos muito específicos e SMP's formada de processadores convencionais ligados por memória compartilhada, quanto em software: através de sistemas operacionais baseados em Unix específicos para uma determinada arquitetura e softwares que rodem nesses SO's também serão específicos com uma portabilidade bastante limitada. Bom, comentei isso para afirmar que a área de CAD nasceu desorganizadamente e agora que trabalhos científicos tentam padronizar e minimizar a complexidade dessa área.

Nos últimos anos, a comunidade de CAD tem observado o surgimento de componentes como uma alternativa para lidar com a complexidade das aplicações em grande escala em seus domínios de interesse. As primeiras tentativas de aplicar plataformas de componentes em aplicações CAD, foi com o CCM (CORBA Component Model). Estas iniciativas têm inspirado os pesquisadores que trabalharam sobre a proposta, o desenvolvimento e a evolução do modelo de componente CCA (acrônimo para Common Component Architecture, um modelo de componente CAD) e suas estruturas compatíveis, a maioria dos quais originários de campos da ciência computacional.

No próximo post explicarei melhor a definição de modelos de componentes, ou arquitetura de componentes.


Abraços,
--
Lucas Queiroz


[1] - Brown, A.W.. Component-Based Software Engineering.  IEEE Computer Society Press, 1996. ; Pags. 7-15