2012-07-19 26 views
0

我正在開發一個Java應用程序,它可以讀取連續寫入的記錄集文件(每月800.000.000條記錄),批量讀取文件中的數據並調用Web服務以讀取數據。這些數據應該存儲在一個數據庫(一個龐大的數據庫)中。我要添加的下一個功能是一個Web服務,可以從其他應用程序中調用該服務來添加或接收(預定義的查詢[也許該方法/查詢的運行時間約爲1或2分鐘])記錄。除了Web服務,我還希望用C#,C++等編寫的其他應用程序能夠連接(我想過協議緩衝區或apache節點)。 至少它應該提供一種方式來管理應用程序(我雖然關於一個網站)我應該如何在java中設計服務器應用程序

在我看來它應該是一個服務器應用程序。但是,我應該自己開發一個服務器(打開套接字等),Java EE還是有其他「服務器框架」(可能是碼頭,套接字等的組合)?

+0

好了,你可以通過定義你想要的「網絡服務」,看起來像一個開始。我們是否正在通過HTTP談論REST? RPC? 「Web服務」(例如Jax-WS)?你想讓溝通看起來像什麼? – 2012-07-19 13:10:49

+2

你問你是否想推出自己的Apache Tomcat或Microsoft IIS?答案是No. – 2012-07-19 13:11:10

+0

好的。讓我總結應用程序的功能:1.)不斷從HD讀取文件並將對象(每分鐘800個)添加到數據庫。 2.)定期調用WS以獲取更多數據(每10分鐘呼叫一次)3a。)提供用於添加數據的ws(技術待定)(每小時500個呼叫)3b。)提供檢索統計信息的方法(數據庫中有多少條記錄,等等)4.)使用thrift或protbuf enalbe .net,C++應用程序從數據庫查詢10000個對象5。)提供一個網站來管理應用程序。我的問題是:我應該使用預先構建的服務器(glasfish,jboss等)還是應該實現我自己的 – 2012-07-19 13:32:55

回答

1

只是分而治之: 一種解決方案可以是使用Tomcat:

功能1)創建線程讀取該文件。那麼你可以在web.xml中定義一個上下文監聽器

函數2)查看java.util.Timer,或者爲了更強大的功能,查看像Quartz這樣的第三方產品。

函數3a)有很多WS框架可用。使用谷歌找到的教程

功能3B),谷歌爲異步Web服務或Servlet的異步支持

功能4)AFAIK節儉有一個內置的TServlet。我認爲,Tomcat和谷歌Protokoll緩衝器還可以

功能5)提供的網站是雄貓主要功能

1

如果這將是用戶可以部署的東西 - 客戶將購買的產品或者供人下載的開源工具 - 那麼我會建議最好的方法是在容器中開發它儘可能不可知的方式。

我的意思是,專注於應用程序的功能,以及抽象的東西,如啓動和連接服務。如果你這樣做了,那麼你可以編寫特定於容器的元素,以允許你的用戶部署應用程序,例如他們選擇的應用程序服務器,或者作爲獨立的應用程序。另一方面,如果是內部項目,您完全控制應用程序使用方式的所有方面,則可以避免部分或全部上述內容;儘管在任何情況下你都可能會更好地使用這種抽象。

當然,Eric Leschinski是正確的,你不想開發類似Tomcat或IIS的東西。

相關問題