Situatie:
Enkele duizenden gebruikers updaten hun exchange agenda bijna dagelijks vanuit een bronsysteem door een bestand (ical) te importeren. Het bronsysteem houd geen wijzigingen bij, dus elke dag worden handmatig alle geïmporteerde activiteiten verwijderd en opnieuw geïmporteerd. Naast de appointments die uit het bronsysteem komen, voert de gebruiker ook appointments/meetings in via exchange zelf, die worden niet gesynchroniseerd, is ook niet nodig.
EDIT: Het gaat nu om Exchange 2007, 2010 staat ook ergens op de planning
Wens:
Dit moet geautomatiseerd kunnen :-) Het idee is dat iemand zich abonneert via een webpagina. Achter die webpagina zit een service die elke nacht een batch uitvoert om synchroniseren.
Getallen:
20.000+ gebruikers op termijn
piek 100 appointments per gebruiker
(4 periodes van 10 weken, alleen toekomstige appointments worden gesynchroniseerd, dus naar mate de periode vordert drogen de appointments op)
Gezien het ontbreken van incrementele update mogelijkheden, kijk ik nog naar een soort tussen database om alsnog de verschillen bij te houden en zo exchange wat minder vaak lastig te vallen. Echter zal op de eerste dag van een periode alsnog alle initiële afspraken overgezet moeten worden, dus de piek veranderd niet.
Nu ben ik benieuwd naar jullie advies hoe ik die gegevens het beste in exchange ga krijgen, gelet op beveiliging en performance.
Optie 1.
Via EWS en een impersonate account (die dus alles kan en mag) de appointments in alle mailboxen drukken. (eenvoudig te bouwen, maar beveiliging/bugs is een groot risico)
Optie 2.
Via EWS en een delegate account die alleen toegang heeft tot de users calendar. (indien delegates zijn gemaakt is het eenvoudig te bouwen, iets veiliger dan optie 1, maar nog steeds risico op verwijderen appointments die buiten het bronsysteem om zijn gemaakt)
Optie 3.
I.p.v. Appointments -> meetings maken, plaatsen in een soort administrator account calendar en een meeting reuest sturen naar elke gebruiker. (gebruiker wordt gek om elke dag tientallen items te accepteren, wel heel veilig)
Optie 4.
Het liefst zou ik een delegate achtige constructie maken waar bij de applicatie gebruiker alleen nieuwe appointments kan aanmaken in de gebruiker zijn mailbox en daarnaast alleen door het applicatie account eerder gemaakt afspraken mag verwijderen. Zodat afspraken van de gebruiker zelf ongemoeid blijven.
Enkele duizenden gebruikers updaten hun exchange agenda bijna dagelijks vanuit een bronsysteem door een bestand (ical) te importeren. Het bronsysteem houd geen wijzigingen bij, dus elke dag worden handmatig alle geïmporteerde activiteiten verwijderd en opnieuw geïmporteerd. Naast de appointments die uit het bronsysteem komen, voert de gebruiker ook appointments/meetings in via exchange zelf, die worden niet gesynchroniseerd, is ook niet nodig.
EDIT: Het gaat nu om Exchange 2007, 2010 staat ook ergens op de planning
Wens:
Dit moet geautomatiseerd kunnen :-) Het idee is dat iemand zich abonneert via een webpagina. Achter die webpagina zit een service die elke nacht een batch uitvoert om synchroniseren.
Getallen:
20.000+ gebruikers op termijn
piek 100 appointments per gebruiker
(4 periodes van 10 weken, alleen toekomstige appointments worden gesynchroniseerd, dus naar mate de periode vordert drogen de appointments op)
Gezien het ontbreken van incrementele update mogelijkheden, kijk ik nog naar een soort tussen database om alsnog de verschillen bij te houden en zo exchange wat minder vaak lastig te vallen. Echter zal op de eerste dag van een periode alsnog alle initiële afspraken overgezet moeten worden, dus de piek veranderd niet.
Nu ben ik benieuwd naar jullie advies hoe ik die gegevens het beste in exchange ga krijgen, gelet op beveiliging en performance.
Optie 1.
Via EWS en een impersonate account (die dus alles kan en mag) de appointments in alle mailboxen drukken. (eenvoudig te bouwen, maar beveiliging/bugs is een groot risico)
Optie 2.
Via EWS en een delegate account die alleen toegang heeft tot de users calendar. (indien delegates zijn gemaakt is het eenvoudig te bouwen, iets veiliger dan optie 1, maar nog steeds risico op verwijderen appointments die buiten het bronsysteem om zijn gemaakt)
Optie 3.
I.p.v. Appointments -> meetings maken, plaatsen in een soort administrator account calendar en een meeting reuest sturen naar elke gebruiker. (gebruiker wordt gek om elke dag tientallen items te accepteren, wel heel veilig)
Optie 4.
Het liefst zou ik een delegate achtige constructie maken waar bij de applicatie gebruiker alleen nieuwe appointments kan aanmaken in de gebruiker zijn mailbox en daarnaast alleen door het applicatie account eerder gemaakt afspraken mag verwijderen. Zodat afspraken van de gebruiker zelf ongemoeid blijven.
Can`t live without the mods