Pergunta

Eu usei recentemente uma aplicação Java Web Start. Lancei-lo do meu navegador web utilizando uma ligação jnlp incorporado na página que eu estava vendo. O aplicativo foi baixado, lançou e funcionou muito bem. Ele tinha acesso ao meu sistema de arquivos local e se lembrou as minhas preferências entre reiniciá-lo.

O que eu quero saber é porque são aplicações Java Web Start não um formato de entrega mais popular para aplicações complexas na web? Por que os desenvolvedores muitas vezes passam considerável tempo e energia replicar funcionalidade de desktop em html / javascript quando o poder de uma aplicação desktop pode ser entregue mais facilmente usando Java e Java Web Start?

Eu sei que em alguns ambientes corporativos, por exemplo banca, são formas relativamente populares de entrega de aplicativos comerciais complexos para os clientes, mas porque não são eles difundida em toda a web como um todo?

(Para fins de discussão, vamos supor um mundo onde: fontes de download são "confiáveis" e aplicações são "assinados" (ou seja, sem preocupações de segurança), as velocidades de download são rápidos (tempo de carregamento é rápido) e desenvolvedores sabem Java (em os números que eles sabem html / js / php)).

Foi útil?

Solução

Eu acho que a razão não é de segurança, nem do tempo de inicialização do aplicativo. Vamos entender o que está por trás da cena, antes de descobrir a causa raiz.

Painel de Controle Java tem configurações que permitem aos usuários usar as configurações de proxy do navegador padrão ou para substituí-los. Em outras palavras, as equipes de infra-estrutura é capaz de personalizar as imagens de instalação do Windows ou OS ter JVM pré-instalado com configurações de proxy empresa. Então eu acredito que isso não é um problema em tudo.

Java Web Start, na verdade, armazena todos os aplicativos com configurações personalizáveis ??no painel de controle Java. Uma vez que o aplicativo é armazenado em cache, o app é "instalado" assim como outros aplicativos. Embora a execução primeira vez pode ser lento, a segunda vez será mais rápido devido à técnica de alocação de memória inteligente da JVM. Então comece o tempo poderia ser um problema, mas um monte de sites (mesmo corporativa interna) agora são migrados para o portal. Um portal web normalmente contém muitas bibliotecas não utilizadas para fins de desenvolvimento devido ao fato de que o próprio portal não antecipar o que os tipos de portlets são construídos e implantados em uma página específica. Portanto, o download de uma única página do portal pode consumir até MBs e completar uma página em mais de 5 segundos; esta é apenas uma página e cache ajuda até 30%, mas ainda há muita HTML / JavaScript / CSS componentes necessário para baixar o tempo todo. Com isso, estou certo de que o Java Web Start é uma vantagem aqui.

Java Web Start não baixar novamente se ele é armazenado em cache, desde que a cópia do servidor não é atualizado. Assim, se, por exemplo, um software de gerenciamento de projetos como MS Project, é completada usando SmartClient (semelhante ao JWS), a troca de informações entre o cliente eo servidor seria puramente dados sem apresentação como atualização de página inteira do navegador. Mesmo com a ajuda de Ajax, ela não elimina o download de página inteira completamente. Além disso, muitas empresas consideram Ajax para ser imaturo e ainda inseguro. É por isso que o Ajax é um tema quente nos círculos de desenvolvedores, mas não dentro de software empresarial ainda. Com isso em mente, JWS os aplicativos definitivamente tem mais vantagens, tais como como os aplicativos JWS são implantados e executados em caixas de areia, assinado e tem GUI muito mais interativo.

Outras vantagens incluem o desenvolvimento mais rápido (mais fácil de depuração no código e performance), responsivo interface de usuário (não requer servidores Comet para fornecer funcionalidade IMPULSO), e executar mais rápido (ao certo porque os computadores cliente torna GUI sem tradução como HTML / Javascript / CSS, e menos processamento de dados).

Depois de tudo isso, eu não toquei a questão ainda, por JWS não é tão famoso?

A minha opinião é que é o mesmo que o comentário de Brian Knoblauch, é sem consciência.

pessoal de TI são muito atraídos pela campanha publicitária da Web Technologies, Ajax Push, GWT, e todas aquelas palavras de zumbido torná-los viés para a diversão do uso de diferentes tecnologias ou para resolver desafios técnicos, em vez do que está realmente trabalhando para os clientes.

Dê uma olhada Citrix. Acho Citrix é realmente uma ótima idéia. Citrix permite que você construa suas próprias fazendas de aplicativos por trás da cena. Há toneladas de estratégias de atualização e implementação você pode ir para sem impacto para a experiência do cliente. implantação Citrix é extremamente fácil, estável e seguro. Empresas ainda estão a usá-lo. No entanto, penso JWS é ainda melhor do que Citrix. A idéia de JWS é executar aplicativos em máquinas cliente em vez de hospedagem de toneladas de farms de servidores, onde máquinas clientes são capazes de executar esses próprios aplicativos. Isso economiza uma empresa muito dinheiro !!! Com JWS, equipe de desenvolvimento ainda pode construir lógica de negócios e dados no lado do servidor. No entanto, sem a unidade de processamento web e deixar os computadores cliente fazer o processo de renderização, que reduz consideravelmente a quantidade de consumo de rede e poder de processamento do servidor.

