InterBase es la base de datos ultra rápida, escalable, embebible en aplicaciones, con las características generales de las bases de datos empresariales en seguridad, recuperación de desastres, administración o gestión de sicronizaciones, pero con características que la hace única, como son:
- Cumplimiento de los estándares SQL, seguidos de forma estricta, con soporte Unicode, alertas de los eventos en tiempo real, y Change Views para trazar los cambios en el SQL.
- Soporte multi-platafoma. Se ejecuta en Windows, Linux, Mac OS X, Android y iOS.
- Soporte para múltiples lenguajes, como son Java, C, C++, .NET, Delphi, PHP y Ruby.
- Almacenamiento de datos en Server (IB Server y Developer) y en Cliente (IB ToGo y IBLite)
- Mínima huella en el sistema, ya que su distribución tiene un tamaño reducido a unos pocos megabytes y bajos requisitos de memoria, para ejecutarse en cualquier dispositivo de forma óptima.
- Libre de administración. InterBase simplemente funciona, incluso con procesos con un alto número de transacciones por segundo. El MARS Rover utiliza InterBase porque Marte queda lejos para enviar un administrador de bases de datos.
Embarcadero InterBase es una base de datos multiplataforma con funciones completas de alto rendimiento, encriptable, relacional, y escalable dirigida a desarrolladores que buscan embeber una base de datos de bajo coste, con cero administración, con seguridad de base de datos y ligera, dentro de las aplicaciones en plataformas heterogéneas y conectadas.
Con InterBase, obtienen un potente control de acceso, ChangesViews, recuperación de desastres, e implementación de transacciones, así como soporte para los motores de datos más populares y para una mayor flexibilidad de implementación.
Buenos días:
Aún no hemos tomado una decisión definitiva sobre el sistema que utilizaremos en el proyecto.
Uno de los aspectos que estamos valorando es la conectividad con InterBase desde las distintas tecnologías con las que trabajamos.
En nuestra aplicación Windows, desarrollada con Delphi FMX y FireDAC, no tenemos ningún problema de acceso a InterBase. Sin embargo, también tenemos múltiples desarrollos web y de servidor, principalmente en Java y PHP, algunos de ellos desplegados en entornos Linux con NGINX, además de otros desarrollos en lenguajes como Python o JavaScript.
Hemos visto que InterBase anuncia conectividad mediante JDBC y ODBC, pero no tenemos claro cuál sería la solución oficial y recomendada actualmente para estos entornos, especialmente para PHP sobre Linux, ni qué componentes, controladores o licencias adicionales serían necesarios para su utilización en producción. La información y los conectores que hemos encontrado parecen, en algunos casos, desactualizados.
Por lo que hemos podido comprobar, parece que una de las soluciones propuestas por Embarcadero sería implementar una API REST mediante RAD Server. No obstante, nos preocupa que esto pueda condicionarnos a utilizar una única plataforma para el desarrollo de la capa de acceso a InterBase, especialmente teniendo en cuenta que actualmente no tenemos experiencia en el desarrollo con RAD Server.
Nos gustaría conocer qué alternativas oficiales y actualmente soportadas existen para acceder a InterBase desde Java, PHP, Python o JavaScript, especialmente en entornos Linux, y si RAD Server es realmente casi la única solución recomendada para centralizar este tipo de accesos. Si nos puedes indicar documentación al respecto para realizar pruebas os lo agracedería.
Saludos,
Buenos días,
Contesto a continuación las dudas planteadas.
RAD Server no es la única alternativa para acceder a InterBase desde aplicaciones web o de servidor, sino una de las opciones que Embarcadero propone cuando se desea centralizar la lógica de negocio y exponer el acceso a datos mediante servicios REST.
Actualmente, InterBase dispone de conectividad nativa mediante JDBC, ODBC y controladores para Python, además de conectividad ADO.NET en entornos Microsoft.
Para los entornos que comentáis:
• Java: la opción habitual es el uso del controlador JDBC de InterBase.
• Python: existe controlador específico para InterBase.
• PHP sobre Linux: habitualmente se accede mediante ODBC utilizando el driver de InterBase y las extensiones ODBC de PHP.
• JavaScript: al tratarse de un lenguaje que normalmente se ejecuta en navegador, lo habitual es acceder a InterBase a través de una capa de servicios (REST u otro.) desarrollada en cualquier tecnología de servidor.
En cuanto a RAD Server, su ventaja es proporcionar una API REST, autenticación, gestión de usuarios y otros servicios middleware ya integrados.
Respecto a licencias adicionales, la conectividad mediante JDBC, ODBC o controladores específicos depende de la licencia de InterBase Server que corresponda a vuestro despliegue, no de las librerías de conexión o los controladores.
Un saludo,
Estamos valorando usar Interbase Server para el despliegue en un cliente de una aplicación ERP desarrollada con Delphi FXM y Firedac.
Para uno de nuestros clientes más importantes serían licencias para 10 usuarios, aunque posiblemente se amplíe a 20 o 25 si integramos otras bases de datos auxiliares.
Sobre el tema de licencias tenemos algunas dudas. Cómo se licencia si sobre el mismo servidor se quieren desplegar varias instancias en distintos puertos. Hay que comprar licencias independientes para cada una o comparten las licencias.
Me podrías pasar una oferta competitiva. El ERP actual está usando Firebird pero queremos pasar oferta sobre Interbase para este cliente y posiblemente para otros a partir de 5 usuarios concurrentes.
Es posible instalar múltiples instancias de IB en un servidor. Multi-Instance – InterBase https://docwiki.embarcadero.com/InterBase/15/en/Multi-Instance
También es posible re-rutear al cliente de una instancia a otra. Supongo que todos los clientes acceden a la misma información.
En cuanto al licenciamiento:
An InterBase Server License activates the InterBase Server software and a license for 1 User connection or for the number of users based on the volume license purchased.
InterBase Server Edition licenses include support for up to 8 CPU cores. To add support for more than 8 cores on a single machine, additional licenses are required.
To purchase additional simultaneous user licenses to an existing InterBase Server installation, additional Simultaneous User Licenses can be purchased in the same quantities listed above to allow additional users to connect.
Each Simultaneous User License consists of a license certificate with a serial number. Entering and registering the serial number using the InterBase License Manager will add additional simultaneous user connections to the InterBase Server.
Resumiendo:
• Una licencia server por servidor hasta 8 CPU cores.
• Una licencia cliente por usuario y puede acceder a los servidores que necesite.
Adevertencia al usuario: Si mete muchas instancias en un servidor, deberá meter más CPUs para que no se relentice.
El tema es el siguiente.
Utilizamos un servidor REST HTTP con Interbase Server XE7 en la nube con la que se comunica una aplicación de escritorio que le solicita datos a través de HTTP y los carga en una pantalla de trabajo.
Lo que queremos es que esos datos que carga del servidor los almacene en una base de datos local en el PC cliente, para manipularlos o cambiarlos y cuando confirme lea de esos datos de esa BBDD y los envíe al servidor REST.
El objetivo como habrás deducido es reducir el trafico con el servidor y trabajar en local hasta que se confirme los cambios.
También queremos que no tenga coste la instalación de esa base de datos en el cliente PC. Habíamos pensado en Interbase ToGo (que en teoría no requiere instalación) pero no tenemos claro su funcionamiento ni el coste de esas licencias.
Puede que sirva también Interbase IB Lite, que creo que es gratuito.
Me gustaría asesoramiento en esta elección.
Trabajamos con Delphi 11.
Espero tus comentarios.
Saludos.
Hola José Ramón.
Todo lo que comentas es correcto. InterBase ToGo es la adecuada.
Se instala como una librería dentro de la aplicación, por lo que no requiere ningún tipo de mantenimiento ni administración fuera de la aplicación misma.
InterBase Lite también va embebida, pero tiene limitaciones. Solo soporte 1 núcleo de CPU (ToGo 4), y una conexión por usuario (ToGo 8), lo que para algunas aplicaciones es demasiado restrictivo. Por otra parte si vas a enviar lo datos una vez confirmados, con Lite tienes un problema porque solo acepta una transacción simultánea por conexión, mientras que en ToGo son ilimitadas.
Un saludo.