Domanda

Sono per lo più uno sviluppatore ASP.NET, quindi non ho familiarità con J2ee o WFP Best Practices, modelli ecc., Ma sento che il progetto che sono coinvolto avrebbe potuto essere fatto meglio, ma io Non riesco a mettere il dito esattamente su ciò che è sbagliato nell'architettura.

Qual è l'architettura migliore (*) per un'applicazione a 3 livelli distribuiti eterogenea, in particolare, se volevo implementare un sistema composto da:

    .
  1. Java EE 5 Back-End su JBoss Application Server - espone i servizi EJB E.G. Come sapone, riposo o jms beans
  2. Ibernazione a SQL Server o Database Oracle
  3. .NET 4.0 WPF Desktop client
  4. .NET 4.0 Silverlight Web client
  5. JSP / Pure-HTML Web client
  6. * So che è probabilmente impossibile definire la "migliore architettura", ma sono solo curioso delle opinioni sugli approcci architettonici, le migliori pratiche, i modelli ecc.

    Uno dei problemi ovvi che vedo nella nostra progettazione / architettura è che la comunicazione del servizio Web SOAP tra i client .NET e il back-end Java è molto lento, probabilmente a causa di problemi di latenza. L'intera esperienza dell'interfaccia utente è molto pigro. E questo è con un singolo utente - in produzione ci aspettiamo +/- 100 utenti simultanei.

    apprezzerei qualsiasi commento / opinione.

    Alcune domande:

      .
    • Quali tecnologie consiglieresti ad affrontare uno dei componenti sopra menzionati, ad es. Che tipo di servizi (sapone, riposo, messaggistica?)
    • Come ridurre la latenza nella comunicazione tra i client .NET e il back-end Java?
    • Quali modelli / approcci da guardare, ad es. In termini del codice client WPF (modello MVVM?), Comunicazione con back-end Java (WCF?)
    • Come si è sicuri (autenticazione, autorizzazione) tali servizi J2ee durante l'utilizzo di un client WCF?
    • Quali sono i problemi architettonici per cercare e come affrontarli, ad es. In termini di sicurezza, scalabilità, prestazioni, ecc.

    (mi scuso se questa domanda è inappropriata per questo sito, vedo un avvertimento "La domanda che stai chiedendo appare soggettiva e è probabile che venisse chiusa", tuttavia quello che sto cercando sono opinioni soggettive e sono certo che altri che stanno lavorando in un ambiente mista .Net / Java sarebbero interessati.)

    Grazie!

È stato utile?

Soluzione

L'architettura per questo progetto era troppo complicata.

Avrei fatto le seguenti modifiche:

    .
  • Utilizzare .NET sul backend per ridurre il numero di tecnologie
  • Drop il client WPF e utilizza Silverlight fuori dal browser come client Windows
  • Utilizzare solo le chiamate Async al backend per mantenere l'interfaccia utente reattivo
  • Utilizzare i socket Web WCF per parlare con il backend
  • Usa HTML5 Come interfaccia utente Web, questo supporta anche i socket Web in modo da avere un singolo modo per parlare con il backend

Socket Web: http://tomasz.janczuk.org/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top