2012-10-10 60 views
0

我正在創建客戶機 - 服務器應用程序,我計劃將至少2種技術合併到一起。最近我在處理網絡通信方面看了很多關於node.js的表現,所以我想試試看。在各種技術之間傳遞數據

問題是,在node.js中編寫整個服務是不可接受的(遵循以下規則:「選擇適當的技術來完成任務,而不是技術的正確任務」),所以我只想創建web界面node.js(客戶端和服務器端),並在java/c#/ C++中實現其餘部分。

我的第一個想法是啓動一個單獨的net-interface和core-app進程,並使用localhost套接字在它們之間進行通信。但我想知道是否有另一種方式來做到這一點,因爲套接字有其侷限性(緩衝區大小等)。

所以問題是:是否有可能在同一臺機器上強制使用各種技術的進程之間的通信?

感謝

+1

你可以在這裏閱讀關於幾種技術:http://en.wikipedia.org/wiki/Inter-process_communication使用套接字是最好的,最可靠的和容錯的。 – freakish

+1

CORBA是你應該尋找的 – user1406062

+1

CORBA在這裏是矯枉過正的。 – Joe

回答

2

是的,這可以通過使用Web服務,迫使各種技術之間的通信。

在我看來,使用Web服務在各種技術之間傳遞數據比使用JavaScript更加健壯。你知道,用戶可以簡單地使用他的瀏覽器禁用JavaScript。

每種成熟的編程語言都支持Web服務。另外,如果您想要集成以相同語言編寫的不同應用程序(例如Java),則可以使用Java消息傳遞服務。奇蹟般有效!

1

您可以使用各種IPC(進程間通信)技術,但使用套接字將具有使您能夠將組件移至不同服務器的額外好處。然後您可以通過套接字使用SOAP或REST服務。

0

有許多方法可以實現這一點,Web服務因爲傳統已經使用XML在兩種不同的技術系統之間進行數據通信。 Web服務本身是強加不同技術之間溝通的好方法之一,而不是所有優秀的編程語言用於實現Web服務的日子。

除此之外,您還可以使用鏈接進行硬件通信,即進程交換和切換,IPC(進程間通信),腳本引擎(JavaScript),XML Involution(與ATM類似的技術機器用於同步數據)。