[Win/Web]Webservice kiezen of niet?

Pagina: 1
Acties:

  • edeboeck
  • Registratie: Maart 2005
  • Laatst online: 02-02 23:03

edeboeck

mie noow noooothing ...

Topicstarter
Huidige situatie:
  1. Lokal app (VB.Net) met Access-db (bezoekersbeheer 10.000+ records)
  2. Website (ASP.Net) met Access-db (inschrijvingen nieuwsbrief ... onbekend # records ... wschl enkele honderden tot paar duizend)
Doel:
De offline en online db op één of andere manier met elkaar verbinden.

Probleem: hoe?
Enkele mogelijkheden:
  1. Enkel online db gebruiken, ook voor de offline app
    • Voordeel: één enkele db
    • Nadeel: inladen vd gegevens in de offline app zal enorm traag gaan (is nu al duidelijk voelbaar), bij wegvallen internetconnectie werkt offline app niet meer
    • Vragen hierbij: best db online beschikbaar stellen via webservice? Gaat dit nog wel werkbaar zijn (o.a. wijzigingen van gegevens vanuit offline app) ?
  2. 2 dbs: 1 online en 1 off-line
    • Voordeel: wegvallen internetconnectie geen issue meer, inladen van de gegevens zal vlotter verlopen
    • Nadeel: synchronisatie tussen de 2 db's!
    • Vragen hierbij: Geen flauw idee hoe we vlot die sync kunnen uitvoeren
  3. Online db met offline een "cache copie"
    • Voordeel: wegvallen internetconnectie geen issue meer, inladen van de gegevens zal vlotter verlopen
    • Nadeel: synchronisatie tussen de 2 db's!
    • Vragen hierbij: Geen flauw idee hoe we vlot die sync kunnen uitvoeren
Zoals je ziet botsen we bij de laatste 2 scenario's op dezelfde problemen |:( , maar geven ze wel de oplossing voor de nadelen van het eerste scenario.

We weten wel dat Access-dbs niet echt ideaal zijn en plannen dan ook overstap naar SQL Server Express ("blokkerende" factor is momenteel de offline app daarvoor wegens setup van de pc waarop het draait ... we verwachten wel dat dit opgelost kan worden).

Iemand ervaring met zulke situatie? Tips uit de praktijk? Maakt het gebruik van SQL Server Express deze situatie eenvoudiger?

Alvast bedankt!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 11-02 08:33
Je zou een versie-nummer kunnen bijhouden op de online DB. Iedere keer als de client dan verbinding maakt geeft hij het versie-nummer door van de kopie die hij als laatst gedownload heeft. De server makt dan een lijst met veranderingen tussen die twee versie-nummers en de client voert die veranderingen uit op zijn offline DB. Andersom natuurlijk ook: de client geeft alle veranderingen door sinds de laatste synchronisatie aan de server. Wel opletten als een record zowel op de server als client veranderd is (of als een record verwijderd wordt op de client en aangepast door een andere client, wie heeft er dan voorrang? of een record wodt aangepast op de client maar is intussen verwijderd op de server etc) :) Door alleen veranderingen door te sturen verstuur je minder data en gaat het synchroniseren als het goed is sneller :)

  • lier
  • Registratie: Januari 2004
  • Laatst online: 19:12

lier

MikroTik nerd

Je kan kiezen voor een offline oplossing.

De synchronizatie is inderdaad het probleem...
Je kan heel eenvoudig de offline mutaties markeren voor synchronisatie. Deze kan je op basis van bijvoorbeeld een mutatiedatum wel of niet synchroniseren. Maar eerst zal je moeten beginnen het proces in kaart te brengen...

Denk hierbij aan:
Zijn er meerdere gelijktijdige mutaties mogelijk ?
Worden mutaties online en offline uitgevoerd ?
Enz.

De synchronisatie kan je bijvoorbeeld uitvoeren door een webservice aan te bieden waarmee je communicatie tussen de online en offline databases uitvoert.

Eerst het probleem, dan de oplossing