Situatie
Er is momenteel een applicatie geschreven in .NET die gebruik maakt van een SQL server database. Deze database bevat vaste systeem informatie en variabele informatie toegevoegd door gebruikers. Deze opstelling kan beschouwd worden als "online".
Dezelfde applicatie is ook beschikbaar in combinatie met een Acccess database. Deze database bevat dezelfde informatie (schema's en data) als de SQL server database. Echter, deze database wordt alleen gebruikt om de variabele informatie te kunnen muteren. (De systeem informatie wordt alleen gebruikt.) Deze opstelling kan beschouwd worden als "offline".
Eens in de zoveel tijd kunnen er wijzigingen plaatsvinden aan de schema's van zowel de systeem als variabele tabellen. En eens in de zoveel tijd kunnen er wijzingen plaatsvinden in de informatie van de systeem tabellen. Dit gebeurt in de "online" opstelling en deze wijzigingen moeten dus gesynchroniseerd worden met de "offline" opstelling.
Wat wil ik?
Mijn eerste idee is een synchronisatie laag (webservice, applicatie, dat is nu nog niet belangrijk) te maken die de schema's van de tabellen en de systeem informatie bijwerkt.
Dit heb ik al eens eerder gemaakt, en zou dus bestaan uit de volgende workflow:
- open connectie met de "online" database;
- bepaal wijzigingen door de tabel schema's in te lezen en de systeem informatie;
- sluit connectie met de "online" database;
- open connectie met de "offline" database;
- voer wijzingen door;
- sluit connectie met de "offline" database.
Wat is nu het probleem?
Op zich is zo'n laag wel te maken, maar dit gaat waarschijnlijk erg groot en complex worden en alvorens er wordt besloten om hiermee te beginnen, wil ik eerst mijn mogelijkheden onderzoeken.
Wat heb ik uitgezocht?
Gezocht op Tweakers forum en Google naar synchronisatie tussen databases. Helaas krijg ik veel topics over het volgende:
- O/R mapping/ Dirty/ Versioning
- Upsizing van Access naar SQL server
Dat wil ik dus niet. Ik zoek dus een patroon, richtlijn o.i.d. om het synchroniseren van tabel schema's en data tussen twee databases (ongeacht welke) te realiseren. (Als dit betekent dat ik dat dan stap-voor-stap voor elke tabel en kolom moet nalopen, dan mag dat ook gezegd worden
.)
Er is momenteel een applicatie geschreven in .NET die gebruik maakt van een SQL server database. Deze database bevat vaste systeem informatie en variabele informatie toegevoegd door gebruikers. Deze opstelling kan beschouwd worden als "online".
Dezelfde applicatie is ook beschikbaar in combinatie met een Acccess database. Deze database bevat dezelfde informatie (schema's en data) als de SQL server database. Echter, deze database wordt alleen gebruikt om de variabele informatie te kunnen muteren. (De systeem informatie wordt alleen gebruikt.) Deze opstelling kan beschouwd worden als "offline".
Eens in de zoveel tijd kunnen er wijzigingen plaatsvinden aan de schema's van zowel de systeem als variabele tabellen. En eens in de zoveel tijd kunnen er wijzingen plaatsvinden in de informatie van de systeem tabellen. Dit gebeurt in de "online" opstelling en deze wijzigingen moeten dus gesynchroniseerd worden met de "offline" opstelling.
Wat wil ik?
Mijn eerste idee is een synchronisatie laag (webservice, applicatie, dat is nu nog niet belangrijk) te maken die de schema's van de tabellen en de systeem informatie bijwerkt.
Dit heb ik al eens eerder gemaakt, en zou dus bestaan uit de volgende workflow:
- open connectie met de "online" database;
- bepaal wijzigingen door de tabel schema's in te lezen en de systeem informatie;
- sluit connectie met de "online" database;
- open connectie met de "offline" database;
- voer wijzingen door;
- sluit connectie met de "offline" database.
Wat is nu het probleem?
Op zich is zo'n laag wel te maken, maar dit gaat waarschijnlijk erg groot en complex worden en alvorens er wordt besloten om hiermee te beginnen, wil ik eerst mijn mogelijkheden onderzoeken.
Wat heb ik uitgezocht?
Gezocht op Tweakers forum en Google naar synchronisatie tussen databases. Helaas krijg ik veel topics over het volgende:
- O/R mapping/ Dirty/ Versioning
- Upsizing van Access naar SQL server
Dat wil ik dus niet. Ik zoek dus een patroon, richtlijn o.i.d. om het synchroniseren van tabel schema's en data tussen twee databases (ongeacht welke) te realiseren. (Als dit betekent dat ik dat dan stap-voor-stap voor elke tabel en kolom moet nalopen, dan mag dat ook gezegd worden