2012-04-09 64 views
8

¿Alguien tiene experiencia real con las bases de datos de Firebird a través de Internet?experiencias con servidor Firebird a través de Internet con múltiples clientes?

Tengo un típico software de contabilidad/ERP de Windows (hecho con delphi) que funciona bastante bien con el servidor de base de datos firebird .. Ahora mis usuarios (300 aproximadamente ahora, pero deberían incrementar) también quieren trabajar "en la nube "(se conecta desde la oficina, desde la computadora portátil, desde la casa, etc.). Es mucho trabajo recrear todo en una aplicación web estándar (digamos, por ejemplo, HTML + CSS + JS + PHP + MYSQL), así que estoy considerando mantener el cliente ganador (no me importan otros sistemas operativos) pero en lugar de que el servidor viva en las LAN de los clientes, lo muevo a un par de servidores dedicados que contrataré (uno primario y el otro falla para comenzar).

Buscando He encontrado esta pregunta frecuente http://www.firebirdfaq.org/faq53/ que explica que el protocolo fb no es ideal para trabajar en Internet, pero igual todos mis usuarios tienen al menos una conexión a Internet ADSL de 1 MBbit/s (no lo hago). Creo que es lento, como lo dice la faq).

Alguien ha hecho esto? ¿Cuál fue la experiencia? ¿Qué tan seguros son los servidores fb por estar abiertos a internet? ¿Qué tan bien escalan?

Sé que la creación de un "middleware" con SOAP, por ejemplo, será más normal, pero la solución que estoy evaluando aquí es mucho más rápida y fácil (todavía tengo algo de trabajo con los servicios de replicación, copia de seguridad, servicios de respiración) , pero es mucho menos que rehacer todo para la web).

Gracias! Editar: versión de FB: 2.5.

+0

Lea las preguntas frecuentes. Esta pregunta requiere "experiencias" vagas y es una petición de discusión. No hay una respuesta SO es para preguntas que tienen respuestas. Escalar no es el único problema aquí, por cierto. ni siquiera el principal. El principal es ¿confías en Firebird lo suficiente como para dejarlo abierto a internet? Yo no. Ni ningún otro SQL db. Tal vez podría confiar en SQL + ssl, con certificados. –

Respuesta

7

Estaba tratando de "presionar" a los desarrolladores de Firebird Core para mejorar el protocolo Firebird y obtener una mejor velocidad con una red de alta latencia (también conocida como Internet). Recientemente, Dmitry Yemanov publicó algunos artículos en su blog sobre este tema (dyemanov.blogspot.com). Parece que hay margen para las optimizaciones, y realmente me gustaría que esto venga en FB 2.5.3 y FB 3.0, aunque no hay garantía de que esto ocurra en esas versiones o en el corto plazo. Puede votar en tal mejora aquí: http://tracker.firebirdsql.org/browse/CORE-2530

Seguridad? Puede intentar configurar una VPN. También puede ayudar con la velocidad, ya que la mayoría del software de VPN (Zebedee, etc.) puede comprimir los datos que se transfieren, lo que ayuda a acelerar la transferencia de datos en algunos casos.

Algunos de mis clientes usan Firebird tradicional C/S a través de Internet. Es mucho más lento en comparación con la red local, y por supuesto, cuánto más lento depende básicamente de la velocidad del enlace y la latencia. También puedes hacer algo de optimización en el lado del cliente, usando caché de metadatos, etc. pero no esperes milagros con el protocolo actual. Diría que para trabajar todo el día, usar Terminal Services sería una mejor opción por ahora.

+0

Como dice WarmBooter, los Servicios de Terminal Server (Windows o incluso mejor Citrix) pueden hacer muy bien el trabajo. –

+1

Firebird 3 tiene buenas optimizaciones de protocolo y también incluye el cifrado y la compresión de cables. ¡Hice algunas pruebas con Beta2 y fueron muy prometedoras! Puede verificar los resultados en http://www.firebirdnews.org/testing-the-firebird-3-protocol-enhancements/ – WarmBooter

3

El problema del protocolo FB no se trata de ancho de banda, sino de latencia. En mi experiencia, algunas operaciones pueden ser muy lentas a través de Internet/VPN en comparación con LAN o conexión local. No he examinado el problema más, ya que realmente no ejecuto aplicaciones a través de conexión a Internet.

Sin embargo, sugiero el modelo de tres niveles para la aplicación. Cree su propio servidor de aplicaciones, que se ejecuta en el servidor de bases de datos/misma red. Deje que los clientes hablen con el servidor de aplicaciones y obtenga el máximo rendimiento.

