Has anyone used the AS2 protocol for EDI?

Mark O'Grady picture Mark O'Grady · Dec 22, 2009 · Viewed 10.6k times · Source

I don't know if anyone can point me in the right direction of writing code to send a file by AS2?

Answer

David Hall picture David Hall · Dec 31, 2009

A colleague of mine wrote a C# implementation of AS2 for one of our clients some time ago (he used .NET 1.1) so I can tell you that what you want to do is certainly achievable.

To do this you would need to get a copy of the AS2 RFC as well as any other RFCs that the AS2 one references (the various HTTP ones for example).

You will also need something to test your work against - some other implementation of AS2 that you can send your messages to.

This is the approach my colleague followed and at the end of the process he had made an AS2 transport which has been in production for around 7 years, dealing with several multi-national companies who used Drummond certified products.

You do not absolutely need to go down this track - you can send a valid AS2 message just by supplying the right AS2 headers in an HTTP post, but then you would only be implementing a bare minimum subset of the AS2 standard, which would not include the encryption, authentication and non-repudiation aspects of the protocol that make it worth using.

If you only want to send AS2, perhaps with basic encryption and signing, this could be feasible.


I would, however, strongly advise against you writing your own AS2 implementation unless you a) absolutely must or b) are sure you will only be sending basic messages with simple encryption and signing.

I say this because:

  1. The code is non trivial
  2. You will run into issues around certification

The certification issue is possibly the biggest hurdle. All the big vendor AS2 offerings (e.g. Gentran, WebSphere, BizTalk) are Drummond certified. What this means is that they have passed a series of tests administered by the Drummond Group Inc. establishing that their implementation of AS2 can interop with all other implementations.

Drummond certification is a time consuming and costly process, and without it you are always viewed as being suspect. Even if you implement a flawless AS2 sender, your code will always be the place fingers are pointed.


As far as alternatives go, there are several free or relatively inexpensive AS2 implementations like OpenAS2 (only Java) or Boomi (commercial but not too expensive) up to full blown B2B engines like Websphere and BizTalk.

I've not heard of AS2Box previously, but it does sound like it could meet your needs (though typically people using AS2 would not want to go through an untrusted third party).

As with anything, it really depends on the specifics of what you need to do.