Prezados amigos do fórum,
Venho por meio deste apresentar algumas dúvidas e pedir aos “iluminados” alguma ajuda.
Desenvolvi durante um ano de pesquisa acadêmica um Algorítmo Genético (AG) para Tipos Abstratos de Dados, ou seja, nenhum pouco trivial quando comparado ao simples AG que costumamos estudar em Computação Evolucionária na maioria das vezes, onde os genes são arrays de bits (0 e 1), pelo contrário os genes deste AG são cadeias de caracteres não númericas como por exemplo, strings ou no meu caso XML.
Bom, este GAADT utiliza operações matemáticas que rodam em milhares de iterações, para poder chegar a um resultado satisfatório. Ele foi desenvolvido em puro Java e meu interesse é fazê-lo rodar na Web, entretanto, tenho que arranjar um jeito de diminuir seu tempo computacional que hoje é grande, antes de gerar um resultado.
Para tanto, imaginei utilizar JNI como camada intermediária entre meu código e uma linguagem nativa como por exemplo, C++ (que aguentaria a robustez dessas iterações e cálculos matemáticas) e desta para C# (na web) por exemplo. Contudo, o uso de JNI possui algumas desvantagens que vale a pena considerar, como por exemplo: 1)Curva de aprendizado difícil, 2) Um mero erro no código podería causar danos irreparáveis na JVM, 3) Ser um pouco lenta. Assim, trocar a linguagem ou deixar as funções noutra linguagem utilizando JNI, deixaria rápida apenas em milionésimos de segundos nas operações básicas que, escalonadas para um tempo total, não seria tão relevante para o usuário na Web, visto que a natureza do algorítmo em si demanda um tempo computacional muito grande. Sendo nenhum pouco satisfatória o uso de JNI neste caso.
Acredito também, que o uso de frameworks Java não resolvam meu problema, deixando ainda sim o processamento demorado.
Então pensei no uso de uma interface para que ela responda de maneira amigável para o usuário, então me falaram sobre telas assíncronas. Portanto, pergunto, alguém já as usou antes como forma de melhorar o tempo de resposta para o usuário?
Alguma idéia a parte disto? Ou mesmo outra idéia?
Todas são bem vindas…!
att