2009-10-02 89 views
1

我在這裏有一個相當普遍的問題之間的通信。對於在同一臺機器上運行的兩個應用程序彼此進行通信而無需使用任何類型的Web服務或Web服務器,最好的+可靠的方式是什麼?應用程序(.NET + JAVA)

爲例如:

應用程序A:在與Active X控件可以訪問另一個第三方應用和接收數據的.NET應用程序運行。

應用B:(讓我們假設正在運行的Java)希望能夠啓動應用程序A的方法,具體的參數和應用A.收到信息反饋(無網絡服務允許)

我唯一可以想到的可能是應用程序B執行具有某些參數的文件...然後應用程序A執行任何操作並將任何返回信息寫入數據庫中......但我不知道這是多麼可靠......或者應用程序A會知道數據何時寫入數據庫。 (加上這聽起來像一個有點hackish的解決me..and想知道的是有什麼更好的在那裏)

好嗎...感謝您的幫助!..

安德魯

+0

Web服務並不真正涉及使用一個Web服務器。一個web服務的行爲就像一個,但這只是通信的工作原理。你甚至可以有一個小的html界面記錄你的web服務。是否有任何特定原因不想使用Web服務? – 2009-10-03 01:51:26

+0

我不想處理IIS ......有3個工作方面的問題,特別是當從32位系統改爲64位系統時。 – Andrew 2009-10-03 03:20:16

+0

(我應該說我總是假設web服務=使用web服務器/ HTTP協議) – Andrew 2009-10-03 03:21:45

回答

3

使用tcp套接字應該非常可靠,在同一臺機器上更是如此。它不需要Web服務,Web服務器等 - 只需要在每邊都有一個套接字。

+0

謝謝!...如果你不介意你能否詳細說明一下,tcp套接字可以堆疊到web服務上嗎? – Andrew 2009-10-02 23:57:40

+0

Adam Frisby指出,有xmlrpc和soap庫可以在不需要Web服務器的情況下構建進程間通信。 – 2009-10-03 00:02:12

+0

如果可能的話,再澄清一下:通過使用xmlrpc和soap庫,你是否意味着將我的數據序列化爲「SOAP形式」...使用套接字發送它......然後在另一端反序列化它......有什麼我在這裏失蹤? – Andrew 2009-10-03 01:38:42

1

套接字將是相當容易安裝;但是我建議尋找更類似於SOAP或XMLRPC的東西 - 在打包和解包數據時,這兩方面都會更容易。 .NET和Java都爲XMLRPC和SOAP(提供者和消費者)提供了廣泛的訪問和庫。

+0

謝謝,..只是爲了澄清: 當你說使用肥皂你只是意味着序列化我的數據到一個SOAP對象...發送它使用套接字....然後反序列化它發送時? 因此,我仍然會使用套接字?只使用SOAP作爲我的「通信語言」......如果我在這裏沒有意義,請毫不猶豫地打我一下 – Andrew 2009-10-03 01:31:46

+0

Web服務通常綁定到tcp套接字,但不一定。 SOAP只是用於與Web服務對話的通信協議。而你的用戶對象確實被序列化成適合SOAP包的東西。 – 2009-10-03 01:38:33

0

至於執行方面,TCP套接字和Web服務是一樣容易建立在任何一方(客戶端 - 服務器)。

當性能是一個考慮因素,TCP套接字將有upperhand因爲有更少的開銷。

但是,當涉及到使用性和易於集成的代碼,我更喜歡的網絡服務。說實話,它是一個更透明的技術,當涉及到調試你的代碼。對應的套接字在可用之前需要更多的管道代碼。

看看這個article對通過Web服務在.NET和Java互通的詳細信息。