Outro exemplo de por que JWS é uma idéia incrível é Blackberry MDS. aplicativos BlackBerry são realmente aplicativos Java translated de Javascript. Com estúdio MDS do BB, você usa a ferramenta GUI para construir BB aplicativo GUI, codificação lógica GUI em JavaScript. Em seguida, os aplicativos são depois traduzidas e implantado em um servidor BES. Em seguida, o servidor BES vai distribuir esses aplicativos para BB. Em cada BB, ele executa uma fina Java App com GUI renderização e rede única capacidade. Sempre que o aplicativo requer dados, ele se comunica com os BES através de serviços web para consumir serviços de outros servidores. Não é este apenas versão JWS BB? Tem sido extremamente bem sucedido.

Finalmente eu acho que JWS não é popular por causa de como a Sun anuncia-lo. BB não anuncia o quão bom seus aplicativos BB Java são, eles acreditam que os clientes não vai mesmo cuidado o que é isso. BB anuncia os benefícios de usar MDS para desenvolver aplicativos: Rápido, Custo Saving, Negócios Retorno

.

Apenas meu, um pouco longo, 2 centavos ...:)

Outras dicas

Um grande obstáculo para Java Webstart mais provável é que você ainda precisa ter uma JVM instalada antes que ele pode até mesmo tentar fazer o download e começar a sua aplicação. Todo mundo tem um browser. Nem todo mundo tem uma JVM.

Editar: Eu já adquiriu alguns hands-on experiência webstart e agora pode adicionar esses dois pontos:

  • Deployment Toolkit script eo JVM modularizado lançado em algum lugar em torno de Java 1.6u10 tornar o requisito JVM menos problemático, uma vez que pode baixar automaticamente um JVM eo núcleo API e iniciar o programa de wile baixando o resto.
  • Web Start é sério buggy. Mesmo entre as Java 1.6 lançamentos, houve um que baixaram o aplicativo inteiro de cada vez, e outra que o download do mesmo e depois falhou com uma mensagem de erro obscura. Tudo em tudo, eu não posso realmente recomendo contando com um sistema tão frágil.

Eu acho que é principalmente devido a uma falta de consciência. Funciona muito bem. Seamless bastante. App somente downloads se é a primeira vez, houve uma atualização, ou se o usuário final tem de limpar o cache. Ótima maneira de implantar aplicativos de desktop full-blown que o usuário não terá que se preocupar sobre como atualizar manualmente!

O problema com Webstart é que você realmente tem que 'começar' algo que não é de todo tão rápido, mesmo com uma conexão rápida, enquanto que com um webapp você digitar a URL e o aplicativo está lá.

Além disso, um monte de coisas pode dar errado com webstart. Talvez o usuário pretendido não tem os privilégios necessários, ou o proxy de webstart está configurado errado, ou algo deu errado com dependências JRE ou simplesmente não há java instalado em primeiro lugar. Assim, para a média John Doe na internet não é de todo agradável.

Em ambientes controlados como uma empresa é uma boa e fácil solução em muitos casos.

Eu tenho trabalhado em um aplicativo JWS-implantado por alguns anos sobre uma base de usuários de alguns milhares e suas atualizações automáticas são realmente uma dor enorme.

Em cada atualização para algumas dezenas razão de usuários obter "preso no meio". Tudo o que você recebe é a "classe não encontrada exceção" (se tiver sorte), ou uninformative "incapaz de lançamento" do JWS antes mesmo de seu código. Parece que a atualização é meio-baixado. Ou, em outras palavras, ele não baixar e aplicar a atualização atomicamente e tem pobre caching para que o relançamento do aplicativo a partir da mesma URL não resolver nada.

Não há nenhuma maneira de resolvê-lo diferente de limpar o cache JWS ou fornecer uma URL diferente (por exemplo, anexar ?dummyparam=jwssucks no final). Mesmo eu, como um desenvolvedor de batê-lo algumas vezes e não vê uma maneira de contornar.

Quando funciona, funciona. Mas muitas vezes isso não acontece, e então é uma enorme dor para você e seu helpdesk. Eu não recomendo para empresa ou de missão crítica uso.

Há um problema muito grande ou seja, que não permite a "iniciar o programa imediatamente e em seguida, verificar e baixar as atualizações em segundo plano" implementações, que é o que o comportamento defacto de aplicações estão convergindo para.

Eu considero isso pessoalmente tão grande um aborrecimento que estamos activamente à procura de uma outra tecnologia que proporciona isso.

A partir dessas mensagens que parece quando usando início Web, é importante fazer um bom cuidado sobre o servidor. O "grande dor" de baixar a aplicação em cada partida pode ser causada por carimbo de tempo incorreta entregues a partir do servidor. Aqui não o pedido, mas o servidor deve ser configurado para usar o cache corretamente e não apenas para desativá-lo. Sobre início de buggy, não estou muito certo, mas parece-me que isso também pode ser causado por uma conexão confiável.

vantagem importante do início da Web é que ele funciona muito bem com OpenJDK sob Linux. Os clientes de alguns desenvolvedores felizes usar somente para Windows, mas meus clientes não.

HTML e JavaScript, mencionado na pergunta inicial, são mais leves abordagens que funcionam bem com tarefas menores, como botões animados ou mesmo tabelas interativas. nicho de Java parece tarefas em torno de muito mais complexos.

Java Web Start é uma espécie de sucessor de Applets Java e applets se queimou em torno do novo milênio. Mas, eu ainda acho Java Applets são bem melhores que GWT ou Javascript inferno.

Java Web Start vs incorporado Java Applet

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top