RE: profiles in AS2

"John Koehring" <[email protected]> Tue, 20 Dec 2005 15:23:34 -0700
Newsgroups gmane.ietf.ediint
Message-ID <BA94BA2FA0B10041BD9E4E24D520C1BD0177624C@mail1.cyclonecommerce.com>
This is a multi-part message in MIME format.

------_=_NextPart_001_01C605B4.0419575F
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

I will also chime in in favor of Kyle's original option 2.
=20
However, I will disagree with John's latest point (a). Well behaved
software should ignore any headers it does not understand or support.
Therefore, I see no problem with a 1.2 (or greater) version system
always sending the EDIINT-Features header.
=20
John Koehring
Cyclone Commerce, Inc.

  _____ =20

From: [email protected]
[mailto:[email protected]] On Behalf Of [email protected]
Sent: Tuesday, December 20, 2005 14:13
To: [email protected]; Richard Bigelow; Dale Moberg; Kyle Meadors
Subject: RE: profiles in AS2



I agree that a 1.1 version should accept messages from a 1.2 version.  I
think that it is the responsibility of the 1.2 (or greater) version to
recognize that it is communicating with a lower (1.0 or 1.1) version and

(a) not send the Features Header to either, and=20
(b) not use compression with the 1.0 version.=20

So versions greater than 1.1 will need to check the version values for
every message, and if the version received is greater than 1.1, the
receiver should check for a Features Header. The receiver should update
state information contained in the Version Header and Features Header
for that partner (if the state info changed).=20

John Duker=20
Procter & Gamble=20


	"Richard Bigelow" <[email protected]>=20
Sent by: [email protected]=20


12/19/2005 01:56 PM=20


       =20
        To:        "Dale Moberg" <[email protected]>, "Kyle
Meadors" <[email protected]>, <[email protected]>=20
        cc:        =20
        Subject:        RE: profiles in AS2

Concerning a 1.2 version interoperating with a 1.1 version:  The 1.1
version should accept the 1.2 messages.  The compression draft says that
a version of 1.1 or greater indicates compression.  =20
 =20
I have some concern about Kyle's comment that this WG may be closing
soon.  Is this in response to IETF's requirement to make progress on
AS3?  I hope that this WG will continue.  We have some proposals on the
table, including Reliability and CEM and perhaps Profiles in the future.

 =20
 =20
Richard Bigelow
Inovis
 <mailto:[email protected]> [email protected]=20

  _____ =20


From: [email protected]
[mailto:[email protected]] On Behalf Of Dale Moberg
Sent: Saturday, December 17, 2005 7:49 AM
To: Kyle Meadors; [email protected]
Subject: RE: profiles in AS2=20
 =20
The consensus seems to be that it should be possible to support some AS2
features independently, rather than cumulatively. Although I think the
combinations of features of Reliability, CEM, and Multipart could be
coded up by 8 numbers, if more end user requirements get specified, that
encoding would become inconvenient to support. So moving to an
EDIINT-Features header seems to be a reasonable way to advertise
capabilities.=20
 =20
Would AS1, AS2 and AS3 all use this header? I assume that CEM and
attachments are OK, but Reliability mainly pertains to AS2. Also, would
AS1 have to add an "X-" preface to the header? (So we would have
somemething like "X-EdiintFeatures" as the header value?)=20
 =20
I take it that there is some concern about the waste of sending this
header every time and that partially motivates inventing new behavior to
supply these values in a MDN (when requested). While that might be more
elegant, I guess the logic would be that you can only use that form of
request when the original has an AS2-Version of "1.2"? My preference
here is not to try to develop option 4 into a new capability query and
response pattern, but just accept that the Ediint-Features header may
waste a few bytes per message.=20
 =20
How will existing applications respond to this? Presumably they would
(or should) ignore an included "EdiintFeatures" header and also never
send one. If they never sent one (and their ASx-version was either 1.0
or 1.1), then they must not be sent multiparts or CEM. In that case,
messages with the new features would not even be sent to older
applications and could not cause them to malfunction. So it should be
stated that you may not use these features unless the other side both
has a version value greater than 1.1 and also has included the feature
in its EdiintFeatures header.=20
 =20
What should be said about a 1.2 version interoperating with a 1.1
version? Since a 1.1 level app. would be entitled to ignore a message
with a higher version, should a 1.2 app be advised to be configurable to
advertise itself as a 1.1 version to promote interoperation?=20
 =20
What should be done about detecting a change (upgrade) of versions when
the other side begins sending the higher "1.2" value? Are
implementations expected to check the version or is this left to the
implementation? Richard B. says "A should update some state for every
message received from B" I think it would be sufficient to check the
state and update if a change is noticed. (Maybe that is what Richard
meant though.) I suppose an empty message could be sent to announce a
change in capabilities, but again only to ediint agents with a version
greater than 1.1.=20
 =20
