You are on page 1of 40

Tng quan Portal Liferay Portal

Tng quan

Portal Liferay Portal

Vportal Team Cng ty VietSoftware a ch: Tng 8, s 51 L i Hnh, H Ni, Vit Nam in thoi: (84-4) 9745699; Fax: (84-4) 9745700 E-mail: contact@vietsoftware.com Web site: http://www.vietsoftware.com

10/2007 Khi nim Portal..............................................................................4 So snh portal vi website thng thng.........................................4


Bn quyn 2007 Cng ty Vietsoftware, Inc. 1

Tng quan Portal Liferay Portal

Cc tnh nng c bn........................................................................6 Li ch ca h thng Portal..............................................................7 Phn loi Portal................................................................................8 So snh cc Portals..........................................................................9
1. Cc tiu ch nh gi..............................................................................10 2. nh gi cc Portal................................................................................10 2.1.uPortal...............................................................................................10 2.2.eXo Platform....................................................................................11 2.3.Stringbeans.......................................................................................11 2.4.Liferay..............................................................................................11 Kt qu nh gi:....................................................................................14

Kin trc, m hnh hot ng ca portal.......................................16


1.Mt s khi nim....................................................................................16 Portal l g?.............................................................................................16 Portlet l g?............................................................................................16 Portlet container l g?............................................................................16 2. Thnh phn ca mt trang portal...........................................................16 3. Qu trnh to ra cc trang portal............................................................18 4. Qu trnh x l cc yu cu trang portal................................................19

Portlet.............................................................................................20
Khi nim chung v Portlet........................................................................20 Portlet Interface v lp GenericPortlet......................................................20 Vng i ca portlet..................................................................................20 Cc trng thi thc thi portlet (Portlet Runtime States).............................21 Qun l yu cu portlet (Portlet Request Handling)..................................21 "Ch c th l mt".................................................................................22 ActionRequest:.......................................................................................23 RenderRequest:.......................................................................................23 Lp GenericPortlet:....................................................................................24 Cc yu t khc ca Java Portlet API........................................................27 PortletConfig..........................................................................................27 PortletURL.............................................................................................28 Cc ch ca portlet............................................................................29 Cc ca s trng thi..............................................................................30 Ng cnh portlet.....................................................................................30 Ng cnh portal......................................................................................30 Cc tham chiu portlet (Portlet Preferences)..........................................31 Sessions (Phin lm vic).......................................................................33 Gi JSPs v servlet.................................................................................34
Bn quyn 2007 Cng ty Vietsoftware, Inc. 2

Tng quan Portal Liferay Portal

Cu to ng dng portlet........................................................................37 Bo mt ..................................................................................................38 Cc nh ngha kiu CSS (Cascading Stylesheets).................................38 Kin trc ca Portlet..................................................................................38 Portlet Container.....................................................................................38 Phng thc............................................................................................39

Bn quyn 2007 Cng ty Vietsoftware, Inc.

Tng quan Portal Liferay Portal

Khi nim Portal


nh ngha mt cch tng i, Portal l mt phn mm ng dng Webbased, nh danh v xc thc ngi dng ng nhp, t s cung cp giao din mang tnh c nhn ha cho ngi s dng. Thng qua giao din ny, ngi dng d dng truy cp, khai thc, tm kim, giao tip vi cc ng dng, cc thng tin, v vi nhng ngi dng khc. ng trn kha cnh cng ngh, ngy nay portal c coi nh mt gii php(frame work) m thng qua chng ta c th quy t, qun l nhiu ngun thng tin(bao gm thng tin v ng dng phn mm) khc nhau vo trong mt thc th phn mm duy nht-phn mm portal. T , cc thng tin c phn phi di dng cc dch v cho tng ngi dng khc nhau tu thuc vo nhm quyn, vo nhu cu cng nh mc ch ca ngi dng . C th ni, Portal nh mt cng vo vn nng cho ngi dng tm kim thng tin v tc nghip mt cch thun li v d dng. Liferay Portal l mt phn mm ngun m c pht trin bi cng ty Liferay. y l mt portal ngun m c nh gi cao nht v tt c cc mt trong cng ng ngun m hin nay(Xem chi tit trong phn nh gi cc portal).

So snh portal vi website thng thng


Sang Ting Vit, Web Portal c dch l Cng giao tip in t, Cng giao dch in t hoc ngn gn hn: Cng in t. Tuy nhin, cng nh tn ting Anh ca chng, cc t ny tht s cha th phn nh ht c chnh xc th no l mt Portal. lm r bn cht ca Portal chng ta a ra cc so snh gia Portal vi mt Website thng thng sau y. + Kh nng ng nhp mt ln ti tt c cc ti nguyn c lin kt vi Portal. Ngha l, ngi dng ch cn mt ln ng nhp l c th vo v s dng tt c cc ng dng c tch hp trong Portal m ngi dng ny c quyn. Mt website thng thng khng c c kh nng ng nhp mt ln. + Kh nng c nhn ha theo ngi s dng.

Bn quyn 2007 Cng ty Vietsoftware, Inc.

Tng quan Portal Liferay Portal

y l mt trong nhng kh nng quan trng ca Portal, gip n phn bit vi mt website thng thng. Portal c nhn ha ni dung hin th, thng thng y l s la chn mt cch t ng da trn cc quy tc tc nghip, chng hn nh vai tr ca ngi s dng trong mt t chc. V d khi mt ngi mua hng ng nhp vo h thng, Portal s hin ra mt danh sch cc sn phm mi. Hoc nu cn quan tm n cc lnh vc kho c th Portal c th cung cp cc thng tin bng danh sch cc c. Trong khi , website thng khng h tr, nu c ch mc rt nh, khng phi l c im ni bt. + Kh nng ty bin. y l mt kh nng tiu biu ca mt Portal. V d mt giao din Portal c mc thng tin thi tit, chng ta c th b phn thng tin ny i nu chng ta khng quan tm n n. Hoc chng ta c th thay i cch hin th ca Portal. V d nh thay v hin th bng font ch mu xc nh chng ta c th thay n bng ch mu , hay c th t thay i giao din ca Portal nu mc nh chc nng A c t sau chc nng B, nu khng thch chng ta c th thay i li th t hin th ny. c tnh ny tng t nh mn hnh desktop ca chng ta. Mt vi website thng c nhng ch dng li mc dng sn, ngi dng ch c th la chn mt vi giao din c, m khng t mnh thay i tng mc mt cch ty . + Lin kt truy cp ti hng trm kiu d liu, kho d liu, k c d liu tng hp hay phn loi. Portal n c kh nng lin kt ti ti nguyn d liu rng ln, gm nhiu kiu d liu t d liu thng thng n siu d liu. Website thng ch s dng cc lin kt ti cc site khc nhng ni dung ch yu vn ch tp trung trong trang . + Kh nng lin kt v hp tc ngi dng(h tr rt tt). Portal khng ch lin kt chng ta vi nhng g chng ta cn m cn lin kt vi nhng ngi m chng ta cn. Kh nng lin kt ny c thc hin bi cc dch v hp tc. Chng hn, n gin nh kh nng h tr tng tc hai chiu gia cng dn v c quan chc nng trong vic hi p chnh sch, php lut, hay cao hn na l portal c kh nng tr gip xy dng cc cuc giao lu, t chc hi tho trc tuyn hay to ra mt cng ng o. Website thng thng khng h tr tnh nng ny.
Bn quyn 2007 Cng ty Vietsoftware, Inc. 5

Tng quan Portal Liferay Portal

Cc tnh nng c bn
Tuy c nhiu loi cng thng tin tch hp, cung cp nhiu loi dch v v ng dng khc nhau, nhng tt c cc loi cng thng tin tch hp u c chung mt s tnh nng. Cc tnh nng ny l c s dng nh mt tiu chun phn bit gia cng thng tin in t tch hp vi mt Web site hoc mt ng dng chy trn nn tng Web. Cc tnh nng bao gm: Kh nng c nhn ho (Customization hay Personalization): cho php thit t cc thng tin khc nhau cho cc loi i tng s dng khc nhau theo yu cu. Tnh nng ny da trn hot ng thu thp thng tin v ngi dng v cng ng ngi dng, t cung cp cc thng tin chnh xc ti thi im c yu cu.
1.

