Question

Je voudrais savoir comment je peux connecter des bureaux distants à une base de données centrale.

Voici le scénario:

Bureau avec plusieurs utilisateurs travaillant sur une application de bureau Windows

Cette application obtenir des données de la base de données à partir du serveur de bureau.

1 ou plus éloignés (bureaux, magasins, peu importe) besoin d'avoir accès aux mêmes données.

Comment peut-on y parvenir?

Parfois, nous avons besoin de temps réel

Parfois, il est pas si important.

Était-ce utile?

La solution

Vous pouvez facilement utiliser DataSnap ou TClientDataset . Il vous donne la possibilité de faire fonctionner vos systèmes distants sans avoir accès à la base de données maître, ainsi que de réduire la quantité de trafic qui est envoyé à travers le fil (vous pouvez filtrer et trier localement).

Mise à jour Une grande partie de la performance sera basée sur la vitesse de votre serveur back-end et le type et la quantité de données que votre transfert. Il est assez rapide pour la plupart des cas, et si vous vous trouvez avoir à envoyer beaucoup de données dans le tuyau, je l'ai trouvé la peine de faire une mise en cache du client. En ajoutant un déclencheur de mise à jour pour définir une estampille temporelle mise à jour sur chaque enregistrement, vous pouvez mettre à jour votre cache en ne demandant des documents plus récents que le dernier vous avez reçu.

Autres conseils

En raison de la sécurité dont vous avez besoin d'une sorte de couche intermédiaire entre le client et la base de données. Il est très dangereux d'exposer la base de données directement sur Internet. Beaucoup d'applications utilisent SOAP dans ce scénario, car il est largement adopté. Vous faites un service SOAP, définir le protocole et les fonctions et le client appelle ensuite cela. D'autres options sont, que vous faites un service REST / serveur qui fait la même chose, ou même faire une couche TCP / IP ordinaire. Alors vous avez des options sont:

  1. service SOAP comme la couche intermédiaire
  2. REST couche intermédiaire à base de HTTP
  3. couche intermédiaire à base de XML RPC
  4. couche intermédiaire TCP / IP pur
  5. connexion VPN pour les clients

Si vous établissez une connexion VPN du client, vous pouvez alors avoir un accès directe à la base, mais cela est probablement acward pour les clients notamment s'ils ne sont pas de votre entreprise. Je personaly probablement aller avec 2 ou 3, mais parce que je ne aime pas SOAP beaucoup. La plupart, si demandé préféreraient guess SOAP I.

EDIT:

Depuis que je vois ce sont des bureaux distants, vous pouvez envisager une connexion VPN permanente. La plupart des routeurs ces jours-ci sont capables de ceux-ci. Ensuite, votre application peut fonctionner de la même manière à distance comme il le fait localy.

Il existe 3 itinéraires possibles de solution:

  1. Ecrire une application de bureau normal et publier cette application avec Terminal Services (services Bureau à distance) ou Citrix XenApp (ou en faire la base Web)
  2. (Re) concevoir votre application pour travailler plus (possible lent et / ou peu fiables) connexion WAN)
  3. Mettre en œuvre une sorte de réplication de base de données et mettre en œuvre une base de données séparée (serveur) à chaque bureau

L'un des critères pour choisir ce qu'il faut adopter est votre vitesse de connexion, la fiabilité et le coût entre les bureaux distants et le serveur central. Si la vitesse est suffisante, la fiabilité est ok et les coûts sont VPN plat est le chemin à parcourir. Il ne nécessite pas des modifications à votre demande (si elle n'est pas écrit pour télécharger la base de données complète ...) Il se chargera également l'authentification et le cryptage de vos données. Si VPN est pas un choix, vous pouvez utiliser l'une des techniques à distance dans la réponse Runner, mais ils ont besoin généralement de redessiner (et réécrire) l'application, ce modèle est un peu différent d'une application client / serveur « classique ». HTTP (S) celles basées ont généralement aucun problème avec les pare-feu, mais le plus souvent besoin d'être apatride et ne supporte pas les callbacks, la sécurité a besoin de génération de certificats et de déploiement. Autre travail avec d'autres protocoles (i.e. DCOM, dbExpress Datasnap) sont plus souples, mais peut être plus complexe à installer et / ou sécuriser correctement. Si la connexion est rapide et pas assez fiable, ou trop cher, vous devrez peut-être des caches locaux synchronisés avec le serveur distant correctement -. Et que peut-être pas facile à réaliser, en fonction des besoins de l'application

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top