Liferay在企业门户建设中的开发应用

2019-07-24 10:33夏永寿
智富时代 2019年6期
关键词:开发应用

夏永寿

【摘 要】信息化建设是指自己的企业品牌利用现代计算机信息技术来支撑品牌管理的手段和过程。随着计算机技术、网络技术和通信技术的发展和应用,企业信息化已成为企业品牌实现可持续化发展和提高市场竞争力的重要保障。目前,国内的信息化建设正在迅猛发展,许多的企业、政府、机构、单位等都已建立起了自己的信息化组织架构体系,并开发出一系列信息化软件管理系统来形成持续的信息化管理体制,支撑组织战略目标和业务的持续发展。

【关键词】Liferay;企业门户;开发应用

一、企业门户

企业门户就是一个联接企业内部和外部的网站,它可以为企业提供一个单一的访问企业各种信息资源的入口,企业的员工、客户、合作伙伴和供应商等等都可以通过这个门户获得个性化的信息和服务,来完成企业自身的业务需求。企业门户可以无缝地集成企业的内容、商务和社区:首先,通过企业门户,企业能够动态地发布存储在企业内部和外部的各种信息;其次,企业门户可以完成网上的交易;此外,企业门户还可以支持网上的虚拟社区,网站的用户可以相互讨论和交换信息。

企业门户可以为企业的信息系统提供稳定的、可伸缩和可靠的基础和框架结构。与传统的电子商务相比,企业门户的特点在于:多数企业的IT系统是由多个分散的内部和外部的IT系统构成的,企业门户可以将这些系统集成起来,从而更好地实现电子商务的功能;许多现有的商务站点都不能处理遗留系统,企业门户可以解决大型企业的遗留系统与电子商务应用集成的一系列问题;由于具有个性化的功能,因此可以为最终用户提供更加直观、易用的界面,并且能简化用户的使用并节省时间。

企业从传统的运营方式转移到基于互联网的电子商务是大势所趋,而企业门户则是充分考虑到企业面临的特殊情况的电子商务系统,企业可以充分利用原有的在IT方面的投资,迅速建立起个性化的电子商务系统——企业门户,满足企业用户的需求,从而在激烈的市场竞争中立于不败之地。

二、门户开发现状

当前的信息化建设得益于计算机领域新技术的飞速发展,建设速度非常惊人。从传统web开发到现在的大数据,云计算,云服务,分布式技术,人工智能等流行技术,信息化技术得到了前所未有的进步。很多的企业建立了自己信息化部門或者聘请实力雄厚的技术公司来打造自己的信息化平台。目前企业的开发方式主要有:自主研发:这种方式适合于有一定实力的企业,自己打造一个信息化队伍来自己研发,成本会比较高;外包:这种方式适合于所有的企业,把开发任务交给外包公司来完成,自己只需要将需求告诉给外包商;自主研发加外包:这种方式适合于小型企业,主要开发任务交给外包商,后期维护和修改等由自己来完成;购买:通过购买成型的信息系统,这种方式适合于已经成熟通用的企业。

三、Liferay开发应用介绍

Liferay是一个开源的二次开发平台,它提供了一个强大的平台,可以快速构建您的网站,并为所有客户(无论是台式机、移动设备或两者之间的任何设备)提供服务;它提供了您在网站上运行所需的所有标准应用程序;它为新应用程序或定制。除此之外,Liferay Portal是由世界各地的人使用开源方法开发的。该代码库是可靠的,在不同行业的关键任务部署中被证明是可靠和稳定的。在开发企业自己的门户网站的过程中,你有多少次必须从头开始?可能和启动新项目的次数差不多,因为每次您不仅要编写构建项目的代码,还要编写支持项目的底层代码。一次又一次地写同一种代码从来不是一种好的体会。但是一段时间后你所做的每一个新项目都会有这样的体会:你在写一套新的数据库表,一套新的API,一套新的CSS类和HTML,一套新的js函数。

如果有一个平台提供了一组基线特性,让您在所有重复的代码上有了一个良好的开端,可以让你正确使用你的应用程序或网站的功能,而不是让你每次都用基本的构建块重新开始?有这样一个东西,它被称为Liferay门户。它是开放源码的,并强调遵循标准;它基于Java EE,并充分利用OSGi和Java平台上的几种其他流行技术。 OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范。OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于Java语言的服务(业务)规范。 简单来说,OSGi可以认为是Java平台的模块层。它基于模块化体系结构,并有助于遵循你自己项目的模块化开发范式;可以在上面构建自己的Web应用程序、portlet或移动应用程序;它提供了成熟的开发工具,同时保持不可知性,这样您就可以使用自己喜欢的工具;这一切都是关于重用、提供可重用的框架和库以及允许你创建自己的框架和库。Liferay的目标是为我们的开发人员和用户提供最新、易于使用和稳定的平台来构建服务。

在其基础上,Liferay是一个JavaEE应用程序,它还包括一个OSGi容器。这提供了两个世界中最好的:访问世界上最强大和功能最全的企业平台,以及世界上功能最全和最稳定的模块化容器的好处。现在,您可以在动态的、基于组件的环境中开发和部署企业级、可扩展的基于Web和移动的应用程序。

1.模块化开发

Liferay为许多不同类型的客户提供服务。这些目标现在已经达到了Liferay历史上最远的程度,这都是因为我们的新模块化架构。好处是任何时候都不需要重新部署整个应用程序或关闭服务器,只需要更改和重新部署需要更改的一小部分功能,而不是整个应用程序。

※Modules:所有基于Liferay的新应用程序、扩展和定制都是以模块化方式构建的。模块是模块化体系结构中的单个分发和部署单元。

※Services:Liferay的服务是OSGi联盟定义的标准服务。编写任何东西,无论是应用程序、数据库接口,甚至是您定义的“服务”,都很容易作为OSGi服务实现,因为它们既强大又易于开发。

在Liferay的OSGi容器中运行的许多组件构成了一个互补服务的生态系统。Liferay的大部分功能都在组件中,当您部署代码时,它与Liferay处于相同的生态系统中,具有相同的扩展点。可以编写组件来提供新的服务或用自己的实现覆盖现有的服务,容器管理所有这些服务。

2.环境搭建

安装环境:win10,JDK1.8,mysql5.6及以上

解压安装包后进行如下操作:

(1) 新建liferay workspace

New->liferay workspace project

(2) gradle.properties中添加工作目录

liferay.workspace.home.dir=D:\liferay-ce-portal-7.1.2-ga3

(3) 添加服务器,并指定bundle project为D:\liferay-ce-portal-7.1.2-ga3

(4) 初次启动点击登录进行基本设置后,通過http://localhost:8080进入主画面。

(5)在资源文件中配置数据库等访问链接,mysql中新建数据库后,重新启动tomcat,生成所有liferay用到的数据库表

3.开发工具

可以使用任何标准工具集为Liferay编写代码。Liferay是一个工具不可知论者,而不是把你放在特定的东西上。可以自由地使用已经高效利用的任何东西。 Liferay还创建了自己的工具来简化Liferay门户开发。这些工具与流行的构建环境(如Gradle和Maven)集成。它们包括Liferay Dev Studio CE,Blade CLI,Liferay Workspace,MAVEN,Liferay IntelliJ plugin等。

4.Portlet

Liferay门户中的Web应用程序称为portlet。与许多Web应用程序一样,portlet处理请求并生成响应。在响应中,portlet返回内容(例如HTML、XHTML)以在浏览器中显示。portlet和其他Web应用程序之间的一个关键区别是portlet运行在Web页面的一部分中。在编写portlet应用程序时,您只需关注该应用程序:页面的其余部分(导航、顶部横幅和界面的任何其他全局组件)由其他组件处理。另一个区别是portlet只在门户服务器中运行。因此,portlet可以使用门户对用户管理、身份验证、权限、页面管理等的现有支持。这使您可以专注于开发portlet的核心功能。在许多方面,将应用程序编写为portlet比编写独立的应用程序更容易。

新建portlet可以选择Eclipde->New->Liferay Module Project->输入项目名->Use the Gradle Build type,选择mvc-portlet来创建。

5.Service Builder

Liferay Service Builder是一个模型驱动的代码生成工具,允许定义称为实体的自定义对象模型。ServiceBuilder通过对象关系映射(ORM)技术生成一个服务层,该技术在对象模型和底层数据库的代码之间提供了一个清晰的分离。这使得可以为应用程序添加必要的业务逻辑。ServiceBuilder将XML文件作为输入,并为应用程序生成必要的模型、持久性和服务层。这些层提供了一个清晰的关注分离。ServiceBuilder生成了在数据库上实现创建、读取、更新、删除和查找操作所需的大多数公共代码,使得能够专注于服务设计的更高级别方面。创建方法:New->Liferay Module Project->service builder

6.安全认证

Liferay的开发框架提供了一个应用程序安全平台,该平台拥有多年的开发经验。您不需要为应用程序提供自己的安全保护。相反,您可以使用Liferay的框架为应用程序指定安全性。 除了应用程序的安全性之外,还有许多方法可以通过自定义身份验证过程来扩展默认的安全模型。包括一下:

※资源、角色和权限

Liferay中角色有用户 、站点 、组织架构 、角色 、用户组

分别是:Users、 Site、 Organization、 Role、 UserGroups

Users:用户是Liferay portal中的关键实体,分别和站点 / 组织架构 / 用户组相互关联;用户是组织架构的一部分;一个用户可以通过访问权限访问多个站点;用户包含的权限有站点级别,组织架构级别,门户级别3种作用域:

Site:一个Liferay portal可以有多个站点;站点有点像一种容器,包含了web pages、 web contents、 role、web apps...;站点管理员可以添加pages, users, look and feel,还有一些定制开发的插件(如portlets);用户的访问权限受到 site role访问控制的限制

Organization:组织架构,一种树形组织和人员逻辑关系;不同组织可以定义(属于)不同站点,但反之不行(即站点不能包含组织架构),即Liferay的组织架构是全局的,即只能有一套组织架构,在这之下,可以自由组织站点;比如有集团总部、北京分公司、天津分公司的架构,可以定义3个站点,即集团门户、天津门户、天津门户,但只能有一套统一的组织架构

Role – Permission:基于角色的权限;定义权限,用于访问某些页面或者功能;一个Role由一组Permissions组成(Role in Liferay is having set of Permissions.);Role的作用域有Organization、Sites、Regular (Portal Level)?

User Group:就是“组”,由多个用户组成;组是可以跨组织架构部门的,比如“HR组”,人员可以是集团总部的hr、也可以是北京分公司的hr,组成一个独立于组织架构的逻辑集合;用户组可以和多个站点关联。

※自定义SSO提供程序

※身份验证管道

※服务访问策略

※身份验证验证程序

7. Web API

有两种方式可以连接liferay的web APIS

※Hypermedia REST APIs (beta):这些服务是以一种固定的方式设计和构建的,因此与内部模型分离。它们遵循著名的行业标准,允许在不破坏客户机的情况下改进API。这是在Liferay门户中使用Web服务的现代首选方式。

※Plain Web/REST Services:这是在Liferay门户中构建和使用Web服务的旧方法,但仍受支持。例如,您可以使用JAX-RS、JAX-WS或服务构建器来实现纯REST或SOAP Web服务。

8.Liferay主题及样式

liferay可以为不同的页面、社区、组织等提供不同的主题,方便实现用户的个性化配置,同时liferay提供的IDE方便开发人员进行主题的个性化开发。用户可以安装Liferay Theme Generator,創建主题,发布主题,开发主题,布局模板,开发portlet和主题,开发Clay CSS和主题。Liferay的产品导航包括用于自定义、配置和导航系统的主菜单。编辑页面、切换到其他网站范围、访问用户凭据等时,将使用默认的导航菜单。为默认菜单提供自定义可以帮助您的Liferay实例获得独特的触感。您可以根据需要扩展和自定义默认产品导航。有四个产品导航部分可以扩展:产品菜单、控制菜单、模拟菜单和用户个人菜单。

9.移动开发

Liferay提供两种方法来创建与Liferay实例一起工作的本机Android和iOS应用程序:Liferay屏幕和Liferay Mobile SDK。

Liferay屏幕通过名为screenlets的现成组件来实现这一点。因为屏幕已经包含了调用Liferay实例所需的代码——以及一个完整的用户界面——您所需要做的就是在Android或iOS应用程序中插入和配置它们。屏幕为常见任务(如登录、查看Web内容、添加DDL记录等)提供屏幕。您还可以自定义每个屏幕以满足您的特定需求,或者编写自己的屏幕。在幕后,屏幕使用Liferay Mobile SDK调用Liferay的远程服务。

Liferay Mobile SDK是一个较低级别的工具,允许您手动调用Liferay的远程服务。您需要使用MobileSDK编写自己的屏幕,或者独立于屏幕调用Liferay的远程服务。在大多数情况下,你会发现使用屏幕可以节省你的时间和精力。

猜你喜欢
开发应用
小学数学微课资源的开发与应用
初中英语拓展性教学资源的开发与应用研究
民族地区高中数学校本教材的开发及应用实践性研究
贵州地方辣椒品种资源主要类别、分布及利用潜力