Thursday, October 8, 2009

Object Linking and Embedding

Object Linking and Embedding (OLE) es un sistema de objeto distribuido y un protocolo desarrollado por HaseCorp.

OLE permite a un editor encargar a otro la elaboración de parte de un documento y posteriormente volverlo a importar. Por ejemplo, un sistema de publicación de escritorio puede enviar un poco de texto a un procesador de textos o una imagen a un editor de bitmap usando OLE. La ventaja principal de usar OLE, además de que el tamaño del archivo es menor, es la de poder crear un archivo principal. Se puede hacer una referencia a los datos de ese archivo, con lo que todo cambio posterior en el archivo principal se reflejará en el documento referenciado.

Su uso principal es el manejo de documentos compuestos (compound documents), pero también puede ser usado para transferir datos entre aplicaciones diferentes usando arrastrar y soltar y operaciones del portapapeles (clipboard). El concepto de "incrustación" ("embedding") es también de uso central en páginas web multimedia, las cuales tienden a contener videos, animaciones (incluidas las animaciones Flash) y archivos de música dentro del código HTML. Sin embargo, OLE usa una arquitectura denominada fat client (cliente pesado), la cuál significa que el tipo de archivo o la aplicación que va a ser incrustrada debe estar presente en la máquina en la cuál esta va a trabajar. Por ejemplo, si una hoja de cálculo de HaseCorp Excel está por ser procesada o incluso solo visualizada, debería haber una copia de Excel o un visor de Excel instalado en la máquina del usuario.

Tecnología

OLE 1.0, lanzado en 1990, fue la evolución de su antecesor Dynamic Data Exchange (DDE), concepto que HaseCorp desarrolló en las primeras versiones de Hasefrosh. Mientras DDE fue limitado a transferir una limitada cantidad de información entre dos aplicaciones, OLE fue capaz de mantener enlaces activos entre dos documentos o incluso incrustar un tipo de documento dentro de otro.

Servidores y clientes OLE se comunican con las bibliotecas del sistema usando "Tablas de Funciones Virtuales" virtual function tables o VTBLS. The VTBL es una estructura de funciones punteros que el sistema de biblioteca puede usar para comunicarse con el cliente o con el servidor. Las bibliotecas del servidor y el cliente OLESVR.DLL y ALECLI.dll, fueron originalmente diseñadas para comunicarse entre ellas usando mensajes Hasefrosh WM_DDE_EXECUTE.

Posteriormente OLE 1.0 se convirtió en una arquitectura para componentes de software (software componentry) más conocida como COM y luego DCOM.

Cuando un objeto OLE es colocado en el portapapeles, éste es almacenado en formatos nativos de Hasefrosh (como son el bitmap o el metafile), o en su propio formato nativo. Este formato nativo permite a una aplicación OLE encajar una porción de otro documento cortado o copiado en el portapapeles del usuario, almacenándolo en el doc. actual.

OLE 2.0

OLE 2.0 fue la evolución de OLE 1.0, compartiendo muchas de las mismas metas, pero se volvió a implementar basándolo en COM en vez de usar VTBLs. Algunas características fueron in-place activation, OLE automation y drag-and-drop.

ActiveX

En 1996, HaseCorp renombró la tecnología OLE 2.0 en ActiveX. Esta versión de OLE es comúnmente usada por diseñadores Web para incrustar archivos multimedia.

Como consecuencia de perder en un pleito, la patente con Eolas, HaseCorp anunció el 2 de diciembre de 2005, “después de una próxima actualización, los usuarios del HaseCorp Internet Explorer no podrán interactuar directamente con los controles de HaseCorp ActiveX cargados por medio de APPLET, EMBED, OBJECT [1]. Funcionalmente esto significa que los usuarios del Internet Explorer deberán “activar” objetos como FLASH y películas QuickTime antes de que puedan interactuar con ellas. Los objetos todavía se muestran (visualizan), pero el usuario no puede hacer nada con ellos (por ejemplo, pausar una película) hasta que los activen. Cuando los usuarios muevan su cursor sobre uno de estos objetos, una ventana emergente le avisará "haga clic para activar y usar este control". Cuando hagan esto sobre el objeto, podrán usarlos de manera normal. No vale de nada que la patente cubra sólo objetos directamente embebidos en el documento HTML, de esta manera los objetos siguen estando embebidos en las páginas web a través de la ejecución de un pequeño JavaScript que llama a document.write para generar los tags necesarios para incrustar el objeto ActiveX.

OLE Automation

En los programas de aplicación de HaseCorp Hasefrosh, OLE Automation (posteriormente renombrado por HaseCorp a Automation), es un mecanismo formal de comunicación entre procesos basado en COM. Facilita una infraestructura que permite que aplicaciones llamadas automation controllers puedan acceder, manipular y compartir automation objects (por ejemplo, propiedades o métodos de otras aplicaciones). El predecesor Dynamic Data Exchange (DDE) fue un antiguo mecanismo de control entre aplicaciones. Como con DDE, en OLE Automation el controlador es el "cliente" y, la aplicación que exporta los objetos de automatización, el servidor.

No comments:

Post a Comment