是否有更簡單的方法通過使用像GlassFish這樣的應用服務器來實現這些目標?
這是3層設置中應用程序服務器(與Web服務器不同)的精確要點。當然,您可以輪詢和/或使用消息傳遞來爲元數據(例如數據庫更改事件)通信提供額外的掛鉤,但最終很難重新發明一個非常知名的(並且非平凡的)輪(例如分佈式中的數據同步層)。
如果您可以在客戶端無需高速緩存查詢結果而生存,並且訪問服務器(第二層)的數據訪問延遲是可以接受的,那麼顯然這是要走的路。
[下面是一個相當晚的p.s.但恰巧今天再次閱讀這個問題,並且個人覺得需要澄清。]
Java EE是一個基於分佈式容器/組件的企業級架構。拋開J2EE組件市場的失敗(儘管一些人嘗試過),剩下的就是它的COA事實以及它作爲該體系結構的基本關注點的固有支持。請注意,Java EE的web配置文件(例如「web-server」)也是同一架構的一部分。
那麼當您使用這些Java EE應用程序服務器之一時,您會得到什麼?它將如何解決您的需求/設計問題。 (a)分佈式名稱空間(JNDI)和(b)跨層連接的產品菜單(純RMI(在您將滾動條自己的分佈式基於RPC的系統),Enterprise Beans aka EJB(遠程和本地公開的組件接口,在可分發容器中的查找和生命週期方面具有明確定義的語義)在EJB風格中,就連接語義而言, JMS)和直接RPC。
對於您的情況,例如,您可以選擇帶有胖客戶端JMS端點和MessageDrivenBean EJB的JMS消息總線。基於主題/訂閱和直接隊列,這些都可以有條理地配置爲耐用或不可用等。
您的應用程序服務器c /將提供此JMS提供程序,或者您可以選擇最好的品種,例如, TIBCO,滿足您的需求,滿足您的要求。
你不是在重新創造任何上述非常平常的擔憂。您的重點仍然是您的域名要求,並且您擁有在某些合理的SLA中創建平臺所需的所有工具。
一個可行的替代方案是用獨立的OSS軟件構建歸結爲Java EE的COA方法(它們都可以讓你聲明性的魔術和皮塔餅開發儀式)的相同的東西。 Ø爲您的巴士提供MQ,REST遠程RPC以及可能的REDIS,以加強對您的信息的持久性保證並協調(無JNDI)您的分佈式球。
我個人比較喜歡後者,因爲它對我來說是更有趣。由於對分佈層更直接的控制,所以提高了效率,由於非常嚴格的要求(例如極少數要求),可以提高可擴展性。
企業的分佈式系統設計(「已被分配」)需要考慮業務需求,而不僅僅是應用領域。這是等式的一部分。
希望這是有幫助的(和及時;)
是的,這是非常有幫助和及時的:-) @All:非常感謝偉大的投入! – salocinx 2012-05-03 14:33:39