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:

    .
  1. java ee 5 back-end no JBoss Application Server - expõe serviços E.G. como sabão, descanso ou jms beans
  2. hibernate a bancos de dados do SQL ou Oracle
  3. .NET 4.0 WPF Client de desktop
  4. .NET 4.0 Silverlight Web Client
  5. jsp / pure-html web cliente
  6. * 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:

    • 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?

    (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!

Foi útil?

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/

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