home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ietf / tip / tip-minutes-97aug.txt < prev   
Text File  |  1997-10-10  |  14KB  |  354 lines

  1. Transaction Internet Protocol (tip) 
  2.  
  3. Chair(s):
  4.  
  5. Jim Lyon <jimlyon@microsoft.com>
  6. Keith Evans <evans_keith@tandem.com>
  7.  
  8. Applications Area Director(s): 
  9.  
  10. Keith Moore <moore+iesg@cs.utk.edu>
  11. Harald Alvestrand <Harald.T.Alvestrand@uninett.no>
  12.  
  13. Mailing Lists: 
  14.  
  15. General Discussion: tip@tandem.com 
  16. To Subscribe: listserv@tandem.com 
  17. In Body: subscribe tip 
  18. Archive: 
  19.  
  20. Description of Working Group: 
  21.  
  22. The task of the TIP working group is to develop an
  23. Internet standard two-phase commit protocol specification,
  24. to enable heterogeneous Transaction Managers to agree on
  25. the outcome of a distributed transaction, based upon the
  26. Internet-Draft TIP protocol specification .
  27.  
  28. In many applications where different nodes cooperate on
  29. some work, there is a need to guarantee that the work
  30. happens atomically. That is, each node must reach the same
  31. conclusion as to whether the work is to be completed
  32. (committed or aborted), even in the face of failures. This
  33. behaviour is achieved via the use of distributed
  34. transactions, employing a two-phase commit protocol (2pc).
  35. The use of distributed transactions greatly simplifies
  36. distributed applications programming, since the number of
  37. possible outcomes is reduced from many to two, and failure
  38. recovery is performed automatically by the transaction
  39. service (Transaction Manager). 
  40.  
  41. Key requirements to be met are, 1) the 2-pc protocol be
  42. independent of the application-to-application
  43. communications protocol, such that it may be used with any
  44. application protocol (especially HTTP), and 2) the 2-pc
  45. protocol be simple to implement and have a small working
  46. footprint (to encourage ubiquitous implementation and
  47. offer wide applicability). 
  48.  
  49. The first work item of the group is to develop a
  50. requirements document, which describes at least one
  51. complete scenario in which the TIP protocol is intended to
  52. be used, and describes the requirements on the protocol
  53. with regards to: 
  54.  
  55. - Simplicity
  56. - Overhead/Performance
  57. - Security 
  58.  
  59. The protocols developed by this working group will be
  60. analyzed for potential sources of security breach.
  61. Identified threats will be removed from the protocol if
  62. possible, and documented and guarded against in other
  63. cases. 
  64.  
  65. The TIP Internet-Draft document is to be used as the input
  66. base document for the development of this 2-pc protocol
  67. specification. 
  68.  
  69. Due to extreme differences in the approach, the group will
  70. not consider the CORBA OTS specification as a solution to
  71. its requirements. 
  72.  
  73. Goals and Milestones:
  74.  
  75. Jul 97 Submit Version 2 of the Session Control Protocol
  76.        (SCP) document as an Internet-Draft.
  77.  
  78. Jul 97 Solicit comments on TIP and SCP Internet-Drafts.
  79.  
  80. Aug 97 Resolve all comments received on TIP and SCP
  81.        Internet-Drafts, and submit revisions.
  82.  
  83. Aug 97 Meet at Munich IETF.
  84.  
  85. Sep 97 Submit updated versions of TIP, SCP, and
  86.        Requirements document as Internet-Drafts.
  87.  
  88. Oct 97 Submit final version of TIP and SCP to IESG for
  89.        consideration as Proposed Standards. Also submit
  90.        Requirements document for consideration as an
  91.        Informational RFC.
  92.  
  93. Internet-Drafts:
  94.  
  95. - Transaction Internet Protocol.
  96. - Transaction Internet Protocol - Requirements.
  97. - Session Control Protocol.
  98.  
  99. Current Meeting Report
  100.  
  101. Minutes of the Transaction Internet Protocol Working Group  
  102.  
  103. Reported by: Keith Evans
  104.  
  105. Discussion of TIP Requirements I-D:
  106.  
  107. Peter Furniss raised a question re the "frequency" of TIP
  108. usage. i.e. is the requirement that TIP be used for
  109. infrequent transactional application interaction only
  110. (e.g. a few transactions per hour), or more? The
  111. requirements I-D states that TIP is intended to be
  112. applicable for all transactional application needs, both
  113. low and high demand, on intranets as well as the internet.
  114. The TIP multiplexing and pipelining features were added
  115. specifically to ensure that TIP could meet high-throughput
  116. requirements. But there is no reason why TIP cannot be
  117. used for low-end applications either.
  118.  
  119. Rudiger Wiehler asked why is another low-end 2-pc protocol
  120. required, when there are already many, and
  121. interoperability is achieved via gateways? A number of
  122. reasons were given:
  123. - most existing 2-pc protocols are proprietary and there
  124.   are no gateways between them (with the exception of a
  125.   very few for LU6.2 Synclevel 2).
  126. - gateways restrict interoperability to only the (two) 2pc
  127.   protocols mapped by the gateway, and do not therefore
  128.   provide for general interoperability.
  129. - existing 2-pc protocols may only be used with specific
  130.   application protocols.
  131. - standard 2-pc protocol solutions are heavyweight and
  132.   complex (and hence are not widely implemented).
  133.  
  134. RW accepted this, but then asked about further issues
  135. pertaining to general electronic commerce that TIP does
  136. not address. e.g. there is a need for non-repudiation
  137. (some form of legally binding contract between the client
  138. and server). It was agreed that this is so. TIP however is
  139. not intended to provide a solution to all issues re
  140. electronic commerce. It does provide a first step in
  141. support for transactions, and does not preclude the
  142. definition of further protocols to meet the needs for
  143. general electronic commerce. A note to this effect will be
  144. added to the Requirements I-D. Solutions for general
  145. electronic commerce should become the subject of IETF
  146. activity once the requirements are better understood.
  147.  
  148. RW asked why in the example does the travel agency perform
  149. the transaction coordinator role, as opposed to some
  150. independent 3rd-party? The example is just an example, and
  151. there is no reason why alternative configurations could
  152. not be built (such as the type Rudiger suggested). A note
  153. to this effect will be added to the Requirements I-D.
  154.  
  155. PF thought the lack of support for commit from anywhere is
  156. a negative, and ought to be added. Johannes Klein noted
  157. that TIP sort of provides this capability already in that
  158. the coordinator node may be chosen by the application at
  159. the start of the transaction (via use of BEGIN). Many
  160. other 2-pc protocols do not support commit from anywhere.
  161. Given that TIP is intended to be simple to implement , it
  162. was felt this feature adds too much complexity for the
  163. first release, but it could be added later (if there was
  164. sufficient demand).
  165.  
  166. PF asked what is the point of COMMIT in Enlisted state?
  167. This is straightforward 1-pc. PF asked whether this could
  168. be enhanced to support the "last-agent" optimisation? It
  169. could, but the argument is the same as commit from
  170. anywhere, they both require support for coordinator
  171. migration which adds too much complexity for the first
  172. release. [A note should be added to the Protocol I-D
  173. clarifying that COMMIT in Enlisted state is 1-pc, and that
  174. it should only be used when the local TIP TM has no
  175. recoverable resources, and only one subordinate (since the
  176. sender will not be involved in any transaction recovery
  177. process).]
  178.  
  179. Tom Freund asked whether TIP supports the CORBA OTS
  180. transaction-factory concept? It does: a client can use
  181. BEGIN to get a transaction from somewhere (a transaction
  182. factory), and pass the TIP URL returned on subsequent
  183. application requests (thereby propagating the transaction,
  184. with the transaction-factory as the root).
  185.  
  186. Paul Skaistis noted that the Requirements I-D states the
  187. TIP protocol itself be useable with transports other than
  188. TCP/IP. He suggested the Protocol I-D be updated to state
  189. that nothing precludes the use of TIP with other
  190. transports, but that the protocol is specified only in
  191. terms of TCP/IP, and it is up to the implementor to ensure
  192. whatever transport is chosen has the necessary semantics,
  193. and to map the TIP protocol appropriately. This was
  194. agreed.
  195.  
  196. It was pointed out that references in both the
  197. Requirements and Protocol I-Ds to "Secure Socket Layer",
  198. should be changed to "Transport Layer Security".
  199.  
  200. Requirements I-D, Section TIP Requirements, Item #6
  201. (Security), 1st sentence, change "SSL should", to "TLS
  202. may".
  203.  
  204. It was agreed a new requirement should be added to the
  205. Requirements I-D, that the TIP protocol be extensible.
  206.  
  207. The Requirements I-D should also include an example where
  208. PUSH is used.
  209.  
  210. Discussion of TIP Protocol and SCP I-Ds:
  211.  
  212. It was asked why use SCP, rather than a "connection tag"
  213. on the TIP protocol itself? Really thats all the SCP
  214. header is in any case, so lets leave well enough alone.
  215. It was agreed that progressing SCP as a separate
  216. generalised multiplexing protocol I-D would be problematic
  217. - so the SCP I-D will be renamed ("the TIP Mulitplexing
  218. Protocol"), and included as an addendum to the TIP
  219. Protocol I-D itself, for use only with TIP. If and when a
  220. generalised multiplexing protocol comes along, we can look
  221. at whether TIP can be respecified to work with it. We also
  222. need to update the Protocol I-D to state that a TIP
  223. command is wholly contained within a single SCP message.
  224.  
  225. RW asked whether it was true that TIP allowed a client to
  226. be told under certain failure conditions that a
  227. transaction had aborted, when in fact it had committed? It
  228. is true that a client application could fail to receive
  229. notification of the outcome of a transaction (if the
  230. application dies during the commit process for example).
  231. In this case its up to the application to determine the
  232. outcome via some private means. This is a problem common
  233. to all transaction systems, and in no way exacerbated by
  234. TIP. TIP does not include anything which would cause the
  235. protocol to return committed when the transaction is known
  236. to have aborted.
  237.  
  238. PF suggested that the "node rules" stated in his 8/7/97 e
  239. mail to the TIP mailing list be included in the Protocol
  240. I-D (these rules provide information regarding what a TIP
  241. TM and participant resource managers must do in terms of
  242. maintaining recoverable state etc). It was discussed how
  243. much of this should be included in the I-D itself versus
  244. the existing references to other works (these rules are no
  245. different for TIP, and are well covered in other
  246. documents). It was agreed to add the suggested text to the
  247. recovery section of the Requirements I-D.
  248.  
  249. RW raised the issue that since TIP does not provide a
  250. means to specify a "global" transaction identifier, all
  251. branches of a TIP transaction must be treated as loosely
  252. coupled (RM locks are not shared, and transaction
  253. deadlocks may occur). It was agreed to add text to this
  254. effect in the Protocol I-D, and also state that deadlock
  255. detection is normally achieved via some sort of local
  256. timeout mechanism. It was also agreed that we need to add
  257. a placeholder for future support of global transaction
  258. identifiers. The details of this are still to be
  259. determined.
  260.  
  261. PF raised in an e-mail the issue that a TM may be in no
  262. state to respond when it receives a RECONNECT or QUERY
  263. command (e.g. if its log is unavailable). So, a "try
  264. later" or somesuch reply is required in these cases. PS
  265. said why doesnt the receiver just wait, or drop the SCP
  266. connection? This issue is still to be resolved.
  267.  
  268. Questions arose which suggest it may be useful to publish
  269. a hypothetical API provided by a TIP TM. This would be
  270. useful for describing example applications, and may help
  271. implementation. This could be added to the Requirements 
  272. I-D (which is intended to be published as an informational
  273. RFC when TIP becomes a standard).
  274.  
  275. Text should be added to the Protocol I-D that a TIP TM
  276. should not PULL the same transaction twice. i.e. it should
  277. just respond "ok" to the application pull request, and not
  278. send a PULL command.
  279.  
  280. Add text to the Protocol I-D that a TIP connection (TCP or
  281. SCP if multiplexing is being used), returns to its
  282. original polarity when Idle state is reached.
  283.  
  284. PF suggested it would be very useful to describe how TIP
  285. is used with specific "popular" application protocols
  286. (e.g. as an OTS transaction context object, or HTTP). It
  287. was agreed that this should be done once TIP becomes
  288. available and typical usage scenarios are apparent.
  289.  
  290. Wrap-up:
  291.  
  292. It was agreed that the list of editorial changes to the
  293. TIP I-Ds noted previously to this meeting (via various 
  294. e-mails) would be summarised and added to these minutes
  295. (see below). These and the changes agreed at the meeting
  296. (as described here), will be made to the next versions of
  297. the TIP I-Ds. The WG assented that these next versions
  298. should therefore represent complete, credible
  299. specifications, and require only minor further
  300. modification (if any) before being recommended for
  301. standard status.
  302.  
  303. Changes Previously Discussed via E-mail:
  304.  
  305. All changes are to the Protocol I-D unless otherwise
  306. stated. [Note that if an item is missing here, its
  307. because its either covered above, or already addressed in
  308. the Requirements I-D.]
  309.  
  310. 1.  Add a simple picture showing the 2-pipe nature of TIP.
  311. 2.  Better distinguish whether a command/state relates to
  312.     a transaction or a connection.
  313. 3.  In "Command Pipelining", no command can be pipelined
  314.     after IDENTIFY as the version of the protocol has not
  315.     yet been negotiated. Delete from the example.
  316. 4.  In "Commands" under MULTIPLEX, Para 3, the multiplex
  317.     protocol can't take over the connection until the
  318.     response is received as it is not known if the remote
  319.     node supports the protocol in the parameter
  320.     <protocol-identifier>. Add text clarifying this.
  321. 5.  In "States of a connection" for the "prepared" state,
  322.     the commands which are allowed should be added for
  323.     consistency with the specification of other states,
  324.     e.g., "enlisted".
  325. 6.  In "Commands and Responses", first para, second
  326.     sentence, delete the words "each word is" and change
  327.     "are" to "is".
  328. 7.  In "Commands" under MULTIPLEX, the parameter should
  329.     be <protocol-identifier>.
  330. 8.  In "Commands" under the response PUSHED, first
  331.     sentence, add the word "the" after "and".
  332. 9.  In "Commands" under the response PUSHED, second
  333.     sentence, add the word "transaction" after the word
  334.     "current".
  335. 10. In "Connection Failure", the first sentence needs
  336.     clarification.
  337. 11. Add text that an application should not call commit
  338.     until all outstanding replies are received 
  339.     (Requirements I-D).
  340. 12. In "Commands", it would be useful to specify where it
  341.     is necessary to wait for a response and where
  342.     pipelining can be used, e.g. with Begin.
  343. 13. In "Commands" under IDENTIFY, it is assumed that all
  344.     versions of protocol from the lowest to the highest
  345.     are implemented - state this explicitly.
  346. 14. Clarify that the party which initiates the VIRTUAL
  347.     connection is the primary on that virtual connection.
  348. 15. Change command/response value range to ASCII 32 - 126.
  349. 16. Fix page numbering.
  350. 17. Update ref[2] (HTTP).
  351.  
  352. ------=_NextPart_000_01BCB14D.53B573D0--
  353.  
  354.