Definición del objeto ActiveX
Un objeto ActiveX se define como el que se adhiere al
Modelo de Objetos Componentes (Component Object Model COM) definido por
Microsoft.
Un
objeto que cumpla con este modelo tiene las siguientes características:
§
Un
objeto ActiveX está aplicado como código binario, por consiguiente, puede estar
escrito en cualquier lenguaje fuente.
§
El
objeto está encapsulado en un archivo ejecutable o en una biblioteca de vínculo
dinámico.
§
El
objeto contiene datos de dos tipos: datos de presentación, que se requieren
para presentar la pantalla o para imprimir, y datos internos. Puede considerar
los dos tipos de datos como propiedades que son privadas para el objeto.
§
El
objeto contiene también funciones para manipular sus datos.
§
El
objeto proporciona una interfaz estándar para que otros objetos se comuniquen
con él.
§
El
objeto participa en la disposición en formación, proceso de pasar argumentos de
funciones y valores de retorno entre procesos y máquinas.
Que hace un objeto ActiveX
Un objeto ActiveX, esta esperando, sin hacer nada, hasta
que es llamado. Hay objetos que esperan a ser llamados como servidores, pero
mientras tanto están muy ocupados, quizás como clientes llamando a otros
objetos servidor. Pro ejemplo, Word puede ser llamado como servidor por un
objeto cliente externo. En general, se espera que los objetos OLE acepten
varios protocolos y proporcionen varios servicios:
En
el contexto de los documentos compuestos, se supone que los objetos OLE:
Los objetos OLE proporcionan un objeto interno conocido
como apodo, que encapsula un puntero a un objeto y el mecanismo para volver a
crear el puntero si es necesario. En términos de DDE, el puntero es una ruta
para el objeto vinculado junto con un método para localizar el objeto
vinculado, en el caso en que la ruta absoluta llegue a ser imprecisa.
Reutilización de código
La idea de reutilizar código es común a casi todos los
lenguajes de programación, mediante esta técnica se consiguen importantes
ahorros de tiempo en programación, pero a costa de un problema, para usar una
clase, por ejemplo en C++, hace falta acceder completamente al código fuente.
Con ActiveX no se necesita
ningún código fuente. Como el código original se ha convertido en un control
ActiveX, es posible utilizarlo sin el apoyo de un programa compatible con
ActiveX. Los controles ActiveX ofrecen un marco de reutilización de código, ya
que son independientes del lenguaje. Los controles permiten conectar código C++
con Java, el código Java con Visual Basic, Visual Basic con C++ y así
sucesivamente.
Reutilización en binario
Los controles ActiveX pueden conseguir esta independencia
del lenguaje, ya que su código se encripta en forma
binaria, no como código fuente. Sea cual sea la herramienta de desarrollo
utilizada, el resultado será un control ActiveX comprensible como binario por
cualquier programa compatible con ActiveX.
La independencia del lenguaje no es
la única ventaja que se extrae del empleo de código reutilizable en forma
binaria. Por ejemplo, después de convertir un algoritmo en un control ActiveX,
podrá suministrarse a otros programadores sin necesidad de desvelar el resto
del código fuente. Además los algoritmos dejarán de estar limitados a las
herramientas de desarrollo. Toda aplicación que se que contemple en sus
controles al estándar ActiveX, podrá hacer uso de este código.
Contenedores ActiveX
Los programas que usan controles ActiveX se llaman
contenedores. El contenedor de un control es una aplicación capacitada para el
manejo de ActiveX que actúa como soporte de interfaz de usuario para dicho
control. Se puede por ejemplo, presentar un botón que, una vez pulsado, envíe
un mensaje al control. O también responder a diversos sucesos, o mensajes
especiales que se envían desde el control al contenedor. Estos sucesos pueden
reclamar un "clic" de ratón, la terminación de una tarea o cualquier
otra cosa.
El principal contenedor ActiveX existente, es el
navegador Web. Un navegador puede mostrar controles ActiveX en una página Web
incluso aunque el control provenga de un ordenador remoto.
Para obtener un máximo aprovechamiento de la arquitectura
ActiveX son necesarios tanto los controles como los contenedores. Los primeros
permiten empaquetar código fuente en un objeto único y reutilizable.
El problema de la transportabilidad
Los controles ActiveX no han sido concebidos para un
funcionamiento interplataformas. La arquitectura
ActiveX está fuertemente ligada al sistema operativo Microsoft Windows, los
controles ActiveX no funcionan bien en otras plataformas. Este problema se agrava
más, por el hecho de que los controles ActiveX no dependen solo de la
plataforma, sino también del navegador. Con la excepción de Internet Explorer,
los navegadores han de trucarse para admitir el manejo de ActiveX.
Acceso a archivos
Los controles ActiveX pueden
acceder a archivos del ordenador cliente. Un control ActiveX podría guardar los
resultados de una consulta a una base de datos en el disco duro, como fuente de
futuras referencias.
El acceso a archivos es una alternativa cómoda, pero
también peligrosa. Para paliar este problema, existe una solución. Antes de
cargar ningún control ActiveX, el navegador Web lo explora en busca de una
secuencia encriptada de octetos. Esta secuencia, o
firma digital, es creada en un proceso conocido como firma de código. Si
encuentra esta secuencia el navegador podrá determinar quién escribió el código
y quién lo distribuyó y, por lo tanto, conocerá la identidad del responsable.
Cuando no detecta la secuencia, advierte al usuario que el control puede ser
peligroso y le da la opción de no cargarlo.
Código heredado
Los controles ActiveX, ofrecen un soporte muy completo
para el código heredado. El proceso de conversión de programas existentes a
controles ActiveX es bastante sencillo, y como los controles ActiveX son
independientes del lenguaje, no importa que lenguaje se elija para componer la
base de codificación.
Aparte del código heredado, se pueden
recuperar controles heredados. Los controles OLE son totalmente compatibles con
ActiveX. En consecuencia, será posible seguir perfeccionando el código de los
programas con los últimos controles ActiveX.
Compilación
Cuando se crea un control ActiveX en Visual C++, debe
compilarse dicho control en el lenguaje maquina nativo antes de iniciar las
fases de pruebas y depuración. Visual C++ consume bastante potencia para
traducir el código fuente C++ a lenguaje maquina nativo, por lo que se perderá
un tiempo importante esperando a que el código termine de compilarse. Dicho
código debe, pues, preprocesarse, analizarse, traducirse, optimizarse,
ensamblarse y, finalmente, escribirse en disco.
Ejecución
Los controles ActiveX
se ejecutan directamente en el sistema para el que han sido compilados. La
mayoría de los compiladores optimizarán el código ActiveX por la eliminación de
código innecesario o redundante.
Cargar el control
Los controles ActiveX, son perdurables, es decir, cuando
se bajan de Internet, el navegador Web guardará en disco una copia del control.
Antes de salvar en disco un control ActiveX, el navegador Web lleve a cabo tres
comprobaciones (licencia, versión y firma) con el fin de garantizar la
seguridad y proteger los derechos de propiedad del mismo.
Comprobación de licencia
Para evitar el uso sin licencia de los controles ActiveX
en las páginas Web se ha incluido un mecanismo especial de protección, según el
cual la distribución de los controles se acompaña de una licencia al
desarrollador. Con esta licencia, los usuarios reciben permiso para insertar el
control en herramientas como Visual Basic, Visual J++ y Visual C++. Si no se
dispone de esa licencia, el usuario tan solo podrá visualizar el control dentro
de una página Web o en una aplicación existente, nunca modificar su modo de
actuar.
Interfaces ActiveX
Las interfaces ActiveX son
colecciones de funciones interrelacionadas. Las interfaces ActiveX no ha sido diseñadas en el ámbito de
Funciones binarias
Las interfaces activeX, se
pueden considerar como funciones ActiveX, pero como funciones a nivel binario.
Las funciones normales, al ser miembros de una clase,
sólo existen en código fuente y, por tanto, dejan de ser accesibles una vez que
se compilan. En cambio, las interfaces ActiveX se encuentran en el extremo opuesto:
sólo pueden llamarse después de haber sido compiladas en forma binaria.
Una vez hecho esto, las funciones ActiveX pasan a estar
disponibles para todo el sistema. Cualquier programa compatible con ActiveX,
con independencia de cómo haya sido creado (con C++, Java, Visual Basic u otro
lenguaje), puede invocar funciones binarias sin necesidad del código fuente.
Esta peculiar caracteristica conforma un tipo de
programa particular, llamado software de componentes, que ofrece ciertas
ventajas con respecto al diseño tradicional orientado a objetos.
Uno de los peligros inherentes a las
funciones binarias y extendidas a todo el sistema es la posibilidad de que
generen conflictos de nombres. Para solucionar este problema, la arquitectura
ActiveX marca cada interfaz con un identificador único a escala global. El
algoritmo utilizado garantiza su unicidad. Por consiguiente, un programa
ActiveX que solicite un identificador correcto siempre accederá a la interfaz
adecuada.
Otra de la ventaja de usar funciones en interfaces
ActiveX, se deriva del protocolo Distributed COM de
Microsoft, o DCOM. Con este protocolo los programas ActiveX pueden invocar
funciones ubicadas no sólo dentro del sistema sino en cualquier punto de la
red. El soporte a las interfaces distribuidas procede de un proceso denominado marshaling (enganche).
INFOGRAFIA |
http://www2.terra.com/informatica/que-es/activex.cfm 1. ActiveX En este articulo,
se explica como Microsoft define este tipo de control, cual es su utilidad en
la red y cual es su principal ventaja como componente, además puedes bajarte
una gran variedad de controles ActiveX freeware o shareware y un detallado ejemplo de cómo construir
una aplicación distribuida usando ActiveX y DCOM. |
http://cc.msnscache.com/cache.aspx?q=3242616035084&lang=es-XL&mkt=es-XL&FORM=CVRE
2. Creación
de un Control ActiveX(OCX)
Según el autor de la pag, el ejemplo para este "pequeño" tutorial, será igual que el control gsSpin.ocx,
al que llamara TextSpin, por aquello de que es un TextBox con un scroll al estilo
de un control Spin (suma o resta un valor a lo que
ya esté asignado en el TextBox).También, esta
"depurándo", otro control que es igual al ListBox
que viene con VB5, en el que se puede especificar si queremos mostrar una
lista normal y corriente o bien una con cajas de chequeo. Este manual se basa
en este ejemplo con el cual, se espera sirva como guía para que puedas crear
los tuyos propios. |
http://www.mvps.org/vexpert/articles/axProp1.htm 3. Extendiendo Controles con ActiveX Pienso que alguna vez Usted
se cansa de escribir procedimientos para dar una mayor funcionalidad a los
Controles Visual Basic, y repetir una y otra vez el código en sus proyectos.
Un ejemplo clásico es aquello de que cuando un TextBox
gane el enfoque aparezca seleccionado su contenido. Yo ideé un módulo
independiente Bas para que los TextBox
se comporten como yo quiero, y llamo a los procedimientos desde los eventos,
pasando como parámetro el TextBox. -¡Que aburrido!,
repita y repita llamadas para cada TextBox o
arreglo de TextBox que agregue a un Formulario. La
solución era perfectamente aceptable hasta Visual Basic nos entrego ActiveX de una manera flexible. Así pues, aprovechemos ActiveX, donde simplemente escribo un Control ActiveX para extender propiedades a TextBox
y listo. Bastará dibujar el control en los formularios y asignarle
propiedades para obtener toda la funcionalidad programada. Es como si Visual
Basic me entregara el control tal y como lo quiero. |
4. Manual Active X Activar a ActiveX
Si has pasado ya algún tiempo analizando la nueva generación de web Browsers: Microsoft
Internet Explorer 4.0 y su contraparte de Netscape,
es probable que hayas escuchado el termino ActiveX.
Aunque Java sigue siendo el rey del Web, ActiveX
esta ganando terreno con rapidez. En seguida veras en que consiste ActiveX. El concepto básico que subyace en la
implementación de ActiveX es muy sencillo. Permite
que una parte de un código de computadora (un programa) se deslice al
interior de una pagina web.
El programa podría diseñarse para desempeñar casi cualquier función, desde
producir algún sonido hasta interpretar los resultados de ingreso de un
usuario. Este es un paso lógico en el progreso de las paginas Web, que en
principio podrían mostrar información sola en los estilos predefinidos. Es
cierto que ActiveX de Microsoft no es el primer
intento por expandir el poder de las paginas Web.
Java se basa en gran medida en este concepto al igual que los programas de
escritura Java Script y Visual Basic Script (VBScript). Sin embargo, tales extensiones del Web
no son iguales; cada una ofrece pros y contras, tanto al creador como al usuario final. |
http://es.selfhtml.org/introduccion/tecnologias/ ActiveX sólo puede ser directamente ejecutado
por el MS Internet Explorer. Para Netscape existe
un plugin de ActiveX que
se puede bajar. Con ese plugin es posible ejecutar ActiveX también con el Navigator. Actualmente está en discusión el concepto de seguridad de ActiveX. Si un usuario permite que un control ActiveX sea cargado en su ordenador, entonces ese programa
puede hacer lo que le da la gana. No existe ninguna restricción para los
comandos de ActiveX, sino tan sólo una
"barrera de confianza" (el mensaje del navegador si el usuario está
de acuerdo con la ejecución del programa en su ordenador). Desde el punto de
vista de programación se pueden realizar muchas cosas más que con applets Java, sin embargo desde el punto de vista del
usuario los módulos de ActiveX son mucho más
inseguros que los applets Java. |