Bonjour,
SVP. comment je peux réaliser une base de données distribuée avec delphi7 en utilisant Interbase??
et merci
Bonjour,
SVP. comment je peux réaliser une base de données distribuée avec delphi7 en utilisant Interbase??
et merci
"distribué" lol, c'est bien une terminologie scolaire ça !
Souvent très mal utilisé !
C'est bien au sens "répartie" ou "clusterisation" et non pas juste le fait de mettre la DB à disposition sur un réseau !
Si Clusterisation ou Répartition des Charges (dans le cas où le terme "distribué" aurait le sens de "distributed")
Déjà tu dois maîtriser une simple connexion Clients\Serveur pour ton Interbase avec un serveur dédié (tu as déjà eu du mal, je crois)
Ensuite, il faut que tu explores la notion de replication (via IB-Replicator) permettant d'avoir sur plusieurs serveurs la même base de données dupliquées puis réparties !
Enfin, tout dépend l'architecture que tu souhaite par la suite !
Avec Interbase, ce genre de solution sera payante !
Pour résumé, ce n'est pas à la portée d'un Étudiant qui débute !
Même pour un professionnel, ce n'est pas non plus quelque chose d'aisé, c'est plus le métier d'administrateur de base de données de fournir un frontal et un répartiteur transparent pour les clients (le programme du développeur)
Par exemple, mon ancien employeur a fait monter ce type d'architecture (Frontal Apache + MySQL Cluster) par l'Hébergeur lui-même tout en engageant un admin linux en interne !
Une DB distribué ou répartie, c'est pour des mastodontes comme Google (BigTable), FaceBook (Cassandra + MySQL) ...
D'ailleurs BigTable est utilisable !
Si juste ... ton cas à mon avis,
C'est le mode par défaut de fonctionnement d'Interbase, un serveur installé, IBExperts te facilitera sa configuration, et des clients ...
le client sera plus ou moins facile à installer selon si tu utilises IBX, DBExpress, UIB ...
Désolée !!!!
pas une base distribuée
je veux réaliser une application delphi pour la gestion d'une base de données distribuée en 2 sites par exemple où la base est crée sous Interbase
qu'est ce je fais??
Tu as donc 1 ou 2 Serveur InterBase ?
Je parlais de Serveur physique et logique, un ordinateur pour chaque serveur IB ! par exemple un à Lyon, l'autre à Paris ...
Tes deux "sites" devront-ils :
- avoir les mêmes données copiées sur plusieurs machines, c'est bien une base de donnée répartie ou distribuée !
- avoir les mêmes données dans un même système, là c'est juste deux clients sur le même serveur
- avoir leurs propres données bien distinctes, là c'est juste deux installations, tu veux peut-être mettre en place un système d'import\export avec consolidation ?
- avoir leurs propres données dans un même système, là c'est juste deux clients sur le même serveur hébergeant deux bases de données !
Pour la Base de données répartie, tu n'as théoriquement pas de programmation Delphi à faire, le client n'a pas à savoir comme fonctionne son SGBD, c'est l'architecture de load-balancing qui dirige le client vers un des deux serveurs !
J'ignore ce que propose InterBase, un article pour commencer : Bidirectional replication for InterBase® and Firebird
Après cela peut être au niveau de l'OS pour la gestion du Cluster mais cela doit être très cher !
Tu veux peut-être écrire ton propre répartiteur de charge comme dans ce sujet Delphi 5 et threads en nombre
C'est à dire, un serveur en Delphi qui reçoit les requêtes depuis des Clients TCP\IP Interbase et les dispatchent vers 2 serveurs IB ?
Cela me semble fort complexe ton histoire !
Merci pour votre réponse Mr.ShaiLeTroll
vraiment, je crois que moi meme j'ai pas bien compris
mais voilà ce site que je trouve et je veux réaliser le projet donné avec delphi et interbase
http://www.cs.purdue.edu/homes/clift...roject1.sxhtml
C'est bien de la base de donnée distribuée, je suis nul en anglais, si je comprend bien le "set up three communicating database servers"
En fait, chaque serveur héberge une table, et donc il faut être capable de générer les requêtes qui seront executés sur chaque serveur, d'en récupérer les valeurs et d'en fournir le résultat tout en conservant les transactions (oh ! ça c'est chaud devoir gérer des transactions sur deux serveurs !!!)
le SQL est un template, il y a juste un transfert de séries de valeur, cela simplifie, pas de parsage, juste une série d'action prédéfnie
C'est une vision simpliste, c'est un raccourci pour faciliter la réalisation de l'exercice
Semble, que l'étape 2 soit les jointures (ça doit être drôle ça)
Cet exercice permet de mettre en place des mécansimes proche d'un SGBD réparti, mais la forte orientation modèle fausse la réflexion, c'est bien plus complexe que cela !
l'article, il conseille l'utilisation de "java RMI" en Delphi le plus proche serait soir le DCOM de Microsoft ou
DataSnap et même les Remote Objects en Delphi Prism
java RMI, ça doit être pour gérer les connexions entre le frontal et les serveurs !
Je suppose que tu as Delphi 7 Perso !
DataSnap c'est uniquement la version Entreprise !
DataSnap permet d'exposer des objets métiers dans une architecture multi-tiers qui pourrait "fédérer" des SGBD ou source de données hétérogène au sein d'un même système !
Ce TP est une couche plus "système" que DataSnap, c'est du sérieux comme projet, je pense que les élèves ont eu les cours nécessaires !
C'est bien supérieur au cours et TP que j'ai eu !
C'est le genre d'école qui t'apprend à coder ton propre SGBD au lieu d'utiliser un déjà existant !
Cela conseille aussi la lecture d'un bouquin de 666 pages : "Principles of Distributed Database Systems (2nd Edition)"
Voilà, tu as de la lecture !
C'est un sacré boulot !
Tu devrais faire valider par ton professeur les "défis" que tu te lances, tu vises peut-être un peu trop haut !
Commence par le Client\Server classique, les transactions et les accès concurrentiel !
ok,
voilà la traduction en français
Le but de ce projet est de concevoir une base de données distribuée. On va implémenter des composants et des protocoles présentés en cours. La première partie de ce projet sera tout simplement d’installer trois serveurs de base de données. Chaque serveur doit être capable de répondre aux requêtes client. Ces requêtes seront incluses dans une transaction. Une transaction peut utiliser plusieurs tables situant dans de multiples sites.
c'est quoi DataSnap???
j'avais delphi 7 entreprise
pour le livre, merci , je l'ai eu
j'essaie de le faire mais il est complexe à réaliser
pouvez vous me donner un exemple client/serveur gérant une base de données locale réalisé sous délphi 7 ??
ou bien client/serveur classique??
Lorsqu'un mot un souligné, c'est un lien comme DataSnap, tu peux cliquer dessus et avoir ta réponse !
Je te confirme, c'est un projet complexe, tu dois avoir une parfaite maitrise des transactions, des accès concurrentiels et des éventuelles réconciliations en Client\Serveur !
Donc Plusieurs Clients sur un SEUL serveur !
Une fois cela bien acquis ces mécanismes , tu pourras passer à la création de ton répartiteur de charge qui distribuera les SQL vers le serveur approprié qui devra gérer Plusieurs Clients sur PLUSIEURS Serveurs !
Il y a un algo de Routage, en fonction du nom de la table, tu auras le nom du serveur, c'est très simpliste !
Le Parsage se limitant à 5 SQL types (tu dois être à l'aise avec la manipulation de Chaine, TStringList, fonction type Explode)
La partie sportive c'est la gestion des Transactions débuter sur une Table A par le INSERT, continuer sur une Table B dans le UPDATE !
Sachant que Table A et Table B sont sur deux serveurs différents, c'est bien ton programme qui va devoir faire le ROLLBACK ou COMMIT sur tous les serveurs ayant débuter une transaction !
Pour les Tutoriels, tu as une page dédiée Interbase/Firebird, tu n'as que l’embarras du choix !
D'accord
je vous remercie beaucoup pour vos efforts
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager