Mecanismos de persistencia en sistemas orientados a objetos
Supervisor(es): Calegari García, Daniel - Corral, Jorge
Resumen:
La orientación a objetos se ha convertido en el paradigma dominante para el desarrollo de sistemas de información. En este contexto, el mecanismo utilizado para resolver la persistencia de los datos es de vital importancia, no solo por su impacto en el desempeño final del sistema sino también a los efectos de asegurar atributos deseables de calidad como la mantenibilidad, reusabilidad y escalabilidad. Existen numerosas alternativas a la hora de seleccionar un mecanismo para acceder a los datos y posteriormente manipularlos. Estas se diferencian en los enfoques utilizados, los contextos a los que aplican, su impacto a nivel arquitectónico, entre otros. La amplia gama de posibilidades puede resultar abrumadora a la hora de seleccionar uno acorde a las necesidades del proyecto. Por tal motivo, es de suma importancia contar con una visión general, objetiva y bien estructurada del problema. Este trabajo presenta un relevamiento de los mecanismos existentes para estructurar el acceso a datos persistentes en un sistema orientado a objetos, y en base a esto, una clasificación de mecanismos que mitiga carencias detectadas en clasificaciones existentes. Esta clasificación incluye tanto mecanismos de uso industrial (Bases de Datos Relacionales, Mapeadores Objeto-Relacional, etc.) como mecanismos aún emergentes académicamente (AOP, Prevalencia, etc.). Asimismo, se definen criterios de comparación entre mecanismos y entre productos que implementan cierto mecanismo. En base a estos criterios se realiza una comparación entre los mecanismos de la clasificación así como entre los productos Hibernate, JPA/Toplink Essentials y LLBLGen Pro correspondientes al mecanismo Mapeadores Objeto-Relacional. Los resultados obtenidos permiten mejorar la toma de decisiones a la hora de seleccionar el mecanismo (y producto) a utilizar por parte de un desarrollador.
2007 | |
Sistemas Orientados a Objeto Persistencia de Datos |
|
Español | |
Universidad de la República | |
COLIBRI | |
http://hdl.handle.net/20.500.12008/3104 | |
Acceso abierto | |
Licencia Creative Commons Atribución – No Comercial – Sin Derivadas (CC BY-NC-ND 4.0) |
Sumario: | La orientación a objetos se ha convertido en el paradigma dominante para el desarrollo de sistemas de información. En este contexto, el mecanismo utilizado para resolver la persistencia de los datos es de vital importancia, no solo por su impacto en el desempeño final del sistema sino también a los efectos de asegurar atributos deseables de calidad como la mantenibilidad, reusabilidad y escalabilidad. Existen numerosas alternativas a la hora de seleccionar un mecanismo para acceder a los datos y posteriormente manipularlos. Estas se diferencian en los enfoques utilizados, los contextos a los que aplican, su impacto a nivel arquitectónico, entre otros. La amplia gama de posibilidades puede resultar abrumadora a la hora de seleccionar uno acorde a las necesidades del proyecto. Por tal motivo, es de suma importancia contar con una visión general, objetiva y bien estructurada del problema. Este trabajo presenta un relevamiento de los mecanismos existentes para estructurar el acceso a datos persistentes en un sistema orientado a objetos, y en base a esto, una clasificación de mecanismos que mitiga carencias detectadas en clasificaciones existentes. Esta clasificación incluye tanto mecanismos de uso industrial (Bases de Datos Relacionales, Mapeadores Objeto-Relacional, etc.) como mecanismos aún emergentes académicamente (AOP, Prevalencia, etc.). Asimismo, se definen criterios de comparación entre mecanismos y entre productos que implementan cierto mecanismo. En base a estos criterios se realiza una comparación entre los mecanismos de la clasificación así como entre los productos Hibernate, JPA/Toplink Essentials y LLBLGen Pro correspondientes al mecanismo Mapeadores Objeto-Relacional. Los resultados obtenidos permiten mejorar la toma de decisiones a la hora de seleccionar el mecanismo (y producto) a utilizar por parte de un desarrollador. |
---|