Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 10 years ago.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
我的一位同事前段时间为我们的一个客户编写了 AS2 的 C# 实现(他使用 .NET 1.1),所以我可以告诉你,你想做的事情肯定是可以实现的。
为此,您还需要获取 AS2 RFC 的副本与 AS2 引用的任何其他 RFC 一样(例如各种 HTTP RFC)。
您还需要一些东西来测试您的工作 - 您可以将消息发送到的其他一些 AS2 实现。
这是我的同事遵循的方法,在这个过程结束时,他制作了一款 AS2 运输工具,该运输工具已经生产了大约 7 年,与几家使用 Drummond 认证产品的跨国公司打交道。
您绝对不需要走这条路 - 您只需在 HTTP post 中提供正确的 AS2 标头即可发送有效的 AS2 消息,但随后您将仅实现 AS2 标准的最小子集,其中不包括该协议的加密、身份验证和不可否认性方面使其值得使用。
如果您只想发送 AS2,也许使用基本的加密和签名,这可能是可行的。
然而,我强烈建议您不要编写自己的 AS2 实现,除非您 a) 绝对必须或 b) 确定您只会发送带有简单加密和签名的基本消息。
我这样说是因为:
认证问题可能是最大的障碍。所有大型供应商的 AS2 产品(例如 Gentran、WebSphere、BizTalk)均经过 Drummond 认证。这意味着他们已经通过了 Drummond Group Inc. 管理的一系列测试,证明他们的 AS2 实现可以与所有其他实现互操作。
Drummond 认证是一个耗时且成本高昂的过程,如果没有它,您总是会被视为可疑。即使您实现了一个完美的 AS2 发送器,您的代码也将始终是人们所关注的地方。
就替代方案而言,有几种免费或相对便宜的 AS2 实现,例如 OpenAS2 (仅限 Java)或 Boomi(商业版但不太贵)直至成熟的 B2B 引擎,如 Websphere 和 BizTalk。
我以前没有听说过 AS2Box,但它听起来确实可以满足您的需求(尽管使用 AS2 的人通常不想通过不受信任的第三方)。
与任何事情一样,这实际上取决于您需要做什么的具体情况。
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:
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.
这有点晚了,但为了使这个答案保持最新:现在有了 Azure Biz Talks 服务,仅仅使用 BizTalk 也还不错。这是一个很好的例子:
http://code.msdn.microsoft.com/windowsazure/Windows -Azure-BizTalk-EDI-8ebd429f
This is a bit late, but for keeping this answer up to date: Now with Azure Biz Talks services, it's not too bad just to use BizTalk. Here is a good example:
http://code.msdn.microsoft.com/windowsazure/Windows-Azure-BizTalk-EDI-8ebd429f