So far the specifications have not really required that the version be
checked for every message. For example, the AS3 draft says=20
 =20
    The AS3-Version header is a header which is required only if the
value=20
    of the header is not "1.0".  Its purpose is to allow systems to=20
    determine which version of this specification, should the=20
    specification evolve over time, the sender of a document has used to

    package the document. A user agent MUST NOT reject a message if the=20
    version header is missing.=20
 =20
    AS3-Version: 1*DIGIT . 1*DIGIT=20
   =20
    A version header value of "1.1" indicates an implementation can=20
    support EDIINT data compression [18]. A user agent MUST NOT send=20
    compressed messages to trading partners who do not use a version=20
    header of "1.1" or greater.=20
 =20
 =20
It seems to me that versions greater than 1.1 will need to check the
version values for every message. If a version header is missing, it is
version 1.0.=20
 =20

  _____ =20


From: [email protected]
[mailto:[email protected]] On Behalf Of Kyle Meadors
Sent: Thursday, December 15, 2005 3:21 PM
To: [email protected]
Subject: RE: profiles in AS2=20
 =20
Not a lot of comments on this thread. But to summarize...=20
 =20
3 in favor of Option 2 (Features header) and use of AS2-Version 1.2=20
1 in favor Option 3 where filtering is done on a message=20
 =20
Still does not fully address the initial start-up conditions as Richard
pointed out, but perhaps that just can not be done without some manual
setup.=20
 =20
Since this EDIINT WG will likely be closing relatively soon, I hope we
can get some more to weigh in on this. Do others object to Option 2
(with AS2-Version 1.2)?=20
 =20
For those AS2 vendors supporting Option 2, would this impact your
product, including those deployed in existing supply chains? Are their
significant backward compatibility problems with this choice?=20
 =20
Kyle Meadors=20
DGI=20

  _____ =20


From: Tim McCarthy [mailto:[email protected]]=20
Sent: Wednesday, December 07, 2005 9:14 AM
To: Kyle Meadors; [email protected]
Subject: RE: profiles in AS2=20
 =20
Seems to me that a combination of features 2 and 4 would provide
everything we'd need.=20
 =20

  _____ =20


From: [email protected]
[mailto:[email protected]] On Behalf Of Richard Bigelow
Sent: Tuesday, December 06, 2005 5:07 PM
To: Kyle Meadors; [email protected]
Subject: RE: profiles in AS2=20
 =20
These are my comments.  Option 2 is preferred.  This memo essentially
supports John Duker's memo of Dec. 5, Features Profile in AS2.=20
 =20
1. This option requires that implementers of feature 1.n also implement
all earlier features.  Is that reasonable?  What if 1.5 is difficult and
many vendors don't want to do it, but many want to support 1.6?  Not
recommended.=20
 =20
2.  The features header allows the partner A receiving the message to
know the other partner's (B's) capabilities.  So when A sends to B, A
knows what is allowed.  A can also check B's AS2-version; 1.1 does not
allow any of the controlled features, but does allow compression.  A
should update some state for every message received from B.  B might
stop supporting some feature.  Recommended.=20
 =20
A possible variant of (2) is that a partner could send some message to
all its trading partners when its capabilities change.  This message
would have headers only, no content.  It might be useful to send this
capabilities message to partners that would rarely receive normal
messages.=20
 =20
3. This option allows receivers to ignore messages they don't
understand, and to detect those messages without looking for unknown
headers.  But it does not provide a mechanism for the sender to know
whether a receiver can receive the message.  Suppose we had done
compression this way.  A could send a compressed file to B, and B could
ignore it based on the feature header, but then the file is lost.  B
could return a new MDN code indicating unsupported-feature, and A could
then send the uncompressed file, in this example.  In other cases, A
would have to use some other mechanism.  A could remember that B
rejected the file and not try that feature again, but how would A know
if B upgraded and can now support the feature?  The original intent of
the features header was that the sender could know in advance if the
receiver supports the feature.  3 is not recommended.=20
 =20
4. Before sending a message to B, A should ask B for B's capabilities,
and check if B supports the feature.  Since B might stop supporting a
feature, A should ask each time.  This is ok for rare messages, like
CEM, but not for common ones, like Multiple Attachments.  Not
recommended.=20
 =20
None of these protocols fully addresses the initial case.  Before any
messages are exchanged, how do the partners know each other's
capabilities?  Each partner must assume that the other supports only the
basic 1.0 AS2 protocol.   Hopefully, they will be able to exchange
normal messages, which will contain at least the 1.2 version header.
They can then use option 2 to discover each other capabilities.  This
probably works for most features.  For CEM, either they must first
exchange test messages that are unencrypted and unsigned to establish
CEM capability, or exchange initial certificates manually.=20
 =20
Alternatively, the partners would configure each other manually the
first time.  Thereafter, they would be automatically updated on each
other's capabilities.=20
 =20
Richard Bigelow
Inovis
 <mailto:[email protected]> [email protected]=20

  _____ =20


