Pregunta

Soy mayormente un desarrollador ASP.NET, por lo que no estoy muy familiarizado con las mejores prácticas de J2EE o PMA, patrones, etc., pero creo que el proyecto en el que estoy involucrado podría haberse hecho mejor, pero yo No puedo poner mi dedo exactamente en lo que está mal con la arquitectura.

¿Cuál es la mejor (*) arquitectura para una aplicación de 3 niveles distribuida heterogénea, específicamente, si quisiera implementar un sistema que consiste en:

  1. Java EE 5 Back-End en JBoss Application Server: expone los servicios de EJB, por ejemplo, Como jabón, descanso o js frijoles
  2. Hibernate a las bases de datos de SQL Server o Oracle
  3. .NET 4.0 WPF Drktop Client
  4. .NET 4.0 Silverlight Web Client
  5. cliente web JSP / Pure-HTML
  6. * Sé que probablemente sea imposible definir la "mejor arquitectura", pero solo tengo curiosidad por las opiniones de los enfoques arquitectónicos, las mejores prácticas, los patrones, etc.

    Uno de los problemas obvios que veo en nuestro diseño / arquitectura es que la comunicación de servicio de Soap Web entre los clientes .NET y el back-end Java es muy lento, probablemente debido a los problemas de latencia. Toda la experiencia de la UI es muy lenta. Y eso es con un solo usuario, en producción esperamos +/- 100 usuarios concurrentes.

    Apreciaría cualquier comentario / opiniones.

    Algunas preguntas:

    • ¿Qué tecnologías recomendaría abordar cualquiera de los componentes mencionados anteriormente, por ejemplo? ¿Qué tipo de servicios (jabón, descanso, mensajes?)
    • ¿Cómo reducir la latencia en la comunicación entre los clientes de .NET y el Back-End de Java?
    • qué patrones / enfoques para mirar, por ejemplo. En términos del código del cliente de WPF (patrón MVVM?), Comunicación con Java Back-End (WCF?)
    • ¿Cómo se asegura (autenticación, autorización) tales servicios J2EE cuando se utiliza un cliente WCF?
    • ¿Cuáles son los problemas arquitectónicos que deben buscar y cómo abordarlos, por ejemplo? En términos de seguridad, escalabilidad, rendimiento, etc.?

    (Pido disculpas si esta pregunta es inapropiada para este sitio, veo una advertencia "La pregunta que está pidiendo parece subjetiva y es probable que esté cerrada", sin embargo, lo que estoy buscando son opiniones subjetivas y estoy Seguro que otros que están trabajando en un entorno mixto .net / java estarían interesados).

    ¡Gracias!

¿Fue útil?

Solución

La arquitectura para este proyecto fue demasiado complicada.

Hubiera hecho los siguientes cambios:

  • Use .NET en el backend para reducir el número de tecnologías
  • Drop el cliente WPF y use Silverlight fuera del navegador como cliente de Windows
  • Utilice solo las llamadas de ASYNC al backend para mantener el respondo de la UI
  • Usa los sockets web WCF para hablar con el backend
  • Usa HTML5 como su UI web, esto también admite sockets web para que tenga una forma única para hablar con su backend

sockets web: http://tomasz.janczuk.org/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top