Melhores práticas para uma arquitetura heterogênea de 3 camadas .NET WPF & J2EE 3
-
14-09-2020 - |
Pergunta
Eu sou principalmente um desenvolvedor ASP.NET, então eu não estou muito familiarizado com as melhores práticas de J2EE ou WFP, padrões etc, mas sinto que o projeto que estou envolvido poderia ter sido feito melhor, mas eu Não é possível colocar o dedo exatamente no que há de errado com a arquitetura.
Qual é a melhor arquitetura (*) para um aplicativo de 3 níveis distribuído heterogêneo, especificamente, se eu quisesse implementar um sistema que consiste em:
- .
- java ee 5 back-end no JBoss Application Server - expõe serviços E.G. como sabão, descanso ou jms beans
- hibernate a bancos de dados do SQL ou Oracle
- .NET 4.0 WPF Client de desktop
- .NET 4.0 Silverlight Web Client
- jsp / pure-html web cliente
- Quais tecnologias você recomendaria para abordar qualquer um dos componentes mencionados acima, e. Que tipo de serviços (sabão, descanso, mensagens?)
- Como reduzir a latência na comunicação entre os clientes .NET e o back-end Java?
- Quais padrões / abordagens para olhar, e. Em termos do código do cliente WPF (padrão MVVM?), Comunicação com Back-end Java (WCF?)
- Como você protege (autenticação, autorização) Tais serviços J2EE ao usar um cliente WCF?
- Quais são as questões arquitetônicas para cuidar e como abordá-las, e. Em termos de segurança, escalabilidade, desempenho, etc?
*
Eu sei que é provavelmente impossível definir a "melhor arquitetura", mas estou apenas curiosa sobre as opiniões sobre abordagens arquitetônicas, melhores práticas, padrões etc.
Um dos problemas óbvios que vejo em nosso design / arquitetura é que a comunicação de serviço da Web SOAP entre os clientes .NET e o back-end Java é muito lento, provavelmente devido a problemas de latência. Toda a experiência da interface do usuário é muito lenta. E isso é com um único usuário - na produção, esperamos +/- 100 usuários simultâneos.
Eu apreciaria quaisquer comentários / opiniões.
Algumas perguntas:
(peço desculpas se esta questão é inadequada para este site, eu vejo um aviso "a pergunta que você está pedindo parece subjetivo e é provável que seja fechado", no entanto, o que estou procurando são opiniões subjetivas e eu sou Claro que os outros que estão trabalhando em um ambiente misto .NET / Java estariam interessados.)
Obrigado!
Solução
A arquitetura para este projeto foi muito complicada.
Eu teria feito as seguintes alterações:
- use .net no backend para reduzir o número de tecnologias
- Deixe o cliente WPF e use o Silverlight fora do navegador como cliente do Windows
- Use apenas as chamadas assíncricas para o backend para manter a interface do usuário responsiva
- use soquetes web wcf para conversar com o backend
- Use HTML5 como sua interface do usuário, isso também suporta soquetes da Web para que você tenha uma única maneira de falar com o seu back-end
Soquetes da Web: http://tomasz.janczuk.org/