I do hope other REST implementations will soon follow RFC7232 as this will make REST even more attractive for implementing linked data. There is clearly some interest in the Spring community.
ETags can be used for validating a step in a transaction.
On the other hand we need to do more to implement
transaction coordination, when a Pyrrho server makes HTTP calls to another REST
service. A number of systems have different mechanisms for maintaining an open
transaction in such circumstances, e.g. Neo4j. But
in view of Pyrrho’s rather pedantic approach to transaction isolation and
durability it seems best for Pyrrho to use its own mechanism. A Pyrrho
transaction coordinator will identify itself as a unique UserAgent in these
circumstances, including the coordinator host, port, with a
timestamp and the transaction ID. This information will enable the transaction
partners to coordinate their work and it can then be used in a simple two-phase
commit sequence. For example, we could make the User-Agent string contain a
link with the information, such as
Pyrrho 5.5 http://abc.com:8133/635970209933434980/4652
so that a Pyrrho server participating in the transaction
can keep an HTTP server thread open for operations on its local databases for this transaction, until (a) it receives a GET/POST/PUT/DELETE for / which it will interpret as Check, Prepare, Commit and Rollback
respectively , or (b) the timestamp is older than 20 minutes. If anything goes
wrong, it will report 409 Conflict or 410 Gone.
References
Fielding, R; Reschke, J, eds (2014): Hypertext Transfer Protocol
(HTTP/1.1): Conditional Requests, RFC7232, https://tools.ietf.org/html/rfc7232.
nice
ReplyDeleteTips Mengatasi Kista