Architettura di progettazione e software per la webapp che si integra con pochi altri endpoint (Email Server, Jira, sistema CRM)

0

Nel mio prossimo progetto, ho bisogno di integrare una webapp con pochi altri endpoint. Il compito principale della webapp sarà una sorta di thin-client per il sistema JIRA interno per l'azienda. Inoltre, avrò bisogno di integrarmi con il server SMTP, qualche tipo di SMS Api (non ancora conosciuto) e webservice su SOAP. Dovrebbe essere veloce e affidabile.

L'utilizzo stimato sarà compreso tra 5 e 15 richieste JIRA simultanee (nuovo ticket, modifica esistente, commento), da 10 a 50 persone simultanee utilizzando Portal (vista).

Come per l'integrazione JIRA, ci sarà 2 tipi di integrazione:

  • programmato raramente
  • programmato spesso
  • su richiesta

L'integrazione programmata di un giorno sarà integrata una volta al giorno per la sincronizzazione dei vari valori del dizionario, così come alcuni dati dei clienti conservati in JIRA, tutti persistenti in dataabse.

D'altra parte, sarà quando vari utenti di webapp realizzeranno alcune attività di JIRA tramite webapp. Alcuni di essi aggiungono nuovi ticket, modificano esistenti, creano commenti e sono memorizzati nel database come "cache di jira".

Spesso l'integrazione prevede una sincronizzazione ogni pochi minuti per aggiornare i vari dati del ticket da JIRA a webapp come lo stato corrente, i commenti, i progressi, ecc. e la sincronizzazione con il sistema CRM per mantenere aggiornato l'elenco dei client. Quando verrà aggiunto un nuovo client, ci sarà una sincronizzazione aggiuntiva con SMTP e SMS Api, per inviare e-mail e sms al client. Tutto verrà mantenuto nel database.

Ho deciso di utilizzare Apache Camel per l'integrazione in quanto fornisce molti protocolli incorporati e un fantastico Java DSL Api.

Ho qualche dubbio / domanda se il mio apporach sarà valido e cosa potrebbe essere migliorato:

  • Sto pensando a un altro livello di integrazione e utilizzo il broker ActiveMQ all'interno di Camel. Dovrebbe darmi un modo più pulito di gestire la connessione, quindi una stretta integrazione tra due endpoint. Ma non è troppo sovraccarico? È un altro sistema che potrebbe fallire e sono preoccupato per il ritardo. Qualcuno ha provato l'integrazione Camel tra endpoint con e senza ActiveMQ?
  • Supponendo che deciderò di usare ActiveMQ, sarà possibile implementare un meccanismo easy retry? Dì che JIRA non funziona e mi piacerebbe provare a inviarti messaggi dopo un po 'di tempo.
  • Continuerò a infomermarlo prima di inviarlo a JIRA, webapp avrà l'ultima informazione "memorizzata nella cache" sul ticket nel database e quei dati verranno mostrati all'utente webapp. La mia preoccupazione è se questo può creare problemi quando qualcuno decide di modificare il ticket in JIRA e nel portale simultaneamente? C'è un caso speciale, quando i biglietti possono essere modificati fino a un certo stato. Ho letto che è possibile con alcune proprietà in JIRA, ma non sono sicuro se questo si applica a me (dovrebbe essere non modificabile solo per un utente)
  • La comunicazione dovrebbe essere al 100% richiesta / risposta asincrona, per ottenere il massimo delle prestazioni? La cosa più discutibile è se l'aggiunta e la modifica del problema debbano essere sincronizzati con la richiesta / risposta per fornire una risposta immediata all'utente webapp

Grazie per l'aiuto!

    
posta kamil 26.11.2014 - 11:34
fonte

0 risposte

Leggi altre domande sui tag