Liferay Portal既是一个开源门户网站建设工具,同时也是一个基于Java架构的应用软件系统开发平台。它不仅具有强大的网站内容管理和基于文件的内容管理功能,而且还集成了协作套件、开放社交、应用开发、权限管理、工作流、知识库、规则引擎和搜索引擎等J2EE应用程序。Liferay Portal是一个完全可定制的互联网应用系统建设平台,并且其社区版是完全免费的,值得各类门户网站建设人员和Java应用开发人员重点关注。
一、什么铸就了Liferay的卓绝
Liferay Portal是一个包含大多数普通应用程序的Web体验平台,这些应用程序可以作为搭建站点的组装模块。由于Liferay包含的功能十分丰富,因此,使用Liferay将彻底改变着手搭建站点的方法。事实上,要看需要搭建什么样的站点,搭建普通站点可能完全不需要编写任何代码。如果开发人员已经有一个大型应用系统成竹在胸,那么,Liferay可以为他提供一个极佳的Web应用开发平台,该平台可以更好地发挥开发人员的优势,及早发布应用系统。这是为什么呢?因为开发人员不用编写代码就可以直接使用Liferay Portal提供的用户管理、安全性、标准支持和通用功能,所以,可以集中精力开发自己的应用。当然,还有许多上面没有提及的功能,比如:用户可以利用Liferay社交功能在网络中相互联系、相互协作和创建内容等。总而言之,Liferay Portal不仅仅是一个开发平台、内容管理系统、社交网络和协作工具,它是建设网站的最佳途径。
二、Liferay Portal内容管理系统
内容管理系统是Liferay Portal最常用的组成部分。实际上,许多人使用Liferay Portal,就是为了实现内容管理而已。如果不是为了实现网站内容管理(Web Content Management,以下简称WCM),那么就是为了实现基于文件的内容管理(诸如文档、媒体文件等)。他们之所以要这样做,是因为Liferay Portal内容管理系统的功能如此强大、特征如此丰富,以致于它本身可以当作一个独立的系统。由于它又是与Liferay Portal的其余应用系统相集成的,这就使其更具魅力。
那么,Liferay Portal能做什么呢?我们将从两个方面回答这个问题。首先,介绍它的WCM系统,然后,再介绍它在基于文件的内容管理方面的优势。
1、使用Liferay WCM高效建设站点
要理解Liferay WCM的第一件事是:它的工作范围可以从最小站点的方方面面延伸到最大的站点。例如,从小的方面说,可以启动Liferay Portal,把一个“网页内容展示”应用拖放在页面上适当的位置,然后,立即开始把内容输入所见即所得编辑器。从大的方面说,可以设置Liferay Portal容纳多个网站,每个站点都有不同目的,所有站点都有各自的域名。每个站点都可以利用一个单独的待发布服务器,团队人员可以在待发布服务器上使用结构和模板创建内容和页面,只有完成了多步审批流程的流转之后,才能把更新按计划发布到生产服务器上。功能真是强大无比!
缺省状态下,Liferay Portal开始只有一个站点,其中只有一个页面。可以由此创建想要的任何站点,包括多级嵌套页面层次结构,如图1所示。页面层次采用树型结构表示,与文件管理器极为类似。
图1 Liferay页面层次结构
这些页面可以使用任何个人喜欢的布局,Liferay Portal自身附带了几个内置的布局,用户还可以轻松地创建和发布自己定制的布局。页面可以随时添加、删除和重新排序,并且,可以非常灵活地使用所需的HTML页面属性,诸如:元标记、机器人文件声明等。
由于LiferayPortal强大的权限系统和页面是集成在一起的,因此,可以很容易地限制对站点某些部分的访问。可以给个别的用户建立属于自己的站点,站点中包含公开页面和私有页面,公开页面中有内容和博客等,私有页面中有日历和电子邮件等。
如果一个大型网站正在运行,很可能要在其上为不同个体和团体创建并管理许多不同子站点,此时,页面模板和站点模板就可以派上用场了。前者能够使用预先定义的布局和应用建立页面;后者能够创建完整的站点,其中包含多个预先定义的页面。
甚至,如果有一个特大型站点,可能需要多人同时在其上工作。开发人员自然不希望用户看到内容的修改过程。由于这个原因,Liferay Portal提供了一个叫做“待发布”的功能,它把正在修改的内容放在一个等候区中。既可以采用本地待发布服务器,把待发布站点和在线站点驻留在同一个服务器上;也可以采用远程待发布服务器,把所有正在修改的Web内容放到和在线站点分离的服务器上。不论何种情况,当站点修改好后,变更的内容可以用手工方式或按计划自动推送到在线站点,如图2所示。
图2 待发布支持手工发布和按计划发布
无论在哪个级别上,Liferay Portal网站内容创建工具的用户界面都是十分直观的,易于操作。如果站点只需要基本的内容管理能力,可以直接使用。从停靠栏,把“网页内容展示”应用添加到页面布局的任何地方,然后,在合适的位置键入内容。从这些基本的低级内容管理到更复杂的高级功能,都是很容易操作的。
例如,假设想建立一个基于新闻的在线站点,要发布的大部分内容是某种类型的文章。Liferay PortalWCM系统允许为这种文章创建一种结构,以便能够从作者那里收集文章需要的所有信息。图3显示了新闻记者录入文章时所采用的结构。
图3定义结构
如你所见,可以使用结构确保作者提供故事的标题、故事所属类型和作者署名,确保系统收集到故事的所有相关信息。
Web内容是LiferayPortal称之为资源的一个例子,资源可以有元数据与之相连,在搜索时,元数据可以用于把相似的资源聚集在一起,也可以作为发布的内容。上述例子中,关联元数据的一种办法是让作者给故事添加上标记和类别,以便用户可以更容易地找到它们。
当然,这只是一个例子,但是,这个概念适用于想建立的任何站点。例如,如果正在为一个动物园建立一个站点,可以用Web内容结构帮助用户录入动物园中的动物数据,如它们的俗名、学名、物种、在自然环境中的分布位置等等。
内容发布时,结构和模板结合在一起。模板是如何显示结构的指令,大多数时候,模板采用Velocity或Freemarker编写,Velocity和Freemarker两者都是用于将编程元素和HTML相结合的著名模板语言,它们很容易编写,并可确保站点具有一致的外观风格。
关于Web内容还有许多相关知识,比如:可以创建摘要、制定何时发布和撤销(或审核)内容的计划、定义相关联的资源等等。
这只是LiferayPortal内容管理系统中的Web内容部分,LiferayPortal在管理基于文件的内容方面同样也是很出色的。
2、记录文档、影像和视频等
很少有开源项目具有功能全面的内容管理系统,大多数时候,WCM系统和基于文件的内容管理系统并不难找到,只是它们往往不在同一个项目中。然而,Liferay Portal的高级之处在于能够将两者同时提供给用户。如上所述,Liferay Portal提供的这两种内容管理系统绝不会比其他项目中的任何一款相应系统逊色。
Liferay Portal把基于文件的内容管理系统的用户界面保存在一个叫做“文档和媒体库”的应用中。这个应用驻留在控制面板中,并可添加到任何页面上,它看上去非常像操作系统中的文件管理器,如图4所示。
图4 文档和媒体库
和文件管理器一样,在文档和媒体库中,可以浏览嵌套层次中的文件和文件夹,还可以加载环境中的其他存储仓库,比如:Documentum(只有Liferay企业版才支持),或实现了内容管理互操作服务(CMIS)的任何系统。它提供了几乎所有能想到的文档类型预览。并且,和文件管理器一样,可以采用拖放方式复制和移动文件。当然,如果仍想使用操作系统文件管理器,也是可以的,因为Liferay文档和媒体库支持WebDAV(Web-based Distributed Authoring and Versioning,意思是:基于万维网的分布式创作和版本控制),登录LiferayPortal的凭据同样可用于登录WebDAV。
然而,Liferay Portal的文档和媒体库远比文件管理器健壮,因为它是一个完整的内容管理系统。可以定义对文件进行分类的方法,这些文件虽然类型不同,但它们都有相同的目标。例如,可以定义一些元数据集,所谓元数据集就是一些描述文件属性的字段组。本产品附带的元数据集之一叫做“会议元数据”,它包含会议名称、日期、时间、地点、说明和与会代表等字段。这是一个相互关联的字段集,通常把它们作为一个组来使用。可以根据需要创建任意多的元数据集。
对于文件,可以定义文档类型。文档类型提供了一种更自然的处理文件的方式,因为它可以使文档概念化。例如,也许要创建一个叫会议纪要的文档类型。只要文档包含会议纪要,无论它是一个微软的Word文档,还是一个HTML文档,抑或是一个文本文件,这都无关紧要。一旦创建了会议纪要这种文档类型,就可以把它和会议元数据集连在一起,会议元数据集包含许多所需的字段,并且,还可以添加一些额外的字段,比如:可以添加一个“交办事项”字段。当用户想要添加一个包含会议纪要笔记的文件时,他们也可以添加所有关于会议的相关元数据(比如:时间、地点和交办事项等)。从文档类型中,可获取文档中所包含的内容信息,和仅仅把文档导入到一个共享文件系统的方式相比,它提供了一种更自然的处理文档的方式。
当然,系统功能远不止这些,文件夹可以设置为只能添加某些类型的文档,工作流规则也可以添加到文件夹,让文件按定义的审批流程流转。简而言之,Liferay基于文件的内容管理系统可以为团队提供管理和共享文件所需的所有功能。
三、Liferay Portal协作平台
许多站点的某些方面已经发展到了一定程度,开发人员也许已经使用独立的工具逐步建立了自己的社区:第一个是论坛应用、第二个是协作文档的维基应用、第三个甚至可能是聊天应用。要把所有这些应用程序无缝集成在一起不仅非常困难,而且容易出错。幸好,Liferay提供了一个协作套件,可以把这些应用全部集成在一起。
Liferay Portal提供了各种标准的协作应用。这些应用程序既包括日历和电子邮件等个人效率应用程序,也包括留言板、投票和维基等社区建设应用程序。这些集成的标准应用与独立的单个应用具有完全相同的功能。例如,Liferay Portal的留言板包括类别、子类、消息线程、验证码、RSS馈送、电子邮件通知、通过电子邮件发帖等。而且,还远不止如此,这些应用是和Liferay Portal架构的其余部分集成在一起的。用户登录后,留言板和其他协作应用程序可以自动使用他们的配置文件。并且,正如我们后面会看到的那样,不需编写任何代码,就可以把系统内置的功能添加到自己的软件中,提供类似评论那样的功能,如图5所示,Liferay Portal的留言板具有独立论坛应用的所有功能,而且,是和系统其余部分集成在一起的。
图5 Liferay Portal中集成的留言板
Liferay Portal的维基是另一个功能全面的协作应用。它可以使用所见即所得编辑器创作页面,甚至,更高级的用户还可以使用简单的标准维基Creole语法。用户可以评论维基文章,并且,它保持每次变更的历史信息,允许用户还原任何变更。它也支持RSS馈送(几乎每一个Liferay应用都支持),所以,用户就可以预订新文章,新文章一旦发布,就可以马上看到。每个站点可以有一个或多个维基,每个维基可以有一个或多个顶级结点,如图6所示,多个用户可以用维基协作创建复杂的文章。点击“细节”链接显示文章的完整历史,包括变更人。
可以用相似的方式介绍Liferay Portal的所有协作应用程序,但是,在这里暂不深入,留待本书的正文中详细讲解,Liferay Portal的整套协作应用程序包括博客、聊天、留言板、维基、知识库、投票系统和个人效率应用程序。其中,博客具有聚合特征,所以,可以在一个地方发布多个用户的博客入口;聊天应用程序供同时在线的用户使用;知识库可用于存储发表的技术文章;投票系统用于让用户就某个问题投票;个人效率应用程序指日历和电子邮件等应用。Liferay Portal包括方便用户协作所需的所有应用程序。下面,介绍Liferay Portal的社交平台。
图6 维基的细节
四、Liferay Portal社交平台
无论是计划建立一个社交网络,还是把社交应用作为整体用户体验的一部分,Liferay Portal都提供了方便用户使用这些功能的工具。以一套应用开始,包括配置文件汇总、活动馈送、社交请求和告示墙等,并且,使用API来完善社交应用,这些API用于处理用户间的关系,同时用于用户间互相发布活动。Liferay Portal帮助用户实现社交网络的通用功能,以增强现有站点的功能。比如:Liferay Portal提供活动馈送机制,这些馈送条目可以来自任何Liferay内置应用或个人编写的应用,如图7所示。
图7Liferay Portal的活动馈送机制
无论想要建立公共社交网,还是想在企业内部网上启用社交功能,Liferay Portal的社交关系功能都可以与各种不同种类的应用实现完美结合。用户可以在系统中创建关系,允许他们去查看被关注者的活动更新。比起允许他们订阅多个单独的RSS馈送或者访问多个配置文件,这种方式的功能要强大得多,因为系统会自动记录和他们相关用户的更新。
然而,远不止如此,Liferay是一个优异的社交应用集成平台。它完全支持OpenSocial框架,可以使用Liferay Portal内置的OpenSocialGadget编辑器创建并提供自己的OpenSocialGadget,如图8所示。Liferay Portal的OpenSocialGadget编辑器允许快速创建社交应用,这些应用能够穿越网络提供给任何其他OpenSocial容器。
图8 OpenSocialGadget编辑器
Liferay Portal也支持创建Facebook应用,事实上,无需额外的代码就可以把Liferay应用发布到Facebook上(当然,为了应用Facebook特有的功能,需要使用Facebook的API,比如:按用户要求的时限发帖),只需从Facebook获得一个API密钥和画布页面URL即可。
如你所见,Liferay Portal是为社交应用而建立的,如:添加社交功能到站点、创建自己的社交网络、创建社交应用发布到其他网站或者为Facebook建立社交应用,如图9所示。
如同社交应用一样,Liferay Portal也是很容易使用的、健壮的Web应用平台,这里所说的Web应用是任意待开发的Web应用系统。除此之外,Liferay Portal很容易配置为一个共享主机平台,供多个网站使用。下面,介绍Liferay Portal的Web平台。
图9把LiferayPortal应用发布到多个社交网络
五、Liferay PortalWeb平台
我们很难猜出开发人员正在思考建立什么应用系统,但是,不管是什么,都要全心全意地去做。Liferay的Web平台可以使开发人员如虎添翼,该Web平台可以提供应用所需的各种功能,所以,开发人员可以全神贯注地建立自己的产品,而不必关注用户所期望的其他功能。
1、把LiferayPortal用作应用开发平台
花点时间想象一下要创建的应用,它需要用户在站点上注册吗?用户可以评价应用中包含的内容吗?用户可以标记或分类资源吗?如果考虑应用的布局,模块化对它有帮助吗?可以使用一个带有许多内置组件的、丰富的JavaScript架构吗?安全性又如何呢?需要限制可获得信息的用户吗?开发人员可以从LiferayPortal获得所有这些功能,而且,可获得远不止这些功能,开发人员根本不用自己编写它们。
如果正在建立一个Web应用,Liferay Portal的开发框架可以提供很大的帮助。关于框架本身的内容在《Liferay开发者指南》和《Liferay In Action》等资料中介绍,一旦完成了应用,LiferayPortal作为一个平台的优势就显现出来了。
例如,因为LiferayPortal应用是在线发布到运行着的服务器上的,所以,对应用程序的缺陷修复很容易发布。Liferay集市为应用提供了一个现成的购物中心。LiferayPortal的Web Service和JSON体系结构使应用很容易与运行在不同平台上的其他应用系统复用功能和共享数据。
只需要使用LiferayPortal开发平台,就可以获得上述所有这些好处,更不用说和上述的Facebook与OpenSocial自动集成。因此,它是一个十分强大的平台,当然值得深入研究。
2、一个优异的集成平台
如果正在建立一个企业级系统,首先,门户往往被设计成为应用和内容的单一入口。由于Liferay Portal和用户目录(如LDAP和Active Directory)、单点登录系统(如SAML和OpenSSO)集成良好,因此,它非常适合企业级系统,可以把它作为已有应用系统的集成平台。
由于遵循了Portlet的JSR标准,Liferay Portal为应用集成重新进行了设计。可以把安装在系统中的任何应用混合搭配在门户的任意页面上,还可利用其他系统提供的API把它们的数据集成到Liferay应用窗口中。用Liferay服务构造程序API(Liferay’s ServiceBuilder API)创建的应用从一开始就是支持Web Service功能的。
3、在Liferay Portal上托管多个站点
Liferay Portal是一个优异的多站点托管平台。正如Facebook、MySpace或Pinterest为其用户提供的框架那样,可以使用Liferay Portal在相同的总体结构下托管多个站点。或者可以托管几个完全不同的、单纯基于Liferay的网站,这里主要依赖从同一个Liferay系统提供多个门户实例的能力。
在第一种情况下,Liferay Portal的站点体系结构允许建立多个不同的网站,这些站点拥有公共和私有页面集合,而且,根据需要,可以创建任意多的页面。用户可以加入网站,并且,一旦他们成为站点成员,只需点一下鼠标,他们就可以加入或退出开放的站点。有些站点可以被定义为受限制的和私有的,只有站点管理员添加用户后,用户才能访问这些站点。所有这些站点都可以有正规的域名,例如,baseballcards.liferay.com或progrock.liferay.com。
使用这个结构,可以建设任何站点,从Facebook、Yahoo Groups、SourceForge、再到风光不在的Geocities。站点数不受限制:有些Liferay系统只有一个或两个站点,然而,另一些可能有成千上万的站点。
在第二种情况下,Liferay Portal允许从同一个Liferay系统创建完全独立的实例。每个实例的用户、组、组织机构、站点和角色是完全独立的。如果一个用户在一个实例上注册了用户ID,该用户ID不能用于另一个实例,必须重新注册。
这允许在一个Liferay系统上托管多个不同的独立的网站。每个实例的用户都可以访问同样功能强大的内容管理、协作、社交和Web开发平台,就像他们在单个的、独立的环境下操作一样。
六、根据需要扩展定制LiferayPortal
除了把LiferayPortal用作新应用的开发平台外,Liferay Portal也具有良好的可扩展性和可修改性。作为一个开源项目,它的源代码是可以获得的,但是,Liferay Portal的开发者已经把该产品设计得很完善,在无需修改源代码的情况下,就可以很容易地用它建设任何想要的产品。
采用叫做Hook和Ext插件的特殊软件组件,不用修改任何Liferay Portal源代码,开发者就可以改变Liferay接口和行为的各个方面,这提供了早先提到的“从头开始建设”策略的所有好处,但是,不必付出从头开始建设的所有努力。如果想对用户注册界面做些修改,使之支持自己编写的专有单点登录机制,或者要改变留言板应用的用户界面,抑或其他任何改变,可以用自定义的方式实现。显而易见,自定义一些功能,使之几乎准确地按照想要的方式工作,比从头编写这些功能要容易得多。使用Liferay Portal,鱼和熊掌可以兼得。
七、小结
所以,什么是LiferayPortal?如你所见,真是一言难尽,因为它的功能实在太多了。简而言之,它是一个令人敬畏的内容和文档管理、用户协作、开放社交、应用开发、企业整合、完全定制的互联网建设平台。如果我们一开始就这么说,你可能不相信。现在真心希望你能明白,这就是真的。
相关推荐
Using Liferay Portal 6.1
Liferay Portal 是一个基于 Java 的开源门户平台,提供了丰富的功能和插件,可以满足企业级门户网站的需求。将 Liferay Portal 6.1 源码导入到 Eclipse,以便更好地理解和开发门户平台。 Liferay Portal 6.1 源码...
Liferay 6.1 版本是其重要的里程碑,包含了丰富的功能改进和优化。 在学习 Liferay 6.1 开发时,首先需要了解的基础配置和编程技术包括: 1. **环境搭建**: - **WebLogic 11g 部署**:WebLogic 是 Oracle 提供的...
Liferay 6.1 是在2011年发布的版本,引入了一系列重要的新特性,如文件同步功能,增强了文档库的管理,优化了用户界面,提供了表单和工作流设计器,以及对移动设备的更好支持。这一版本的发布进一步提升了Liferay的...
这篇学习文档详细介绍了在 Liferay 6.1 开发过程中的关键步骤,特别关注了在 WebLogic 11g 上的部署。 1. **环境装备** - **WebLogic 11g**:版本10.3.5,由Oracle官方网站提供,作为Liferay的部署服务器。 - **...
Liferay是一个开源公司,我们一般谈Liferay是指的Liferay Portal。Liferay Portal始创于2000年的洛杉机,当时是一个非营利性组织。
Liferay 是一个开源的企业portal平台,提供了丰富的功能和插件,帮助开发者快速构建企业门户网站。为了搭建 Liferay 6.1.2 开发环境,我们需要安装 JDK、Liferay Portal、Tomcat、Ant 和 MySQL 等软件,并进行相应的...
本文将详细介绍如何在Eclipse 3.6以上版本中搭建Liferay 6.1的开发环境,并通过图文并茂的方式,指导开发者如何在Eclipse中新建和维护Liferay项目。 #### 二、所需文件准备 在开始搭建之前,请确保已准备好以下...
本文将详细介绍如何在Eclipse 3.6环境下搭建Liferay 6.1的开发环境,帮助开发者快速上手并提高工作效率。 #### 二、所需文件及工具 1. **Eclipse版本**:Eclipse 3.6 - Eclipse是一款流行的开源集成开发环境(IDE)...
根据提供的“LifeRay 6.1GA2开发手册”文档摘要,该手册主要介绍了如何利用LifeRay 6.1.1 GA2版本进行开发工作。LifeRay是一款功能强大的企业级内容管理平台,支持多种应用开发方式,包括portlet(门户小部件)开发...
这个插件(或Portlet项目)只不过为Liferay Portal 6.1提出了响应时间表(移动或桌面)。 关于前端已从Code Canyon的产品代码开始开发。 然后修改了CSS和JavaScript / jQuery。 对于后端,我使用了API Liferay ...
Liferay 6.1 版本在2011年发布,此版本引入了许多关键改进,包括文件同步功能,提升了文档库的性能,改进了用户界面,增加了表单和工作流设计工具,以及增强了对移动设备的支持。这使得 Liferay 更加适应企业的需求...
在实际开发过程中,开发者还需要考虑安全性、性能优化和与其他Liferay功能的集成。例如,可能需要防止恶意SSI注入,优化SSI文件的缓存策略,以及确保SSI与Liferay的主题和布局系统协同工作。 标签“源码”和“工具...
打开Liferay IDE,Window-->Preferences-->Server-->Runtime Environment,点击右边Add…,在弹出的服务器选择里面选择Liferay,Inc-->Liferay v6.1 CE (Tomcat 7),请打“Create a new location server”打上勾。...
该项目提供了一个 portlet,该 portlet 附加到 Liferay Portal 的 log4j 机制以在浏览器中提供日志视图。 支持的产品 Liferay 门户 6.1 CE GA2、GA3 (6.1.1+) Liferay 门户 6.1 EE GA2、GA3 (6.1.20+) Liferay ...
Liferay IDE是基于Eclipse的集成开发环境,它集成了许多Liferay特定的功能,如代码提示、部署和调试。另一方面,Liferay Workspace是一个预配置的Maven项目结构,包含了创建和管理Liferay模块所需的所有依赖。 搭建...
通过`File -> New -> Other -> Server -> Server`,选择Remote Liferay Server (Liferay 6.1),按照向导设置Tomcat路径、Liferay版本等信息。完成配置后,Liferay服务器将在Eclipse内启动。 **步骤7:编译与部署** ...
1. **Portlet**:Liferay中的基本单元,它是portlet容器内的Web应用程序,可以被部署到门户上,提供独立的功能和交互界面。 2. **Struts2 Action**:Struts2框架中的核心组件,负责接收用户的请求,执行相应的业务...