Pregunta

Me gustaría saber cómo puedo conectar oficinas remotas a una base de datos central.

Aquí está el panorama:

Oficina con varios usuarios trabajando en una aplicación de Windows de escritorio

Esta aplicación recibe bien de los datos de la base de datos en el servidor de la oficina.

Ahora 1 o más alejado (oficinas, tiendas, lo que sea) necesidad de tener acceso a los mismos datos.

¿Cómo podemos lograr esto?

A veces necesitamos tiempo real

A veces no es tan importante.

¿Fue útil?

Solución

DataSnap o RemObjects para envolver y exponer a su base de datos existente como un servidor de etapa intermedia, entonces los clientes de escritura en contra de ella. Para conectar a esta Me gustaría sugerir fuertemente una conexión VPN entre sus mandos a distancia y su nivel medio. De esta manera usted no tiene que preocuparse tanto sobre la seguridad de las comunicaciones por enlace de datos ... a menos que los que está transfiriendo datos es de bajo riesgo (no vale nada).

Usted tendrá que llegar a ser muy familiarizados con TClientDataset . Se le da la capacidad de operar los sistemas remotos sin tener acceso a la base de datos maestra, así como reducir la cantidad de tráfico que se envía a través del cable (se puede filtrar y clasificar de forma local).

Actualizar Gran parte de la actuación se basará en la velocidad de su servidor de servicios de fondo y el tipo y la cantidad de datos que su transferencia. Es lo suficientemente rápido para la mayoría de los propósitos, y si usted se encuentra el tener que enviar gran cantidad de datos por el tubo, he encontrado que vale la pena hacer un poco de almacenamiento en caché del cliente. Mediante la adición de un activador de actualización para establecer una marca de tiempo actualizada en cada registro, puede actualizar la memoria caché sólo por la solicitud de registros más reciente que el último que ha recibido.

Otros consejos

Debido a la seguridad que necesita algún tipo de capa intermedia entre el cliente y la base de datos. Es muy peligroso exponer a la base de datos directamente a Internet. Una gran cantidad de aplicaciones utilizan SOAP en este escenario, ya que es ampliamente adoptado. Haces un servicio SOAP, define el protocolo y las funciones y el cliente luego se llama a eso. Otras opciones son, que realice un servicio / servidor basada en REST que hace lo mismo, o incluso hacer una capa TCP / IP sin formato. Por lo que las opciones son:

  1. servicio SOAP como la capa media
  2. REST HTTP capa media basado
  3. XML RPC capa intermedia basada
  4. TCP puro / capa media IP
  5. conexión VPN para clientes

Si hacer una conexión VPN desde el cliente entonces usted puede tener una base de datos de acceso directo, pero esto es probablemente a acward para los clientes especialmente si no son de su compañía. Yo personalmente probablemente vaya con 2 o 3, pero sólo porque no hacer como SOAP para tanto. Más si se le pide que prefieren jabón supongo.

EDIT:

Desde que veo estas son las oficinas remotas, se puede considerar una conexión VPN permanente. La mayoría de los routers en estos días son capaces de aquellos. A continuación, la aplicación puede funcionar de la misma manera remota como lo hace necesitas cigarros.

Hay 3 posibles rutas de solución:

  1. Escribir una aplicación de escritorio normal y publicar esta aplicación con Terminal Services (Servicios de Escritorio remoto) o Citrix XenApp (o lo convierten en base de la tela)
  2. (re) diseñar su aplicación para trabajar sobre (posible lento y / o no fiable) de conexión WAN)
  3. Implementar una especie de replicación de bases e implementar una base de datos independiente (servidor) en cada oficina

Uno de los criterios para elegir qué adoptar es la velocidad de conexión, su fiabilidad y costes entre oficinas remotas y el servidor central. Si la velocidad es adecuada, la fiabilidad está bien y los costos son planas VPN es el camino a seguir. No va a requerir cambios en su aplicación (si no está escrito para descargar toda la base de datos ...) También se encargará de la autenticación y el cifrado de los datos. Si VPN no es una opción, puede utilizar una de las técnicas remotas en la respuesta Runner, pero por lo general requiere rediseñar (y volver a escribir) la aplicación, ese modelo es un poco diferente que una aplicación cliente / servidor "clásico". HTTP (S) los basados ??por lo general no tienen problemas con los servidores de seguridad, pero en general tienen que ser sin estado y no admiten devoluciones de llamada, las necesidades de seguridad de generación de certificados y el despliegue. Otro de trabajo con otros protocolos (es decir DCOM, dbexpress DataSnap) son más flexibles, pero puede ser más complejo de configurar y / o asegurar correctamente. Si la conexión no es lo suficientemente rápido y fiable, o demasiado caro, es posible que necesite cachés locales sincronizados con el servidor remoto correctamente -. Y que puede no ser fácil de lograr, en función de las necesidades de la aplicación

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top