Realm es un sistema de administración de base de datos de objetos de código abierto , inicialmente para sistemas operativos móviles ( Android / iOS ) [1] pero también disponible para plataformas como Xamarin , [2] React Native , [3] y otras, [4] [5] incluidas las aplicaciones de escritorio ( Windows [6] ), y tiene la licencia de Apache .
En septiembre de 2016, se anunció la plataforma Realm Mobile , seguida de la primera versión estable en enero de 2017. Permite la sincronización bidireccional entre Realm Object Server [7] [8] y las bases de datos del lado del cliente que pertenecen al registro dado. en usuario. Se lanzó una edición comercial y de desarrollador [9] , junto con una licencia comercial [10] para integrarse con otros sistemas de administración de bases de datos como PostgreSQL . [11] [12]
En la primavera de 2019, MongoDB adquirió Realm por 39 millones de dólares. [13]
Historia
El desarrollo de Realm comenzó a finales de 2010 por Alexander Stigsen, junto con Bjarne Christiansen, [14] bajo el nombre de TightDB. La empresa comenzó en 2011 en Y Combinator . [15] Fue promocionado como NoSQL con durabilidad configurable y la capacidad de compartir los mismos grupos de datos en múltiples procesos, pero también en múltiples dispositivos y clústeres.
TightDB cambió el nombre de su producto a Realm en septiembre de 2014 y lo lanzó para pruebas públicas. En marzo de 2015, se reveló una financiación de unos 20 millones de dólares. [15] [16]
Realm fue mencionado en alguna prensa especializada , [17] [18] incluso por otras firmas como IBM . [19]
Realm anunció la versión 1.0 en junio de 2016 y lanzó una plataforma para la sincronización bidireccional en tiempo real (beta en septiembre de 2016, lanzamiento en enero de 2017), [20] y proporcionó un SDK de Node.js para aplicaciones del lado del servidor. [21]
En mayo de 2017, se anunció la compatibilidad con UWP .
Características
Las características más notables de Realm son las siguientes:
- Como Realm es un almacén de objetos, sus API específicas del lenguaje con tipo mapean objetos con tipo directamente en el archivo Realm; por lo tanto, las clases se utilizan como definición de esquema.
- Las relaciones entre objetos se permiten a través de "enlaces". Cada "vínculo" crea un "vínculo de retroceso" como una relación inversa a los objetos que se vinculan al objeto actual.
- Los resultados de la consulta devueltos por Realm son vistas locales de subprocesos a la "versión de base de datos" actual (ya que Realm maneja la concurrencia con la arquitectura MVCC ), y estas vistas "se actualizan automáticamente" cuando se confirma una transacción desde cualquier subproceso , siempre que Realm pueda para actualizar su versión de instancia (lo cual es posible en subprocesos que pueden recibir notificaciones de cambio). Cuando esto sucede, las llamadas de Realm cambian los oyentes que se agregan a los resultados de la consulta (si han cambiado).
- Cada vista local de subprocesos devuelve objetos proxy que solo leen / escriben en la base de datos cuando se llama a un método de acceso, lo que significa que todo el acceso a la base de datos se carga de forma diferida. Las escrituras solo se permiten durante una transacción de escritura.
- Como el resultado de cada consulta y cada objeto proxy es una vista de los datos subyacentes, cualquier cambio realizado en la base de datos se refleja en todos los objetos que apuntan a los mismos datos. Realm generalmente llama a este comportamiento "arquitectura de copia cero" (junto con el acceso a datos con carga diferida mencionado anteriormente).
Soporte de lenguaje de programación
- C objetivo
- Rápido
- Java ( solo Android )
- Kotlin ( solo Android )
- C # ( Xamarin , Win32, UWP )
- JavaScript ( Node.js , React Native )
Referencias
- ^ "Reino: base de datos actual centrada en objetos para aplicaciones móviles" . Consultado el 22 de abril de 2017 .
- ^ "La plataforma de base de datos móvil Realm ahora tiene soporte para Xamarin de Microsoft" . Gooroo . Consultado el 22 de abril de 2017 .
- ^ "Realm: Presentamos Realm React Native" . Consultado el 22 de abril de 2017 .
- ^ "Reino: Microsoft Xamarin 1.0, Azure, escritorio de Windows" . Consultado el 22 de abril de 2017 .
- ^ "La plataforma móvil Realm admite Xamarin, Microsoft Azure - ADTmag" . ADTmag . Consultado el 22 de abril de 2017 .
- ^ "Uso de Realm Mobile Database en una aplicación de escritorio convertida con Desktop Bridge" . Equipo de consulta de aplicaciones . Consultado el 22 de abril de 2017 .
- ^ Kepes, Ben. "Realm amplía su oferta de bases de datos móviles con Object Server" . Mundo de la red . Consultado el 22 de abril de 2017 .
- ^ "Realm amplía su oferta de base de datos móvil con Object Server | The Diversity Blog - SaaS, Cloud & Business Strategy" . www.diversity.net.nz . Consultado el 22 de abril de 2017 .
- ^ "Realm lanza edición comercial de su base de datos móvil - SiliconANGLE" . SiliconANGLE . 2017-01-19 . Consultado el 22 de abril de 2017 .
- ^ "Base de datos móvil de fuentes abiertas de Realm, la convierte en plataforma empresarial - ADTmag" . ADTmag . Consultado el 22 de abril de 2017 .
- ^ "Realm hace PostgreSQL en tiempo real con un nuevo conector" . Tendencias y aplicaciones de bases de datos . 2017-03-21 . Consultado el 22 de abril de 2017 .
- ^ "La plataforma de desarrollo móvil de Realm se vincula a PostgreSQL para vincularla a datos empresariales: la nueva pila" . La nueva pila . 2017-03-21 . Consultado el 22 de abril de 2017 .
- ^ Miller, Ron. "MongoDB para adquirir Realm de base de datos móvil de código abierto por $ 39 millones" . techcrunch.com . Consultado el 25 de abril de 2019 .
- ^ "Una startup lanzada hace 9 meses por estos antiguos ingenieros de Nokia se está volviendo absolutamente loca" . Business Insider . Consultado el 22 de abril de 2017 .
- ^ a b Ron Miller (24 de marzo de 2015). "Realm puede ampliar su alcance con una inversión de 20 millones de dólares" . Tech Crunch . Consultado el 21 de mayo de 2017 .
- ^ "Formulario D: Aviso de Oferta Exenta de Valores" . 30 de marzo de 2015 . Consultado el 21 de mayo de 2017 .
- ^ Krill, Paul. "Realm revive la base de datos de objetos para desarrolladores móviles" . InfoWorld . Consultado el 22 de abril de 2017 .
- ^ Thomas Claburn (29 de septiembre de 2016). "Realm - una base de datos de la que quizás no hayas oído hablar, pero los desarrolladores de aplicaciones tienen - promociona una plataforma turbia" . El registro . Consultado el 21 de mayo de 2017 .
- ^ "Aplicación móvil de reconocimiento visual con Watson, Realm y Swift - IBM OpenTech" . IBM OpenTech . 2016-12-12 . Consultado el 22 de abril de 2017 .
- ^ "Realm: Presentación de la plataforma móvil Realm" . Consultado el 22 de abril de 2017 .
- ^ "Realm lanza la base de datos de objetos para Node.js" . InfoQ . Consultado el 22 de abril de 2017 .
enlaces externos
- Página web oficial
- Realm en Android