Programmēšana

Iepazīstinām ar portleta specifikācijas 1. daļu

Līdz ar arvien pieaugošu uzņēmumu portālu skaitu dažādi piegādātāji ir izveidojuši atšķirīgas API portālu komponentiem, ko sauc portlet. Šī nesaderīgo saskarņu dažādība rada problēmas lietojumprogrammu nodrošinātājiem, portālu klientiem un portālu serveru piegādātājiem. Lai pārvarētu šīs problēmas, tika uzsākta JSR (Java Specification Request) 168, portletu specifikācija, lai nodrošinātu portletu un portālu savietojamību.

JSR 168 portletus definē kā Java bāzes komponentus, kurus pārvalda portleta konteiners un kuri apstrādā pieprasījumus un ģenerē dinamisku saturu. Portāli izmanto portlet kā pievienojamus lietotāja interfeisa komponentus, kas informācijas sistēmām nodrošina prezentācijas slāni.

JSR 168 mērķi ir šādi:

  • Norādiet izpildlaika vidi vai portleta konteineru portletiem
  • Definējiet API starp portleta konteineru un portlet
  • Nodrošiniet mehānismus pārejošu un pastāvīgu datu glabāšanai portletiem
  • Nodrošiniet mehānismu, kas ļauj portletiem iekļaut servletus un JSP (JavaServer Pages)
  • Lai atvieglotu izvietošanu, definējiet portletu iepakojumu
  • Atļaut bināro portletu pārnesamību starp JSR 168 portāliem
  • Palaidiet JSR 168 portlet kā attālās portlet, izmantojot Web Services for Remote Portlets (WSRP) protokolu

IT nozare ir plaši pieņēmusi JSR 168. Visi lielākie portāla telpas uzņēmumi ir JSR 168 ekspertu grupas pārstāvji: Apache, ATG, BEA, Boeing, Borland, Broadvision, Citrix, EDS, Fujitsu, Hitachi, IBM, Novell, Oracle , SAP, SAS institūts, Sun Microsystems, Sybase, TIBCO un vinjete. Oficiālo atbalstītāju saraksts ir vēl garāks.

Pašlaik JSR 168 ir publiski apskatāms, un galīgā versija ir plānota 2003. gada septembrī.

Šajā rakstā mēs vispirms definējam portālus un portletus, pēc tam izskaidrojam JSR 168 ieviestos jēdzienus, tostarp API pamata objektus. Tālāk mēs iegremdēsimies JSR progresīvākajās funkcijās, piemēram, lietotāja informācijā, lokalizācijā un kešatmiņā. Pēc tam mēs aplūkojam paplašināšanas punktus, kas ļauj portāla piegādātājiem paplašināt portleta specifikācijā pašlaik noteikto funkcionalitāti. Rakstu noslēdz portlet lietojumprogrammu iepakojuma un izvietošanas apraksts.

Lasiet visu sēriju Portlet specifikācijā:

  • 1. daļa: samitriniet kājas, izmantojot specifikācijas pamatnoteikumus un jēdzienus
  • 2. daļa: Portlet API atsauces ieviešana atklāj savus noslēpumus

Pamata definīcijas

Šajā sadaļā mēs izskaidrojam portletu specifikācijās izmantotās pamatdefinīcijas, tostarp portāla pamata arhitektūru, portleta konteineru un portāla lapu.

Portāls

A portāls ir tīmekļa lietojumprogramma, kas nodrošina personalizēšanu, vienreizēju pierakstīšanos un satura apkopošanu no dažādiem avotiem un satur informācijas sistēmu prezentācijas slāni. Apkopošana ir process, kurā tīmekļa vietnē tiek integrēts saturs no dažādiem avotiem. Portālā, iespējams, ir sarežģītas personalizēšanas funkcijas, lai lietotājiem nodrošinātu pielāgotu saturu. Portāla lapās var būt dažādas portletu kopas, kas rada saturu dažādiem lietotājiem.

