| Artículos | 01 SEP 1997

Componentes de software

Tags: Histórico
David Rodríguez.

Los componentes son la clave fundamental de la informática distribuida y de la actual migración de aplicaciones existentes a arquitecturas orientadas al web. Descubra con nosotros los diferentes tipos de componentes que existen, así como los más utilizados.

Las empresas de desarrollo que buscan soluciones que permitan a sus equipos de programación ahorrar tiempo y esfuerzos siempre llegan a la misma conclusión: no hay que reinventar la rueda, lo que en términos informáticos se traduce en la reutilización de código ya escrito, bien propio o diseñado por terceras personas.

Si pensamos definir lo que es un componente de software, primero debemos saber algo sobre el público que va a prestar atención a nuestras palabras. Para un simple y práctico programador, introducido en una herramienta de rápido desarrollo como la que nos brindan las grandes empresas de software en la actualidad, un componente no es más que algo que elegimos de una paleta, que introducimos en nuestros formularios, fichas o como queramos llamarlos, y que realiza mucho trabajo sucio, simplificando al máximo el programa que estamos desarrollando.

Tal es su importancia, que más de una aplicación está orientada por los componentes de los que disponían sus creadores. En efecto, dado que es algo que está ahí, a nuestro alcance, sin otro particular que mover el ratón, ¿quién no resiste la tentación de usarlos, mejorando siempre la interfaz, pero atacando también a problemas gráficos, de impresión, bases de datos, etc.?

Ante un público más técnico, diremos que los componentes son piezas de código con una funcionalidad determinada, que son totalmente ajenos a elementos externos como pueden ser otros programas, procesos o servicios. Dicho de otra manera, la pieza de código de cada componente se ejecuta de manera independiente, aporta servicios concretos y sigue unas normas comunes para que cualquier aplicación (orientada a componentes) pueda utilizarlas.

Razón de ser

La pretensión de un componente siempre va a ser ofrecer una solución a un usuario, gracias a un intermediario (el programador) que integra dicho componente en la solución informática. Su objetivo más inmediato es acortar los ciclos de desarrollo mediante el ahorro de tiempo y esfuerzo por parte del programador, que antes de utilizar el componente debía enfrentarse a un desarrollo partiendo de cero. Otro objetivo de gran importancia podría ser la estandarización, de forma que las aplicaciones adquieran atributos comunes, ya sean de apariencia, manejo, manipulación de datos, etc. En general, se trata de resolver de la misma manera idénticos problemas. Asimismo, las aplicaciones podrán adaptarse con mayor flexibilidad a los cambios, ya sean estos debidos a una evolución en la solución informática ambicionada (léase requerimientos del cliente) como a la intrínseca y rauda evolución de las técnicas informáticas.

Con la utilización de componentes se mejora en general el mantenimiento de las aplicaciones, no sólo por su flexible adaptación, sino también porque estamos añadiendo un código que ya ha probado con anterioridad su eficacia y robustez.

Sin embargo, en los componentes existen otros factores que los diferencian de otras técnicas de programación, las cuales también persiguen la reutilización de código. Tal vez el factor más importante sea su especial arquitectura, la cual permite que componentes creados por diversas casas de software, puedan ser combinados en una amplia gama de aplicaciones. Otro factor es la posible independencia de la plataforma sobre la que va a ejecutarse el mismo, de manera que podemos tener las mismas facilidades bajo Windows 95, Windows NT, UNIX, Apple Macintosh, etc.

Se genera entonces un nuevo tipo de industria, consistente en fabricantes de componentes de software, es decir, empresas especializadas en la construcción de dichos componentes, atendiendo a segmentos de mercado concretos. De esta forma, al entorno de programación le añadiremos los servicios concretos y sectoriales que necesitamos, generalmente mediante la adquisición de los componentes necesarios. En nuestro país tenemos una gran cantidad de empresas en las que podemos adquirir componentes, entre las cuales sólo hay unas pocas que se encuentren especializadas en este terreno, que son las que se muestran en el cuadro adjunto. Destacan Visual Programming y Rambla informática por su extenso catálogo y a Ilog por su gama propia de productos orientados a la mejora del interface, optimización y control. Esta última compañía también ofrece librerías. Como muestra de productos de Ilog tenemos a ILOG Views (componentes para desarrollo de GUIs, con gráficas en tiempo real, diagramas Gantt interactivos, imágenes de mapas para GIS, etc.), ILOG InForm (une los componentes visuales con los datos) e ILOG Vision (gráficos 3D de alto rendimiento).

Aunque una y otra vez estamos pensando en los componentes como algo que soluciona problemas de presentación, gestión, gráficos y un largo etcétera, las posibilidades son realmente ilimitadas, de forma que muchos componentes pueden englobar otros aspectos, como puede ser el hardware y en especial determinados dispositivos o periféricos.

Tipos de componentes

El nombre de componente es tan genérico que puede resultar confuso a la hora de realizar una hipotética clasificación, sobre todo porque la visión que tiene el usuario es bastante diferente a la que tiene el constructor.

Podemos definir brevemente varios conceptos que mantienen una estrecha relación: COM que es el modelo básico de componente; OLE que es un modelo de manipulación de objetos basado en COM que ha ido creciendo hasta englobar casi todo; OLE Automation, que es un sistema que permite acceder a objetos fuera de nuestro programa como si fueran propios; OCX, controles a medida basados en el OLE (y por tanto en el COM); ActiveX un estándar industrial de componentes que se pueden definir como controles OLE y relacionado con OCX, como luego veremos, de gran fama por su relación con Internet y VCL o librería de componentes visuales característica de los entornos de desarrollo de Borland. Los controles VCL (Visual Component Library) pueden utilizarse, gracias a la ayuda de asistentes, para crear otros controles ActiveX.

Una particularidad de los VCL es que en muchas ocasiones (sobre todo los que acompañan a las herramientas de Borland, además de aquellos que puedan adquirirse) está disponible el código fuente, a diferencia de otros componentes donde sólo es posible obtener la versión compilada. Esto resulta muy útil dentro del entorno de programación para el que fueron diseñados, ya que el programador puede utilizarlos tal cual o bien modificarlos a su gusto o simplemente heredar sus características (ya que son totalmente orientados a objetos). Evidentemente, esta posibilidad sólo es realmente atractiva dentro del entorno de programación nativo, sin que pueda hablarse de una independencia del código a menos que se realicen tratamientos posteriores. Otra muestra de elementos abiertos, con código fuente suministrado, son los JavaBeans, en los que está basado Borland JBuilder.

Los componentes ActiveX pueden integrarse en numerosos entornos, entre los que cabe destacar Internet Explorer (3.0 y 4.0), MS Visual C++ 4.x y 5.0, Visual J++ 1.x, Visual FoxPro 5.0 y Visual Basic (4.0 y 5.0) por parte de Microsoft, así como en Borland C++ Builder y Delphi (2.0 y 3.0) por parte de Borland. La nueva versión del navegador Netscape Communicator 4.01 no soporta ActiveX, siendo necesario activar este soporte a través de un plug-in independiente.

La construcción de componentes, precisa de una metodología que permita encapsular código y datos, obtener un elevado nivel de abstracción y derivar elementos, con lo cual los lenguajes orientados a objetos son los más indicados. Por otro lado, si nos atenemos a números estadísticos

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información