Best practice per un'architettura a 3 livelli .NET e Heterogeneous.
-
14-09-2020 - |
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:
- .
- Java EE 5 Back-End su JBoss Application Server - espone i servizi EJB E.G. Come sapone, riposo o jms beans
- Ibernazione a SQL Server o Database Oracle
- .NET 4.0 WPF Desktop client
- .NET 4.0 Silverlight Web client
- JSP / Pure-HTML Web client
- 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.
*
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:
- .
(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!
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/