RE: Filename in AS2 messages
"Dale Moberg" <[email protected]> Fri, 8 Apr 2005 10:55:53 -0700
| Newsgroups | gmane.ietf.ediint |
|---|---|
| Message-ID | <A1C7F8CC121B444CA879FB66B3268A1A043953F6@usazscsmh1.cyclonecommerce.com> |
Some specific responses and a general question at the end: > >1. Is there an interoperability problem caused by varying >interpretations of the "Content-disposition" header? What is it? What >failure or error is caused? We have not actually tested that. It's just that AS2 spec is silent on the matter. Do you have reasons to believe that Content-disposition is generally supported by the current known AS2 implementations? I did not see it in OpenAS2, for example. Dale>> Let's break the question down into receiver support and sender support. Receivers might support C-Disp., but since a receiver should ignore headers they don't understand, having a header should not cause a failure (if they are following the underlying specifications of AS2). Because AS2 does not mandate the use of C-Disp, no one should depend upon it being present. So at present a sender can add C-Disp or skip it, and interop should survive. By "support" do you mean "require senders to include the header"? If so, AS2 doesn't support it but interoperability should survive them being used. I think what you want is to be able to count on it being present for some reason. [And I am gathering from responses I have read here, that the general reason may be a desire to standardize the functionality of "receiver routing" (that is, an approach to defining what meta-information in the message will be used by the software to initiate specific processing after the AS2 defined behavior is completed.)] >2. Is the intent to require the use of "Content-Disposition" and to also >require that the header be used to say what the name of the file was at >the sender side? >If so, this functionality might be better addressed by using the >"Content-description" header. The content-disposition "filename" >parameter has specified semantics of suggesting processing at the >receiving end (that is, how the bodypart is "disposed of"). If the >point of the information is to permit logging/tracking/diagnostics, it >does not seem that content-disposition is a good semantic fit. We are >saying: here is the filename we are suggesting that you use for the >file, but by the way, don't use it. What I like about the content-disposition is that there is a clearly defined standard for specifying the filename using that header. Not only that, but also it's used widely in email and web. It's also specified that the header is optional. If we go with "Content-description" we would need to additionally specify how it is to be used, formatted. It seems to me that AS2 (quite wisely) mainly relies on the existing and popular standards. Use of "Content-Disposition" is more in the same spirit. Beyond that I do not have a strong opinion as long as this point gets addressed in some way. Dale>> OK, I am trying to identify what point needs addressing, and I apologize for being slow. I am now thinking that what you want is a set of meta-information items placed on the payload by the sender, that will allow the receiver to clearly identify that a specific payload is targeted for specific processing (after the successful completion of the AS2 specified behavior, of course). You are proposing using a sender assigned "filename" value as doing the job here (I think.) You have explored things such as "Content-type" and found them not doing what you want (too many very different message contents can all be of media-type "application/edifact" for example.) I agree with you that the MIME types don't generally work for the identifying task you have in mind. I am wondering whether filename values will do the job you want. If they do, the sender will need to always know what processing task needs to be done, and put the appropriate filename somewhere (preferably a reusable spot that does not violate the semantics). The problem is that no IETF headers that I know of actually have the semantics that you want them to have, so we would end up attaching a new function to an old header if we reused one. The closest is C-Description, that is so wide open, we can put any (syntactically ok) string in it. But unfortunately that is too wide open, because there are all kinds of descriptions which might fail to uniquely identify the intended processing task. So that does not work too well either... More recent protocols, in ebXML and in WS areas, have approached the topic by supplying additional constructs beyond the IETF ones, for indicating what is the intent of the message and what needs to be done with it. For example, in ebXML, there is metainformation (such as "Service" "Action" & "Role") that supplement the identification of the sender and receiver, to indicate--at whatever granularity is needed--what should happen in terms of intended subsequent processing phases. My own preference would be to add another header like "AS2-TransactionTypeIdentifier" and let it be specified to meet the requirements you are formulating. Unless there is something about the sender side filename that I am just missing, I don't see how it _must_ be able to help the receiver to decide what the next processing step is. It _might_ help, but not unless filenames were used with the same systematic care as TransactionTypeIdenfier values. (Some obvious candidates for these Transaction values from the EDI world would be 850, ORDERS, and so forth). (Would those transaction type values work for the problem you are conderned with, by the way?) >3. If we required a filename, what about deployments where data is not >obtained from a file system, but from a stream, pipe, queue, or database >blob? I think it should be a "should" and a "must". --Dmitry Dale> Not certain I get your meaning here. Do you mean "should" and not a "must"? If it's a "must to implement," "should implement" follows directly. =========== Am I getting close to identifying the requirements you are interested in or are you still thinking that "filename" values are exactly what is needed?