Tch hp v lin kt nhiu loi thng tin (Content aggregation): cho php xy dng ni dung thng tin t nhiu ngun khc nhau cho nhiu i tng s dng. S khc bit gia cc ni dung thng tin s c xc nh qua cc ng cnh hot ng ca ngi dng (user-specific context), v d nh i vi tng i tng s dng sau khi thng qua qu trnh xc thc th s c cung cp cc thng tin khc nhau, hoc ni dung thng tin s c cung cp khc nhau trong qu trnh c nhn ho thng tin.
2.

Xut bn thng tin (Content syndication): thu thp thng tin t nhiu ngun khc nhau, cung cp cho ngi dng thng qua cc phng php hoc giao thc (protocol) mt cch thch hp. Mt h thng xut bn thng tin chuyn nghip phi c kh nng xut bn thng tin vi cc nh dng c quy chun, v d nh RDF (Resource Description Format), RSS (Rich Site Summary), NITF (News Industry Text Format) v NewsXML. Ngoi ra, cc tiu chun da trn XML cng phi c p dng qun tr v hin th ni dung mt cch thng nht, xuyn sut trong qu trnh xut bn thng tin. Cc tiu chun da trn XML ny cho php a ra gii php nhanh nht khai thc v s dng thng tin trn cc Web site khc nhau thng qua qu trnh thu thp v bc tch thng tin vi cc nh dng c quy chun.
3.

H tr nhiu mi trng hin th thng tin (Multidevice support): cho php hin th cng mt ni dung thng tin trn nhiu loi thit b khc nhau nh: mn hnh my tnh (PC), thit b di ng (Mobile phone, Wireless phone, PDA), s dng in hay cho bn fax. mt cch t ng bng cch xc nh thit b hin th thng qua
4. Bn quyn 2007 Cng ty Vietsoftware, Inc. 6

Tng quan Portal Liferay Portal

cc thuc tnh khc nhau. V d: cng mt ni dung , khi hin th trn mn hnh my tnh th s dng HTML, nhng khi h thng xc nh c thit hin th l PDA hay mobile phone, h thng s loi b cc nh c trong ni dung v t ng chuyn ni dung sang nh dng WML (Wireless Markup Language) ph hp cho vic hin th trn mn hnh ca thit b di ng. Kh nng ng nhp mt ln (Single Sign On): cho php dch v xut bn thng tin hoc cc dch v khc ca portal ly thng tin v ngi dng khi hot ng m khng phi yu cu ngi dng phi ng nhp li mi khi c yu cu. y l mt tnh nng rt quan trng v cc ng dng v dch v trong portal s pht trin mt cch nhanh chng khi xut hin nhu cu, m cc ng dng v dch v ny tt yu s c cc nhu cu v xc thc hoc truy xut thng tin ngi dng.
5.

Qun tr portal (Portal administration): xc nh cch thc hin th thng tin cho ngi dng cui. Tnh nng ny khng ch n gin l thit lp cc giao din ngi dng vi cc chi tit ho (lookand-feel), vi tnh nng ny, ngi qun tr phi nh ngha c cc thnh phn thng tin, cc knh tng tc vi ngi s dng cui, nh ngha nhm ngi dng cng vi cc quyn truy cp v s dng thng tin khc nhau.
6.

Qun tr ngi dng (Portal user management): cung cp cc kh nng qun tr ngi dng cui, tu thuc vo i tng s dng ca portal. Ti y, ngi s dng c th t ng k tr thnh thnh vin ti mt cng thng tin cng cng (nh Yahoo, MSN) hoc c ngi qun tr to lp v gn quyn s dng tng ng i vi cc cng thng tin doanh nghip. Mt khc, tu vo tng kiu portal m s lng thnh vin c th t vi nghn ti hng triu. Hin ti phng php phn quyn s dng da trn vai tr (Role-based security) c s dng nh mt tiu chun trong cc hot ng xc nh quyn truy cp v cung cp thng tin cho cc i tng khc nhau trong cc portal cng nh cc ng dng Web.
7.

Li ch ca h thng Portal
H thng Portal h tr cng ng ngi dng trc tuyn, cc cn b, nhn vin, cc i tc v cc nh cung cp... di nhiu hnh thc kt hp khc nhau. C s h tng Portal gip vic khi to, tch hp, qun l v c nhn ha ton din cc thng tin v ng dng cho mi ngi dng ring bit phc v cc nhu cu v s thch ca mt cng ng ring bit.
Bn quyn 2007 Cng ty Vietsoftware, Inc. 7

Tng quan Portal Liferay Portal

Ngi dng c th d dng hnh dung c cc dch v m h thng portal cung cp nh sau: 1. Cc dch v c bn: Post bi nh dng HTML/Document, Danh sch lin kt, Upload/Download Files, Thao tc nh 2. Cc dch v giao tip cng cng: Forum, Thng bo, Thm d B phiu
3.

Cc dch v cung cp thng tin: Thng bo, Bn tin... Cc dch v tm kim: Tm kim, Phn loi

4.

5. Cc dch v tr gip ngi dng: Thng tin c nhn, Lch biu 6. Cc dch v tc nghip: Qun l ni dung, Hp tc d n, Qun l bn hng, qun l nhn s C th thy rng, cc li ch thc s ca h thng Portal ny em li nhn t kha cnh hiu qu ng dng thc t l: Nng cao hiu qu lm vic cho cc c nhn v t chc, i tc... nh truy cp bo mt, tch hp ti cc thng tin v ng dng lin quan, cng nh truy cp tng th ti tt c cc c nhn, thng tin, t chc v cc nh cung cp t bt k u, bt k khi no. Ci thin cc tin trnh hp tc nh lung thng tin tt hn gia con ngi v cc ng dng, v nh cc mi trng cng tc gip gim thi gian chuyn i thng tin th thnh tri thc. Gim gnh nng ca vic trin khai v qun l thng tin v cc dch v ng dng trong mt t chc. Duy tr, qun l, m rng, nng cp, ti s dng d dng, tit kim chi ph u t xy dng li h thng.

Cho php cc hng th 3 tham gia vo vic cung cp ng dng h thng, cc dch v trung gian... Kh nng ny lm phong ph, a dng kh nng ng dng v trin khai ca h thng Portal.

Phn loi Portal


Vic phn loi Portal c th c nhiu cch khc nhau. Nu cn c vo c trng ca Portal ngi ta chia Portal thnh cc loi nh sau :

1. Consumer Portal
Bn quyn 2007 Cng ty Vietsoftware, Inc. 8

Tng quan Portal Liferay Portal

Cung cp nhiu la chn cho vic tm kim, chuyn, E-mail, t sa khun dng, la chn tin tc, calendar, qun l a ch lin h, cc cuc hn, cc lu , ch thch, cc a ch website, real-time chat v cc chc nng Intranet, v.v

2. Vertical Portal
Chuyn cung cp cc thng tin v dch v mang tnh chuyn ngnh cho mt lnh vc chuyn mn, khoa hc, kinh t c th no .

3. Horizontal Portal
Ni dung bao trm nhiu lnh vc hoc nhiu ch trong mt lnh vc ln (mang tnh din rng) nh kinh t, khoa hc, cng ngh, y hc, th thao, m nhc, phc v cc mi quan tm khc nhau, h tr bng cc chc nng dch v phong ph, phc v cng ng, phc v t chc hnh chnh.

4. Enterprise Portal
Cung cp cc dch v truy xut thng tin t mi ngun ti nguyn thng tin trong mng Intranet ca mt t chc qua mt cng truy cp duy nht.

5. B2B Portal
Cung cp cc dch v nh hng theo mi quan h tng tc thng tin hai chiu gia cc doanh nghip (B2B) trong mi trng thng mi in t.

6. G2G Portal
Cung cp cc dch v hnh chnh cng theo mi quan h tng tc thng tin hai chiu gia cc c quan hnh chnh nh nc (G2G) trong mi trng trao i thng tin in t.

So snh cc Portals
Bn quyn 2007 Cng ty Vietsoftware, Inc. 9

Tng quan Portal Liferay Portal

