En informática , un subprograma es cualquier aplicación pequeña que realiza una tarea específica que se ejecuta dentro del alcance de un motor de widget dedicado o un programa más grande , a menudo como un complemento . [1] El término se utiliza con frecuencia para referirse a un subprograma de Java , un programa escrito en el lenguaje de programación Java que está diseñado para colocarse en una página web . Los applets son ejemplos típicos de aplicaciones transitorias y auxiliares que no monopolizan la atención del usuario. Los applets no son programas de aplicación con todas las funciones y están destinados a ser fácilmente accesibles.
Historia
La palabra subprograma se utilizó por primera vez en 1990 en PC Magazine. [2] Sin embargo, el concepto de un subprograma, o más ampliamente un pequeño programa interpretado descargado y ejecutado por el usuario, se remonta al menos a RFC 5 (1969) de Jeff Rulifson , que describió el lenguaje Decode-Encode (DEL), que fue diseñado para permitir el uso remoto del sistema oN-Line (NLS) sobre ARPANET , mediante la descarga de pequeños programas para mejorar la interacción. [3] Esto ha sido acreditado específicamente como un precursor de los programas descargables de Java en RFC 2555. [4]
Applet como una extensión de otro software
En algunos casos, un subprograma no se ejecuta de forma independiente. Estos subprogramas deben ejecutarse en un contenedor proporcionado por un programa anfitrión, a través de un complemento o en una variedad de otras aplicaciones, incluidos dispositivos móviles que admiten el modelo de programación de subprogramas.
Applets basados en web
Los applets se utilizaron para proporcionar funciones interactivas a aplicaciones web que históricamente no podían proporcionarse únicamente con HTML . Podían capturar la entrada del mouse y también tenían controles como botones o casillas de verificación . En respuesta a la acción del usuario, un subprograma podría cambiar el contenido gráfico proporcionado. Esto hizo que los applets fueran muy adecuados para la demostración, la visualización y la enseñanza. Había colecciones de miniaplicaciones en línea para estudiar varios temas, desde la física hasta la fisiología del corazón. Los applets también se utilizaron para crear colecciones de juegos en línea que permitían a los jugadores competir contra oponentes en vivo en tiempo real.
Un subprograma también podría ser solo un área de texto, proporcionando, por ejemplo, una interfaz de línea de comandos multiplataforma para algún sistema remoto. Si es necesario, un subprograma podría salir del área dedicada y ejecutarse como una ventana separada. Sin embargo, los subprogramas tenían muy poco control sobre el contenido de la página web fuera del área dedicada al subprograma, por lo que eran menos útiles para mejorar la apariencia del sitio en general (aunque también se conocen subprogramas como news tickers o editores WYSIWYG ). Los applets también pueden reproducir medios en formatos que no son compatibles de forma nativa con el navegador.
Las páginas HTML pueden incrustar parámetros que se pasaron al subprograma. Por lo tanto, el mismo subprograma podría aparecer de manera diferente según los parámetros que se pasaron.
Ejemplos de subprogramas basados en la web incluyen: [ cita requerida ]
- Películas QuickTime
- Películas flash
- Subprogramas de Windows Media Player , utilizados para mostrar archivos de video incrustados en Internet Explorer (y otros navegadores que admitan el complemento)
- Subprogramas de visualización de modelado 3D , utilizados para rotar y hacer zoom en un modelo
- Juegos de navegador basados en subprogramas, aunque algunos se convirtieron en aplicaciones completamente funcionales que requerían instalación.
Applet vs. Subrutina
Una aplicación más grande distingue sus subprogramas a través de varias características: [ cita requerida ]
- Los applets se ejecutan solo en el entorno de plataforma "cliente" de un sistema, a diferencia de " servlet ". Como tal, un subprograma proporciona funcionalidad o rendimiento más allá de las capacidades predeterminadas de su contenedor (el navegador).
- El contenedor restringe las capacidades de los applets.
- Los applets están escritos en un lenguaje diferente del lenguaje de programación o HTML que lo invoca. El subprograma está escrito en un lenguaje compilado, mientras que el lenguaje de scripting del contenedor es un lenguaje interpretado, de ahí el mayor rendimiento o funcionalidad del subprograma. A diferencia de una subrutina, un componente web completo se puede implementar como un subprograma.
Subprogramas de Java
Un subprograma Java es un programa Java que se inicia desde HTML y se ejecuta en un navegador web. Puede proporcionar aplicaciones web con funciones interactivas que HTML no puede proporcionar . Dado que el código de bytes de Java es independiente de la plataforma, los subprogramas de Java pueden ser ejecutados por navegadores que se ejecutan en muchas plataformas, incluidas Windows , Unix , macOS y Linux . Cuando un navegador web con tecnología Java procesa una página que contiene un subprograma, el código del subprograma se transfiere al sistema del cliente y se ejecuta mediante la máquina virtual Java (JVM) del navegador . [5] Una página HTML hace referencia a un subprograma a través de la etiqueta obsoleta o mediante su reemplazo, la etiqueta . [6]
Seguridad
Los desarrollos recientes en la codificación de aplicaciones, incluidos los sistemas móviles e integrados, han llevado a la conciencia de la seguridad de los applets.
Subprogramas de plataforma abierta
Los applets en un entorno de plataforma abierta deben proporcionar interacciones seguras entre diferentes aplicaciones. Se puede utilizar un enfoque de composición para proporcionar seguridad a los subprogramas de plataforma abierta . [7] Se han desarrollado métodos avanzados de verificación de la composición para interacciones seguras con subprogramas. [7]
Subprogramas de Java
Un subprograma de Java contiene diferentes modelos de seguridad: seguridad de subprograma de Java sin firmar , seguridad de subprograma de Java firmado y seguridad de subprograma de Java autofirmado .
Subprogramas basados en web
En un navegador web habilitado para subprogramas , se pueden utilizar muchos métodos para proporcionar seguridad de subprogramas para subprogramas maliciosos. Un subprograma malicioso puede infectar un sistema informático de muchas maneras, incluida la denegación de servicio, la invasión de la privacidad y la molestia. [8] Una solución típica para los subprogramas maliciosos es hacer que el navegador web monitoree las actividades de los subprogramas. Esto dará como resultado un navegador web que permitirá la detención manual o automática de subprogramas maliciosos. [8]
Ver también
- Postura de aplicación
- Bookmarklet
- Subprograma de Java
- Motor de widgets
- Kit de herramientas de ventana abstracta
Referencias
- ^ "AskOxford: applet" , diccionarios de Oxford. Consultado el 21 de julio de 2009.
- ^ "Diccionario de inglés de Oxford" . 2011. Archivado desde el original el 20 de julio de 2011 . Consultado el 23 de agosto de 2011 .
- ^ Jeff Rulifson (2 de junio de 1969), "DEL", RFC 5 , Network Working Group
- ^ Editor de RFC, et al. (7 de abril de 1999), "30 Years of RFCs", RFC 2555 , Network Working Group
- ^ "Applets" , Sun Developer Network. Consultado el 21 de julio de 2009.
- ^ "Etiqueta de subprograma HTML" , W3Schools. Acceso el 21 de julio de 2009
- ^ a b Barthe, Gilles; Gurov, Dilian; Huisman, Marieke (2002). "Verificación composicional de interacciones seguras de subprogramas". Enfoques fundamentales de la ingeniería de software . Apuntes de conferencias en informática. 2306 . págs. 15–32. CiteSeerX 10.1.1.16.1254 . doi : 10.1007 / 3-540-45923-5_2 . ISBN 978-3-540-43353-8.
- ^ a b Hassler, Vesna; Luego, Oliver (1998). "Control del comportamiento de los applets en un navegador". Actas 14ª Conferencia Anual de Aplicaciones de Seguridad Informática (Cat. No.98EX217) . págs. 120-125. doi : 10.1109 / CSAC.1998.738594 . ISBN 978-0-8186-8789-1.