2013-02-12 66 views
-2

我開始一個新的Java項目,並且陷入了架構階段。帶網絡前端通信的Java守護進程

的想法是創建一個Java守護進程(我設計這對於Linux),這將有一個Web前端(JSP?PHP,......)在Tomcat中運行。守護進程會定期輪詢mysql數據並執行外部腳本和程序。

Web前端將用於查看來自mysql的數據併發信號通知守護進程開始一項新任務(例如,每隔x秒輪詢Windows客戶端上的任務列表命令),並將其呈現給瀏覽器。

我的問題是:

1)這是守護+ web前端很好地結合起來?我讀到它可以用兩個servlet完成,一旦tomcat啓動就會加載一個servlet,但這限制了我與外部程序的通信以及使用其他系統調用,或者我錯了嗎?

2.)哪種web框架最適合這種情況? (GWT,Spring,?)

3.)如果要使用守護進程+ web前端組合,兩者如何溝通(UNIX套接字或HTTP套接字或???)作爲polling mysql往往不是我想要的去做?

4)是否JavaServerPages非常適合這也將是複雜的這種情況呢?

我以往的經驗是做了一些的Java Swing應用程序,進行Webstart應用程序和一些PHP網頁。

我很感激任何關於如何設計這個的建議。

謝謝!

彼得

回答

0

我對這個問題沒有太多明確的,但我會盡量回答你的問題,不知道是否該將非常有意義,因爲我不是上下文清楚。

1)是的,你可以使用該組合,所有的服務器都是線程。不確定爲什麼你需要2個servlet,但是你可以在ServletContextLister中啓動你的守護進程。不建議在Servlet中使用守護進程。它如何限制與外部程序的通信或使用其他系統調用?

2)任何框架或根本沒有框架。你給出的兩個例子是完全不同的東西。

3)爲什麼2需要溝通?前端從mysql或守護程序獲取數據。從這個問題看來,它從數據庫中獲取數據。

4)你可以用框架做的所有事情你也可以自己做。只有框架有幫助。

+0

前端如何從守護進程獲取數據?通過哪種方式? – 2013-02-12 08:16:39

+0

如果它的一個公共數據(爲所有客戶端共享),那麼守護進程可以將這些數據放在ServletContext中。客戶端需要從那裏獲取數據。不是它取決於你希望客戶如何?客戶端是否需要自動刷新數據,或者用戶是否需要訪問某個特定鏈接並查看數據?這是一個自動刷新你需要使用Ajax輪詢 – 2013-02-12 09:38:12