Implementazione del server CalDav e invio di iCals in giro

3

Devo implementare un'app Web di pianificazione simile a Google Calendar. Uno dei requisiti è la sincronizzazione con altre applicazioni di pianificazione, come Google Calendar, Microsoft Exchange, Office 365 e IBM Lotus.

Sono giunto alla conclusione che ci sono fondamentalmente due modi per farlo:

  1. Implementazione di un server CalDav completo ( RFC4791 )
  2. Aggiunta di un server di posta alla mia applicazione, che consente di inviare e ricevere e-mail con allegati iCal. Ad ogni modifica di un evento, il server invierà un'altra email a tutti i partecipanti.

Ci sono molte domande che mi vengono in mente e apprezzerei davvero un commento di chiunque abbia esperienza con il lavoro con CalDav o lo sviluppo di applicazioni di calendario.

  1. La seconda via (l'invio di file iCal in giro) è una sostituzione relativamente buona per un server CalDav completo?
  2. Quali sono i pro e i contro del primo e del secondo approccio?
  3. Qual è in genere un modo preferito per sincronizzare vari client di pianificazione?
  4. Quale richiede uno sforzo maggiore?

Grazie in anticipo.

    
posta Adam Libuša 07.04.2018 - 13:19
fonte

1 risposta

4

Questo è difficile, ma ...

In breve tempo CalDav non è uno standard ben supportato. Ognuno aggiunge i propri piccoli bit qua e là e può davvero renderlo un incubo da utilizzare come punto di integrazione.

iCal è meglio supportato nella maggior parte dei prodotti, ma non in tutti. D'altra parte, in genere è possibile avere un intero calendario in un file iCal e semplicemente serverarlo senza doverlo spedire in giro.

  1. Non c'è la stessa cosa, ospitare un file iCal generato può essere un buon sostituto per le parti di CalDav che stai provando ad usare. Ma i file iCal ospitati saranno probabilmente solo di sola lettura. (ma così sarebbero i file spediti)

  2. Vedi sopra. CalDav è fantastico se riesci a controllare tutti i fini, ma è orribile se devi supportare una lista sconosciuta o crescente di applicazioni. I file iCal per ogni appuntamento saranno un sacco di e-mail. Soprattutto se usi la proposta e cambi la programmazione (dove una persona sceglie una volta che tutti sembrano liberi e quindi tutti possono rifiutare e riprogrammare fino a quando non viene trovata una buona finestra temporale). Ospitare un iCal per calendario potrebbe essere migliore ma sarebbe di sola lettura. Sebbene la maggior parte delle applicazioni possa supportarlo.

  3. Una telefonata. Sul serio. Nessuno là fuori ha ottenuto questo corretto, mai! Quel che è peggio è che ognuno usa i calendari in modo diverso, anche nella stessa organizzazione. Il tuo tentativo di imporre l'ordine in cui nessun ordine è mai esistito prima. Molte persone hanno provato e fallito, specialmente quando hanno permesso a molti clienti. La tua migliore scommessa è semplicemente dire all'utente ciò che è su un calendario e fargli capire come aggiungerlo al loro PIM.

  4. Entrambi saranno abbastanza cattivi. CalDav è uno sforzo iniziale più ampio, ma entrambi avranno enormi costi di supporto. Sarei necessario per un addetto al call center dedicato prima di raggiungere 100 utenti finali.

I calendari sono cose divertenti, diverse persone li usano in modo diverso.

Ad esempio, ho un incontro domani alle 11:30. Ho inserito l'incontro dalle 11:30 alle 2:30 e poi due "incontri" dalle 11:00 alle 11:30 e dalle 2:30 alle 3:00 per i viaggi. Inoltre ho un incontro giovedì alle 11:00, che non ho tempo di viaggiare, e uno alle 2:00, per il quale non ho tempo di viaggiare. Venerdì alle 17.00 ho un "incontro" di 6 ore bloccato per assicurarmi di fare qualcosa per la famiglia.

Questo funziona per me. Aiuta i miei clienti a vedere le informazioni sulla disponibilità in un modo che è significativo per loro, aiuta mia moglie a vedere quando programmare cose come gli appuntamenti del dottore per i bambini e mi aiuta a pianificare il mio lavoro intorno a ciò che devo fare. Tuttavia, per il prossimo ragazzo questo potrebbe essere un sistema orribile.

Inoltre ci sono promemoria, avvisi, indicazioni sulla disponibilità, allegati, geo-localizzazione e prenotazioni di camere che devono essere tutti tenute in conto, e sono tutte contabilizzate in modo diverso in sistemi diversi, e persino nello stesso sistema.

Ciò che il tuo tentativo di fare (sincronizzare molti calendari di sistemi diversi) è uno di quei compiti che potrebbero non essere mai fattibili a causa dell'elemento umano. Ma se riesci ad approfondire ciò che vogliono i tuoi utenti finali e rendere possibile la loro distribuzione rimanendo generalmente fuori dal modo in cui vogliono utilizzare i loro strumenti, potresti avere un ottimo prodotto.

    
risposta data 09.04.2018 - 22:22
fonte

Leggi altre domande sui tag