我不知道是否有人可以指出我编写代码以通过 AS2 发送文件的正确方向?
2 回答
我的一位同事前段时间为我们的一个客户编写了 AS2 的 C# 实现(他使用 .NET 1.1),所以我可以告诉你,你想做的事情肯定是可以实现的。
为此,您需要获取AS2 RFC以及 AS2 引用的任何其他 RFC(例如各种 HTTP 的)的副本。
您还需要一些东西来测试您的工作——您可以将消息发送到的其他一些 AS2 实现。
这是我的同事遵循的方法,在该过程结束时,他制作了一个已经生产了大约 7 年的 AS2 运输工具,与几家使用 Drummond 认证产品的跨国公司打交道。
您不一定需要走这条路 - 您可以通过在 HTTP 帖子中提供正确的 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 的人不想通过不受信任的第三方)。
与任何事情一样,这实际上取决于您需要做什么的细节。
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