From: [email protected]
[mailto:[email protected]] On Behalf Of Kyle Meadors
Sent: Thursday, December 01, 2005 9:04 AM
To: [email protected]
Subject: profiles in AS2=20
 =20
I am needing the opinion of the AS2 community on the use of a feature
profiles within AS2. Back in 2002, compression was added as an extra
feature. Using "AS2-Version: 1.1" in a message indicated the UA could
support compression even if the actual message did not contain the
compressed envelope. This assisted implementers in knowing if their
trading partners could support compression.=20
=20
Moving to the present, users are requesting new features. These include
I-Ds for Reliability (from GS1), Multiple-Attachments (oil & gas users)
and Certificate Exchange Messaging (Wal-mart, P&G and others GS1
companies). Given AS2's adoption, I am sure there will be others in the
future.=20
=20
My question to those on this elist is how to do move forward with new
features. What do we do to insure only those who support a feature
receive it (e.g., only sending CEM message to trading partners who
support that profile)? Also, can anything be done to insure backward
compatibility to keep new Feature Header messages from being sent to &
breaking older, existing implementations (e.g. older implementation
errors gracefully when getting an unrecognized MA message).=20
=20
Here are some options. I would like to hear your thoughts on what is
best or other ideas.=20
   =20
1. Use AS2-Version header to indicate UA support of profiles (e.g. 1.2
indicates CEM, 1.3 indicates CEM, Reliability). Works like compression
(e.g. "1.2" indicates capability of CEM but not an actual CEM message).=20
 =20
2. Use a new header, e.g. EDIINT-Features. The features header shows all
features supported by UA (e.g. EDIINT-Features: CEM,
multiple-attachment) but like AS2-Version does not indicate every
message contains profile.=20
 =20
3. Use a new header for each feature which is present ONLY in the
message using that feature. For example, "CEM-Profile" for CEM messages.
This could allow receiving UA to filter in only profiles it recognizes.=20
 =20
4. Create a "Capability Query" AS2 Message which returns a Capability
MDN. MDN indicates what features receiving UA can support.=20
 =20
 =20
Kyle Meadors=20
Principal, Test Process=20
Drummond Group Inc.=20
615.212.0826=20
 =20


--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.362 / Virus Database: 267.13.10/189 - Release Date:
11/30/2005=20



--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.13.12/193 - Release Date:
12/6/2005=20



--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.14.0/203 - Release Date:
12/15/2005=20




------_=_NextPart_001_01C605B4.0419575F
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">


<META content=3D"MSHTML 6.00.2900.2802" name=3DGENERATOR></HEAD>
<BODY>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D697121822-20122005><FONT =
face=3DArial=20
color=3D#0000ff size=3D2>I will also chime in in favor of Kyle's =
original option=20
2.</FONT></SPAN></DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D697121822-20122005><FONT =
face=3DArial=20
color=3D#0000ff size=3D2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D697121822-20122005><FONT =
face=3DArial=20
color=3D#0000ff size=3D2>However, I will disagree with John's latest =
point (a). Well=20
behaved software should ignore any headers it does not understand or =
support.=20
Therefore, I see no problem with a 1.2 (or greater) version system =
always=20
sending the EDIINT-Features header.</FONT></SPAN></DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D697121822-20122005><FONT =
face=3DArial=20
color=3D#0000ff size=3D2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D697121822-20122005><FONT =
face=3DArial=20
color=3D#0000ff size=3D2>John Koehring</FONT></SPAN></DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D697121822-20122005><FONT =
face=3DArial=20
color=3D#0000ff size=3D2>Cyclone Commerce, Inc.</FONT></SPAN></DIV><BR>
<DIV class=3DOutlookMessageHeader lang=3Den-us dir=3Dltr align=3Dleft>
<HR tabIndex=3D-1>
<FONT face=3DTahoma size=3D2><B>From:</B> [email protected] =

[mailto:[email protected]] <B>On Behalf Of=20
</B>[email protected]<BR><B>Sent:</B> Tuesday, December 20, 2005=20
14:13<BR><B>To:</B> [email protected]; Richard Bigelow; Dale Moberg; =
Kyle=20
Meadors<BR><B>Subject:</B> RE: profiles in AS2<BR></FONT><BR></DIV>
<DIV></DIV><BR><FONT face=3Dsans-serif size=3D2>I agree that a 1.1 =
version should=20
accept messages from a 1.2 version. &nbsp;I think that it is the =
responsibility=20
of the 1.2 (or greater) version to recognize that it is communicating =
with a=20
lower (1.0 or 1.1) version and </FONT><BR><FONT face=3Dsans-serif =
size=3D2>(a) not=20
send the Features Header to either, and</FONT> <BR><FONT =
face=3Dsans-serif=20
size=3D2>(b) not use compression with the 1.0 version.</FONT> =
<BR><BR><FONT=20
face=3Dsans-serif size=3D2>So versions greater than 1.1 will need to =
check the=20
version values for every message, and if the version received is greater =
than=20
1.1, the receiver should check for a Features Header. The receiver =
should update=20
state information contained in the Version Header and Features Header =
for that=20
partner (if the state info changed).</FONT> <BR><BR><FONT =
face=3Dsans-serif=20
size=3D2>John Duker</FONT> <BR><FONT face=3Dsans-serif size=3D2>Procter =
&amp;=20
Gamble</FONT> <BR><BR>
<TABLE width=3D"100%">
  <TBODY>
  <TR vAlign=3Dtop>
    <TD>
    <TD><FONT face=3Dsans-serif size=3D1><B>"Richard Bigelow"=20
      &lt;[email protected]&gt;</B></FONT> <BR><FONT =
