Ik ben bezig met de ontwikkeling van een uitbreiding op een bestaand pakket.
Het bestaande pakket is gebouwd in Access en daarbij gebruik maakend van een Access database.
Het systeem is wel multi user opgezet en locks bij eventuele wijzigingen.
Synchronisatie
Nu moet ik de applicatie uitbreiden met een web kant waarop bestellingen geplaatst kunnen worden. Echter vraag ik me nu af wat de beste manier is voor communicatie/synchronisatie en versie beheer.
Zelf hadden we gedacht aan een website welke is aangesloten op een MSSQL server, deze is vervolgens verbonden met een Webservice waar de gegevens van af te lezen zijn, echter kunnen gebruikers aangemaakt worden vanaf de Access applicatie dus kunnen deze ook via de webservice worden ingevoerd.
Op de client klant (waar ook de Access applicatie staat) willen zouden we eventueel een client applicatie kunnen installeren, welke een notify krijgt (dmv observer patroon) als er een bestelling geplaatst is.
Zover we nu hadden gekeken zouden deze bestellingen dan in een tussen database komen, waarbij de Access applicatie het dan kan uitlezen en verwerken. Ook kan de Access applicatie gebruikers die zijn aangemaakt in deze database plaatsen zodat deze ook weer door de client verzonden worden.
Hiermee wordt voorkomen dat mocht het internet er uit vallen alle gebruikers toch gesynchroniseerd worden als de verbinding wel beschikbaar is.
Versie beheer
Daarnaast zaten we er mee hoe kunnen we versies goed onderhouden, dat als je een nieuwe versie beschikbaar maakt, met database veranderingen, hoe kan je dan zorgen dat de gegevens altijd weg geschreven kunnen worden.
Daarbij hadden we gedacht om voor elk bedrijf 1 database aan te maken met deze op de versie zoals zijn client applicatie werkt. Wanneer de client upgrade, wordt d.m.v. hibernate de gehele database geconvert naar de nieuwe versie.
Samengevat
Client
- 1 Acces database
- +1 Access applicaties
- 1 Tussen database
- 1 Client listener
Server
- 1 Webservice per versie
- 1+ Database (1 per bedrijf)
- 1 Website per versie
De vraag
Echter zijn we benieuwd naar andere ideen, want we brainstormen hier met verschillende medewerkers over maar alles heeft voor en nadelen en hebben we nog niet echt een manier gevonden waarop dit goed kan gebeuren?
Het bestaande pakket is gebouwd in Access en daarbij gebruik maakend van een Access database.
Het systeem is wel multi user opgezet en locks bij eventuele wijzigingen.
Synchronisatie
Nu moet ik de applicatie uitbreiden met een web kant waarop bestellingen geplaatst kunnen worden. Echter vraag ik me nu af wat de beste manier is voor communicatie/synchronisatie en versie beheer.
Zelf hadden we gedacht aan een website welke is aangesloten op een MSSQL server, deze is vervolgens verbonden met een Webservice waar de gegevens van af te lezen zijn, echter kunnen gebruikers aangemaakt worden vanaf de Access applicatie dus kunnen deze ook via de webservice worden ingevoerd.
Op de client klant (waar ook de Access applicatie staat) willen zouden we eventueel een client applicatie kunnen installeren, welke een notify krijgt (dmv observer patroon) als er een bestelling geplaatst is.
Zover we nu hadden gekeken zouden deze bestellingen dan in een tussen database komen, waarbij de Access applicatie het dan kan uitlezen en verwerken. Ook kan de Access applicatie gebruikers die zijn aangemaakt in deze database plaatsen zodat deze ook weer door de client verzonden worden.
Hiermee wordt voorkomen dat mocht het internet er uit vallen alle gebruikers toch gesynchroniseerd worden als de verbinding wel beschikbaar is.
Versie beheer
Daarnaast zaten we er mee hoe kunnen we versies goed onderhouden, dat als je een nieuwe versie beschikbaar maakt, met database veranderingen, hoe kan je dan zorgen dat de gegevens altijd weg geschreven kunnen worden.
Daarbij hadden we gedacht om voor elk bedrijf 1 database aan te maken met deze op de versie zoals zijn client applicatie werkt. Wanneer de client upgrade, wordt d.m.v. hibernate de gehele database geconvert naar de nieuwe versie.
Samengevat
Client
- 1 Acces database
- +1 Access applicaties
- 1 Tussen database
- 1 Client listener
Server
- 1 Webservice per versie
- 1+ Database (1 per bedrijf)
- 1 Website per versie
De vraag
Echter zijn we benieuwd naar andere ideen, want we brainstormen hier met verschillende medewerkers over maar alles heeft voor en nadelen en hebben we nog niet echt een manier gevonden waarop dit goed kan gebeuren?