2009-06-23 42 views
3

我建立在Java的應用程序(使用一個jQuery前端)。它需要每兩秒更新一次接口。構建一個基於Java的股票交易應用程序,需要需要跟第三方應用程序指針技術使用

難道是使用彗星是一個好主意?如果是這樣,它們如何適合照片?

我可以使用其他方法/技術,使應用程序更好?

該應用程序將輪詢來自第三方應用程序的股票價格,將其寫入數據庫,然後每秒鐘將其推送到前端,以便進行輪詢,我有一個每秒運行一次的計時器以調用第三方應用程序對於數據,然後我必須使用JSP或其他東西將其顯示到前端,

好在這一點我不知道如果我應該使用一個servlet寫出來的前端,你會推薦什麼?我應該怎麼做呢?

有什麼,我可以使用,而不是servlet的新技術?

我也使用Berkeley數據庫來存儲數據,你認爲這是一個很好的選擇?會是什麼缺點,如果有使用伯克利..

IM絕對無能,所以任何建議將非常感激。

謝謝!

編輯:我打算這樣做,這樣一個桌面應用程序不斷輪詢從第三部分,並寫入數據庫和Web應用程序只讀取和顯示從數據庫,這將減少Web應用程序的負載和它所要做的就是從db中讀取數據。

回答

1

PostgreSQL可能是正確的數據庫。它比MySQL更有企業精神。至於前端,有很多東西可以放在servlet,SpringMVC,Tapestry等等之上。實際的servlet實現將對您隱藏。

許多人會認爲,這可能不是一個壞建議使用Spring配置應用程序和做任何依賴注入。

如果你正在尋找的東西多一點輕量級的,你可以考慮的Grails。發展並變得成熟很快。

真的不過,這是一種很難的事情推薦不知道什麼樣的「生產」的環境,這將是。我們在談論很多交易嗎? (當然,這是一個股票交易程序,但是它是一個模擬,只有少量的用戶等等......)建議的事情很有趣,但如果你是認真的,我不確定我會開始一個像這個。有很多方法可以做到這一點,並有很多方法可以做到這一點錯誤。

+0

嗯,我明白了,你是從哪裏來的,但我hvae開始的地方,也許朝它逐步的工作,我知道有很多事情我們可以得到錯誤的,但也有一些很好的意見,我也可能不會獲得最它的權利:)應用程序有很多事務,因爲它在每秒更新並將值存儲到數據庫(至少),然後我的客戶已經有一些企業客戶,所以會有一些公平的用戶使用它,最終會在幾年內變得更大,但我需要建議,以便它不會造成困難。 感謝您的所有建議,這是非常好的:) – Mponnada 2009-06-23 03:12:28

+0

也, 編輯:我打算這樣做,以便桌面應用程序不斷輪詢從第三部分和寫入數據庫和Web應用程序只讀取和顯示從數據庫中,這將減少Web應用程序的負載,它所要做的就是從數據庫中讀取數據。 – Mponnada 2009-06-23 03:32:23

5

看看使用Web應用程序框架而不使用servlet的 - 除非它是一個屏幕一個很基本的項目。不幸的是,Java世界存在很多問題,它可能有點雷區。堅持SpringMVC或Struts 2,最糟糕的部分是設置這些,但看看示例應用程序加上一兩個教程,然後從那裏開始工作。

http://www.springsource.org/about

http://struts.apache.org/2.x/index.html

另一種選擇看是使用模板框架如AppFuse的讓自己和運行,而無需大量的框架集成在一起,請參閱:

http://appfuse.org/display/APF/AppFuse+QuickStart

它提供了一個模板來設置SpringMVC與MySQL作爲數據庫加Spring作爲POJO框架。這可能是一個快速開始和建立原型的方法。

根據您的延遲需求2秒來判斷,看看某種AJAX框架是明智的--JQuery或Prototype/Scriptaculous都是開始的好地方。

http://jquery.com/

http://www.prototypejs.org/

