En informática , un subprograma es cualquier pequeña aplicación que realiza una tarea específica que se ejecuta dentro del alcance de un motor de widgets dedicado o de 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.
La palabra subprograma se utilizó por primera vez en 1990 en PC Magazine . [2] Sin embargo, el concepto de subprograma, o más ampliamente, un pequeño programa interpretado descargado y ejecutado por el usuario, data al menos del RFC 5 (1969) de Jeff Rulifson , que describía el lenguaje Decode-Encode, que fue diseñado para Permitir el uso remoto del Sistema On-Line a través de 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]
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 una variedad de otras aplicaciones, incluidos dispositivos móviles que admitan el modelo de programación de subprogramas.
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, visualización y enseñanza. Había colecciones de subprogramas en línea para estudiar diversos temas, desde física hasta 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 sólo un área de texto y proporcionar, por ejemplo, una interfaz de línea de comandos multiplataforma para algún sistema remoto. Si es 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 (aunque también se conocen subprogramas como tickers de noticias o editores WYSIWYG ). Los applets también podrían reproducir medios en formatos que el navegador no admite de forma nativa.
Las páginas HTML podrían incrustar parámetros que se pasaron al subprograma. Por lo tanto, el mismo subprograma podría aparecer de manera diferente dependiendo de los parámetros que se pasaron.
Ejemplos de subprogramas basados en web incluyen: [ cita necesaria ]
Una aplicación más grande distingue sus subprogramas a través de varias características: [ cita necesaria ]
Un subprograma de Java es un programa Java que se inicia desde HTML y se ejecuta en un navegador web. Toma el código del servidor y lo ejecuta en un navegador web. Puede proporcionar aplicaciones web con características 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 ejecutarse mediante 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 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 mediante su reemplazo, la etiqueta . [6]<applet>
<object>
Los recientes avances en la codificación de aplicaciones, incluidos sistemas móviles e integrados , han llevado a la concienciación sobre la seguridad de los subprogramas.
Los applets en un entorno de plataforma abierta deberían proporcionar interacciones seguras entre diferentes aplicaciones. Se puede utilizar un enfoque compositivo para proporcionar seguridad a los subprogramas de plataforma abierta. [7] Se han desarrollado métodos avanzados de verificación de composición para interacciones seguras de subprogramas. [7]
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 .
En un navegador web compatible con subprogramas, se pueden utilizar muchos métodos para proporcionar seguridad a los 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 supervise 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]