2010-09-03 28 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的编程范例以及用于最终应用程序的智能构建过程结合在一起。