2010-09-03 68 views
0

我目前正在研究Flex和Liferay來提供RIA。我們正在取代構建在內部AJAX/Java庫上的一個相當大的現有應用程序。爲此,Flex似乎滿足了我們的開發需求,但我們已經將扳手投入了工作。我們需要與Liferay和JSF構建的另一個內部應用程序集成。Liferay提供RIA

在對Liferay進行了一番調查之後,我不相信它能夠爲我們現有的應用程序提供任何好處,因爲通過Portlet交付除了實現與其他應用程序的集成之外似乎沒有任何固有優勢。它也似乎有一些缺點,包括swf和頁面其餘部分之間的順暢交互,融入Liferay的用戶管理以及它們普遍缺乏面向開發人員的文檔。

在我看來,Liferay是一個很好的解決方案,如果你需要一個內部維基/新聞/社交應用程序,但是爲了提供一個強大的RIA,看起來我們正在試圖在一個圓孔中安裝一個方形釘。

我的問題是:Liferay是用於提供完整的RIA應用程序嗎?還是它更適合提供更小的應用程序的平臺?我是否錯過了一些關於Liferay的內容,使它非常適合RIA?

在此先感謝您的任何建議!

回答

0

你可以很容易地得到一個Flex應用程序在門戶露面(Liferay的或其他),但在這裏,你可能會遇到一些問題:

1)典型的門戶服務器保存所有的狀態 - 所有的portlet - 在服務器上。每次交互都會導致頁面刷新,從而根據服務器端狀態重新渲染頁面上的所有內容。對於Flex應用程序,您通常不需要服務器上的狀態。而且您不希望每次交互重新加載Flex應用程序。一些門戶獲得更多的Ajax'y解決了這一部分問題,但總是會在HTML portlet或門戶chrome中進行一些交互,導致頁面刷新。這意味着Flex應用程序必須完成一些工作才能在頁面刷新之後保持狀態。一個簡單的方法是使用LSO,但這需要大量額外的管道代碼。

2)Portlet間通信(在JSR 168門戶中)通過基於頁面刷新的服務器。這也不適用於Flex應用程序。 JSR 286試圖解決這個問題以支持Ajax portlet IPC。在那之前,讓Flex應用程序與標準IPC一起工作很困難(但可能)。

3)門戶的很大一部分是權利,定製和偏好。這些都很難從Flex中使用和交互。在JSR 168門戶網站中,沒有一個標準的方法來做到這一點。在JSR 286中,有一個標準使得Flex更易於讀取和更新用戶首選項。

4)使用WSRP和其他遠程Portlet技術,門戶服務器可以使用遠程Portlet並將所有請求代理回Portlet提供程序。使用Flex時,這更加困難,因爲門戶服務器不知道如何代理Flex請求(HTTPService,RemoteObject,DataService等)。在許多情況下,唯一的解決方案是允許最終用戶的機器直接與門戶生產者服務器通話。然而,這很多時候會導致IT出現問題,因爲這意味着將另一臺服務器移動到DMZ並可能繞過門戶服務器,SSO服務器,安全設備等施加的安全限制。

+0

感謝您的信息詹姆斯。我們已經遇到了您在回覆中陳述的大部分內容,並一直試圖解決問題。我的主要問題是,是否有人使用Liferay(或其他門戶網站服務器)來提供豐富的應用程序。考慮到我們的應用程序(如果在門戶環境中運行)將本身在頁面上並考慮您提出的所有其他問題,是否值得嘗試關閉門戶網站服務器路徑? – codeflayer 2010-09-03 18:11:12

+0

我認爲這取決於您是否真的需要門戶網站的功能。如果你這樣做,那麼Liferay是一個很好的選擇。 – 2010-09-03 20:46:49

0

看一看www.qooxdoo.org。這是一個完全用javascript編寫大型應用程序的框架。它將優秀的圖形用戶界面(GUI)控制與類似於java的編程範例以及用於最終應用程序的智能構建過程結合在一起。