1. Cc tiu ch nh gi
C mt s kh khn khi so snh cc Portal v mi Portal trong s chng da trn nhng yu cu khc nhau v cc cng ngh khc nhau. Vic so snh portal da trn nhng tiu ch nh gi khc nhau. Nhng tiu ch ny da trn li v nhng yu cu la chn t Portal:

Tun theo JSR-168 (JSR-168 compliant) Tnh d dng ci t(Ease to installation) Ti liu chun(Documentation Standard) H tr trc tuyn(Online Support) Qun l Portal (Portal Management) Cc ti nguyn Portal(Portlet Resources) Kh nng thc thi v tnh linh hot(Performance & Scalability) Bo mt (Security) Cng ngh s dng(Technology Used) Cc c im ca Portal(Portal Features) S ph thuc server(Server Dependency) Tun theo chun WSRP(WSRP standard compliant)

2. nh gi cc Portal
Vic nh gi ch nm trong danh sch cc Portal ph bin di y: uPortal: theo s s dng rt ln trong cc hc vin. eXo: theo s ph bin Liferay: theo s ph bin, giao din ngi dng v chc nng la chn Stringbeans: theo s d dng s dng 2.1.uPortal

uPortal l mt Portal Framework c s dng rng ri trong cc hc vin v n ch yu nhm vo nhng yu cu ca cc t chc ny. uPortal l mt Portal Framework rt n nh v c ra i thm ch trc c JSR-168
Bn quyn 2007 Cng ty Vietsoftware, Inc. 10

Tng quan Portal Liferay Portal

specification, theo uPortal p dng nhng k thut ko theo chun c gi l channel. uPortal mc d tun theo JSR-168 nhng hu ht nhng c im sn c trong uPortal vn da trn ty bin v gii php pht trin vi cc channel adapter hn l cc portlet nguyn thy. uPortal h tr portlet thng qua Pluto Portlet Framework. uPortal cng l open source Portal Framework h tr nhiu kiu portal nht: t Java portal n HTML portal, t text portal n XML portal. 2.2.eXo Platform

eXo Platform nh ngha nh mt portal v mt CMS. C th coi, eXo Platform l mt open source Portal Framework mnh m vi vic h tr nhiu cng ngh mi. Kh nng thc thi ca eXo Platform tt nht vi thi gian upload portal nh nht. 2.3.Stringbeans

Stringbeans Portal c to nn l mt portlet container tun theo JSR-168 v mt framework cho vic qun tr hu dng cc portal application. Stringbeans c nhiu c im thn thin vi user v developer, c bit nh gi l c documentation v h tr trc tuyn tt nht trong s cc open source Portal Framework. 2.4.Liferay

Liferay Portal Enterprise mang nhiu ngha ln hn l mt portal container, m i km vi n l rt nhiu c im hu dng nh Content Management System (CMS), tun theo WSRP, Single Sign On (SSO), h tr AOP (Aspect Oriented Programming), v nhiu cng ngh mi nht khc. Liferay c mt thit k kin trc rt r rng v linh hot da trn thc t tt nht ca J2EE. Do , n c th s dng tt cc server khc nhau nh
Bn quyn 2007 Cng ty Vietsoftware, Inc. 11

Tng quan Portal Liferay Portal

Tomcat, Jetty, JBoss, JRun, Oracle9iAS, Orion, WebLogic, WebSphere hay cng ngh khc nhau nh Struts, Tiles, Spring, EJB , JMS, Java Mail, Web ServiceNh vy, Liferay l mt open source portal container h tr gn nh hu ht JavaServer open source hay thng mi. Vic customize cc portal page v cc portlet trong nhng open source Portal Framework nh eXo Platform l khng d dng, v c th lm rt nhiu trong vic cu hnh, nhng vi Liferay layout management th rt d dng. Liferay Portal c mt GUI da trn Web cho php user tng tc thit k layout ca Portal Page m khng cn phi chnh sa bt k file cu hnh no. Liferay Portal Enterprise i km vi nhng portlet hu dng. V nu em so snh vi cc open source Portal Framework khc, Liferay portal c mt lng ln cc portlet tin ch tun theo JSR-168 v c th c s dng trong bt k Portal no ch vi rt t thay i. Liferay h tr WSRP specification c cho WSRP consumer v WSRP producer nh mt thc th ca Liferay portal. Liferay c th c s dng vi bt k database no vi cht t nh hng ty theo vic s dng Hibernate trong thit k ca n. Liferay c cc JSP tag lib v nhiu class tin ch khc trong nhng package khc nhau tr gip cc developer trong vic pht trin portal/portlet.

Bn quyn 2007 Cng ty Vietsoftware, Inc.

12

Tng quan Portal Liferay Portal

Ta c xem kin trc Liferay portal nh hnh sau:

Bn quyn 2007 Cng ty Vietsoftware, Inc.

13

Tng quan Portal Liferay Portal

Kt qu nh gi:

Bn quyn 2007 Cng ty Vietsoftware, Inc.

14

Tng quan Portal Liferay Portal

Nh vy, Liferay Portal l mt portal ngun m c nh gi cao nht v tt c cc mt trong cng ng ngun m hin nay.

Bn quyn 2007 Cng ty Vietsoftware, Inc.

15

Tng quan Portal Liferay Portal

Kin trc, m hnh hot ng ca portal


1.Mt s khi nim
Portal kt hp cc portlet li vi nhau to nn trang portal. Cc portlet ny c qun l bi portlet container. Vy trc ht ta cn tm hiu portal l g? portlet l g? portlet container l g? Portal l g? (Xem phn Khi nim portal pha trn) Portlet l g? Mt portlet l thnh phn web da trn k thut Java, c qun l bi portlet container, n x l cc yu cu v sn sinh ra ni dung html ng. Portlet container l g? Mi portlet c trin khai trong mt portlet container, portlet container iu khin ton b chu trnh sng ca portlet, cung cp nhng ti nguyn v mi trng chy cc portlets . Portlet container nhn cc yu cu t cng in t v thc thi cc yu cu trn nhng portlets c cha bi n. Portlet container khng chu trch nhim kt hp ni dung sn sinh bi cc portlet. Trch nhim thuc v cng in t. Mt cng in t v Portlet container c th c xy dng vi nhau thnh 1 thnh phn duy nht ca b ng dng hay nh l 2 thnh phn ring bit ca ng dng cng in t.

2. Thnh phn ca mt trang portal


Mt trang portal c th to ra mt hay nhiu ca s portlet. Mi ca s Portlet c to bi hai thnh phn : mt l decoration, chng ging nh mt frame hay window cha title bar (thanh tiu ), controls (nhng iu khin), nhng border ca ca s s xut hin. Thnh phn th hai c gi l portlet fragment, y l thnh phn cha ng dng portlet. V d trn mt trang portal chng ta c th thy vng thng tin thi tit, vng tin tc, vng gi c chng khon. Nu ch mt trong chng c cp nht th nhng ci cn li cng c cp nht theo. Mi vng thng tin l mt portlet , bn c th thy chng c title bar, mt vi nt nh ng, phng to, thu nh, ln xung,

Bn quyn 2007 Cng ty Vietsoftware, Inc.

16

Tng quan Portal Liferay Portal

Thc cht, nhng ca s ny l nhng ng dng khc nhau, c pht trin c lp. Nh pht trin to ra mt portlet nh vic to mt ng dng , nn li di file war. Sau nh qun tr portal s ci t file war ny trn my ch v to trang. Bc tip theo l ngi s dng c th cho ng dng m h mun dng vo trong trang ca h. V d, nu mt ngi s dng khng thch cp nht nhng thng tin chng khon v anh ta li mun cp nht tin tc th thao. Khi anh ta c th thay portlet chng khon bng mt portlet cp nht tin th thao.

Bn quyn 2007 Cng ty Vietsoftware, Inc.

17

Tng quan Portal Liferay Portal

3. Qu trnh to ra cc trang portal


Cc portlets chy bn trong 1 portlet container. Portlet container nhn ni dung c sn sinh t cc portlets. Mt cch in hnh, portlet container nm gi ni dung gi n portal. Portal server to trang portal vi ni dung c sn sinh bi cc portlets v gi n n thit b my khch(client) khi n c hin th n ngi dng.