1. attēlā attēlota portāla pamata arhitektūra. Portāla tīmekļa lietojumprogramma apstrādā klienta pieprasījumu, izgūst portletus lietotāja pašreizējā lapā un pēc tam izsauc portleta konteineru, lai izgūtu katra portleta saturu. Portleta konteiners nodrošina izpildlaika vidi portletiem un izsauc portletus, izmantojot Portlet API. Portleta konteiners tiek izsaukts no portāla, izmantojot Portlet Invoker API; konteiners iegūst informāciju par portālu, izmantojot Portlet Provider SPI (Service Provider Interface).

Lappuse

2. attēlā attēloti portāla lapas pamatkomponenti. Portāla lapa pati par sevi attēlo pilnu iezīmēšanas dokumentu un apkopo vairākus portletu logus. Papildus portletiem lapa var sastāvēt arī no navigācijas apgabaliem un reklāmkarogiem. Portleta logs sastāv no virsraksta joslas ar portletas nosaukumu, rotājumiem un portlet izveidoto saturu. Rotājumi var ietvert pogas, lai mainītu portleta loga stāvokli un režīmu (mēs šos jēdzienus skaidrojam vēlāk).

Portlet

Kā minēts iepriekš, portlet ir Java tīmekļa komponents, kas apstrādā pieprasījumus un ģenerē dinamisku saturu. Portleta ģenerēto saturu sauc par a fragments, marķējums (piemēram, HTML, XHTML vai WML (bezvadu iezīmēšanas valoda)), kas atbilst noteiktiem noteikumiem. Fragmentu var apvienot ar citiem fragmentiem, lai izveidotu pilnīgu dokumentu, kā parādīts 3. attēlā. Portleta saturs parasti tiek apkopots ar citu portletu saturu, veidojot portāla lapu. Portleta konteiners pārvalda portlet dzīves ciklu.

Tīmekļa klienti mijiedarbojas ar portletiem, izmantojot pieprasījuma / atbildes paradigmu, kuru ievieš portāls. Parasti lietotāji mijiedarbojas ar portletu radīto saturu, piemēram, sekojot saitēm vai iesniedzot veidlapas, kā rezultātā portāls saņem portlet darbības, kuras pēc tam pārsūta uz portletiem, uz kuriem attiecas lietotāja mijiedarbība.

Portlet veidots saturs var atšķirties katram lietotājam atkarībā no portlet lietotāja konfigurācijas.

Portlet konteiners

A portleta tvertne palaiž portletus un nodrošina viņiem nepieciešamo izpildlaika vidi. Portleta konteiners satur portletus un pārvalda to dzīves ciklus. Tas nodrošina arī pastāvīgus portletu preferenču glabāšanas mehānismus. Portleta konteiners saņem no portāla pieprasījumus izpildīt pieprasījumus tā mitinātajos portletos. Portleta konteiners nav atbildīgs par portletu radītā satura apkopošanu; pats portāls veic apkopošanu.

Portālu un portleta konteineru var veidot kopā kā vienu lietojumprogrammu komplekta komponentu vai kā divas atsevišķas portāla lietojumprogrammas sastāvdaļas.

Jēdzieni

Šajā sadaļā ir izskaidroti JSR 168 galvenie programmēšanas jēdzieni, piemēram, portleta dzīves cikls, saskarne, režīmi un logu stāvokļi, kā arī piekļuve sesijām, pastāvīga piekļuve krātuvei un kā iekļaut servletus un JSP lapas.

Portlet dzīves cikls

JSR 168 portlet pamatportleta dzīves cikls ir:

  • Tajā: inicializējiet portlet un nododiet to ekspluatācijā
  • Apstrādāt pieprasījumus: apstrādāt dažāda veida darbības un renderēšanas pieprasījumus
  • Iznīcināt: pārtrauciet portlet lietošanu

Portleta konteiners pārvalda portleta dzīves ciklu un portleta saskarnē izsauc attiecīgās metodes.

Portlet saskarne

