Hola a tod@s.
Os paso mi situaicón y mi duda haber si alguien puede echrarme una mano:
Hemos de desarrollar un proyecto basándonos en una Arquitectura Orientada a Servicios. La aplicación será tan grande que habrá que dividirla en diferentes módulos, de tal manera que cada persona se ocupará de uno de los módulos, y la comunicación entre ellos se realizará a través de los servicios web.
El problema, o la duda la tenemos a la hora de comunicar los diferentes sistemas: Si mi módulo devuelve un objeto de la clase LIBRO (por ejemplo) el cliente ha de conocer mi clase LIBRO (importada literalmente desde la referencia web), por lo que no puede desarrollar su solución mientras no tenga mi clase. Y lo mismo pasará en mi lugar si yo necesito usar un objeto que me devuelva cualquiera de los otros servicios web que yo no haya desarrollado. Y si cada uno de nosotros implementamos nuestras propias clases LIBRO, estas son incompatibles pues no son la misma clase.
Una solución sería tener una dll con todas las clases básicas e importar dicha dll en todos los proyectos, pero el solapamiento es excesivo.
Una segunda solución que se nos ocurrió (y de hecho, quisiéramos enfocarlo por esa parte) es tener un conjunto de interfaces comunes (por ejemplo la interfaz ILIBRO) y que cada cual implemente sus clases basándose en dichas interfaces(cada cual implementa su clase LIBRO que implemnta la interfaz ILIBRO), pero en este caso tenemos el problema de que al publicar un servicio web, con un método web cuya signatura dice que devuelve un objeto cuyo tipo básico es una interfaz, da una excepción pues no puede serializar una interfaz.
He descubierto en en C# .net si en la interfaz se declaran propiedades dicho problema desaparece, pero el problema de nuestro proyecto sigue estando presente. Nuestra intención es construir una aplicación que esté implementada tanto en C# como en Java y nuestro principal problema es la búsqueda de esas 'interfaces' que nos permitan implementar nuestras clases de negocio de manera totalmente independientes pero que sean compatibles a través del uso de servicios web.
¿Alguien puede ayudarme?
¿Alguen sabe si existe la posibilidad de definir una interfaz en XML y usarla como base, o como interfaz para implementar nuestras propias clases?
¿Es decir una interfaz básica y estandar que pueda usarse desde cualquier plataforma como se hace con los ficheros WSDL, pero para las clases de negocio?
Muchas gracias por todo.
Saludos.