Bn quyn 2007 Cng ty Vietsoftware, Inc.

18

Tng quan Portal Liferay Portal

4. Qu trnh x l cc yu cu trang portal


Mt ngi dng thng qua ng dng client (v d trnh duyt web HTML hay mt in thoi thng minh c th lt web) sau khi c chng thc, a ra 1 yu cu HTTP n portal. Yu cu c nhn bi portal. Portal xc nh nu c 1 hnh ng(action) nhm n cc portlets c tch hp trong portal hay khng. Nu c 1 action nhm n 1 portlet, th cng in t yu cu portlet container triu gi portlet x l hnh ng. Portlet container nhn ni dung c sn sinh t cc portlets. Portlet container nm gi ni dung gi n portal. Portal server to trang portal vi ni dung c sn sinh bi cc portlets v gi n n thit b my khch(client) khi n c hin th n ngi dng.

Bn quyn 2007 Cng ty Vietsoftware, Inc.

19

Tng quan Portal Liferay Portal

Portlet
Khi nim chung v Portlet
Mt server portal qun l cc yu cu ca client. V c mt portlet container qun l vic chy cc Portlets. Bn trong portal l Portlet API - phc tng mnh lnh ca portlet container chng qun l trng thi thc thi ca portlet. Portlet container nh gi nhng portlet thnh cc fragments, hoc l to yu cu (request) ca portlet hoc l ly mt fragment trong cache. Sau , container nm fragment gi n portal server kt hp chng vo trong trang portal. To nn giao din ca trang Portal.

Portlet Interface v lp GenericPortlet


Giao din portlet nh ngha(cch thc) thi m tt c cc portlet phi implement. Mt cch c th, bn nn k tha (extends) lp GenericPortlet xy dng portlet, bi n cung cp kin trc cha tt c nhng phng thc ci t portlet in hnh.

Vng i ca portlet
Rt ging nh servlet, vng i mt portlet c qun l bi container, v c phng thc init(khi to) n c dng qun l nhng yu cu khi to(to ti nguyn, cu hnh, vv...). Portlet ch c ti v khi cn n, tr khi bn cu hnh container ti chng ngay khi khi ng. Phng thc init ly mt i tng object ci t(implement) lp giao tip interface PortletConfig, ci qun l cc tham s khi to v b ti nguyn ca Portlet: ResourceBundle. i tng ny c th c s dng ly tham chiu n Object ci t(implement) lp giao tip PortletContext interface. Nh pht trin portlet khng hon ton mt th gi lo lng v s phc tp ca bit l khi to(exception) ca portlet container, bi thng thng chng c nm ra, v nh pht trin tc ng tr li ln chng (g ri nhng tnh hung c th dn n bit l exception v sa chng nu c th). Trong khi khi to, i tng portlet c th nm ra 1 UnavailableException hay 1 PortletException. Trong trng hp ny, portlet khng c kch hot m n b gii phng, vic khi to khng thnh cng. Portlet container c th c gng instante v khi to cc portlets vi ln na sau khi tht bi. Li UnavailableException ch ra rng portlet khng sn sng(unavaiable) trong mt khong thi gian ti thiu. Nu gp li ny, portlet container phi
Bn quyn 2007 Cng ty Vietsoftware, Inc. 20

Tng quan Portal Liferay Portal

ch cho thi gian ny qua i mi instantiate v khi to mt portlet mi. Cn li RuntimeException c nm ra trong qu trnh khi to c th c xem nh l mt PortletException. Phng thc destroy cung cp xo ht cc ti nguyn c thit lp phng thc init(khi to). iu ny tng t vi portlet destroy trong servlet, v c gi mi khi container tng kh portlet. Khi mt exception c nm ra trong phng thc init ca portlet, th phng thc destroy c m bo l khng c gi. Tuy nhin, nu ti nguyn c to trong phng thc init() trc khi exception c nm, nh pht trin khng th mong i phng thc destroy dn dp chng, m phi qun l chng trong khi try-catch exception.

Cc trng thi thc thi portlet (Portlet Runtime States)


Khi mt portlet ang chy, n c mt i tng Preferences kt hp cho php tu bin portlet. Nhng gi tr khi to ca Preferences c xc nh trong m t trin khai(deployment descriptor), nhng portlet c mt s truy cp y mt cch h thng n tham chiu ca n. Khi mt portlet c t vo mt trang, mt Preferences s tham chiu n n. S kt i ca portlet v i tng Preferences trn mt trang c bit n nh l ca s portlet. Mt trang c th bao gm rt nhiu nhng ca s portlet nh nhau bn trong hin th ca n. Trc khi bn bt u thc mc ti sao tt c cc i tng tham chiu Preferences Object ny l cn thit, hy hnh dung rng iu cung cp kh nng thao tc cho tnh nng ch yu ca portalcustomization(kh nng tu bin) . Trong khi i tng tham chiu khi to portlet(Preferences Object ) c to xc nh cu hnh v trng thi thc thi ca portlet, vic ngt trng thi qun l tu bin giao din ca portlet l iu cn thit. Chng hn, ni bn c mt portlet th mc lm cng(employee directory portlet). Hin nhin l, n cn mt vi tham chiu mi c th chy c. Tuy nhin, khi employee directory portlet c nhng vo trong trang ch ca "B T php", nn khng ch c mt giao din tu bin, nhng cng c tham chiu lin quan n thc t trn trang, chng hn ch hin th cc nhn vin ca B T php.

Qun l yu cu portlet (Portlet Request Handling)


C hai loi yu cu (request ) c th a ra i vi mt portlet : action request v render request(yu cu hnh ng v yu cu hi p). Khng
Bn quyn 2007 Cng ty Vietsoftware, Inc. 21

Tng quan Portal Liferay Portal

ngu nhin m nhng yu cu(request) ny i cng vi cc loi URL tng ng: action URLs v render URLs. Mt action URL nhm ti phng thc processAction ca portlet trong khi render URL hng ti phng thc render ca n. "Ch c th l mt" Nu yu cu ca client l action request, th n ch hng n mt portlet , ci s phi thc thi trc tin. Khng c cc action request khc c th c thc thi trn portlet cn li, ch c render request. Portlet container s thc thi phng thc processAction() trn portlet ch, ch i cho n khi n kt thc trc khi n thc thi hi p (render) ca nhng portlets cn li trn trang. Vic gi phng thc hi p render trn cc portlets cn li c th hon tt theo th t, v c th hon tt song song. Phng thc processAction() chu trch nhim vic thay i trng thi trn mt portlet cho trc, trong khi phng thc render chu trch nhim sn sinh ni dung trnh by tng ng(thch hp) ca portlet. V th, hon ton hp l khi mt user c th thay i ch mt portlet ti mt thi im (bn ch c th click trn mt hp), v rng tt c cc portlets phi gi hi p (render) sn sinh li ni dung ca chng trn kt qu ca action. Tuy nhin, khng phi ni rng tt c cc portlet khng th thay i ti thi gian cho. Hy xem xt v d chung sau: mt portal cho Simpsons. Mt trong nhng portlet cho php bn chn cc c tnh ca Simpson nhng trang m bn mun xem. Nhng portlet khc cha ng nhng thng tin c tnh, hnh thc va ri, nhng cu trch dn ln nht. Khi bn chn mt c tnh mi, bn s thay i trng thi m nhng c tnh chn hay portlet thng qua phng thc processAction() . Trong phng thc ny, qua n, bn s son tho thuc tnh chia s cho trc n xc nh c tnh ca trang m bn tc ng, chng s l nguyn nhn tt c cc portlets t hi p cho nhng c tnh trn khi bn triu gi phng thc render ca chng. Ghi nh mt bit l(exception) khi mt phng thc hi p(render) ca portlet c gi, v khi ni dung ca portlet b gi. Portlet API cho php nhng containers chn la s dng bn copy ni dung c lu gi, thay v gi phng thc render. portlet container khng l ni cung cp mt cch d dng cache, nhng l ngun u c (spec) cung cp d dng ni lu tr kt thc, m c cu hnh trong m t trin khai ng dng portlet (deployment descriptor). Ngi trin khai cung cp mt yu t kt thc-lu tr trong user xc nh s giy lu tr ( hoc -1 nu khng kt thc).
Bn quyn 2007 Cng ty Vietsoftware, Inc. 22

