我在这里有一个很普遍的问题。在不使用Web服务或任何类型的Web服务器的情况下,在同一台机器上运行的两个应用程序之间相互通信的最佳+可靠方式是什么。
例如:
应用程序A:在.NET应用程序上运行,使用活动X控件可以访问另一个第三方应用程序并接收数据。
应用程序B :(假设正在运行java)希望能够在应用程序A中启动具有特定参数的进程,并从应用程序A接收信息。(不允许使用Web服务)
我唯一能想到的可能是应用程序B执行带有某些参数的文件...然后应用程序A执行任何工作并将任何返回信息写入数据库...但我不知道这是多么可靠...或者应用程序A如何知道何时将数据写入数据库。 (加上这听起来像是我的一个黑客解决方案......并且想知道那里有什么更好的东西)
好的...感谢您的帮助!..
安德鲁
答案 0 :(得分:3)
使用tcp套接字应该非常可靠,在同一台机器上更是如此。它不需要Web服务,Web服务器等 - 每边只需一个套接字。
答案 1 :(得分:2)
除了所有答案之外,我还想说我调查了WCF:http://en.wikipedia.org/wiki/Windows_Communication_Foundation
这就是我要使用的内容。我发现这篇文章非常有用:
http://bloggingabout.net/blogs/dennis/archive/2007/04/20/wcf-simple-example.aspx
答案 2 :(得分:1)
套接字相当容易设置;但我建议寻找更类似于SOAP或XMLRPC的东西 - 在打包和解包数据时,这两者都会容易得多。 .NET和Java都具有XMLRPC和SOAP(提供者和消费者)的广泛访问和库。
答案 3 :(得分:0)
就实现而言,TCP套接字和Web服务在任何一方(客户端 - 服务器)都很容易设置。
当考虑性能时,TCP套接字将具有优势,因为开销较少。
但是当谈到可用性,并且易于集成在代码中时,我更喜欢Web服务。老实说,在调试代码时,它是一种更加透明的技术。对应的套接字在可用之前需要更多的管道代码。
有关通过Web服务进行.NET和Java互通的更多信息,请查看此article。