Panoramica
Per la società abc, i team sono separati in termini di applicazioni mission-critical e delle loro applicazioni estese. Ad esempio, customer xyz utilizza dati mission-critical, ma ci sono vincoli / flussi aziendali che non possono essere raggiunti con il solo sistema mission-critical. Per mantenere l'integrità dei dati (sistema mission-critical è il sistema di registrazione), i servizi Web sono stati creati per interagire con i dati mission-critical. Questi servizi Web inviano un'entità (oggetto business) rispetto al sistema mission-critical.
Dal lato mission-critical, c'è una dipendenza da alcuni strumenti di terze parti. Uno di questi strumenti accoda le chiamate al servizio Web in thread e ha la possibilità di rifiutare le chiamate al servizio web in attesa o nuove. Rifiuto che significa che i dati non sono stati inclusi nel sistema di destinazione. Sebbene non abbia ottenuto chiarimenti su tutti i criteri, vengono utilizzate le preoccupazioni tipiche, come i grandi set di dati, il traffico di rete o i blocchi del database.
Richiesta cliente
Come indicato sopra, l'applicazione estesa dovrebbe fornire funzionalità più in linea con i flussi di lavoro previsti. È stata effettuata una richiesta per modificare in blocco i dati dell'applicazione estesa, ad esempio il fornitore x è stato acquistato dal fornitore w in modo che tutte le transazioni correnti in corso debbano essere mappate / impostate sul nuovo fornitore. In questo caso, ci possono essere record 1 - n che devono essere modificati e ogni record non può esistere insieme come un'unica entità nel sistema mission-critical.
L'ultimo passaggio a questo processo sarebbe caricare i dati modificati nel sistema mission-critical, perché i sistemi esterni (contabilità, fornitori, ecc.) hanno l'obbligo di utilizzare solo i dati di quel sistema.
Note
C'è la possibilità di ottenere un servizio web personalizzato, ma ci sarebbe comunque un problema se lo strumento di terze parti decidesse di rifiutare la chiamata dopo che è stata determinata una chiamata al servizio web di successo.
Esistono processi in cui i dati di massa vengono esportati in file (CSV o foglio di calcolo), ma l'uso è stato focalizzato su dati che vanno al di fuori dell'azienda. Se un servizio web può accettare un file, allora c'è il problema del rigetto. Se è possibile utilizzare un batch / ETL, esiste un rischio con l'integrità dei dati, poiché ciò creerebbe un ramo diverso per manipolare i dati che non rientrano nel contesto del sistema mission-critical.
Un'idea era stata gettata in giro per mettere in coda le voci di dati nella nostra area di staging / transazione, in modo che potessimo ancora caricare attraverso il servizio web e tenere traccia, se non fosse stato completamente elaborato. La preoccupazione di questa idea è il traffico di rete. (EX: 1000 voci sono state aggiornate e questi dati si estendono su 50 entità.Il servizio web avrà 50 chiamate da effettuare con il suo formato corrente.)
Domande
Per il design:
Dove si adatta la manipolazione dei dati di massa in relazione alla richiesta del cliente?
Il sistema mission-critical dovrebbe definire un modo per accettare i dati collettivi?
Questo dovrebbe essere solo la responsabilità del team associato all'applicazione estesa? (EX: Definire un processo "ragionevole" per il cliente rispetto a come viene mantenuta l'integrità dei dati, oppure definire aree di staging / transazione con qualche tipo di lavoro che trasmette solo i dati tramite chiamate al servizio web)
Con l'attuale struttura aziendale (molti team per gestire i sottoinsiemi), cosa potrebbe essere aggiunto al processo di un singolo team per aiutare con future richieste di funzionalità a un livello simile a quello precedente? (richiede l'incrocio con l'integrità dei dati mission-critical)