Tng quan Portal Liferay Portal

Ni lu tr l 1client = 1 portlet, v khng th chia s thng qua nhng yu cu ca client. Tt nhin l mt nh pht trin c th implement portlet ca anh ta do cache qun l trong phng thc render, lu tr d liu thng c yu cu trong PortletContext. ActionRequest: Nh cp trn trong phn tho lun v qun l yu cu portlet, nhng yu cu hnh ng (action request ) nm gi vic thay i trng thi ca 1 portlet da trn tham s yu cu hnh ng (action request ). N c hon tt bng cch s dng phng thc processAction(), n ly tham s l 2 i tng ActionRequest v ActionResponse . i tng ActionRequest tng t nh i tng ServletRequest cho bit: + Cc tham s yu cu hnh ng (action request) + Ch portlet + Phin lm vic ca portlet + Trng thi ca s + Cc i tng tham chiu portlet + Ng cnh portal thay i ch portlet hay trng thi ca s, bn gi phng thc tng ng trong i tng ActionResponse . S thay i tr nn hin nhin khi phng thc render c gi tip sau khi kt thc qu trnh x l trong phng thc processAction() . Bn cng c th truyn cc tham s render bng cch s dng i tng ActionResponse. RenderRequest: RenderRequests sn sinh 1 fragment t trng thi hin ti ca portlet. N cung cp: + Cc tham s yu cu hi p (render request ) + Ch portlet + Phin lm vic ca portlet + Trng thi ca s + Cc i tng tham chiu portlet Cng c phng thc RenderResponse() i km, n cung cp phng tin cn thit hi p ni dung. Bn c th gi getOutputStream() hay getWriter() nh tng lm trong servlet, hay bn c th gi i (dispatch ) s
Bn quyn 2007 Cng ty Vietsoftware, Inc. 23

Tng quan Portal Liferay Portal

sn sinh ni dung cho 1 servlet hay JSP. Ta s i chi tit vo k thut ny sau. Cc i tng request v response u khng l lung an ton. iu c ngha l 1 nh pht trin nn trnh chia s cc tham chiu cho chng vi nhng lung thc thi khc. Hu ht cc nh pht trin s khng ch n vn ny, nhng hy nh ghi ch nh l th ny ln sau khi bn quyt nh c gng lm iu g khng hp l.

Lp GenericPortlet:
Lp GenericPortlet l mt lp tru tng c ci t (implement )ca giao din portlet (interface). l con ng chung nht m hu ht users s s dng vit portlets - bng cch k tha lp ny. Lp GenericPortlet k tha phng thc render bng cch ci t tiu ca portlet, v sau gi phng thc doDispatch() ca n, v n lt n, xc nh ch ca portlet, v gi phng thc thch hp : doEdit() EDIT, doView() VIEW. Ta s tho lun v ch portlet sau. on m sau m t 1 lp k tha GenericPortlet: package org.opensourceportals.samples; import java.io.IOException; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.GenericPortlet; import javax.portlet.PortletException; import javax.portlet.PortletMode; import javax.portlet.PortletRequestDispatcher; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; /** * ExamplePortlet l v d c bn v 1 lp k tha GenericPortlet */ public class ExamplePortlet extends GenericPortlet { /* * phng thc ny s ghi phng thc doEdit ca GenericPortlet *c gi cung cp 1 nh du c hi p khi ch portlet l PortletMode.EDIT * Lc ny, ta s gi ph/thc n 1 JSP trong th mc gc ca portlet gi l
Bn quyn 2007 Cng ty Vietsoftware, Inc. 24

Tng quan Portal Liferay Portal

edit.jsp */ protected void doEdit(RenderRequest request,RenderResponse response) throws PortletException, IOException { PortletRequestDispatcher prd =getPortletContext().getRequestDispatcher(/edit.jsp); prd.include(request, response); } Ta s m t ExamplePortlet, c k tha lp GenericPortlet. y ta c th ghi chng phng thc doEdit, n qun l vic hi p khi portlet ch EDIT. /* * phng thc ny s ghi phng thc doEdit ca GenericPortlet *c gi ccp 1 nh du c hi p khi ch portlet l PortletMode.HELP * Lc ny, ta s gi ph/thc n 1 JSP trong th mc gc ca portlet gi l help.jsp */ protected void doHelp(RenderRequest request,RenderResponse response) throws PortletException, IOException { PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher(/help.jsp); prd.include(request, response); } /* * Phng thc ny s ghi phng thc doEdit ca GenericPortlet *c gi cung cp1 nh du c hi p khi ch portlet l PortletMode.VIEW * Lc ny, ta s gi ph/thc n 1 JSP trong th mc gc ca portlet gi l view.jsp */ protected void doView(RenderRequest request,RenderResponse response) throws PortletException, IOException { PortletRequestDispatcher prd =getPortletContext().getRequestDispatcher(/view.jsp); prd.include(request, response);}

Bn quyn 2007 Cng ty Vietsoftware, Inc.

25

Tng quan Portal Liferay Portal

Tng t, ta cung cp cc cch ng x c yu cu hi p portlet khi n ch i HELP v VIEW. /* phng thc ny c ghi chng xc nh tiu mt cch t ng. N c th c * ch nu bn ang c tham s trong tiu ca bn ging nh : News on 16/11/2005 */ protected String getTitle(RenderRequest request) { return Example Portlet; } /* y l phng thc ct yu ca portlet , cc thao tc ca trng thi portlet * c hon tt thng qua phng thc ny. n gin, chng ta s truyn * i s ch nh ch portlet m portlet c th c thit lp. */ public void processAction(ActionRequest request,ActionResponse response) throws PortletException, IOException { PortletMode mode =new PortletMode(request.getParameter(mode)); response.setPortletMode(mode); } } Cui cng, ta ch nh ghi chng phng thc getTitle(), cho php hon ton hp l trong vic hi p tiu (nh hin th ngy hin ti) thay v hin th tiu tnh c m t trong m t trin khai (deployment descriptor). Ta cng c th qun l phng thc processAction(), n chu trch nhim trong cch tr li i tng ActionRequest. on m nu trn ch ra s ci t c s ca portlet bng cch vit 1 lp k tha lp GenericPortlet. Portlet ny khng gi i n cc trang JSPs khc da trn ch ca n (v thit lp tn ca n mt cch h thng), nhng bn gp mi nan gii ca vic ci t portlett.

Bn quyn 2007 Cng ty Vietsoftware, Inc.

26

Tng quan Portal Liferay Portal

Cc yu t khc ca Java Portlet API


Gi th bn kho st nhng khi nhim mc cao ca portlet API, on ny s cho bit cc thnh phn mc thp bn trong c t, vic cung cp 1 portlet hnh cnh ca nh pht trin bn trong ca c t, lm sng t nhng khi nim quan trng v nhng nguy c tim n. PortletConfig Khi 1 portlet c khi to, n cn truy cp n nhng tham s khi to v thng tin cu hnh khc. i tng PortletConfig cung cp nhng th . Thm vo nhng thng s khi to, i tng PortletConfig cn c th trnh by 1 ResourceBundle (b ti nguyn) cho portlet. ResourceBundle bao gm 1 vi trng c yu cu bi c t, bao gm tiu , tiu ngn, v cc t kho. 1 ResourceBundle cho php vic nh v ng dng portlet d dng hn. Bn c th xc nh ResourceBundle trong dng ca m t trin khai ng dng portlet (deployment descriptor) nh sau: <portlet> ... <portlet-info> <title>Homers Doh a Day Portlet</title> <short-title>doh</short-title> <keywords>Simpsons, Homer Simpson, Entertainment</keywords> </portlet-info> ... </portlet> Nh 1 s la chn, bn c th ch nh 1 tham chiu n 1 ResourceBundle theo cch: <portlet> ... <portlet-info> <resource-bundle>com.somedomainname.HomerPortlet</resourcebundle> </portlet-info> ... </portlet>

Bn quyn 2007 Cng ty Vietsoftware, Inc.

27

Tng quan Portal Liferay Portal

