在嵌入式Linux设备和桌面Windows之间交换数据的架构是什么?

时间:2012-02-08 18:05:38

标签: windows web-services network-programming soa embedded-linux

我正致力于开发嵌入式Linux设备,该设备需要与在Windows桌面环境中运行的系统交换数据。我的团队正在开发嵌入式设备上的软件,并设计API以与设备交换数据。我想对数据交换架构有一些想法。我希望该架构遵循SOA原则。

以下是重要的规格:

  • 数据库:设备将在本地运行SQL数据库服务器。
  • 网络:设备和桌面系统将通过WLAN连接 或局域网。如果有,也可以在设备上运行Web服务器 这是一个令人信服的理由。
  • 数据将在两个方向上交换。文本客户信息和jpeg图像文件(每天约1MB数据)。

我的第一个想法是传统方法:在Linux设备上运行一个进程,该进程通过TCP套接字与Windows端的进程通信。在这种情况下,我的团队需要编写Windows DLL(.NET库或Win32)来实现API。我认为这里的数据格式是XML,但我不确定如何使用这种方法传输.jpg图像文件。

我想更现代的方法是在Linux设备上运行Web服务器,并提供一组Web服务来处理与外部系统的交互。我在这个舞台上没有多少经验,所以我不确定这是否适合我们的情况。

非常感谢您对这些方法的看法。我相信,SO上的集体智慧将帮助我做出明智的决定。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

我也会选择网络服务。如果你使用原始的TCP连接,你可能会遇到编码甚至是endianess的问题(你谈到嵌入式linux,你可能在嵌入式处理器上有不同的endianess)。

我的经历是:

  • SOAP :在Windows上很棒,c#有很多工具可供选择。在Linux方面你必须使用gsoap,除非你想自己编写一个解析器,但这通常是一件坏事。 gsoap有效,但很难学。
  • REST :它更容易实现,以为我不知道任何为您生成代码的程序的Linux。我从来没有在窗户上使用它,但据我所知,visual studio支持它。
  • JSON-WSP :它很容易实现和轻松。我在python上使用它ladon,它真的让我开心。

Ladon也支持SOAP,但如果你想交换文件,它有一些小的限制。看看this