Nhibernate, Motor de persistencia
Puesto
a que este mundo es muy cambiante debemos estar al tanto de las diferentes
tipos de tecnologías que vienen saliendo al campo informático. Herramientas que
van a facilitar la vida de cualquier programados, analista de base de datos,
administrador de red, en fin en este campo tan variado y complicado que es la
informática. Con este trabajo daremos a conocer una de las tantas tecnologías
nuevas en las que el campo de programación va avanzando y mejorando para lograr
hacer la vida de dichos más fácil.
NHibernate es la conversión de Hibernate de lenguaje Java a C# para su integración en la plataforma .NET. Al igual que muchas
otras herramientas libres para esta plataforma, NHibernate también funciona en Mono.
Al usar
NHibernate para el acceso a datos el desarrollador se asegura de que su
aplicación es agnóstica en cuanto al motor de base de datos a
utilizar en producción, pues NHibernate soporta los más habituales en el mercado: MySQL, PostgreSQL, Oracle, MS SQL
Server,
etc. Sólo se necesita cambiar una línea en el fichero de configuración para que
podamos utilizar una base de datos distinta.
Qué es un motor de persistencia?
Los motores de persistencia, que en el mundo de la programación no es
más que un componente de software (una capa de programación), también conocido
como “capa de datos”, “capa de persistencia” o “correspondencia O/R (“OR
mapping”)”, son los que permiten establecer una capa intermedia entre el
sistema orientado a objetos y la base de datos relacionales donde se
almacenarán toda la información del mismo.
Esta solución brinda las mejores ventajas
de ambos modelos:
·
Por
una parte, se puede programar con orientación a objetos, aprovechando las
ventajas de flexibilidad, mantenimiento y reusabilidad.
·
Por
otra parte, el poder usar una base de datos relacional, aprovechándose de
su madurez, la estandarización y las herramientas relacionales que hay para
ella.
En la actualidad existen distintos tipos de
motores de persistencia. Entre los de código abierto se pueden destacar:
Hibernate, Castor, Torque, OJB y Cayenne. Entre los comerciales, se pueden
nombrar: TopLink, Cocobase y FastObjects. En los últimos años se ha creado una
especificación llamada JDO, para estandarizar la forma de programar en Java con
esos motores de persistencia. Ejemplos de motores de persistencia que cumplen
el estándar JDO son Kodo, JDO Genie, LiDo, Exadel JDO, IntelliBO, JRelay JDO
(todos ellos comerciales), Speedo JDO, TJDO y XORM (de código abierto).
NHibernate
En .NET los datos
se representan en objetos. Sin embargo, las bases de datos habituales (como
Oracle, SQL Server) guardan sus datos en forma relacional. Evidentemente existe
una brecha entre estos dos mundos ("objetos-relacional") que, de
alguna manera, debe completarse.
Los frameworks que
se encargan de adaptar el mundo de objetos al relacionan son conocidos como ORM
(Object-RelationalMapping). Existen varios ORM en el mercado.
NHibernate se
encarga, justamente, de relacionar clases con tablas. A forma muy simple, una
tabla se mapea contra una clase, y cada columna contra un atributo de dicha
clase.
De esta forma,
NHibernate se encargará de ocultar la complejidad del acceso a datos, exponiendo
solamente objetos. Idealmente, en una aplicación con NHibernate, no es
necesario generar querys SQL para interactuar con los datos (de hecho, la
aplicación no tiene contacto directo con la base de datos).
para continuar leyendo pueden ver el archivo de slideshare a continuacion
SQL Server : replicación
El tipo de replicación que se elige para una aplicación depende de muchos factores, como el entorno físico de la replicación, el tipo y la cantidad de datos que se desean replicar y si los datos se actualizan en el suscriptor. El entorno físico incluye el número y la ubicación de los equipos que participan en la replicación, y si estos equipos son clientes (estaciones de trabajo, equipos portátiles o dispositivos de mano) o servidores.
1. Replicación transaccional.
Por lo general, la replicación de transacciones se usa en escenarios de servidor a servidor, que requieren un rendimiento alto, donde se incluye: la mejora de la escalabilidad y disponibilidad; el almacenamiento datos y generación de informes; la integración de datos desde múltiples sitios; la integración de datos heterogéneos y la descarga de procesamiento por lotes.
¿Cómo funciona la replicación transaccional?
La replicación transaccional se implementa con el Agente de instantáneas, el Agente de registro del LOG y el Agente de distribución de SQL Server. El Agente de instantáneas prepara archivos de instantáneas que contienen esquemas y datos de las tablas y objetos de base de datos publicados, almacena los archivos en la carpeta de instantáneas y registra los trabajos de sincronización en la base de datos de distribución del distribuidor.
El Agente de registro del LOG supervisa el registro de transacciones de cada base de datos configurada para la replicación transaccional y copia las transacciones marcadas para ser replicadas desde el registro de transacciones a la base de datos de distribución, que actúa como una cola de almacenamiento y reenvío confiable. El Agente de distribución copia los archivos de instantáneas iníciales de la carpeta de instantáneas y las transacciones almacenadas en las tablas de la base de datos de distribución a los suscriptores.
Los cambios incrementales realizados en el publicador se transfieren a los suscriptores de acuerdo con la programación del Agente de distribución, que se puede ejecutar continuamente para que la latencia sea mínima o a intervalos programados. Puesto que los datos deben cambiarse en el publicador (cuando se utiliza la replicación transaccional sin las opciones de actualización inmediata ni de actualización en cola), se evita que se produzcan conflictos de actualización. Al final, todos los suscriptores disponen de los mismos valores que el publicador. Si se utilizan las opciones de actualización inmediata o de actualización en cola con la replicación transaccional, las actualizaciones pueden realizarse en el suscriptor y, con la actualización en cola, pueden producirse conflictos.
En la siguiente ilustración se muestran los principales componentes de la replicación transaccional.
2. Replicación de mezcla.
La replicación de mezcla se ha diseñado principalmente para aplicaciones móviles que presentan posibles conflictos de datos. Los escenarios comunes incluyen: intercambio de datos con usuarios móviles; aplicaciones de puntos de venta (POS) para el consumidor e integración de datos desde varias ubicaciones.
La replicación de mezcla, como la replicación transaccional, normalmente se inicia con una instantánea de los objetos y datos de una base de datos de publicaciones. Los cambios de datos y las modificaciones de esquema posteriores que se lleven a cabo en el publicador y en los suscriptores se controlan mediante desencadenadores. El suscriptor se sincroniza con el publicador cuando están conectados a la red e intercambian todas las filas que han cambiado entre el publicador y el suscriptor desde la última vez que se produjo la sincronización.
La replicación de mezcla se suele utilizar en entornos de servidor a cliente. La replicación de mezcla es adecuada en las siguientes situaciones:
• Varios suscriptores actualizan los mismos datos en diferentes ocasiones y propagan los cambios al publicador y a otros suscriptores.
• Los suscriptores necesitan recibir datos, realizar cambios sin conexión y sincronizar más adelante los cambios con el publicador y otros suscriptores.
• Cada suscriptor requiere una partición de datos diferente.
• Se pueden producir conflictos y, cuando ocurren, debe poder detectarlos y resolverlos.
• La aplicación requiere el cambio de datos neto en lugar de acceso a los estados intermedios de los datos. Por ejemplo, si una fila cambia cinco veces en el suscriptor antes de que éste se sincronice con el publicador, la fila cambiará solo una vez en el publicador para reflejar el cambio de datos neto (es decir, el quinto valor).
En el siguiente diagrama se muestran los componentes que se utilizan en la replicación de mezcla.
para leer todo el documento completo puedes verlo en slideshare.
La configuracion y mayor explicacion del proyecto dejamos el siguiente video.
Gracias por leer la nota
Gracias por leer la nota
No hay comentarios:
Publicar un comentario