Bt c cch no bn s dng (ci u tin thng tt hn cho cc ng dng vi yu cu nh v ti thiu), cc hiu ng mng nhn cho ngi pht trin cng nh vy. Nhng tnh cht ny thng c to bn trong mt ResourceBundle v c lm hiu lc thng qua i tng PortletConfig. PortletURL Khi xy dng ni dung ca portlet, iu cn thit l xy dng cc URLs cung cp kh nng gi portlet. y l ci c bn to nn tng tc trong portal. Nhm mc ch cho php vic to lp PortletURL ng thc t, c 2 s ci t: ActionURL v RenderURL. C 2 u c to t giao din RequestResponse interface bng cch s dng cc phng thc createActionURL() v createResponseURL() tng ng. ActionURL: cung cp kh nng a ra nhng yu cu hnh ng (action request) n portlet ch trn portal, lm nhng vic nh thay i ch portlet, thay i trng thi ca s, xc thc 1 form, v.v... RenderURL: cung cp kh nng b qua phng thc processAction() ca portlet v n thun triu gi phng thc hi p (render), vic truyn thng s hi p iu khin vic biu din. Nhng nh pht trin portlet nn s dng i tng PortletURL (hoc cc th vin th i km) thay v thao tc trc tip trn nhng dng truy vn HTTP. iu tt yu l nh pht trin khng nn dng GET trong cc form HTML. l bi v portal c th m ho cc thng s trng thi ni ti bn trong PortletURL. Bn c th tm thy rt nhiu phng thc trong lp giao tip PortletURL interface ng ch :
setSecure(): cung cp kh nng ch nh URL u nn dng

HTTP u th khng. Nu n khng c s dng, n tip tc vi bt c th g yu cu hin ti ch nh. V th, bn khng phi ch nh lp li n.
setWindowState(): cho php bn thay i trng thi ca s ca portlet. addParameter(): thm cc thng s vo URL. toString(): cung cp 1 chui biu din ca URL. Ch rng n khng

m bo 1 URL hp l, nh l portal c th s dng token vit li URL.

Bn quyn 2007 Cng ty Vietsoftware, Inc.

28

Tng quan Portal Liferay Portal setPortletMode(): cho php bn thit lp ch ca portlet .

Cc ch ca portlet 1 ch portlet biu din 1 trng thi chc nng ca 1 portlet. y c dng bi portlet xc nh lm th no qun l cc yu cu hi p. iu , ph thuc vo ch , portlet s hi p nhng nh du khc nhau. Cc portlets c th thay i ch ca chng nh l 1 phn ca qu trnh x l yu cu hnh ng (action request). Thm vo , 1 portlet c th c cu hnh vi nhng ch thch hp khc nhau v hn ch xa hn tnh sn sng da trn chc nng. Bng sau m t cc ch portlet chun c nh ngha trong portlet API. Cc ch ca Portlet:
VIEW Sn sinh nh du hnh dung trng thi v tnh cht ca portlet.

Nh pht trin ci t doView() ca lp GenericPortlet cung cp chc nng ny.


EDIT Sn xut nh du c th thay i tnh cht ca portlet. Nh

pht trin ci t doEdit() ca lp GenericPortlet cung cp chc nng ny.


HELP Cung cp cc dng hng dn cho portlet. Nh pht trin ci

t doHelp() ca lp GenericPortlet cung cp chc nng ny. Mt portal cng c th cung cp cc ch portlet tu thch. Nh rng iu ph thuc portal, khng ph thuc portlet. V th, nu 1 portlet ci t ch portlet b sung, th chng s khng chuyn c gia cc container portlet khc nhau. portlet cn phi ghi phng thc doDispatch() gi phng thc hi p thch hp. Chng hn, nu bn nh nghi 1 ch portlet c tn "SPECIAL" phng thc doDispatch() s gi phng thc hi p ca n, thng thng l doSpecial(). Tt nhin l, v bn ang ci t phng thc, bn c th gi bt c phng thc g bn mun. Cng ghi ch rng bn c th ch nh vi loi nh du no l thch hp cho 1 ch portlet cho trc.

Bn quyn 2007 Cng ty Vietsoftware, Inc.

29

Tng quan Portal Liferay Portal

Cc ca s trng thi Cc ca s trng thi ch nh portlet bao nhiu khng gian c s dng cho n. iu ny cho php portlet chnh sa nhng hi p ca n thch hp vi trng thi ca ca s. Bng sau bao gm nhng trng thi ca s c xc nh bng Portlet API. Trng thi
NORMAL portlet s chia mn hnh vi cc portlet khc. iu c

ngha l portlet s gii hn cc nh du ca n (markup).


MINIMIZED portlet s cung cp t u ra hoc khng. MAXIMIZED portlet khng chia s mn hnh vi cc portlet khc, v

th portlet khng b gii hn trong nh du ca n (markup). Cng ging nh ch portlet, 1 portlet c th nh ngha cc ca s trng thi tu , n cng phi c cu hnh trong m t trin khai portlet (portlet deployment descriptor). Ng cnh portlet PortletContext l 1 i tng wrapper cho ng dng portlet ca bn. C 1 i tng PortletContext cho mi ng dng portlet. PortletContext cung cp: Truy xut bin khi to Ly v thit lp cc thuc tnh ng cnh Ghi li s kin Ly ti nguyn ng dng (nh hnh nh, file XML ...) Ly c 1 yu cu gi i c sc mnh n by ca servlet v JSPs trong portlet. Ng cnh portal Mt portlet c th ly 1 tham chiu n portal m n ang chy trong thng qua i tng PortalContext. Vic gi phng thc getPortalContext() ca i tng PortletRequest s tr v PortalContext . PortalContext cung cp : Tn ca portal - thng qua phng thc getPortalInfo()

Bn quyn 2007 Cng ty Vietsoftware, Inc.

30

Tng quan Portal Liferay Portal

Cc c tnh ca portal - qua phng thc getProperty() v getPropertyNames() Nhng ch portlet c h tr - qua getSupportedPortletModes() Nhng ca s trng getSupportedWindowStates() thi c h tr qua

Cc tham chiu portlet (Portlet Preferences) Nhm thao tc tu bin ho v c nhn ho portlet ca bn, bn cn thay i cht t cc tham s ca portlet bng nhiu cch. Nhng ci ny gi l portlet preferences (tham chiu ca portlet). V d ci portlet c in l ci portlet thi tit, v theo sau v d , bn c th c 1 tham chiu c tn "cities", vi cc gi tr biu din zip code ca nhng thnh ph m bn cn bit thi tit. Ghi ch rng cc tham chiu ch dnh cho vic cu hnh portlet, v th vic bo tr danh sch tt c cc thnh ph thch hp trong 1 tham chiu s l khng thch hp cho dng cc preferences. Vic suy ngh v chng theo ngha ca lp trnh hng i tng, chng s l cc thuc tnh ca bn thn cc portlets. Preferences c thao tc thng qua 1 i tng Object c ci t (implement) lp giao tip PortletPreferences interface. Tt c cc gi tr tham chiu c lu tr trong mng String, v th bn s khng th lu tr ton Object nh bn lm vi thuc tnh yu cu hay phin lm vic, cng khng c nhng thun li trong khai bo kiu, nh bn lm vi cc li vo mi trng. V th, nu bn ang lu tr cc s di cc tham chiu, bn s cn t chuyn i. c bit, lp giao din PortletPreferences interface cung cp:
getNames(): s tr v 1 bng lit k Enumeration cc tn cc

preferences thch hp.


getValue(): bn truyn cho n tn ca tham chiu bn quan tm, i

km vi 1 gi tr mc nh (trong trng hp n khng tm thy), v n tr v phn t u rin ca mng cc gi tr tham chiu.


getValues(): bn truyn cho n tn tham chiu bn mun v 1 mng

String cc gi tr mc nh v n tr v 1 mng String ca cc gi tr ca n.

Bn quyn 2007 Cng ty Vietsoftware, Inc.

31

Tng quan Portal Liferay Portal setValue(): bn truyn cho n tn tham chiu v gi tr ca tham chiu

, v n thit lp (ci t) n l 1 phn t n mng String cha ng cc gi tr. phng thc ny nm ra 1 bit l nu tham chiu khng b thay i UnmodifiableException .
setValues(): bn truyn cho n tn tham chiu v 1 mng String biu