face=3Dsans-serif=20
      size=3D1>Sent by: [email protected]</FONT>=20
      <P><FONT face=3Dsans-serif size=3D1>12/19/2005 01:56 PM</FONT> =
<BR></P>
    <TD><FONT face=3DArial size=3D1>&nbsp; &nbsp; &nbsp; &nbsp; =
</FONT><BR><FONT=20
      face=3Dsans-serif size=3D1>&nbsp; &nbsp; &nbsp; &nbsp; To: &nbsp; =
&nbsp;=20
      &nbsp; &nbsp;"Dale Moberg" &lt;[email protected]&gt;, =
"Kyle=20
      Meadors" &lt;[email protected]&gt;,=20
      &lt;[email protected]&gt;</FONT> <BR><FONT face=3Dsans-serif =
size=3D1>&nbsp;=20
      &nbsp; &nbsp; &nbsp; cc: &nbsp; &nbsp; &nbsp; &nbsp;</FONT> =
<BR><FONT=20
      face=3Dsans-serif size=3D1>&nbsp; &nbsp; &nbsp; &nbsp; Subject: =
&nbsp; &nbsp;=20
      &nbsp; &nbsp;RE: profiles in =
AS2</FONT></TR></TBODY></TABLE><BR><FONT face=3DArial=20
color=3D#000080 size=3D2>Concerning a 1.2 version interoperating with a =
1.1 version:=20
&nbsp;The 1.1 version should accept the 1.2 messages. &nbsp;The =
compression=20
draft says that a version of 1.1 or greater indicates compression. =
&nbsp;</FONT>=20
<BR><FONT face=3DArial color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT =
face=3DArial=20
color=3D#000080 size=3D2>I have some concern about Kyle's comment that =
this WG may=20
be closing soon. &nbsp;Is this in response to IETF's requirement to make =

progress on AS3? &nbsp;I hope that this WG will continue. &nbsp;We have =
some=20
proposals on the table, including Reliability and CEM and perhaps =
Profiles in=20
the future.</FONT> <BR><FONT face=3DArial color=3D#000080 =
size=3D2>&nbsp;</FONT>=20
<BR><FONT face=3DArial color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT =
face=3DVerdana=20
color=3D#808080 size=3D1>Richard Bigelow<BR>Inovis</FONT><FONT =
face=3DVerdana=20
color=3Dblue size=3D1><U><BR></U></FONT><A=20
href=3D"mailto:[email protected]"><FONT face=3DVerdana =
color=3Dblue=20
size=3D1><U>[email protected]</U></FONT></A>=20
<DIV align=3Dcenter><BR>
<HR>
</DIV><BR><FONT face=3DTahoma size=3D2><B>From:</B> =
[email protected]=20
[mailto:[email protected]] <B>On Behalf Of </B>Dale=20
Moberg<B><BR>Sent:</B> Saturday, December 17, 2005 7:49 AM<B><BR>To:</B> =
Kyle=20
Meadors; [email protected]<B><BR>Subject:</B> RE: profiles in =
AS2</FONT>=20
<BR><FONT face=3D"Times New Roman" size=3D3>&nbsp;</FONT> <BR><FONT =
face=3DArial=20
color=3D#000080 size=3D2>The consensus seems to be that it should be =
possible to=20
support some AS2 features independently, rather than cumulatively. =
Although I=20
think the combinations of features of Reliability, CEM, and Multipart =
could be=20
coded up by 8 numbers, if more end user requirements get specified, that =

