2013-05-17 44 views
0

我必須在一堆不同的網絡中部署一些Java服務器。對於每個服務器,我需要監視其狀態併發送要在該特定服務器中執行的任務。像分佈式工作者一樣。監視和控制遠程Java服務器

這臺服務器將使用不同的平臺和語言,所以我需要找到一種方式與他們溝通並獲得所需的信息。哪種做法最好?我一直在閱讀關於如何使用JSON與我的服務器進行通信,但我試圖找出是否有更好的方法。

另一種解決方案可能是通過Web請求來設置Web儀表板和控制,但我更喜歡服務器是獨立的。關於我能做什麼的任何想法?

回答

1

此刻,我會建議REST接口,爲您的Java服務器。由於使用Json的REST很容易在其他語言中實現,您甚至可以使用HTML和JavaScript來編寫Monitor客戶端。所以從我的角度來看,這是最靈活的解決方案。

另一種解決方案是使用XMPP與服務器「交談」並「詢問」它們的狀態。我記得這是機器到機器通信的解決方案,但這是Json和REST熱潮之前的事情,所以我不會建議這樣做。

當你的其他平臺由Java和C#組成時,大多數SOAP也可能是一個解決方案,因爲這兩種語言都有很好的代碼生成器,可以從代碼創建WSDL,反之亦然。但是,在JavaScript中使用SOAP有點困難(據我所知),也許其他語言與SOAP有相同的問題。

+0

REST聽起來很有希望,但我找不到一個體面的教程/文章獨立/控制檯Java應用。你能指給我一個嗎?這真的值得一試^^ –

+0

你可以看看http://stackoverflow.com/questions/8277409/jax-rs-with-embedded-server或http://www.adam-bien.com/roller/ abien/entry/the_executable_feel_of_jax這個簡單的例子。當您的服務器位於應用程序服務器或Java容器中時,您可以檢查Spring或JavaEE REST Web服務類。 – mszalbach

+0

我正在看看JAX-RS,但我有一個問題。這個想法是,也許有一些服務器在同一臺計算機(不同的端口)。 Jersey和JAX-RX可以這樣做嗎?此外,似乎我需要一個網絡服務器(例如Tomcat)來部署我的服務器。這是嚴格必要的嗎? –

1

如果多個平臺都參與其中,Web服務可能是你最好的選擇。你可以讓你的Java服務器公開Web服務(用於狀態和任務執行),你可以從任何地方/任何系統調用它們。

+0

而且,我需要一個網絡服務器還是我的服務器中的特定框架?這聽起來很有趣。 –

+1

您需要一個可以響應/發出HTTP請求的服務器。 Spring Web服務是一個很好的java webservices框架。這裏是一個使用Spring創建REST服務的教程http://static.springsource.org/spring/docs/3.0.0.M3/reference/html/ch18s02.html –

+0

我認爲Spring的目標是創建更大的網站或服務。這將是一個控制檯服務器。守護進程。春天對此好嗎? –