在其他technoloqies方面把事情做好,你將要考慮構建系統,螞蟻/ Maven的是精細與Maven的兩個稍微複雜一些。

http://ant.apache.org/

http://maven.apache.org/download.html

此外,考慮的JUnit測試應用程序。您可能需要考慮Selenium對前端進行功能測試。

http://www.junit.org

http://seleniumhq.org/

+0

嗨,感謝您的建議,這是非常有益的,也是, 我打算這樣做,以便桌面應用程序不斷輪詢從第三部分,並寫入數據庫和Web應用程序只讀取和顯示數據庫,這將減少Web應用程序的負載,它所要做的就是從數據庫讀取數據。 – Mponnada 2009-06-23 03:44:32

2

我想你應該專注於自己的建築設計揀選技術爲重點的可擴展性和可擴展之前。一旦建築設計到位,你可以看看有什麼可用的,你需要建立什麼,所有這些都應該是非常明顯的。

雖然不能直接比較Google,eBay和YouTube如何處理它們面臨的可擴展性問題。雖然交易系統不會遇到這些人擁有大量用戶的問題,但您會遇到類似的數據量問題,並能夠及時處理價格報價。

倫敦證券交易所獲得3000個名字,乘以世界各地10家左右的熱門交易所,並且您在每個市場開放期間都會持續更新大量數據。爲了讓您瞭解從單個交易所獲取數據的過程,請參閱http://kx.com/

從數據庫的角度來看,您將需要一些可以進行集羣和可靠複製的工業實力 - 對我而言,這意味着Oracle。你也想看看Time-series Database Design,根據我的經驗,這是建立這種系統的最好方法。

同樣的擴展性和可靠性要求將適用於您的應用服務器,JBoss在那裏是合乎邏輯的選擇,但我也會考慮OSGi Spring Server(http://www.springsource.com/products/dmserver),因爲它的輕量級特性可以使其更快。

您還需要進行負載均衡的Apache服務器,並提供靜態內容 - 一個快速谷歌會轉動起來的信息棧上,所以我這裏就不再重複了。

而且忘記投票,它不適合。查看使用消息傳遞和消費者進程進行進程間通信的跨進程通信,事件和工作線程。這兩種技術都實現了自然的負載平衡效果,可以通過根據需要增加消費者進程或工作線程的數量來進行調整。

另外一個靜態前端不會切斷芥菜,IMHO。看看市場上已經有什麼--CNC Markets,IG Index等都有非常令人印象深刻的實時交易應用程序。另外,假設這是一個商業項目,並不意味着對整個事情下決心,像CNC Markets,IG Index等公司通過交易費賺錢,軟件是一種手段,以達到目的,您只需擁有一個賬戶即可免費獲取。交易軟件的另一個目標是商業機構,比如銀行,投資經理等。我想要一個非常防水的計劃,讓我在進入這兩個市場之前花費太多的時間和精力。

4

這是一個真正的股票交易應用程序?或者只是股票價格顯示應用程序?我在問,因爲從你的描述來看,這聽起來像後者。

如何關鍵的是它的數據輪詢每秒?如果某些民意調查遲到了一兩秒鐘,具體會有關係嗎?

如果你正在建設一個股票交易應用程序(其中時間是絕對關鍵的),或者如果你不能在你的投票被推遲,我建議你看一下在Java實時解決方案之一:

除此之外,我唯一的建議是你堅持良好的面向對象設計實踐。例如,使用DAO寫入數據庫,這樣,如果您發現Berkeley DB不適合您,可以相對容易地切換到關係數據庫系統。如果您決定需要,還可以輕鬆轉到某些數據庫分區解決方案(例如,Hibernate Shards)。雖然我可能有自己的技術偏好(例如,我會選擇Spring MVC作爲其他人提到的前端,但我會嘗試使用Hibernate來實現持久性),但實際上我並不認爲這些會更好比其他技術。如果它符合法案,請去熟悉你所熟悉的東西。

相關問題