encoding would become inconvenient to support. So moving to an =
EDIINT-Features=20
header seems to be a reasonable way to advertise capabilities.</FONT> =
<BR><FONT=20
face=3DArial color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT =
face=3DArial color=3D#000080=20
size=3D2>Would AS1, AS2 and AS3 all use this header? I assume that CEM =
and=20
attachments are OK, but Reliability mainly pertains to AS2. Also, would =
AS1 have=20
to add an "X-" preface to the header? (So we would have somemething like =

"X-EdiintFeatures" as the header value?)</FONT> <BR><FONT face=3DArial=20
color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT face=3DArial =
color=3D#000080 size=3D2>I=20
take it that there is some concern about the waste of sending this =
header every=20
time and that partially motivates inventing new behavior to supply these =
values=20
in a MDN (when requested). While that might be more elegant, I guess the =
logic=20
would be that you can only use that form of request when the original =
has an=20
AS2-Version of "1.2"? My preference here is not to try to develop option =
4 into=20
a new capability query and response pattern, but just accept that the=20
Ediint-Features header may waste a few bytes per message. =
</FONT><BR><FONT=20
face=3DArial color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT =
face=3DArial color=3D#000080=20
size=3D2>How will existing applications respond to this? Presumably they =
would (or=20
should) ignore an included "EdiintFeatures" header and also never send =
one. If=20
they never sent one (and their ASx-version was either 1.0 or 1.1), then =
they=20
must not be sent multiparts or CEM. In that case, messages with the new =
features=20
would not even be sent to older applications and could not cause them to =

malfunction. So it should be stated that you may not use these features =
unless=20
the other side both has a version value greater than 1.1 and also has =
included=20
the feature in its EdiintFeatures header.</FONT> <BR><FONT face=3DArial=20
color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT face=3DArial =
color=3D#000080=20
size=3D2>What should be said about a 1.2 version interoperating with a =
1.1=20
version? Since a 1.1 level app. would be entitled to ignore a message =
with a=20
higher version, should a 1.2 app be advised to be configurable to =
advertise=20
itself as a 1.1 version to promote interoperation?</FONT> <BR><FONT =
face=3DArial=20
color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT face=3DArial =
color=3D#000080=20
size=3D2>What should be done about detecting a change (upgrade) of =
versions when=20
the other side begins sending the higher "1.2" value? Are =
implementations=20
expected to check the version or is this left to the implementation? =
Richard B.=20
says "A should update some state for every message received from B" I =
think it=20
would be sufficient to check the state and update if a change is =
noticed. (Maybe=20
that is what Richard meant though.) I suppose an empty message could be =
sent to=20
announce a change in capabilities, but again only to ediint agents with =
a=20
version greater than 1.1.</FONT> <BR><FONT face=3DArial color=3D#000080=20
size=3D2>&nbsp;</FONT> <BR><FONT face=3DArial color=3D#000080 =
size=3D2>So far the=20
specifications have not really required that the version be checked for =
every=20
message. For example, t</FONT><FONT face=3D"Courier New" size=3D2>he AS3 =
draft says=20
</FONT><BR><FONT face=3D"Courier New" size=3D2>&nbsp;</FONT> <BR><FONT=20
face=3D"Courier New" size=3D2>&nbsp; &nbsp; The AS3-Version header is a =
header which=20
is required only if the value</FONT> <BR><FONT face=3D"Courier New" =
size=3D2>&nbsp;=20
&nbsp; of the header is not "1.0". &nbsp;Its purpose is to allow systems =
to=20
</FONT><BR><FONT face=3D"Courier New" size=3D2>&nbsp; &nbsp; determine =
which version=20
of this specification, should the</FONT> <BR><FONT face=3D"Courier New"=20
size=3D2>&nbsp; &nbsp; specification evolve over time, the sender of a =
document=20
has used to</FONT> <BR><FONT face=3D"Courier New" size=3D2>&nbsp; &nbsp; =
package the=20
document. A user agent MUST NOT reject a message if the </FONT><BR><FONT =

