Aplicação Java WEB + OFFLINE

Caros, Sou Iniciante Em Java Web, E gostaria da Opinião de vocês no Seguinte Cenário:
Pretendo Migrar Meu sistema Desktop Pra Uma Aplicação WEb(Spring) até o final do ano,
A Grande Dúvida, é caso o Cliente Fique sem internet,Como fazer pra ele Continuar Trabalhando de uma Forma OffLine?

1-Versão Off Line Da Aplicação Web Rodando Localmente Com Banco de dados local? voltando a internet, o sistema local sincroniza os dados locais
pro banco externo.
Nesse Caso, não seria arriscado(engenharia reversa,sei lá) deixar a estrutura do sistema web na maquina local?

2-Outra Sugestão?

A necessidade é realmente usar fora da empresa via internet? Não seria intranet/rede local?

Se for isso mesmo que falou, entao a aplicacao pode ser a mesma, rodando local, e teria uma funcionalidade pra sincronizar os dados do banco local com o da internet.

Se a empresa mesmo em 2017 ainda fica off…nesse caso continue com aplicação desktop!
HTML5 tem banco de dados local, mais não tem portabilidade e é bem limitado…não da muito certo. Serve apenas para fazer cache e coisas pontuais.

Se for fazer aplicação web…tem que ter infraestrutura para focar 100% online.

Gostaria de Desenvolver Pra Web e ter a Possibilidade de Rodar Local,Pra Não ter que programar Desktop! Mas é um Mundo que eu estou iniciando, sei que há diferenças, por isso estou avaliando o cenário…

Não entendi sua dúvida, se a necessidade é realmente essa (que você não explicou bem ainda), nada impede de você instalar tudo local, como banco de dados, webserver, etc. Quando você desenvolve já não roda tudo local? Quando você acessa a aplicação no próprio servidor você está rodando local também.

E pra atualizar servidor na internet, não tem mágica, vai ter desenvolver uma funcionalidade pra sincronizar os dados, via web services, pode seguir REST que é mais fácil.

Então JavaFlex, Na Verdade O que eu Quero Fazer é Rodar Uma Aplicação Web Localmente(em alguns casos), Mas Tenho as seguintes Dúvidas:

1-A Questão De Segurança Dos Fontes…Sei que um executável, é praticamente impossível(mas não é) de fazer engenharia reversa…mas e uma aplicação Web? se alguém pegar os fontes?
2-Vale a Pena Trocar Uma Aplicação Desktop por Uma Web? (no caso de rodar a aplicação web local)

Pelo contrário, qualquer criança consegue facilmente fazer engenharia reversa em aplicações Java. Mesmo ofuscando código é só o cara retirar a linha do momento que a aplicação fica parada por verificar a licença de uso por exemplo.

Como assim se vale pena? Só tem sentido se tiver real necessidade.