Hay algunos marcos de aplicación/middleware de N-Capas para Delphi: propia DataSnap

con los que puede obtener la compresión de datos, encriptación, los mensajes binarios (más rápido que el jabón) etc.

+0

Sí, agregar un "middleware delgado" es la otra opción, todos son comerciales ... ¿sabe usted? de algunas opciones de código abierto y gratuitas? –

+1

Bueno, use el propio DataSnap de Delphi, ya lo tiene (puede depender de su versión de Delphi). Embarcadero ha desarrollado continuamente DataSnap con la mirada puesta en la nube. –

+0

MidWare es gratuito para uso no comercial. No estoy al tanto de las alternativas gratuitas de código abierto. – Harriv

4

La respuesta sobre la cuestión de escala Firebird se ejecuta en la producción en grandes servidores grandes de hierro: 512G de ram 100.000 usuarios concurrentes

Operamos Firebird para alimentar sistemas más grandes (para 12 agencias gubernamentales y 3 bancos). Cuenta con aproximadamente 100.000 usuarios finales multiplexados través de 2500 (max) conexiones agrupadas https://plus.google.com/111558763769231855886/posts/Q1ACy1yyTgP

El protocolo en Firebird 2.5 se improoved todavía hay espacio dejado por 3.0 pero se puede comprobar lo que ya se ha hecho

http://asfernandes.blogspot.com/2009/07/network-latency-influence-on-firebird.html

Y las futuras mejoras en 3,0 http://www.firebirdnews.org/?p=6953

T o proteger su conexión Creo que la mejor apuesta es túnel SSL/SSH (que puede ser un opnvpn) con opción de alta compresión http://mapopa.blogspot.com/2010/11/securing-firebird-using-ssh-tunnel.html

-2

kbmMW CodeGear Edition es gratuita, pero sin fuente. Se puede usar para aplicaciones comerciales. Descárguelo después de registrarse en: https://portal.components4developers.com

En caso de que vea errores de certificado (no debería, pero sé que hemos oído que algunos realmente lo hacen), acéptelos e ignórelos. El sitio es válido a pesar del cert.error.

kbmMW CodeGear Edition contiene un subconjunto de kbmMW Professional Edition, pero es compatible con la siguiente base de datos de API de Delphi:

  • Borland Database Engine
  • dbexpress
  • kbmMemTable
  • SQLite3

Admite protocolos binarios, binarios sobre HTML, XML y SOAP en comunicación con el cliente s. Contiene todo lo que necesita incl.

  • unificado método personalizado a distancia invocación
  • unificada consulta de datos remoto, ejecutar y cambio de datos para resolver
  • base de datos unificada de manejo de metadatos y la creación (tablas, campos, índices, generadores/secuenciadores)
  • automática opcional proxying de solicitudes a otro servidor y resultados de proxy de regreso al solicitante original
  • soporte nativo XML DOM y SAX completo
  • soporte de maletín de datos completo como CSV o binario
  • datos
  • avanzado pero fácil de usar asistente para la creación de nuevos servicios de servidor de aplicaciones

Hay una advertencia sin embargo. La versión más nueva de kbmMW CodeGear Edition siempre solo admite la versión más nueva de Delphi. Todavía puede descargar versiones anteriores de CodeGear de kbmMW que coincidan con versiones anteriores de Delphi.

kbMMW Professional Edition y kbmMW Enterprise Edition no tienen tales limitaciones, y actualmente es compatible con D7, D2006, D2007, D2010, DXE, DXE2 junto con las contrapartes de Embarcadero C++.

mejores deseos Kim Madsen www.components4developers.com

+1

No veo cómo responderá esto a la pregunta –

0

Puede implementar paquetes TCP/IP de cifrado/descifrado directamente en el propio motor de pájaro de fuego. Personalmente, descargué el código fuente de Firebird 2.5 e inserté el código de tunelización segura directamente en su capa de comunicación de bajo nivel (la capa de socket INET). Ahora, el cifrado/descifrado se realiza directamente por el motor Firebird para cada paquete TCP/IP tanto en el servidor como en el lado del cliente (fbclient.dll). Luego no hay necesidad de volver a estructurar la aplicación cliente, excepto agregar una línea de código que proporcione la clave secreta que elija para cifrar la comunicación con fbclient.dll. La misma clave secreta debe declararse en el archivo firebird.conf de la instalación de su servidor. También implementé una solución de negociación de proxy en fbclient.dll para permitir que los paquetes TCP/IP pasen a través de cualquier servidor proxy (como Microsoft ISA Server, por ejemplo). Para nosotros, esta arquitectura funciona desde hace más de un año en un sistema de producción real.

Cuestiones relacionadas