din gi tr ca tn , v n thit lp cc gi tr tham chiu. phng thc ny nm ra 1 bit l nu tham chiu khng b thay i UnmodifiableException .
isReadOnly(): bn truyn cho n tn tham chiu v n tr v 1 gi tr

Boolean xc nh tahm chiu c th thay i c hay khng.


reset(): bn truyn cho n tn tham chiu v n tr v 1 gi tr mc

nh, nu khng, n s xo tham chiu.


store(): lu tr cc tham chiu. Bi ch c th hon thnh bn

trong processAction(), n s nm ra 1 bit l IllegalStateException nu n hon tt trong 1 li triu gi hi p, phng thc cng s nm ra bit l ValidatorException nu khng hp l.
getMap(): tr v map ca cc tham chiu. Map bao gm cc kho

String v 1 mng String[ ] cha cc gi tr. Map ny cng khng th thay i. Ghi ch 2 iu quan trng hiu v phng thc store() . Trc tin, l 1 giao dch nguyn t. V th, tt c cc thay i phi thnh cng hoc khng thay i no thnh cng. l im then cht hiu nu bn c 1 danh sch tham chiu khng l cho portlet ca bn v bn khng nhp 1 s lng ln khng khip cc u vo. Hai l, bn c th ly nc cng lc ghi vo b lu tr tham chiu. 1 thng bo critical y l bn nn xem nhng tham chiu ca bn nh 1 thc th ring bit v khng l 1 tp hp cc tham s c lp c th s dng c thng qua 1 giao din chung.

Bn quyn 2007 Cng ty Vietsoftware, Inc.

32

Tng quan Portal Liferay Portal

Nh pht trin c th nh ngha cc lp tu cung cp 1 s hp l cho cc tham chiu. Nhng lp ny ci t(implement) lp giao tip PreferencesValidator interface v phi cung cc cc kh nng hp l trong ngha lung - an ton. Vic implement giao tip PreferencesValidator interface l rt n gin: ch ch 1 phng thc validate(), n ly i tng PortletPreferences v khng tr v g c. n gin nm ra 1 bit l ValidatorException nu 1 vi gi tr khng logc vi ci bn nh ngha. Sessions (Phin lm vic) Bi v portal c xy dng trn c ch request - response (v ch yu da trn giao thc HTTP), phi c 1 vi c ch thch hp bo tr trng thi qua cc triu gi. Chng hn, khng th thy vic xc thc ngi dng (authenticate users) vi mi yu cu. C rt nhiu k thut qun l phin lm vic sessions, vi cookies v m ho URL l 2 cch thng dng nht ca ng dng Web (cookies c dng di cc hood bi nhiu servlet container implement HTTPSession interface). Session l im then cht i vi nh pht trin portlet, nhng c nhiu cc ci t chng (implement ), v th portlet API cung cp giao tip PortletSession interface. Khi 1 client to 1 request, server gi i 1 nh danh session trong response. Nu client mun kt ni vo session (phin lm vic), client cung cp nh danh session cho cc request tip sau ca h. PortletSession c th c s dng nm gi cc thuc tnh. PortletSession hot ng ging nh HTTPSession trong mt ny, vic cung cp kh nng lu tr cp i kho - gi tr (key-value ), vi i tng bt k. C 1 im khc nhau ch yu: PortletSession c 2 phn khc nhau: APPLICATION_SCOPE th tng t nh phm vi HTTPSession. 1 i tng c t rong phm vi ny l thch hp cho tt c cc portlets bn trong phin lm vic (session). PORTLET_SCOPE ch n khi 1 i tng l thch hp ch 1 portlet . PORTLET_SCOPE l thng nht trong cch t khng gian tn cho 1 thuc tnh cho trc. V d, 1 thuc tnh n tn l city.name s c lu tr trong javax.portlet.p.47?city.name. ("47" l s nh dng c gn bn trong). Tn thuc tnh ny ngn cn namespace (khng gian tn) xung t vi cc portlets khc lu trong bin session ca chng vi cc tn tng t.
Bn quyn 2007 Cng ty Vietsoftware, Inc. 33

Tng quan Portal Liferay Portal

Mc d vic c 1 h thng c bit t tn nhng thuc tnh ca n, PORTLET_SCOPE li khng bo v cc thuc tnh ca n vi cc thnh phn web khc. Thm vo , ng dng namespace (khng gian tn) l hon ton thc hin di hood. Bn ch vic gi cc phng thc getAttribute() v setAttribute() ch nh PORTLET_SCOPE v s chuyn i khng gian tn namespace c thc hin bi i tng PortletSession. lm cho n thun li hn, cc thnh phn web khc c th nhn tnh nng ny thng qua phng thc PortletSessionUtil.decodeAttribute() bng cch truyn tn thuc tnh n gin, v d nh "city.name". Gi JSPs v servlet Bi cc ng dng portlets hon ton m rng ca cc ng dng web, y phi c 1 c ch include JSP v servlet trong portlet. Da vo vic nghin cu u tin v lp GenericPortlet, nhiu nh pht trin Web ngh, " i, khng! chng ta tr li nhng ngy ca servlet xa xa vi vic nhng cc nh du (markup)". Tuy nhin, cng ging nh servlet, nh pht trin nhn thy vic s dng phng thc RequestDispatcher() l c ch trnh ci gi l "t tt c trng ca mnh trong 1 ci r " tc vn t tt c cc markup ca mnh trong 1 servlet, v tt c m Java trong trang JSP, 1 nh pht trin portlet c th dng PortletRequestDispatcher. Khi ci t (implement ) phng thc hi p ca giao din portlet hay ng hn l ci t 1 trong cc phng thc "do__" ca lp GenericPortlet (chng hn nh doView, doEdit, doHelp ...), nh pht trin c th dng PortletRequestDispatcher nh sau: String reqPath = /calView.jsp; PortletRequestDispatcher prd = portContext.getRequestDispatcher(reqPath); prd.include(req, resp); Trong trng hp ny, ta phi ch nh trang JSP ca mnh: calView.jsp, n s nm trong th mc gc ca ng dng portlet, m ta s ch ti vi cc du slash /. Bn phi lun bt u ng dn vi du slash h /, v cung cp 1 ng dn t th mc gc ca PortletContext (thng l th mc gc ca ng dng portlet). T , bn ly PortletRequestDispatcher (prd) t phng thc PortletContext (portContext). Sau bn truyn cho cc phng thc RenderRequest(req) v RenderResponse(resp) cc tham s vo phng thc include ca PortletRequestDispatcher(prd).

Bn quyn 2007 Cng ty Vietsoftware, Inc.

34

Tng quan Portal Liferay Portal

Tng t, ta c th gi 1 servlet bng cch m t tn ca n ( trong file m t trin khai ng dng Web web.xml). Chng hn, ta c th phi ch nh 1 servlet nh sau trong web.xml: <servlet> <servlet-name>chart</servlet-name> <servlet-class>org.opensourceportals.ChartServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> Bi v ta t tn servlet ca mnh l "chart", nn ta c th ch nh n nh sau : String reqName = chart; PortletRequestDispatcher prd = portContext.getNamedDispatcher(reqName); prd.include(req, resp); Lc ny ta dng phng thc getNamedDispatcher () vi tn ca servlet ly 1 Object PortletRequestDispatcher. y l 1 im quan trng khc ta xem xt nu chn phi lm nh sau: String reqPath = /calView.jsp?user=Jennifer; PortletRequestDispatcher prd = portContext.getRequestDispatcher(reqPath); prd.include(req, resp); V tham s user c ch nh trong chui truy vn, n s ly theo th t t trc n sau vi tham s hi p khc c t tn user v truyn cho JSP. Bn hu nh chc chn s khng ch n vn ny, nhng l nhng th phi ghi nh trong trng hp bn ri vo cch ng x : vic ch nh mt chui truy vn ly ln lt cc tham s khc. C nhiu hn ch trong vic dng Object HttpServletRequest. Nhng phng thc ny khng thch hp include servlet v JSP: getProtocol() getRemoteAddr()
35

Bn quyn 2007 Cng ty Vietsoftware, Inc.

Tng quan Portal Liferay Portal