face=3D"Courier New" size=3D2>&nbsp; &nbsp; version header is =
missing.</FONT>=20
<BR><FONT face=3D"Courier New" size=3D2>&nbsp;</FONT> <BR><FONT =
face=3D"Courier New"=20
size=3D2>&nbsp; &nbsp; AS3-Version: 1*DIGIT . 1*DIGIT</FONT> <BR><FONT=20
face=3D"Courier New" size=3D2>&nbsp; &nbsp; </FONT><BR><FONT =
face=3D"Courier New"=20
size=3D2>&nbsp; &nbsp; A version header value of "1.1" indicates an =
implementation=20
can</FONT> <BR><FONT face=3D"Courier New" size=3D2>&nbsp; &nbsp; support =
EDIINT data=20
compression [18]. A user agent MUST NOT send </FONT><BR><FONT =
face=3D"Courier New"=20
size=3D2>&nbsp; &nbsp; compressed messages to trading partners who do =
not use a=20
version </FONT><BR><FONT face=3D"Courier New" size=3D2>&nbsp; &nbsp; =
header of "1.1"=20
or greater. </FONT><BR><FONT face=3D"Courier New" size=3D2>&nbsp;</FONT> =
<BR><FONT=20
face=3DArial color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT =
face=3DArial color=3D#000080=20
size=3D2>It seems to me that versions greater than 1.1 will need to =
check the=20
version values for every message. If a version header is missing, it is =
version=20
1.0.</FONT> <BR><FONT face=3DArial color=3D#000080 =
size=3D2>&nbsp;</FONT>=20
<DIV align=3Dcenter><BR>
<HR>
</DIV><BR><FONT face=3DTahoma size=3D2><B>From:</B> =
[email protected]=20
[mailto:[email protected]] <B>On Behalf Of </B>Kyle=20
Meadors<B><BR>Sent:</B> Thursday, December 15, 2005 3:21 =
PM<B><BR>To:</B>=20
[email protected]<B><BR>Subject:</B> RE: profiles in AS2</FONT> =
<BR><FONT=20
face=3D"Times New Roman" size=3D3>&nbsp;</FONT> <BR><FONT face=3DArial =
color=3D#000080=20
size=3D2>Not a lot of comments on this thread. But to =
summarize&#8230;</FONT> <BR><FONT=20
face=3DArial color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT =
face=3DArial color=3D#000080=20
size=3D2>3 in favor of Option 2 (Features header) and use of =
AS2&#8211;Version 1.2=20
</FONT><BR><FONT face=3DArial color=3D#000080 size=3D2>1 in favor Option =
3 where=20
filtering is done on a message</FONT> <BR><FONT face=3DArial =
color=3D#000080=20
size=3D2>&nbsp;</FONT> <BR><FONT face=3DArial color=3D#000080 =
size=3D2>Still does not=20
fully address the initial start&#8211;up conditions as Richard pointed =
out, but=20
perhaps that just can not be done without some manual setup.</FONT> =
<BR><FONT=20
face=3DArial color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT =
face=3DArial color=3D#000080=20
size=3D2>Since this EDIINT WG will likely be closing relatively soon, I =
hope we=20
can get some more to weigh in on this. Do others object to Option 2 =
(with=20
AS2&#8211;Version 1.2)?</FONT> <BR><FONT face=3DArial color=3D#000080 =
size=3D2>&nbsp;</FONT>=20
<BR><FONT face=3DArial color=3D#000080 size=3D2>For those AS2 vendors =
supporting=20
Option 2, would this impact your product, including those deployed in =
existing=20
supply chains? Are their significant backward compatibility problems =
with this=20
choice?</FONT> <BR><FONT face=3DArial color=3D#000080 =
size=3D2>&nbsp;</FONT> <BR><FONT=20
face=3DArial color=3D#000080 size=3D2>Kyle Meadors</FONT> <BR><FONT =
face=3DArial=20
color=3D#000080 size=3D2>DGI</FONT>=20
<DIV align=3Dcenter><BR>
<HR>
</DIV><BR><FONT face=3DTahoma size=3D2><B>From:</B> Tim McCarthy=20
[mailto:[email protected]] <B><BR>Sent:</B> Wednesday, December =
07, 2005=20
9:14 AM<B><BR>To:</B> Kyle Meadors; =
[email protected]<B><BR>Subject:</B> RE:=20
profiles in AS2</FONT> <BR><FONT face=3D"Times New Roman" =
size=3D3>&nbsp;</FONT>=20
<BR><FONT face=3DArial color=3D#000080 size=3D2>Seems to me that a =
combination of=20
features 2 and 4 would provide everything we'd need.</FONT> <BR><FONT =
face=3DArial=20
color=3D#000080 size=3D2>&nbsp;</FONT>=20
<DIV align=3Dcenter><BR>
<HR>
</DIV><BR><FONT face=3DTahoma size=3D2><B>From:</B> =
[email protected]=20
[mailto:[email protected]] <B>On Behalf Of </B>Richard=20
Bigelow<B><BR>Sent:</B> Tuesday, December 06, 2005 5:07 PM<B><BR>To:</B> =
Kyle=20
Meadors; [email protected]<B><BR>Subject:</B> RE: profiles in =
AS2</FONT>=20
<BR><FONT face=3D"Times New Roman" size=3D3>&nbsp;</FONT> <BR><FONT =
face=3DArial=20
color=3D#000080 size=3D2>These are my comments. &nbsp;Option 2 is =
preferred.=20
&nbsp;This memo essentially supports John Duker's memo of Dec. 5, =
Features=20
Profile in AS2.</FONT> <BR><FONT face=3DArial color=3D#000080 =
size=3D2>&nbsp;</FONT>=20
<BR><FONT face=3DArial color=3D#000080 size=3D2>1. This option requires =
that=20
implementers of feature 1.n also implement all earlier features. =
&nbsp;Is that=20
reasonable? &nbsp;What if 1.5 is difficult and many vendors don't want =
to do it,=20
but many want to support 1.6? &nbsp;Not recommended.</FONT> <BR><FONT =
face=3DArial=20
color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT face=3DArial =
color=3D#000080 size=3D2>2.=20
&nbsp;The features header allows the partner A receiving the message to =
know the=20
other partner's (B's) capabilities. &nbsp;So when A sends to B, A knows =
what is=20
allowed. &nbsp;A can also check B's AS2-version; 1.1 does not allow any =
of the=20
controlled features, but does allow compression. &nbsp;A should update =
some=20
state for every message received from B. &nbsp;B might stop supporting =
some=20
feature. &nbsp;Recommended.</FONT> <BR><FONT face=3DArial =
color=3D#000080=20
size=3D2>&nbsp;</FONT> <BR><FONT face=3DArial color=3D#000080 size=3D2>A =
possible=20
variant of (2) is that a partner could send some message to all its =
trading=20
partners when its capabilities change. &nbsp;This message would have =
headers=20
only, no content. &nbsp;It might be useful to send this capabilities =
message to=20
partners that would rarely receive normal messages.</FONT> <BR><FONT =
face=3DArial=20
color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT face=3DArial =
color=3D#000080 size=3D2>3.=20
This option allows receivers to ignore messages they don't understand, =
and to=20
detect those messages without looking for unknown headers. &nbsp;But it =
does not=20
provide a mechanism for the sender to know whether a receiver can =
receive the=20
message. &nbsp;Suppose we had done compression this way. &nbsp;A could =
send a=20
compressed file to B, and B could ignore it based on the feature header, =
but=20
then the file is lost. &nbsp;B could return a new MDN code indicating=20
unsupported-feature, and A could then send the uncompressed file, in =
this=20
example. &nbsp;In other cases, A would have to use some other mechanism. =
&nbsp;A=20
could remember that B rejected the file and not try that feature again, =
but how=20
would A know if B upgraded and can now support the feature? &nbsp;The =
original=20
intent of the features header was that the sender could know in advance =
if the=20
receiver supports the feature. &nbsp;3 is not recommended.</FONT> =
<BR><FONT=20
face=3DArial color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT =
face=3DArial color=3D#000080=20
size=3D2>4. Before sending a message to B, A should ask B for B's =
capabilities,=20
and check if B supports the feature. &nbsp;Since B might stop supporting =
a=20
feature, A should ask each time. &nbsp;This is ok for rare messages, =
like CEM,=20
but not for common ones, like Multiple Attachments. &nbsp;Not=20
recommended.</FONT> <BR><FONT face=3DArial color=3D#000080 =
size=3D2>&nbsp;</FONT>=20
<BR><FONT face=3DArial color=3D#000080 size=3D2>None of these protocols =
fully=20
addresses the initial case. &nbsp;Before any messages are exchanged, how =
do the=20
partners know each other's capabilities? &nbsp;Each partner must assume =
that the=20
other supports only the basic 1.0 AS2 protocol. &nbsp; Hopefully, they =
will be=20
able to exchange normal messages, which will contain at least the 1.2 =
version=20
header. &nbsp;They can then use option 2 to discover each other =
capabilities.=20
&nbsp;This probably works for most features. &nbsp;For CEM, either they =
must=20
first exchange test messages that are unencrypted and unsigned to =
establish CEM=20
capability, or exchange initial certificates manually.</FONT> <BR><FONT=20
face=3DArial color=3D#000080 size=3D2>&nbsp;</FONT> <BR><FONT =
face=3DArial color=3D#000080=20
size=3D2>Alternatively, the partners would configure each other manually =
the first=20
time. &nbsp;Thereafter, they would be automatically updated on each =
other's=20
capabilities.</FONT> <BR><FONT face=3DArial color=3D#000080 =
size=3D2>&nbsp;</FONT>=20
<BR><FONT face=3DVerdana color=3D#808080 size=3D1>Richard=20
Bigelow<BR>Inovis</FONT><FONT face=3DVerdana color=3Dblue=20
size=3D1><U><BR></U></FONT><A =
href=3D"mailto:[email protected]"><FONT=20
face=3DVerdana color=3Dblue =
size=3D1><U>[email protected]</U></FONT></A>=20
<DIV align=3Dcenter><BR>
<HR>
</DIV><BR><FONT face=3DTahoma size=3D2><B>From:</B> =
[email protected]=20
[mailto:[email protected]] <B>On Behalf Of </B>Kyle=20
Meadors<B><BR>Sent:</B> Thursday, December 01, 2005 9:04 =
AM<B><BR>To:</B>=20
[email protected]<B><BR>Subject:</B> profiles in AS2</FONT> <BR><FONT=20
face=3D"Times New Roman" size=3D3>&nbsp;</FONT> <BR><FONT face=3DArial =
size=3D2>I am=20
needing the opinion of the AS2 community on the use of a feature =
profiles within=20
AS2. Back in 2002, compression was added as an extra feature. Using=20
"AS2&#8211;Version: 1.1" in a message indicated the UA could support =
compression even=20
if the actual message did not contain the compressed envelope. This =
assisted=20
implementers in knowing if their trading partners could support=20
compression.</FONT><FONT face=3D"Times New Roman" size=3D3> </FONT><FONT =
face=3DArial=20
size=3D2><BR></FONT><FONT face=3D"Times New Roman" =
size=3D3>&nbsp;</FONT><FONT=20
face=3DArial size=3D2><BR>Moving to the present, users are requesting =
new features.=20
These include I&#8211;Ds for Reliability (from GS1), =
Multiple&#8211;Attachments (oil &amp;=20
gas users) and Certificate Exchange Messaging (Wal&#8211;mart, P&amp;G =
and others GS1=20
companies). Given AS2's adoption, I am sure there will be others in the=20
future.</FONT><FONT face=3D"Times New Roman" size=3D3> </FONT><FONT =
face=3DArial=20
size=3D2><BR></FONT><FONT face=3D"Times New Roman" =
size=3D3>&nbsp;</FONT><FONT=20
face=3DArial size=3D2><BR>My question to those on this elist is how to =
do move=20
forward with new features. What do we do to insure only those who =
support a=20
feature receive it (e.g., only sending CEM message to trading partners =
who=20
support that profile)? Also, can anything be done to insure backward=20
compatibility to keep new Feature Header messages from being sent to =
&amp;=20
breaking older, existing implementations (e.g. older implementation =
errors=20
gracefully when getting an unrecognized MA message).</FONT><FONT=20
face=3D"Times New Roman" size=3D3> </FONT><FONT face=3DArial =
size=3D2><BR></FONT><FONT=20
face=3D"Times New Roman" size=3D3>&nbsp;</FONT><FONT face=3DArial =
size=3D2><BR>Here are=20
some options. I would like to hear your thoughts on what is best or =
other=20
ideas.</FONT><FONT face=3D"Times New Roman" size=3D3> </FONT><FONT =
face=3DArial=20
size=3D2><BR>&nbsp; &nbsp;</FONT> <BR><FONT face=3DArial size=3D2>1. Use =
AS2&#8211;Version=20
header to indicate UA support of profiles (e.g. 1.2 indicates CEM, 1.3 =
indicates=20
CEM, Reliability). Works like compression (e.g. "1.2" indicates =
capability of=20
CEM but not an actual CEM message).</FONT> <BR><FONT face=3DArial=20
size=3D2>&nbsp;</FONT> <BR><FONT face=3DArial size=3D2>2. Use a new =
header, e.g.=20
EDIINT&#8211;Features. The features header shows all features supported =
by UA (e.g.=20
EDIINT&#8211;Features: CEM, multiple&#8211;attachment) but like =
AS2&#8211;Version does not=20
indicate every message contains profile.</FONT> <BR><FONT face=3DArial=20
size=3D2>&nbsp;</FONT> <BR><FONT face=3DArial size=3D2>3. Use a new =
header for each=20
feature which is present ONLY in the message using that feature. For =
example,=20
"CEM&#8211;Profile" for CEM messages. This could allow receiving UA to =
filter in only=20
profiles it recognizes.</FONT> <BR><FONT face=3DArial =
size=3D2>&nbsp;</FONT>=20
<BR><FONT face=3DArial size=3D2>4. Create a "Capability Query" =
AS2</FONT><FONT=20
face=3DArial color=3D#000080 size=3D2> </FONT><FONT face=3DArial =
size=3D2>Message which=20
returns a Capability MDN. MDN indicates what features</FONT><FONT =
face=3DArial=20
color=3D#000080 size=3D2> </FONT><FONT face=3DArial size=3D2>receiving =
UA can=20
support.</FONT> <BR><FONT face=3DArial size=3D2>&nbsp;</FONT> <BR><FONT =
face=3DArial=20
size=3D2>&nbsp;</FONT> <BR><FONT face=3DArial size=3D2>Kyle =
Meadors</FONT> <BR><FONT=20
face=3DArial size=3D2>Principal, Test Process</FONT> <BR><FONT =
face=3DArial=20
size=3D2>Drummond Group Inc.</FONT> <BR><FONT face=3DArial=20
size=3D2>615.212.0826</FONT> <BR><FONT face=3D"Times New Roman" =
size=3D3>&nbsp;</FONT>=20

<P>
<P><FONT face=3D"Times New Roman" size=3D2>--<BR>No virus found in this =
outgoing=20
message.<BR>Checked by AVG Free Edition.<BR>Version: 7.1.362 / Virus =
Database:=20
267.13.10/189 - Release Date: 11/30/2005</FONT>=20
<P>
<P><FONT face=3D"Times New Roman" size=3D2>--<BR>No virus found in this =
incoming=20
message.<BR>Checked by AVG Free Edition.<BR>Version: 7.1.371 / Virus =
Database:=20
267.13.12/193 - Release Date: 12/6/2005</FONT>=20
<P>
<P><FONT face=3D"Times New Roman" size=3D2>--<BR>No virus found in this =
outgoing=20
message.<BR>Checked by AVG Free Edition.<BR>Version: 7.1.371 / Virus =
Database:=20
267.14.0/203 - Release Date: 12/15/2005</FONT>=20
<P>
<P></P></BODY></HTML>

------_=_NextPart_001_01C605B4.0419575F--