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 widgets dedicado o un programa más grande , a menudo como un complemento . [1] El término se usa 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 subprogramas son ejemplos típicos de aplicaciones transitorias y auxiliares que no monopolizan la atención del usuario. Los subprogramas no son programas de aplicación con todas las funciones y están destinados a ser fácilmente accesibles.
La palabra applet fue utilizada por primera vez en 1990 en PC Magazine . [2] Sin embargo, el concepto de un applet, o más ampliamente un pequeño programa interpretado descargado y ejecutado por el usuario, data al menos de RFC 5 (1969) de Jeff Rulifson , que describió el lenguaje de decodificación-codificación, que fue diseñado para permitir el uso remoto del sistema oN-Line sobre ARPANET , mediante la descarga de pequeños programas para mejorar la interacción. [3] Esto ha sido específicamente acreditado como un precursor de los programas descargables de Java en RFC 2555. [4]
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 admitan el modelo de programación de subprogramas.
Los applets se utilizaban para proporcionar funciones interactivas a las aplicaciones web que históricamente no se podían proporcionar solo con HTML . Podían capturar la entrada del ratón y también tenían controles como botones o casillas de verificación . En respuesta a la acción del usuario, un applet podí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 applets en línea para estudiar varios temas, desde física hasta fisiología cardíaca. Los applets también se utilizaban 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 a algún sistema remoto. Si fuera necesario, un subprograma podría abandonar el á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 (mientras que también se conocen subprogramas como los teletipos de noticias o los editores WYSIWYG ). Los subprogramas también podrían reproducir medios en formatos que no son compatibles de forma nativa con el navegador.
Las páginas HTML pueden incorporar parámetros que se pasaron al subprograma. Por lo tanto, el mismo subprograma puede tener un aspecto diferente según los parámetros que se hayan pasado.
Algunos ejemplos de subprogramas basados en la Web incluyen: [ cita requerida ]
Una aplicación más grande distingue sus subprogramas a través de varias características: [ cita requerida ]
Un subprograma Java es un programa Java que se inicia desde HTML y se ejecuta en un navegador web. Toma código del servidor y se ejecuta en un navegador web. Puede proporcionar a las aplicaciones web funciones interactivas que no se pueden proporcionar con HTML. Dado que el código de bytes de Java es independiente de la plataforma, los subprogramas Java pueden ejecutarse en navegadores que se ejecutan en muchas plataformas, incluidas Windows , Unix , macOS y Linux . Cuando un navegador web habilitado con tecnología Java procesa una página que contiene un subprograma, el código del subprograma se transfiere al sistema del cliente y lo ejecuta la máquina virtual Java del navegador . [5] Una página HTML hace referencia a un subprograma ya sea a través de la etiqueta obsoleta o a través de su reemplazo, la etiqueta . [6]<applet>
<object>
Los recientes avances en la codificación de aplicaciones, incluidos los sistemas móviles e integrados , han generado conciencia sobre la seguridad de los applets.
Los applets en un entorno de plataforma abierta deben proporcionar interacciones seguras entre diferentes aplicaciones. Se puede utilizar un enfoque compositivo para proporcionar seguridad a los applets de plataforma abierta. [7] Se han desarrollado métodos avanzados de verificación compositiva para interacciones seguras entre applets. [7]
Un subprograma Java contiene diferentes modelos de seguridad: seguridad del subprograma Java sin firmar , seguridad del subprograma Java firmado y seguridad del subprograma Java autofirmado .
En un navegador web habilitado para subprogramas, se pueden utilizar muchos métodos para proporcionar seguridad a los subprogramas contra subprogramas maliciosos. Un subprograma malicioso puede infectar un sistema informático de muchas maneras, incluyendo 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 controle las actividades de los subprogramas. Esto dará como resultado un navegador web que permitirá la detención manual o automática de los subprogramas maliciosos. [8]