Miniaplicativo
Na computação, um applet é qualquer pequeno aplicativo que executa uma tarefa específica executada no escopo de um mecanismo de widget dedicado ou de um programa maior, geralmente como um plug-in. O termo é freqüentemente usado para se referir a um applet Java, um programa escrito na linguagem de programação Java projetado para ser colocado em uma página da web. Applets são exemplos típicos de aplicativos transitórios e auxiliares que não monopolizam a atenção do usuário. Os applets não são programas aplicativos completos e devem ser facilmente acessados.
História
A palavra applet foi usada pela primeira vez em 1990 na PC Magazine. No entanto, o conceito de um applet, ou mais amplamente um pequeno programa interpretado baixado e executado pelo usuário, data pelo menos da RFC 5 (1969) de Jeff Rulifson, que descreveu a Decode-Encode Language, que foi projetada para permitir o uso remoto do Sistema on-Line sobre a ARPANET, baixando pequenos programas para potencializar a interação. Isso foi especificamente creditado como um precursor dos programas para download do Java no RFC 2555.
Applet como uma extensão de outro software
Em alguns casos, um applet não é executado de forma independente. Esses applets devem ser executados em um contêiner fornecido por um programa host, por meio de um plug-in ou de uma variedade de outros aplicativos, incluindo dispositivos móveis que suportam o modelo de programação do applet.
Applets baseados na Web
Os applets foram usados para fornecer recursos interativos para aplicativos da Web que historicamente não podiam ser fornecidos apenas pelo HTML. Eles podiam capturar a entrada do mouse e também tinham controles como botões ou caixas de seleção. Em resposta à ação do usuário, um applet pode alterar o conteúdo gráfico fornecido. Isso tornou os applets adequados para demonstração, visualização e ensino. Havia coleções de miniaplicativos online para estudar vários assuntos, da física à fisiologia do coração. Applets também foram usados para criar coleções de jogos online que permitiam aos jogadores competir contra oponentes ao vivo em tempo real.
Um applet também pode ser apenas uma área de texto, fornecendo, por exemplo, uma interface de linha de comando multiplataforma para algum sistema remoto. Se necessário, um applet pode deixar a área dedicada e ser executado como uma janela separada. No entanto, os applets tinham muito pouco controle sobre o conteúdo da página da Web fora da área dedicada do applet, portanto, eram menos úteis para melhorar a aparência do site em geral (enquanto applets como marcadores de notícias ou editores WYSIWYG também são conhecidos). Os applets também podem reproduzir mídia em formatos que não são suportados nativamente pelo navegador.
Páginas HTML podem incorporar parâmetros que foram passados para o applet. Portanto, o mesmo applet pode aparecer de forma diferente dependendo dos parâmetros que foram passados.
Exemplos de applets baseados na Web incluem:
- Rápido. Filmes de tempo
- Filmes em Flash
- Mídia do Windows applets do jogador, usado para exibir arquivos de vídeo incorporados no Internet Explorer (e outros navegadores que suportaram o plugin)
- Maçãs de exibição de modelagem 3D, usados para girar e ampliar um modelo
- Jogos de navegador que eram baseados em applet, embora alguns se desenvolveram em aplicações totalmente funcionais que exigiam a instalação.
Applet vs. Sub-rotina
Um aplicativo maior distingue seus applets por meio de vários recursos:
- Os Applets executam apenas no ambiente de plataforma "cliente" de um sistema, como contrastado com "Servlet". Como tal, um applet fornece funcionalidade ou desempenho além das capacidades padrão do seu recipiente (o navegador).
- O recipiente restringe as capacidades dos applets.
- Applets são escritos em um idioma diferente do scripting ou linguagem HTML que o invoca. O applet é escrito em uma linguagem compilada, enquanto a linguagem de scripting do recipiente é uma linguagem interpretada, daí o maior desempenho ou funcionalidade do applet. Ao contrário de uma subrotina, um componente web completo pode ser implementado como um applet.
Aplicativos Java
Um applet Java é um programa Java iniciado a partir de HTML e executado em um navegador da web. Ele pega o código do servidor e é executado em um navegador da web. Ele pode fornecer aplicativos da Web com recursos interativos que não podem ser fornecidos pelo HTML. Como o bytecode Java é independente de plataforma, os applets Java podem ser executados por navegadores em execução em várias plataformas, incluindo Windows, Unix, macOS e Linux. Quando um navegador da Web habilitado para tecnologia Java processa uma página que contém um applet, o código do applet é transferido para o sistema do cliente e executado pela máquina virtual Java do navegador. Uma página HTML faz referência a um applet por meio da obsoleta tag ou por meio de sua substituição, a tag .
Segurança
Desenvolvimentos recentes na codificação de aplicativos, incluindo sistemas móveis e embarcados, levaram à conscientização da segurança dos applets.
Applets de plataforma aberta
Os applets em um ambiente de plataforma aberta devem fornecer interações seguras entre diferentes aplicativos. Uma abordagem de composição pode ser usada para fornecer segurança para applets de plataforma aberta. Métodos avançados de verificação de composição foram desenvolvidos para interações seguras de applets.
Aplicativos Java
Um applet Java contém diferentes modelos de segurança: segurança de applet Java não assinada, segurança de applet Java assinada e segurança de applet Java autoassinada.
Applets baseados na Web
Em um navegador da Web habilitado para applet, muitos métodos podem ser usados para fornecer segurança de applet para applets maliciosos. Um miniaplicativo malicioso pode infectar um sistema de computador de várias maneiras, incluindo negação de serviço, invasão de privacidade e aborrecimento. Uma solução típica para applets mal-intencionados é fazer com que o navegador monitore os applets' Atividades. Isso resultará em um navegador da Web que permitirá a parada manual ou automática de miniaplicativos maliciosos.