簡體   English   中英

將2層Java應用程序遷移到......?

[英]Migrating a 2-tier Java application to…?

我們目前有一個位於MS SQL Server 2005之上的2層Java Swing應用程序。所有業務邏輯都在數據庫中。 客戶端很老(而且不是很友好),出於性能和可伸縮性的原因,我們已經開始將一些服務移植到Java中間層。

但是,我們仍有許多短期和長期目標:

為新的前端選擇技術堆棧

這並不容易 - 我可以看到從連續體一端的Web應用程序到另一端的傳統桌面應用程序的所有內容都是可行的選擇。 當前的前端並不是很復雜(主要是基於表單的),所以我可以看到web / AJAX適合,但這是一個我們不知道我們不知道的領域。

我列表上的堆棧是:

  • Eclipse RCP,Netbeans RCP
  • Flex / Flash,Silverlight,JavaFX
  • 純Javascript前端(Sprout Core,Javascript MVC,...)
  • 基於Java的Web框架(Wicket,JSF,...)

找到一種方法,使當前應用程序在遠程情況下可以接受

我們有一些客戶將我們的應用程序轉售給較小的客戶,並且需要能夠遠程部署它。 由於當前體系結構的2層特性,這會導致可怕的性能(例如,調用返回18個結果集的存儲過程)。 我們過去曾使用Citrix解決方案,但沒有人喜歡這種方法。 通過端口80隧道化JDBC也聽起來不錯。 我開始懷疑是否有任何東西可以使用類似X-Windows的方法遠程只是GUI部分。

如果您想輕松地重新部署應用程序,更新,安全原因等,並且如果您希望遠程訪問您的應用程序,您應該考慮基於Web的前端。

另外,這樣,只有一個應用程序,即您的Web應用程序,將處理與數據庫的連接,因此沒有JDBC隧道或其他任何東西。

關於最佳框架,它取決於您的團隊知識,您的應用程序的使用方式(或多或少的javascript)等。

為了簡化開發並利用您在Swing中的體驗,請考慮使用Vaadin作為前端 它是一個Java框架,用於構建看起來很棒且性能良好的現代Web應用程序。 所有代碼都是用Java編寫的,看起來與Swing非常相似。

就整體應用程序架構而言,我會建議多層,面向服務的架構。 最好的方法是使用Spring框架和Hibernate進行數據庫訪問

在我們遷移遺留應用程序時,我們剛剛經歷了一個非常相似的評估過程。

對我們來說,使用前端框架的最大決定因素是開發團隊的先前知識。 我們希望每個人都能立即感到滿意。 我們有幾個與X或Y一起工作的高級開發人員,但每個人都知道的框架是Swing。

最后,我們決定在NetBeans平台上使用RESTful webservice與EE服務器進行通信。

作為獎勵,您可以將NetBeans平台應用程序部署為Java WebStart應用程序,這意味着您可以獲得不必擔心單個安裝的好處。

如果前端主要是基於形式的,我會遠離Flex。 Flex非常適合某些應用程序(我將它用於基於畫布的應用程序),但Flex的表單組件具有一些可用性問題。 他們只是不像你期望的今天網絡那樣工作。 (比如缺少對鼠標滾輪的支持,輸入下拉列表只考慮第一個字符等)

假設您要強制所有客戶端安裝新的中間層,我不能想到反對使其成為Java Web應用程序的爭論。 如前所述,您可以通過HTTP控制對平台的所有訪問,這樣可以輕松轉售,只需使用防火牆配置即可。 您無法在Web前端中使用Javascript,您可能對DWR感興趣,它允許您通過Javascript直接與Java對象進行交互。 我以前用過這個來為Spring MVC webapp添加一些簡單的Ajax交互。

我喜歡這種方法的原因,你已經將代碼遷移到Java中間層,所以

  1. 已經在客戶端上施加Java服務器硬件成本,托管應用服務器/ Web服務器具有可比性
  2. 已經擁有Java專業知識,可以與DWR一起使用
  3. 可以使用盡可能多的/小Javascript(我已經使用DWR與IE6,Firefox 3,Chrome)

我認為你應該警惕向客戶推送過多的功能,我會盡可能地減少客戶端。 我看看前兩個堆棧選擇的唯一原因是,如果您在特定區域擁有一些開發人員專業知識,而不是Java webapp / Javascript。

我建議創建一個候選框架的簡短列表,並創建一個包含所有這些框架的小型測試應用程序。 通過這種方式,您可以從所有這些方面了解好的和壞的方面,並了解每個項目的社區活動和文檔是什么樣的(這些方面存在很多差異)。

如果你最終這樣做,我希望你能將Vaadin列入你的短名單,我認為它非常適合你。 如果您有任何問題,請訪問我們的論壇 ,我們將幫助您開始使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM