夏永壽
【摘 要】信息化建設(shè)是指自己的企業(yè)品牌利用現(xiàn)代計算機(jī)信息技術(shù)來支撐品牌管理的手段和過程。隨著計算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)和通信技術(shù)的發(fā)展和應(yīng)用,企業(yè)信息化已成為企業(yè)品牌實(shí)現(xiàn)可持續(xù)化發(fā)展和提高市場競爭力的重要保障。目前,國內(nèi)的信息化建設(shè)正在迅猛發(fā)展,許多的企業(yè)、政府、機(jī)構(gòu)、單位等都已建立起了自己的信息化組織架構(gòu)體系,并開發(fā)出一系列信息化軟件管理系統(tǒng)來形成持續(xù)的信息化管理體制,支撐組織戰(zhàn)略目標(biāo)和業(yè)務(wù)的持續(xù)發(fā)展。
【關(guān)鍵詞】Liferay;企業(yè)門戶;開發(fā)應(yīng)用
一、企業(yè)門戶
企業(yè)門戶就是一個聯(lián)接企業(yè)內(nèi)部和外部的網(wǎng)站,它可以為企業(yè)提供一個單一的訪問企業(yè)各種信息資源的入口,企業(yè)的員工、客戶、合作伙伴和供應(yīng)商等等都可以通過這個門戶獲得個性化的信息和服務(wù),來完成企業(yè)自身的業(yè)務(wù)需求。企業(yè)門戶可以無縫地集成企業(yè)的內(nèi)容、商務(wù)和社區(qū):首先,通過企業(yè)門戶,企業(yè)能夠動態(tài)地發(fā)布存儲在企業(yè)內(nèi)部和外部的各種信息;其次,企業(yè)門戶可以完成網(wǎng)上的交易;此外,企業(yè)門戶還可以支持網(wǎng)上的虛擬社區(qū),網(wǎng)站的用戶可以相互討論和交換信息。
企業(yè)門戶可以為企業(yè)的信息系統(tǒng)提供穩(wěn)定的、可伸縮和可靠的基礎(chǔ)和框架結(jié)構(gòu)。與傳統(tǒng)的電子商務(wù)相比,企業(yè)門戶的特點(diǎn)在于:多數(shù)企業(yè)的IT系統(tǒng)是由多個分散的內(nèi)部和外部的IT系統(tǒng)構(gòu)成的,企業(yè)門戶可以將這些系統(tǒng)集成起來,從而更好地實(shí)現(xiàn)電子商務(wù)的功能;許多現(xiàn)有的商務(wù)站點(diǎn)都不能處理遺留系統(tǒng),企業(yè)門戶可以解決大型企業(yè)的遺留系統(tǒng)與電子商務(wù)應(yīng)用集成的一系列問題;由于具有個性化的功能,因此可以為最終用戶提供更加直觀、易用的界面,并且能簡化用戶的使用并節(jié)省時間。
企業(yè)從傳統(tǒng)的運(yùn)營方式轉(zhuǎn)移到基于互聯(lián)網(wǎng)的電子商務(wù)是大勢所趨,而企業(yè)門戶則是充分考慮到企業(yè)面臨的特殊情況的電子商務(wù)系統(tǒng),企業(yè)可以充分利用原有的在IT方面的投資,迅速建立起個性化的電子商務(wù)系統(tǒng)——企業(yè)門戶,滿足企業(yè)用戶的需求,從而在激烈的市場競爭中立于不敗之地。
二、門戶開發(fā)現(xiàn)狀
當(dāng)前的信息化建設(shè)得益于計算機(jī)領(lǐng)域新技術(shù)的飛速發(fā)展,建設(shè)速度非常驚人。從傳統(tǒng)web開發(fā)到現(xiàn)在的大數(shù)據(jù),云計算,云服務(wù),分布式技術(shù),人工智能等流行技術(shù),信息化技術(shù)得到了前所未有的進(jìn)步。很多的企業(yè)建立了自己信息化部門或者聘請實(shí)力雄厚的技術(shù)公司來打造自己的信息化平臺。目前企業(yè)的開發(fā)方式主要有:自主研發(fā):這種方式適合于有一定實(shí)力的企業(yè),自己打造一個信息化隊伍來自己研發(fā),成本會比較高;外包:這種方式適合于所有的企業(yè),把開發(fā)任務(wù)交給外包公司來完成,自己只需要將需求告訴給外包商;自主研發(fā)加外包:這種方式適合于小型企業(yè),主要開發(fā)任務(wù)交給外包商,后期維護(hù)和修改等由自己來完成;購買:通過購買成型的信息系統(tǒng),這種方式適合于已經(jīng)成熟通用的企業(yè)。
三、Liferay開發(fā)應(yīng)用介紹
Liferay是一個開源的二次開發(fā)平臺,它提供了一個強(qiáng)大的平臺,可以快速構(gòu)建您的網(wǎng)站,并為所有客戶(無論是臺式機(jī)、移動設(shè)備或兩者之間的任何設(shè)備)提供服務(wù);它提供了您在網(wǎng)站上運(yùn)行所需的所有標(biāo)準(zhǔn)應(yīng)用程序;它為新應(yīng)用程序或定制。除此之外,Liferay Portal是由世界各地的人使用開源方法開發(fā)的。該代碼庫是可靠的,在不同行業(yè)的關(guān)鍵任務(wù)部署中被證明是可靠和穩(wěn)定的。在開發(fā)企業(yè)自己的門戶網(wǎng)站的過程中,你有多少次必須從頭開始?可能和啟動新項目的次數(shù)差不多,因為每次您不僅要編寫構(gòu)建項目的代碼,還要編寫支持項目的底層代碼。一次又一次地寫同一種代碼從來不是一種好的體會。但是一段時間后你所做的每一個新項目都會有這樣的體會:你在寫一套新的數(shù)據(jù)庫表,一套新的API,一套新的CSS類和HTML,一套新的js函數(shù)。
如果有一個平臺提供了一組基線特性,讓您在所有重復(fù)的代碼上有了一個良好的開端,可以讓你正確使用你的應(yīng)用程序或網(wǎng)站的功能,而不是讓你每次都用基本的構(gòu)建塊重新開始?有這樣一個東西,它被稱為Liferay門戶。它是開放源碼的,并強(qiáng)調(diào)遵循標(biāo)準(zhǔn);它基于Java EE,并充分利用OSGi和Java平臺上的幾種其他流行技術(shù)。 OSGi(Open Service Gateway Initiative)技術(shù)是Java動態(tài)化模塊化系統(tǒng)的一系列規(guī)范。OSGi一方面指維護(hù)OSGi規(guī)范的OSGI官方聯(lián)盟,另一方面指的是該組織維護(hù)的基于Java語言的服務(wù)(業(yè)務(wù))規(guī)范。 簡單來說,OSGi可以認(rèn)為是Java平臺的模塊層。它基于模塊化體系結(jié)構(gòu),并有助于遵循你自己項目的模塊化開發(fā)范式;可以在上面構(gòu)建自己的Web應(yīng)用程序、portlet或移動應(yīng)用程序;它提供了成熟的開發(fā)工具,同時保持不可知性,這樣您就可以使用自己喜歡的工具;這一切都是關(guān)于重用、提供可重用的框架和庫以及允許你創(chuàng)建自己的框架和庫。Liferay的目標(biāo)是為我們的開發(fā)人員和用戶提供最新、易于使用和穩(wěn)定的平臺來構(gòu)建服務(wù)。
在其基礎(chǔ)上,Liferay是一個JavaEE應(yīng)用程序,它還包括一個OSGi容器。這提供了兩個世界中最好的:訪問世界上最強(qiáng)大和功能最全的企業(yè)平臺,以及世界上功能最全和最穩(wěn)定的模塊化容器的好處?,F(xiàn)在,您可以在動態(tài)的、基于組件的環(huán)境中開發(fā)和部署企業(yè)級、可擴(kuò)展的基于Web和移動的應(yīng)用程序。
1.模塊化開發(fā)
Liferay為許多不同類型的客戶提供服務(wù)。這些目標(biāo)現(xiàn)在已經(jīng)達(dá)到了Liferay歷史上最遠(yuǎn)的程度,這都是因為我們的新模塊化架構(gòu)。好處是任何時候都不需要重新部署整個應(yīng)用程序或關(guān)閉服務(wù)器,只需要更改和重新部署需要更改的一小部分功能,而不是整個應(yīng)用程序。
※Modules:所有基于Liferay的新應(yīng)用程序、擴(kuò)展和定制都是以模塊化方式構(gòu)建的。模塊是模塊化體系結(jié)構(gòu)中的單個分發(fā)和部署單元。
※Services:Liferay的服務(wù)是OSGi聯(lián)盟定義的標(biāo)準(zhǔn)服務(wù)。編寫任何東西,無論是應(yīng)用程序、數(shù)據(jù)庫接口,甚至是您定義的“服務(wù)”,都很容易作為OSGi服務(wù)實(shí)現(xiàn),因為它們既強(qiáng)大又易于開發(fā)。
在Liferay的OSGi容器中運(yùn)行的許多組件構(gòu)成了一個互補(bǔ)服務(wù)的生態(tài)系統(tǒng)。Liferay的大部分功能都在組件中,當(dāng)您部署代碼時,它與Liferay處于相同的生態(tài)系統(tǒng)中,具有相同的擴(kuò)展點(diǎn)??梢跃帉懡M件來提供新的服務(wù)或用自己的實(shí)現(xiàn)覆蓋現(xiàn)有的服務(wù),容器管理所有這些服務(wù)。
2.環(huán)境搭建
安裝環(huán)境:win10,JDK1.8,mysql5.6及以上
解壓安裝包后進(jìn)行如下操作:
(1) 新建liferay workspace
New->liferay workspace project
(2) gradle.properties中添加工作目錄
liferay.workspace.home.dir=D:\liferay-ce-portal-7.1.2-ga3
(3) 添加服務(wù)器,并指定bundle project為D:\liferay-ce-portal-7.1.2-ga3
(4) 初次啟動點(diǎn)擊登錄進(jìn)行基本設(shè)置后,通過http://localhost:8080進(jìn)入主畫面。
(5)在資源文件中配置數(shù)據(jù)庫等訪問鏈接,mysql中新建數(shù)據(jù)庫后,重新啟動tomcat,生成所有l(wèi)iferay用到的數(shù)據(jù)庫表
3.開發(fā)工具
可以使用任何標(biāo)準(zhǔn)工具集為Liferay編寫代碼。Liferay是一個工具不可知論者,而不是把你放在特定的東西上。可以自由地使用已經(jīng)高效利用的任何東西。 Liferay還創(chuàng)建了自己的工具來簡化Liferay門戶開發(fā)。這些工具與流行的構(gòu)建環(huán)境(如Gradle和Maven)集成。它們包括Liferay Dev Studio CE,Blade CLI,Liferay Workspace,MAVEN,Liferay IntelliJ plugin等。
4.Portlet
Liferay門戶中的Web應(yīng)用程序稱為portlet。與許多Web應(yīng)用程序一樣,portlet處理請求并生成響應(yīng)。在響應(yīng)中,portlet返回內(nèi)容(例如HTML、XHTML)以在瀏覽器中顯示。portlet和其他Web應(yīng)用程序之間的一個關(guān)鍵區(qū)別是portlet運(yùn)行在Web頁面的一部分中。在編寫portlet應(yīng)用程序時,您只需關(guān)注該應(yīng)用程序:頁面的其余部分(導(dǎo)航、頂部橫幅和界面的任何其他全局組件)由其他組件處理。另一個區(qū)別是portlet只在門戶服務(wù)器中運(yùn)行。因此,portlet可以使用門戶對用戶管理、身份驗證、權(quán)限、頁面管理等的現(xiàn)有支持。這使您可以專注于開發(fā)portlet的核心功能。在許多方面,將應(yīng)用程序編寫為portlet比編寫?yīng)毩⒌膽?yīng)用程序更容易。
新建portlet可以選擇Eclipde->New->Liferay Module Project->輸入項目名->Use the Gradle Build type,選擇mvc-portlet來創(chuàng)建。
5.Service Builder
Liferay Service Builder是一個模型驅(qū)動的代碼生成工具,允許定義稱為實(shí)體的自定義對象模型。ServiceBuilder通過對象關(guān)系映射(ORM)技術(shù)生成一個服務(wù)層,該技術(shù)在對象模型和底層數(shù)據(jù)庫的代碼之間提供了一個清晰的分離。這使得可以為應(yīng)用程序添加必要的業(yè)務(wù)邏輯。ServiceBuilder將XML文件作為輸入,并為應(yīng)用程序生成必要的模型、持久性和服務(wù)層。這些層提供了一個清晰的關(guān)注分離。ServiceBuilder生成了在數(shù)據(jù)庫上實(shí)現(xiàn)創(chuàng)建、讀取、更新、刪除和查找操作所需的大多數(shù)公共代碼,使得能夠?qū)W⒂诜?wù)設(shè)計的更高級別方面。創(chuàng)建方法:New->Liferay Module Project->service builder
6.安全認(rèn)證
Liferay的開發(fā)框架提供了一個應(yīng)用程序安全平臺,該平臺擁有多年的開發(fā)經(jīng)驗。您不需要為應(yīng)用程序提供自己的安全保護(hù)。相反,您可以使用Liferay的框架為應(yīng)用程序指定安全性。 除了應(yīng)用程序的安全性之外,還有許多方法可以通過自定義身份驗證過程來擴(kuò)展默認(rèn)的安全模型。包括一下:
※資源、角色和權(quán)限
Liferay中角色有用戶 、站點(diǎn) 、組織架構(gòu) 、角色 、用戶組
分別是:Users、 Site、 Organization、 Role、 UserGroups
Users:用戶是Liferay portal中的關(guān)鍵實(shí)體,分別和站點(diǎn) / 組織架構(gòu) / 用戶組相互關(guān)聯(lián);用戶是組織架構(gòu)的一部分;一個用戶可以通過訪問權(quán)限訪問多個站點(diǎn);用戶包含的權(quán)限有站點(diǎn)級別,組織架構(gòu)級別,門戶級別3種作用域:
Site:一個Liferay portal可以有多個站點(diǎn);站點(diǎn)有點(diǎn)像一種容器,包含了web pages、 web contents、 role、web apps...;站點(diǎn)管理員可以添加pages, users, look and feel,還有一些定制開發(fā)的插件(如portlets);用戶的訪問權(quán)限受到 site role訪問控制的限制
Organization:組織架構(gòu),一種樹形組織和人員邏輯關(guān)系;不同組織可以定義(屬于)不同站點(diǎn),但反之不行(即站點(diǎn)不能包含組織架構(gòu)),即Liferay的組織架構(gòu)是全局的,即只能有一套組織架構(gòu),在這之下,可以自由組織站點(diǎn);比如有集團(tuán)總部、北京分公司、天津分公司的架構(gòu),可以定義3個站點(diǎn),即集團(tuán)門戶、天津門戶、天津門戶,但只能有一套統(tǒng)一的組織架構(gòu)
Role – Permission:基于角色的權(quán)限;定義權(quán)限,用于訪問某些頁面或者功能;一個Role由一組Permissions組成(Role in Liferay is having set of Permissions.);Role的作用域有Organization、Sites、Regular (Portal Level)?
User Group:就是“組”,由多個用戶組成;組是可以跨組織架構(gòu)部門的,比如“HR組”,人員可以是集團(tuán)總部的hr、也可以是北京分公司的hr,組成一個獨(dú)立于組織架構(gòu)的邏輯集合;用戶組可以和多個站點(diǎn)關(guān)聯(lián)。
※自定義SSO提供程序
※身份驗證管道
※服務(wù)訪問策略
※身份驗證驗證程序
7. Web API
有兩種方式可以連接liferay的web APIS
※Hypermedia REST APIs (beta):這些服務(wù)是以一種固定的方式設(shè)計和構(gòu)建的,因此與內(nèi)部模型分離。它們遵循著名的行業(yè)標(biāo)準(zhǔn),允許在不破壞客戶機(jī)的情況下改進(jìn)API。這是在Liferay門戶中使用Web服務(wù)的現(xiàn)代首選方式。
※Plain Web/REST Services:這是在Liferay門戶中構(gòu)建和使用Web服務(wù)的舊方法,但仍受支持。例如,您可以使用JAX-RS、JAX-WS或服務(wù)構(gòu)建器來實(shí)現(xiàn)純REST或SOAP Web服務(wù)。
8.Liferay主題及樣式
liferay可以為不同的頁面、社區(qū)、組織等提供不同的主題,方便實(shí)現(xiàn)用戶的個性化配置,同時liferay提供的IDE方便開發(fā)人員進(jìn)行主題的個性化開發(fā)。用戶可以安裝Liferay Theme Generator,創(chuàng)建主題,發(fā)布主題,開發(fā)主題,布局模板,開發(fā)portlet和主題,開發(fā)Clay CSS和主題。Liferay的產(chǎn)品導(dǎo)航包括用于自定義、配置和導(dǎo)航系統(tǒng)的主菜單。編輯頁面、切換到其他網(wǎng)站范圍、訪問用戶憑據(jù)等時,將使用默認(rèn)的導(dǎo)航菜單。為默認(rèn)菜單提供自定義可以幫助您的Liferay實(shí)例獲得獨(dú)特的觸感。您可以根據(jù)需要擴(kuò)展和自定義默認(rèn)產(chǎn)品導(dǎo)航。有四個產(chǎn)品導(dǎo)航部分可以擴(kuò)展:產(chǎn)品菜單、控制菜單、模擬菜單和用戶個人菜單。
9.移動開發(fā)
Liferay提供兩種方法來創(chuàng)建與Liferay實(shí)例一起工作的本機(jī)Android和iOS應(yīng)用程序:Liferay屏幕和Liferay Mobile SDK。
Liferay屏幕通過名為screenlets的現(xiàn)成組件來實(shí)現(xiàn)這一點(diǎn)。因為屏幕已經(jīng)包含了調(diào)用Liferay實(shí)例所需的代碼——以及一個完整的用戶界面——您所需要做的就是在Android或iOS應(yīng)用程序中插入和配置它們。屏幕為常見任務(wù)(如登錄、查看Web內(nèi)容、添加DDL記錄等)提供屏幕。您還可以自定義每個屏幕以滿足您的特定需求,或者編寫自己的屏幕。在幕后,屏幕使用Liferay Mobile SDK調(diào)用Liferay的遠(yuǎn)程服務(wù)。
Liferay Mobile SDK是一個較低級別的工具,允許您手動調(diào)用Liferay的遠(yuǎn)程服務(wù)。您需要使用MobileSDK編寫自己的屏幕,或者獨(dú)立于屏幕調(diào)用Liferay的遠(yuǎn)程服務(wù)。在大多數(shù)情況下,你會發(fā)現(xiàn)使用屏幕可以節(jié)省你的時間和精力。