建议在Java和Windows之间使用的软件架构风格

时间:2009-05-22 19:17:29

标签: c# java web-services architecture

这是一个有趣的组合,我需要在运行Windows XP Home的“设备”和互联网上的远程Linux服务器之间传输数据。让我逐条列出需要发生的事情:

  1. “xp home”系统需要每隔30分钟左右传输一次数据或文件。 (SFTP?)
  2. Linux服务器需要联系“XP Home”系统来请求数据。
  3. 看起来很简单呃?我正在考虑在Linux端使用Web服务,并认为在XP Home系统上做同样的事情会很好。但我的一些研究表明,XP Home无法解决传入的Web服务调用问题。也许这是错的?那么RESTful服务会如何呢?

    BTW:由于这是一个新的应用程序,我可以在两端进行开发。 Windows端的C#和Linux端的Java。

    赞赏我们的想法!

8 个答案:

答案 0 :(得分:2)

由于应用程序是新的,如果您需要强大的实时数据共享,我建议您使用共享数据库。 您可以在其中一台主机上安装。

Web服务解决方案过于复杂。在两台计算机上使用相同的技术,您将能够使用所选语言的语言特定功能。

答案 1 :(得分:1)

为什么不在Windows端使用Java呢? Tomcat应该在任何XP上运行....这也会照顾你的其他问题。

答案 2 :(得分:1)

XP Home不包含IIS,但您可以安装其他Web服务器并在Windows端使用它。另一种选择是在两端进行一些简单的套接字编程,以方便从Linux机箱到XP机箱的请求。这种方法不能很好地扩展,但是如果你想快速将某些东西放在一起,那就可以了。

答案 3 :(得分:1)

如果你真的不需要实时。

低技术解决方案可能是让Windows设备定期轮询Linux机器。它可以发送数据并询问Linux盒子是否有任何需要。

这样可以避免在Windows端打开传入端口的需要(这可能是不可取的或不可能的)。

答案 4 :(得分:1)

在Windows服务器上安装Cygwin,安装SSH服务器并确保已安装rsync。在linux端通过cron作业调用rsync。无需编程/设计。

答案 5 :(得分:0)

好的,所以协议都是

  1. Linux系统联系Windows系统以请求数据
  2. Windows系统回复数据。
  3. 有多少数据,有哪些类型?

    首先想到的是,您只需在Windows机器上运行Web服务器并使用数据进行响应。我还没有构建一个,但有很多支持Windows的Web服务器。

答案 6 :(得分:0)

另一种解决方案是使用基于消息的内容,如JMS或XMPP。由于它是通过互联网,XMPP可能更适合。

XMPP聊天消息可以用于握手,它有文件共享扩展来进行二进制传输。

此外,您可以使用您选择的语言来实现任一端,因为所有流行语言都有库。

编辑:据说,Tivo现在使用它从服务器向Tivo框发送发送更新。

答案 7 :(得分:0)

另一种解决方案是让XP端连接到java servlet并将数据作为JSON传递。这可能是最简单的方法,因为它要求你只需要保护java端并且JSON很容易解析,并且在我的测试中它最终比我使用Web服务更快地满足我的需求。

如果你需要有java端请求,那么只需要监听一个端口,只是为了通知需要发送数据,然后将数据发送到servlet。它将是XP端的一个简单服务器,因为它不传输任何数据,只是收到一条小信息('发送')。