He revisado algunas preguntas, tecnologías para construir una buena capa de servicio, pero tengo algunas preguntas sobre esto con las que necesito ayuda.
Primero alguna información de lo que tengo para los requisitos. Actualmente tenemos una serie de aplicaciones web que se comunican entre sí de forma similar a una tela de araña (todas se comunican entre sí de manera confusa a través de servicios web y datos de bases de datos).
- Queremos cambiar esto para que todas las aplicaciones pasen por una capa de servicio donde podamos trabajar más con caché y encapsular funcionalidades comunes y más.
- Queremos que esta capa también tenga una API web para que los clientes de terceros puedan consumir información del servicio.
El problema que veo es que si creamos la capa de servicio con, digamos, la API web MVC4, no necesitamos comunicarnos entre la aplicación usando la webAPI, lo que significa que tenemos que construir URL y consumir JSON / Xml. Eso no suena demasiado efectivo. Supongo que un mejor método sería trabajar con entidades y WCF para comunicarse entre la aplicación, pero ¿podríamos perder la magia de la API web?
Entonces, la pregunta es si hay una manera de consumir una capa de servicio como API web (JSON / XML) y como una capa de servicio más back-end con entidades. Si nos vemos obligados a usar 2 capas de servicio diferentes, es posible que debamos duplicar algunas funciones y otras cosas malas.
Espero que la pregunta sea lo suficientemente clara y pregunte si necesita más información.
Respuestas:
Para un conjunto de aplicaciones que están alojadas en la intranet y posiblemente en una LAN, lo mejor puede ser una conexión TCP para servicios.
En ese sentido, sugeriré, crear una aplicación de servicio que exponga un conjunto de puntos finales e interfaces de servicio que puedan funcionar en TCP. Estos pueden ser consumidos por las aplicaciones locales o de confianza.
La aplicación de servicio debería tener otro conjunto de puntos finales e interfaces de servicio que están expuestos para consumir en la web (API web).
Por lo tanto, la aplicación de servicio se puede alojar utilizando WCF y los puntos finales / interfaces deben agregarse de acuerdo con la necesidad.
fuente