Elaborado por:
Ing. Nelson Enrique Segovia Sulbaran
RESUMEN
¿QUE ES ACTIVEX?
ActiveX es un estándar
desarrollado por Microsoft que permite la interacción de componentes de
software en un ambiente de red independientemente del lenguaje en el cual
fueron creados. Este estándar es soportado por la plataforma Internet-cliente
Internet Explorer de Microsoft. Con ActiveX se logra que los sitios Web tengan
efectos multimedia, objetos interactivos y aplicaciones sofisticadas. ActiveX
permite unir un gran número de bloques de tecnología para lograr sitios Web
activos. Por ejemplo hay controles ActiveX para
mostrar un calendario, para implementar un sistema de FTP, etc.
ActiveX no es un lenguaje de programación. El término
correcto es Control ActiveX. Para comprender mejor el concepto veamos el caso
de Excel. En Excel, un libro de trabajo (Workbook) es un objeto, que a su vez
contiene hojas objeto (worksheet), que contiene celdas objeto (cell). Cada
objeto tiene propiedades que describen su apariencia y comportamiento. Por
tanto, cuando Usted pone un valor en una celda en Excel, usted está definiendo
la propiedad “Valor”. Si Usted cambia el color del texto estará definiendo la
propiedad “Color”. Cuando Usted desea que un componente haga algo llamará a un
método. Cuando un objeto ejecuta algún método genera eventos. Por tanto, el
control ActiveX es una pequeña pieza de software, escrita según las
especificaciones COM (Component Object Model), que es como una “caja negra” y
tiene propiedades, métodos y eventos. Cuando Usted compra un objeto ActiveX en
realidad compra una licencia para usar este objeto en su aplicación.
Este estándar incluye lo siguiente:
Controles ActiveX: son componentes de software que
corren en páginas Web, y proveen funciones interactivas controlables por el
usuario. Esto permite a los usuarios ver e interactuar con animación, audio y
vídeo sin necesidad de abrir programas separados. Además, los controles ActiveX
pueden ser re-usados en aplicaciones y pueden ser escritos en muchos lenguajes
de programación populares incluyendo Java, Visual Basic y Visual C++.
"Control Pad" ActiveX: es un "utility"
que facilita la inclusión de controles y "Scripting" ActiveX en
páginas HTML para ser vistas en Internet Explorer ó otro "browser" que soporte
controles ActiveX.
"Scripting" ActiveX: soporta varios lenguajes de
"scripting" incluyendo Microsoft Visual Basic Scripting Edition
(VBScript) y JScript (un lenguaje compatible con JavaScript). Los script se
usan para integrar el comportamiento de varios controles ActiveX, extendiendo
su funcionalidad.
Documentos
ActiveX:
permite abrir un programa, con sus propias barras de herramientas y menús en
Internet Explorer. Esto significa que se pueden abrir documentos de Microsoft
Excel o Microsoft Word en Internet Explorer.
Máquina Virtual Java: Permite a cualquier
"browser" que soporte ActiveX correr "applets" Java e
integrar "applets" Java con controles ActiveX.
Estructura de Servidor ActiveX: provee varias funciones
basadas en servidor de Web, como seguridad y acceso a bases de datos
Herramientas de
desarrollo:
Permite el uso de técnicas y herramientas conocidas para crear controles y
contenido Web. Estas herramientas incluyen Visual Basic, Visual C++, Macromedia
ShockWave, Adobe Photoshop, Borland Delphi, herramientas de Sybase y Borland y
herramientas Java (MICROSOFT CORPORATION, 1997).
Los desarrolladores en todo
el mundo están creando componentes de software que permiten la creación de
páginas Web con contenido activo. Los componentes de software se utilizan como
piezas o partes re-usables para construir aplicaciones. Estas piezas se unen en
algún tipo de contenedor. Los componentes pueden ser escritos específicamente
para esa aplicación, o lo que es mejor, re-usados para otros proyectos o
comprados. La finalidad es crear más aplicaciones confiables más rápidamente y
gastando menos dinero.
Un contenedor puede ser un "browser" Web
como Netscape Navigator ó Internet Explorer de Microsoft. Cualquier componente
puede ser bajado de un servidor Web localizado en una Intranet corporativa o en
Internet. Los usuarios ya no están limitados a bajar a sus "browsers"
solo texto (como archivos JPEG), sino que pueden bajar código ejecutable
también. Esto permite la creación de páginas Web con contenido activo, donde,
por ejemplo, los datos son bajados junto con el código requerido para trabajar
con esos datos. De esta manera es posible construir aplicaciones muy útiles.
Una de las tecnologías más importantes para construir componentes poderosos son
controles ActiveX.
A continuación enumeraremos algunas de las
características mas importantes del ActiveX o controladores ActiveX:
Contenedores:
Los componentes software
por definición no pueden sobrevivir por si solos, requieren cierta clase de
contenedor en el cual ejecutarse. Los controles ActiveX, son soportados por
toda clase de contenedores. Muchas organizaciones ofrecen controles ActiveX, la
mayoría no relacionados con la creación de páginas Web activas. Aunque estos
controles ActiveX son creados con otros ambientes en mente, muchos pueden ser
cargados y ejecutados en un "browser" compatibles con ActiveX.
Independencia de Plataforma:
Los controles ActiveX no
son independientes de la plataforma como otros, ellos generalmente corren sólo
en sistemas Windows/Intel. El sistema típico es una máquina basada en Intel que
soporte la interfaz Win32, que generalmente significa que está corriendo
Windows 95 o Windows NT. Como ejemplo un desarrollador en una organización con
clientes mayoritarios Windows/Windows NT preferirá crear controles ActiveX
debido a su "performance" y la habilidad de correr en muchas clases
de contenedores, no solo en "browsers".
Velocidad:
En general, las
aplicaciones interpretadas corren aproximadamente 10 veces más lento que las
aplicaciones compiladas (como controles ActiveX). La importancia de esto es
relativa: a medida que la velocidad de los procesadores aumenta, esta
diferencia podría ser cada vez menos significativa.
Disponibilidad:
En términos de
disponibilidad, ActiveX ha tomado la delantera, ya que es soportado por Visual
Basic 5.0 (CCE) de Microsoft, Visual C++ 4.2., y Visual J++ 1.1. (ahora en
beta). Para desarrollo, está disponible en beta actualmente soporte SKD de
Macintosh. Están disponibles actualmente en el mercado miles de controles
ActiveX, incluyendo reproductores "RealAudio" y reproductores de
películas. Y los principales vendedores de herramientas Java, incluyendo
Borland y Metrowerks han anunciado soporte Java para ActiveX. Además, una
aplicación puede crearse en minutos a partir de componentes ActiveX escritos en
diferentes lenguajes, y el "Developer Studio" de Microsoft
automáticamente cambiará el modo de "debugging" entre los lenguajes
componentes a medida que la aplicación se ejecuta (HUGHES M, 1997).
Seguridad:
ActiveX tienen modelos
de seguridad radicalmente diferentes a otros. Los modelos de seguridad en la
Web deben asegurar los siguientes dos aspectos:
1. Proteger a los usuarios contra código desarrollado deliberadamente
para hacer daño. Hasta ahora, esta clase de código es raro, pero hay algunas
demostraciones importantes como el "ActiveX Exploder" y los programas
del "Chaos Computer Club" de Alemania.
2. Proteger a los usuarios de errores de programación accidentales que
pudieran causar daño.
Existen tres enfoques posibles para la seguridad en componentes bajados
de servidores Web:
1. Confiar en el servidor: Se puede confiar en que algunos servidores
Web bien administrados, como los de una Intranet corporativa segura, no
repartirán componentes que contengan virus o hagan otra clase de daño al
sistema en el cual son cargados y ejecutados.
2. Limitar la capacidad de los componentes: haciendo imposible para los
componentes ejecutar funciones que puedan causar algún daño al sistema local.
"Sandboxing", como comúnmente se le denomina, puede garantizar
seguridad, porque los componentes bajados están obligados a jugar solo en su
propia caja de arena ("sandbox"). La desventaja es que los
componentes "sandboxed" no pueden hacer cosas que pueden ser muy
útiles, como por ejemplo, escribir a un archivo en el disco local de la máquina
del cliente.
3. Firma digital de los componentes: esta firma digital puede ser
chequeada por el "browser" que recibe el componente. Si está
correcto, el "browser" puede estar seguro de que el componente fue
creado por un entidad confiable (como Lotus o Microsoft o el grupo de
desarrollo interno de la organización) y que no ha sido modificado.
Los controles ActiveX
no están sujetos a chequeo intrínseco de seguridad ni chequeos de acceso a los
recursos. En cambio, los controles corren con completo acceso a la máquina y
sus recursos. El único mecanismo de seguridad es la firma digital, que permite verificar
que un control llega inalterado desde la fuente. Para firmar el control, hay
que presentarlo a una Autoridad de Certificación (CA) como Versión, junto con
una descripción y el nombre del desarrollador. La Autoridad de Certificación
utiliza técnicas de encripción para generar una firma que verifica el control,
el nombre y la descripción. Cuando un "browser" recibe un control
firmado, éste usa su propia copia de las claves públicas CA para verificar que
el control corresponde con la firma. Si es así, entonces se puede asegurar que
el control está inalterado.
La falta de control de
recursos hace de ActiveX una tecnología muy poderosa para aplicaciones intranet
basadas en Windows, pero si un control no realiza un chequeo completo de
parámetros puede realizar operaciones arbitrarias en la máquina del usuario, lo
que no ocurre con un "applet" debido a su seguridad intrínseca.
Capacidad:
ActiveX,
tiene todo el poder de una aplicación nativa, que le permite tomar ventaja de
poderosos APIs nativos, como DirectX, OpenGL, y QuickDraw3D. Los API futuros
mejorarán esta situación, pero si se requiere acceso a recursos de bajo nivel
del sistema, solo ActiveX lo provee, por supuesto con el precio de limitar la
aplicación a una sola plataforma.
CONCLUSIONES
Los Controles ActiveX y
otros seguirán desarrollándose en el
futuro. Los "browsers" líderes Netscape Navigator y Internet Explorer
de Microsoft soportarán varios estándares. Las organizaciones que construyen
componentes usando "browsers" como contenedores tienen que decidir
cual utilizar.
ActiveX son particulares de Internet Explorer, sistemas
Microsoft y es útil en un rango de
contenedores mayor que solo "browsers" Web, y es la tecnología mas
ideal para estos componentes.
Su importancia es en aplicaciones de automatización lo hace ver
con mas frecuencia en la industria.
Los Controles ActiveX sí que pueden otorgarse permisos para
hacer cualquier cosa con respecto a la
seguridad.