getRemoteHost() getRealPath() getRequestURL() getCharacterEncoding() setCharacterEncoding() getContentType() getInputStream() getReader() getContentLength()

Nhng phng thc sau u tr v null ( tr getContentLength tr v 0) nu b triu gi t 1 servlet hay JSP c include bi 1 Object PortletRequestDispatcher. Tu thuc vo vic lm th no bn to PortletRequestDispatcher, bn c th khng phi truy xut n cc phng thc khc. Nhng ph/th c b sung ny l khng thch hp vic truy xut servlet v JSPs t PortletRequestDispatcher c to bng cch gi getNamedDispatcher(). getPathInfo() getPathTranslated() getServletPath() getRequestURI() getQueryString()

L do ti sao nhng ph/thc trn s khng thch hp khi gi phng thc getNamedDispatcher() kh n gin : Bi bn khng s dng 1 ng dn cho nhng yu cu (request) ca mnh, khng c d liu m cc trng ny c th cha. Tng t nh th, HttpServletResponse cng c nhng hn ch trn ci g c th s dng c. Nhng phng thc khng sn c ca HttpServletResponse: encodeRedirectURL() encodeRedirectUrl()
36

Bn quyn 2007 Cng ty Vietsoftware, Inc.

Tng quan Portal Liferay Portal

setContentType() setContentLength() setLocale() sendRedirect() sendError() addCookie() setDateHeader() addDateHeader() setHeader() addHeader() setIntHeader() addIntHeader() setStatus() containsHeader()

Nhng phng thc m ho lun tr v null, v containsHeader() lun tr v tr false, nhng nhng ci cn li th s n gin khng lm g c. Java Portlet Specification ngh i vi vic s dng cc phng thc tip theo ca RequestDispatcher ca cc servlet v JSPs include. Trong khi iu ny khng c v nh 1 s tho thun ln, ghi ch l Apaches Struts Framework dng phng thc forward RequestDispatcher trong Object ActionServlet ca n. Vic a ra thng dng ca Struts nh l 1 framework ng dng Web, c th lm nn 1 s thc y (tc ng) quan trng trong vic thng nht tch hp portal trong nhiu c quan t chc. iu khng c ngha l n khng lm vic v t chc, nhng n khng l 1 nh mnh v s c xem xt cn thn trong iu kin ca bn v c testing vi ci t portal ca bn. Cu to ng dng portlet ng dng portlet c cu to ging nh ng dng Web trong ta c cc tnh nng sau :
Bn quyn 2007 Cng ty Vietsoftware, Inc. 37

Tng quan Portal Liferay Portal

C th bao gm servlets, JSPs, classes, files JAR (java archives), v cc file tnh khc. c ng gi - tt c cc ng dng Web u c ng gi trong th mc root chung. C th mc WEB-INF/classes lu gi cc lp c lp c th ti bi classloader. C th mc WEB-INF/lib lu gi Java Archives (JAR) c th ti bi classloader. c ng gi thnh file Web Archive (WAR) Thm vo cc tnh nng ny, ng dng portlet cn bao gm 1 file m t trin khai ng dng Web, c t ti WEB-INF/portlet.xml. Bo mt Bi bo mt l 1 vn ln hn nhng yu cu ca portlet API ta s cp n vn ny phn sau. Cc nh ngha kiu CSS (Cascading Stylesheets) Nhm t n 1 giao din chung v c th plug cho cc portlets, Java Portlet API nh ngha tp cc kiu CSS (Cascading Stylesheets) m portlet c th s dng hi p cc markup ca chng. Bng cch s dng 1 tp cc kiu chun, portal c th h tr skin, tu bin ho mu sc v font ch. Nhng kiu ny c ngha ng thi vi chun OASIS Web Services for Remote Portlets (WSRP).

Kin trc ca Portlet


1 portal bao gm nhng portlet c nhn ngi dng, chng c th c thm vo bt ra v tu bin bi ngi dng. Cc portlet l ci lm p cho tng trnh by ca portal. Chng l thnh phn giao din ngi dng c th tu bin bi user, v chng c th c thm vo v bt i t portal 1 cch d dng. Chng cng x l yu cu ngi dng v sn sinh ni dung theo yu cu thng qua portlet container. Portlet Container Mt portlet container c s dng qun l cc portlet thng qua vng i ca chng. Container cho php nh pht trin gi cc phng thc ch

Bn quyn 2007 Cng ty Vietsoftware, Inc.

38

Tng quan Portal Liferay Portal

nh trong sut thi gian sng ca 1 portlet . N nng cc nh pht trin ln quyt nh phng thc no c ci t (implement). L 1 qui tc tng qut, cc nh pht trin nn thng k tha lp GenericPortlet khi to cc portlet. Lp GenericPortlet gi cc phng thc hi p ch nh da trn ch hin ti (current mode) ca portlet. Nhng phng thc ny c m t trong bng sau: Phng thc doEdit c gi bi phng thc hi p khi portlet ch EDIT. Ch EDIT nn c dng vi mc ch ch nh bin son portlet . V d : nu ta 1 portlet danh mc vn u t chng khon v n cha ng 1 danh sch cc chng khon, khi ta nhn edit ta s c th bin son danh sch ny trong danh mc vn u t ca mnh (portfolio ). doView c gi bi phng thc hi p khi portlet ch VIEW. Ch VIEW l ch chnh cu portlet. Ni dung chnh ca portlet s hin th trong sut ch ny. V d : Nu ta c 1 portlet xp th hng bng , th hng s hin th trong ch VIEW. doHelp c gi bi phng thc hi p khi portlet ch HELP. Ch HELP dng hin th cc hng dn ch nh v cch s dng portlet. Ly v d danh mc vn u t chng khon, ch HELP c th m t cchs thch hp bin son (edit) v nhp cc chng khon cng nh cc k hiu ca chng vo trong portlet. Cc phng thc khc c th c truy cp vi hoc khng k tha t lp GenericPortlet. Nhng phng thc ny cho php nh pht trin nm gi nhng chc nng khc nhau m khng cn thit trn ch hin ti ca portlet . Nhng phng thc b sung ny c trnh by trong bng sau: init() : c gi bi container khi portlet c to v c s dng khi to portlet v chun b s dng n. Ly v d, nu portlet ca bn cn phi load nhng cu hnh ch nh t CSDL hay ngun d liu bn ngoi, th phi mt nhiu thi gian thc hin vic . destroy() : c gi bi container khi container ph hu portlet , bng cch cho php bn xo sch bt c th g cn ch c bit. Ly v d, nu 1 kt ni CSDL c m, th n cho php bn ng nhng kt ni m v xo gn gng khi portlet b ph hu. processAction() : c gi bi container khi user xc nhn thay i trn portlet. y l phng thc thit yu bn c th x l d liu xc nhn bi user t 1 portlet. V d, bn c th c 1 form yu cu ngy sinh ca user.

Bn quyn 2007 Cng ty Vietsoftware, Inc.

39

Tng quan Portal Liferay Portal

Khi user xc nhn form, processAction() c gi, cho php bn x l thng tin v quyt nh hin th ci g n user, nh vic thay i ch portlet (mode) nu bn mun. render() : c gi bt c khi no portlet cn v li. Trong hu ht cc trng hp, bn s khng cn nm gi phng thc ny v doView, doEdit, v doHelp tn ti trong lp GenericPortlet v t ng c gi bi phng thc render. Bn phng thc m bn s tng tc nhiu nht khi pht trin 1 portlet l doView(), doEdit(), doHelp(), v processAction() .Nhng phng thc ny xut hin tng t nh servlet v chng gi yu cu (request ) v tr li (response) cc i tng. Tu thuc vo nhng phng thc c s dng vi chng, nhng Object ny c th c s dng : t c s truy xut n i tng tham chiu ca portlet nhm duy tr trng thi.
Ly tham s c xc nhn bi user thng qua form. t c thng tin phin lm vic (session). Thu thp thng tin bo mt v user, nh thng tin user-role.

Thay i nhng biu hin khc nhau ca portlet, v lm th no n c hi p. Chng hn, tiu c th b thay i thng qua i tng response.

Bn quyn 2007 Cng ty Vietsoftware, Inc.

40

You might also like