Distributed Transaction Framework attraverso i servizi web

0

Sto progettando un nuovo sistema che ha un servizio web centrale e diversi servizi web del sito che sono diffusi in tutto il paese e alcuni all'estero. Ha alcuni dati che devono essere identici su tutti i siti.

Quindi il mio piano è di mantenere tali dati nel servizio web centrale e quindi "sincronizzare" i dati con i siti. Questo include inserimenti, modifiche ed eliminazioni.

Vedo un problema durante l'eliminazione, se un sito ha utilizzato il record, quindi ho bisogno di annullare l'eliminazione che è accaduto sugli altri server. Questo mi ha portato a pensare che ho bisogno di una sorta di sistema di transazione che può funzionare su diversi server web.

Prima di crearne uno da zero, vorrei sapere se qualcuno ha riscontrato questo tipo di problema e se ci sono dei frame o anche dei pattern di progettazione che potrebbero aiutarmi?

    
posta John Petrak 30.08.2012 - 14:45
fonte

2 risposte

2

Sembra che tu voglia utilizzare il protocollo commit a due fasi . Molti hit tornano da una ricerca su google, quindi troverai molte cose da ricercare.

Ecco una breve descrizione dal sito di Wikipedia.

In a "normal execution" of any single distributed transaction, i.e., when no failure 
occurs, which is typically the most frequent situation, the protocol comprises two phases:

    The commit-request phase (or voting phase), in which a coordinator process attempts 
to prepare all the transaction's participating processes (named participants, cohorts, 
or workers) to take the necessary steps for either committing or aborting the transaction 
and to vote, either "Yes": commit (if the transaction participant's local portion 
execution has ended properly), or "No": abort (if a problem has been detected with the 
local portion), and
    The commit phase, in which, based on voting of the cohorts, the coordinator decides 
whether to commit (only if all have voted "Yes") or abort the transaction (otherwise), 
and notifies the result to all the cohorts. The cohorts then follow with the needed 
actions (commit or abort) with their local transactional resources (also called 
recoverable resources; e.g., database data) and their respective portions in the 
transaction's other output (if applicable).

    
risposta data 30.08.2012 - 15:34
fonte
0

Questa è una classica transazione distribuita.

Per prima cosa blocca su ciascuno dei suoi servizi web, quel blocco bloccherà tutte le transazioni sui record targetizzati. Una volta che tutti i blocchi sono stati protetti, emettere il comando delete.

    
risposta data 30.08.2012 - 15:33
fonte

Leggi altre domande sui tag