集成MS Dynamics AX与Play框架



在我的公司我们使用MS Dynamics AX 2009。我们有大约100个用户。MS Dynamics AX的服务器在总部公司。

我们正在使用Play框架和Scala语言开发一个新的网站。然而,网站服务器不在总部公司,专用服务器托管在OVH,一个欧洲的ISP。

网站需要实时的ERP数据,但是MS Dynamics AX数据库位于公司总部,网络连接很不稳定。

这就是问题所在!我们需要网站和ERP之间的双向通信,但是ERP服务器的网络连接非常不稳定。我们想到了两个解决方案:

  • 在总部和网站使用RabbitMQ。当ERP中发生事件时,ERP会在RabbitMQ中发送一条消息,当互联网连接正常时,网站就会收到这条消息。当一个事件发生在网站上时,网站会在RabbitMQ中发送一条消息,当互联网连接正常时,ERP会收到这条消息。所以,我们有2个RabbitMQ,一个在总部,另一个在网站服务器。

  • 使用MS SQL Server Replication将数据库从总部复制到ISP,我们需要ISP中的两台服务器:网站(Linux, Apache, MySQL, Play Framework)和SQL Replica (Windows, SQL Server)。当ERP中发生事件时,SQL Server复制将这些更改传播到ISP中的SQL复制服务器,并且网站始终读取SQL复制服务器中的数据。当一个事件在网站中发生时,我们也需要像以前一样的RabbitMQ队列。

你觉得这个架构怎么样?最好的解决方案是什么?MS SQL Server是否可以使用不稳定的互联网连接进行复制?

提前感谢。

我曾在墨西哥的一家公司工作,该公司的互联网连接不稳定,不得不使用第三方产品开发定制解决方案。

一个评论/想法是,你真的需要所有 ERP数据还是只是一个较小的子集?

我不完全确定RabbitMQ是什么,但如果它像MSMQ,那么它听起来不像一个坏主意。

我建议使用AIF和MSMQ(实际上使用WCF &NetMsmq binding)或获得第三方产品(如Scribe/CastIron/Biztalk)的帮助。第三方产品很可能是你最好的选择。

我认为MSMQ会工作,因为它将所有内容发送到消息队列以发送/接收,并且异步工作。数据库镜像是一个痛苦的过程,尤其是在网络连接不稳定的情况下。您可能会在夜间完成大部分镜像操作,从而丢失实时数据。

最新更新