2012-03-01 17 views
5

Tenemos un problema recurrente en nuestra tienda donde terminamos con 3 o 4 representaciones diferentes de la misma clase/entidad.¿La arquitectura basada en modelos vale la pena y cuál es el estado del arte en las herramientas?

Una versión java, una versión xml, una versión hibernate, una versión json ... entiendes el punto.

Obviamente esto crea problemas de mantenimiento.

La arquitectura basada en modelos es probablemente más que esto, pero lo que realmente me gustaría es un sistema que me permita definir una clase o una entidad una vez, de una manera, y luego generar varias representaciones. (tal vez no estoy usando la terminología correcta para esto)

Realmente no es tan sencillo, por supuesto, porque digamos que tenemos un objeto java que queremos convertir en JSON para enviarlo por cable - allí podría no ser una correspondencia exacta de 1-1 entre los miembros del objeto java con respecto a los campos en JSON; puede haber algunas optimizaciones, o lo que sea.

He visto cosas como AndroMDA y EMF en el pasado, y las encontré o bien ausentes o torpes. No sé cómo se acumulan en estos días, o qué otros sistemas hay.

¿Cuáles son las opiniones de SO sobre MDA y/o la programación impulsada por metadatos? ¿Las herramientas han madurado lo suficiente como para ser consideradas seriamente?

Gracias.

+1

Véase también http://stackoverflow.com/questions/4479883/mda-model-driven-architecture y http://stackoverflow.com/questions/696021/are-you-doing-mda- model-driven-architecture-right-now-if-so-what-tools-do-yo y http://stackoverflow.com/questions/21091/do-you-use-mda-mdd-mdsd-any-kind- de-model-driven-approach-will-it-be-the-futur y http://stackoverflow.com/questions/70781/what-do-you-think-of-model-driven-software-development – DNA

Respuesta

1

Echa un vistazo a Naked objetos

http://nakedobjects.codeplex.com/

y de Apache equivalente

http://isis.apache.org/index.html

El hecho de que estos dos marcos son casi inexistentes debe responder a su pregunta en mi humilde opinión. Creo que terminar con representaciones inconsistentes de los mismos objetos indica un defecto en su proceso, que no es algo que deba intentar y resolver con un marco.

+3

Esta respuesta depende de un argumento no respaldado. –

2

Para resolver su preocupación principal, puede definir una clase Java para su objeto de dominio. Luego, puede anotar la clase con las anotaciones JAXB e Hibernate. De esta manera, tiene una única definición de su entidad (la clase Java) que puede mostrarse en varias representaciones, JAXB para JSON y XML, Hibernate para persistencia.

6

Como colaborador de Naked Objects y Apache Isis, puedo confirmar la otra respuesta de @ dnellis74 dado que ambos abordan la cuestión de tener múltiples representaciones de la misma cosa; con estos marcos, escribe su objeto de dominio una vez, y luego se refleja automáticamente al usuario como una capa de persistencia.

Por supuesto, (y yo diría esto, ¿no?) No estoy de acuerdo con @dnellis74 en que el hecho de que estos marcos sean poco conocidos significa que deben descartarse de inmediato; debes decidir por ti mismo

Otro punto que puede ser de su interés; Ambos frameworks se encuentran en el proceso de implementación del Restful Objects spec, que tiene como objetivo exponer los objetos de su dominio automáticamente a través de una API RESTful, y le permiten protegerlo o integrarlo como mejor le parezca. El .NET impl es bastante completo, el Java impl se está quedando un poco, pero aun así tiene una demostración que puedes check out.

En cuanto a MDA, era escéptico desde el principio cuando fue OMG por primera vez, en la medida en que escribí un article al respecto en TheServerSide. Creo que lo llamé correcto.

Dan