21.01.2014 Views

A Rationale-based Model for Architecture Design Reasoning

A Rationale-based Model for Architecture Design Reasoning

A Rationale-based Model for Architecture Design Reasoning

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

7.1. The EFT system<br />

Figure 7.7: Decisions to Support Transaction Recovery<br />

is used to justify a method which is most appropriate <strong>for</strong> such processing. In this decision,<br />

all services must have their status logged in Oracle in a Process Table I2 0 2. If any one<br />

of them terminates exceptionally <strong>for</strong> any reason, it could recover when brought back to<br />

service again. This is to ensure that any abnormality would trigger a system self-check to<br />

ensure that there are no left-behind payment transactions. As a result of the decision, the<br />

Control Server has to be created to coordinate such check and recovery activities. When<br />

the servers recover, they would investigate the incomplete units of work at the time of<br />

their failure and recover from that point. This decision is related to the next issue of how<br />

payment messages are kept in a consistent and durable state.<br />

The third issue is to ensure the database ACID properties of a payment message. A<br />

server such as MCP could be in the middle of a transaction when it is interrupted. In order<br />

to ensure the atomicity of the transaction, a mechanism is required to support persistent<br />

inter-process communication (IPC). It means that no transaction could be lost during<br />

process-to-process communication. The decision was to use a two-phase commit where<br />

the transaction is logged in the MessageFlowLog Oracle table (I2 0 1 ) capturing the state<br />

of processing as well as putting the payment into a message queue <strong>for</strong> the next process in<br />

line. This will ensure that the payment transaction can never be in an inconsistent state.<br />

An example is the communication between MCP and HVPS.<br />

116

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!