Katrā portletā ir jāievieš portlet interfeiss vai jāpaplašina klase, kas realizē portlet interfeisu. Portleta saskarne sastāv no šādām metodēm:

  • init (PortletConfig config): lai inicializētu portlet. Pēc portleta instancēšanas šī metode tiek izsaukta tikai vienu reizi. Šo metodi var izmantot, lai izveidotu dārgus objektus / resursus, kurus izmanto portlet.
  • processAction (ActionRequest pieprasījums, ActionResponse atbilde): paziņot portletam, ka lietotājs ir aktivizējis darbību ar šo portlet. Katram klienta pieprasījumam tiek aktivizēta tikai viena darbība. Darbībā portlet var izdot novirzīšanu, mainīt portleta režīmu vai loga stāvokli, modificēt tā pastāvīgo stāvokli vai iestatīt renderēšanas parametrus.
  • renderēt (RenderRequest pieprasījums, RenderResponse atbilde): lai ģenerētu uzcenojumu. Katram pašreizējās lapas portletam tiek izsaukta renderēšanas metode, un portlet var izveidot marķējumu, kas var būt atkarīgs no portlet režīma vai loga stāvokļa, renderēšanas parametriem, pieprasījuma atribūtiem, pastāvīgā stāvokļa, sesijas datiem vai aizmugures datiem.
  • iznīcināt(): lai portletam norādītu dzīves cikla beigas. Šī metode ļauj portletu atbrīvot resursus un atjaunināt visus pastāvīgos datus, kas pieder šai portlet.

Portlet režīmi

Portlet režīms norāda funkciju, kuru portlet veic. Parasti portlet izpilda dažādus uzdevumus un izveido atšķirīgu saturu atkarībā no funkcijām, kuras tie pašlaik veic. Portleta režīms iesaka portletam to, kāds uzdevums tam jāveic un kādu saturu tam vajadzētu ģenerēt. Izsaucot portletu, portleta konteiners nodrošina portletam pašreizējo portlet režīmu. Apstrādājot darbības pieprasījumu, portletes var programmiski mainīt režīmu.

JSR 168 portlet režīmus sadala trīs kategorijās:

  1. Nepieciešamie režīmi: Katram portālam jāatbalsta režīmi Rediģēt, Palīdzība un Skatīt. Portletam ir jāatbalsta vismaz skata režīms, ko izmanto, lai renderētu lapu. Rediģēšanas režīmu izmanto, lai mainītu lietotāja iestatījumus, lai pielāgotu portleta marķējumu, un palīdzības režīmu izmanto, lai parādītu palīdzības ekrānu.
  2. Pēc izvēles pielāgotie režīmi: Tie ir režīmi, kurus portāls var atbalstīt; izvēles režīmā portlet var netikt izsaukts. Izvēles režīmi ietver režīmu Par, lai parādītu ziņojumu “par”; Config režīms, lai administratori varētu konfigurēt portlet; Edit_defaults režīms ļauj administratoram iepriekš iestatīt Edit mode vērtības; priekšskatījuma režīms, lai parādītu portleta priekšskatījumu; un Drukas režīms, lai renderētu skatu, kuru var viegli izdrukāt.
  3. Portāla pārdevēja specifiskie režīmi: Šie režīmi specifikācijā nav definēti, un tāpēc tie ir saistīti ar piegādātāju.

Logu stāvokļi

Loga stāvoklis norāda portāla lapas vietas apjomu, kas tiks piešķirts portlet ģenerētajam saturam. Izsaucot portletu, portleta konteiners nodrošina portletam pašreizējo loga stāvokli. Portlete var izmantot loga stāvokli, lai izlemtu, cik daudz informācijas tai būtu jāsniedz. Apstrādājot darbības pieprasījumu, portletes var programmiski mainīt loga stāvokli.

JSR 168 definē šādus loga stāvokļus:

  • Normāls: Norāda, ka portlet var koplietot lapu ar citiem portletiem. Šis ir noklusējuma loga stāvoklis.
  • Palielināts: Norāda, ka portlet var būt vienīgā portlet portāla lapā vai ka portlet ir vairāk vietas salīdzinājumā ar citiem portlet portāla lapā, un tāpēc tas var radīt bagātīgāku saturu nekā parastā loga stāvoklī.
  • Samazināts: Norāda, ka portlet drukā tikai minimālu izvadi vai to vispār nav.

Papildus šiem logu stāvokļiem JSR 168 ļauj portālam noteikt piegādātāja specifiskos logu stāvokļus.

Portletu var izsaukt jebkurā no šiem trim loga stāvokļiem, taču tas var brīvi izveidot vienādu marķējumu visiem trim stāvokļiem.

Noturīgs veikals

Portlet var saglabāt pastāvīgus datus par konkrētu lietotāju, izmantojot PortletPreferences objekts. Preferences var lasīt un rakstīt darbības fāzē un lasīt renderēšanas fāzē. Vēlamais režīms preferenču rakstīšanai ir režīms Rediģēt, kas nodrošina lietotājam pielāgošanas ekrānu. Preferences var būt virknes vai virkņu masīva vērtības, kas saistītas ar virknes tipa atslēgu. Preferences izvietošanas aprakstā var iestatīt ar noklusējuma vērtībām.

Preferences un portlet definīcija izvietošanas aprakstā kopā definē portlet, ko dažkārt sauc par a portlet entītija.

Sesijas

JSR 168 sesijas koncepcijas pamatā ir HttpSession definēts tīmekļa lietojumprogrammām. Tā kā portlet lietojumprogrammas ir tīmekļa lietojumprogrammas, tās izmanto to pašu sesiju kā servleti. Lai ļautu portletiem pagaidu datus glabāt privāti portlet, sesijas noklusējuma darbības joma ir portlet darbības joma. Šajā darbības sfērā portlet var glabāt visu lietotāju pieprasījumos nepieciešamo informāciju, kas raksturīga portlet vienībai. Šajā sfērā saglabātos atribūtus sesijā prefiksē portleta konteiners, lai izvairītos no tā, ka divi portleti (vai divas vienādas portleta definīcijas entītijas) pārrakstītu viens otra iestatījumus.

Papildus portlet sesijas sfērai JSR 168 atbalsta Tīmekļa lietojumprogramma sesijas tvērums. Šajā darbības jomā informācijai var piekļūt visi tīmekļa lietojumprogrammas komponenti. Informāciju var izmantot, lai koplietotu pārejošu stāvokli vienas un tās pašas tīmekļa lietojumprogrammas dažādiem komponentiem (piemēram, starp portletiem vai starp portlet un servlet.

Ieskaitot servletus / JSP lapas

Lai atbalstītu Model-View-Controller modeli, portlet ir jāspēj iekļaut saturu, kas ģenerēts no servletiem un JSP lapām. Tādā veidā portlet var darboties kā kontrolieris, aizpildīt pupiņu ar datiem un iekļaut JSP lapu, lai renderētu izvadi.

JSR 168 servletu un JSP lapu iekļaušanas mehānisms ir vienāds ar Servleta API. Izmantojot portleta kontekstu, pieprasītais dispečers tiek iegūts norādītajam ceļam; iekļaut () metode tiek izsaukta uz šo pieprasījuma-dispečera objektu:

 PortletRequestDispatcher rd = getPortletContext (). GetRequestDispatcher (editJSP); rd.include (portletRequest, portletResponse); 

Saskaņošana ar WSRP

WSRP apkopo saturu, ko ražo portletes, kas darbojas attālās mašīnās, kurās tiek izmantotas dažādas programmēšanas vides, piemēram, J2EE (Java 2 Platform, Enterprise Edition) un .Net. WSRP pakalpojumi ir uz prezentāciju orientēti, uz lietotāju vērsti tīmekļa pakalpojumi, kas tiek pievienoti un atskaņoti ar portāliem vai citām lietojumprogrammām. Viņi ļauj uzņēmumiem nodrošināt saturu vai lietojumprogrammas, neprasot manuālu satura vai lietojumprogrammu pielāgošanu, patērējot portālus; portāli var viegli apkopot WSRP pakalpojumus bez programmēšanas.

JSR 168 ekspertu grupa rūpīgi saskaņoja jēdzienus starp JSR 168 un WSRP. Šis saraksts pārskata, cik lielā mērā galvenie jēdzieni ir saskaņoti starp abiem standartiem:

$config[zx-auto] not found$config[zx-overlay] not found