Predstavljamo specifikaciju portleta, 1. dio

Pojavom sve većeg broja poslovnih portala, razni dobavljači stvorili su različite API-je za komponente portala, zvane portleti. Ova raznolikost nekompatibilnih sučelja stvara probleme davateljima aplikacija, kupcima portala i dobavljačima poslužitelja portala. Da bi se prevladali ovi problemi, JSR (Zahtjev za specifikacijom Java) 168, Specifikacija portleta, pokrenut je kako bi pružio interoperabilnost između portleta i portala.

JSR 168 definira portlete kao web komponente temeljene na Javi, kojima upravlja spremnik portleta, a koji obrađuju zahtjeve i generiraju dinamički sadržaj. Portali koriste portlete kao priključive komponente korisničkog sučelja koje pružaju prezentacijski sloj informacijskim sustavima.

Ciljevi JSR 168 su sljedeći:

  • Definirajte vrijeme izvođenja ili spremnik portleta za portlete
  • Definirajte API između spremnika portleta i portleta
  • Osigurajte mehanizme za pohranu privremenih i trajnih podataka za portlete
  • Navedite mehanizam koji omogućava portletima da uključuju servlete i JSP (JavaServer stranice)
  • Definirajte pakiranje portleta kako biste omogućili lako postavljanje
  • Omogućite prijenos binarnih portleta među JSR 168 portale
  • Pokrenite JSR 168 portlete kao udaljene portlete koristeći protokol Web Services for Remote Portlets (WSRP)

IT industrija široko je prihvatila JSR 168. Sve glavne tvrtke u prostoru portala dio su stručne skupine JSR 168: Apache, ATG, BEA, Boeing, Borland, Broadvision, Citrix, EDS, Fujitsu, Hitachi, IBM, Novell, Oracle , SAP, Institut SAS, Sun Microsystems, Sybase, TIBCO i Vinjeta. Popis službenih pristaša još je duži.

Trenutno je JSR 168 u javnoj provjeri, a konačna verzija planirana je za rujan 2003.

U ovom članku prvo definiramo portale i portlete, a zatim objašnjavamo koncepte koje JSR 168 uvodi, uključujući osnovne objekte API-ja. Dalje, upuštamo se u JSR-ove naprednije funkcije, poput korisničkih podataka, lokalizacije i predmemoriranja. Zatim pokrivamo točke proširenja koje omogućavaju dobavljačima portala da prošire trenutno definiranu funkcionalnost u specifikaciji portleta. Članak završava opisom pakiranja i primjene aplikacija portleta.

Pročitajte cijelu seriju u Specifikaciji portleta:

  • 1. dio: Nakvasite noge temeljnim pojmovima i konceptima specifikacije
  • Dio 2: Referentna implementacija API-ja portleta otkriva svoje tajne

Osnovne definicije

U ovom odjeljku objašnjavamo osnovne definicije korištene u specifikaciji portleta, uključujući osnovnu arhitekturu portala, spremnik portleta i stranicu portala.

Portal

Portal je web-based aplikacija koja omogućuje personalizaciju, single sign-on, i agregacije sadržaja iz različitih izvora, a domaćini prikazni sloj informacijskih sustava. Agregacija je postupak integriranja sadržaja iz različitih izvora unutar web stranice. Portal može imati sofisticirane značajke personalizacije kako bi korisnicima pružio prilagođeni sadržaj. Stranice portala mogu imati različite skupove portleta koji stvaraju sadržaj za različite korisnike.

Slika 1 prikazuje osnovnu arhitekturu portala. Web aplikacija portala obrađuje zahtjev klijenta, preuzima portlete na trenutnoj stranici korisnika, a zatim poziva spremnik portleta za dohvaćanje sadržaja svakog portleta. Spremnik portleta pruža runtime okruženje za portlete i poziva portlete putem API-ja portleta. Spremnik portleta poziva se s portala putem API-ja Portlet Invoker; spremnik dohvaća informacije o portalu pomoću SPI davatelja portleta (sučelje davatelja usluga).

Stranica

Slika 2 prikazuje osnovne komponente stranice portala. Sama stranica portala predstavlja cjelovit dokument za označavanje i objedinjuje nekoliko prozora portleta. Pored portleta, stranica se također može sastojati od područja za navigaciju i natpisa. Prozor portleta sastoji se od naslovne trake s naslovom portleta, ukrasima i sadržajem koji stvara portlet. Ukrasi mogu sadržavati gumbe za promjenu stanja i načina rada prozora portleta (ove koncepte objasnit ćemo kasnije).

Portlet

Kao što je gore spomenuto, portlet je web komponenta zasnovana na Javi koja obrađuje zahtjeve i generira dinamički sadržaj. Sadržaj koji generira portlet naziva se fragmentom, dijelom oznake (npr. HTML, XHTML ili WML (Wireless Markup Language) koji se pridržava određenih pravila. Fragment se može agregirati s drugim fragmentima kako bi se stvorio cjelovit dokument, kao što je prikazano na slici 3. Sadržaj portleta obično se agregira sa sadržajem drugih portleta kako bi oblikovao stranicu portala. Spremnik portleta upravlja životnim ciklusom portleta.

Web klijenti komuniciraju s portletima putem paradigme zahtjeva / odgovora koju implementira portal. Obično korisnici stupaju u interakciju sa sadržajem koji proizvode portleti, na primjer, slijedeći veze ili podnoseći obrasce, što rezultira primanjem akcija portleta na portalu, koji se zatim prosljeđuju na portlete ciljane korisnikovim interakcijama.

Sadržaj koji generira portlet može se razlikovati od jednog korisnika do drugog, ovisno o korisničkoj konfiguraciji portleta.

Spremnik portleta

Spremnik portleta pokreće portlete i pruža im potrebno okruženje za vrijeme izvođenja. Spremnik portleta sadrži portlete i upravlja njihovim životnim ciklusima. Također pruža trajne mehanizme pohrane za postavke portleta. Spremnik portleta prima zahtjeve s portala za izvršavanje zahtjeva na portletima koje on hostira. Spremnik portleta nije odgovoran za agregiranje sadržaja koji proizvode portleti; sam portal obrađuje agregaciju.

Portal i spremnik portleta mogu se graditi zajedno kao jedna komponenta paketa aplikacija ili kao dvije odvojene komponente aplikacije portala.

Koncepti

Ovaj odjeljak objašnjava osnovne programske koncepte u JSR 168, poput životnog ciklusa portleta, sučelja i načina i stanja prozora, kao i pristup sesiji, trajni pristup pohrani i kako uključiti servlete i JSP stranice.

Životni ciklus portleta

Osnovni životni ciklus portleta JSR 168 je:

  • Init: inicijalizirajte portlet i stavite portlet u upotrebu
  • Obrađuje zahtjeve: obrađuje različite vrste zahtjeva za radnju i prikaz
  • Uništite: isključite portlet

Spremnik portleta upravlja životnim ciklusom portleta i poziva odgovarajuće metode na sučelju portleta.

Sučelje portleta

Svaki portlet mora implementirati sučelje portleta ili proširiti klasu koja implementira sučelje portleta. Sučelje portleta sastoji se od sljedećih metoda:

  • init(PortletConfig config):za inicijalizaciju portleta. Ova se metoda poziva samo jednom nakon instanciranja portleta. Ova metoda se može koristiti za stvaranje skupih objekata / resursa koje koristi portlet.
  • processAction(ActionRequest request, ActionResponse response):da obavijesti portlet da je korisnik pokrenuo akciju na ovom portletu. Pokreće se samo jedna radnja po zahtjevu klijenta. U akciji portlet može izdati preusmjeravanje, promijeniti način rada portleta ili stanje prozora, izmijeniti svoje trajno stanje ili postaviti parametre prikaza.
  • render(RenderRequest request, RenderResponse response):za generiranje oznake. Za svaki portlet na trenutnoj stranici poziva se metoda generiranja i portlet može proizvesti oznake koje mogu ovisiti o načinu portleta ili stanju prozora, parametrima prikazivanja, atributima zahtjeva, trajnom stanju, podacima sesije ili pozadinskim podacima.
  • destroy():kako bi portletu naznačio kraj životnog ciklusa. Ova metoda omogućuje portletu da oslobodi resurse i ažurira trajne podatke koji pripadaju ovom portletu.

Načini portleta

Način portleta označava funkciju koju portlet obavlja. Portleti obično izvršavaju različite zadatke i stvaraju različit sadržaj, ovisno o funkcijama koje trenutno izvode. Način portleta savjetuje portletu koji zadatak treba izvršiti i koji sadržaj treba generirati. Prilikom pozivanja portleta, spremnik portleta pruža trenutni način portleta portletu. Portleti mogu programski promijeniti svoj način obrade zahtjeva za akcijom.

JSR 168 dijeli načine portleta u tri kategorije:

  1. Potrebni načini: Svaki portal mora podržavati načine Uređivanje, Pomoć i Pogled. Portlet mora barem podržavati način prikaza koji se koristi za generiranje oznaka za stranicu. Način Uređivanje koristi se za promjenu postavki po korisniku kako bi se prilagodilo označavanje portleta, a način Pomoći koristi se za prikaz zaslona pomoći.
  2. Izborni prilagođeni načini: Ovo su načini koje portal može podržavati; dok je u neobaveznom načinu rada, portlet se možda neće pozvati. Neobavezni načini uključuju način rada About (O) za prikaz poruke "about"; način konfiguriranja kako bi administratori mogli konfigurirati portlet; Način Edit_defaults (Administriraj_podrazumevane postavke) kako bi administrator mogao unaprijed postaviti vrijednosti načina Uređivanje; način pregleda za prikaz pregleda portleta; i način ispisa za prikaz prikaza koji se lako može ispisati.
  3. Načini rada dobavljača portala: Ti načini nisu definirani u specifikaciji i stoga su specifični za dobavljača.

Stanja prozora

Stanje prozora označava količinu prostora stranice portala koja će biti dodijeljena sadržaju generiranom portletom. Prilikom pozivanja portleta, spremnik portleta pruža trenutno stanje prozora portletu. Portlet može koristiti stanje prozora da odluči koliko informacija treba pružiti. Portleti mogu programski promijeniti svoje stanje prozora prilikom obrade zahtjeva za akcijom.

JSR 168 definira sljedeća stanja prozora:

  • Uobičajeno: Označava da portlet može dijeliti stranicu s drugim portletima. Ovo je zadano stanje prozora.
  • Maksimizirano: Označava da je portlet možda jedini portlet na stranici portala ili da portlet ima više prostora u usporedbi s drugim portletima na stranici portala, te stoga može stvoriti bogatiji sadržaj nego u normalnom stanju prozora.
  • Minimizirano: Označava da bi portlet trebao prikazivati ​​samo minimalni izlaz ili ga uopće nema.

Pored ovih stanja prozora, JSR 168 omogućuje portalu da definira stanja prozora specifična za dobavljača.

Portlet se može pozvati u bilo koje od ova tri stanja prozora, ali je slobodan za stvaranje iste oznake za sva tri stanja.

Trajna trgovina

Portlet može pohraniti trajne podatke za određenog korisnika pomoću PortletPreferencesobjekta. Postavke se mogu čitati i pisati u fazi radnje, a čitati u fazi prikazivanja. Preferirani način pisanja preferencija je način Uređivanje koji korisniku nudi zaslon za prilagodbu. Postavke mogu biti nizovi ili vrijednosti niza nizova pridružene ključu tipa string. Postavke se mogu unaprijed postaviti sa zadanim vrijednostima u opisu implementacije.

Postavke i definicija portleta u opisu implementacije zajedno definiraju portlet, koji se ponekad naziva entitet portleta.

Sjednice

Koncept sesije JSR 168 temelji se na HttpSessiondefiniranom za web aplikacije. Kako su aplikacije portleta web aplikacije, koriste istu sesiju kao i servleti. Da bi se omogućilo da portleti pohranjuju privremene podatke privatne za portlet, zadani opseg sesije je opseg portleta . U ovom opsegu, portlet može pohraniti informacije potrebne za korisničke zahtjeve i specifične za entitet portleta. Atributi pohranjeni s ovim opsegom u sesiji prefiksira spremnik portleta kako bi se izbjeglo da dva portleta (ili dva entiteta iste definicije portleta) prepisuju međusobne postavke.

Uz opseg sesije portleta, JSR 168 podržava opseg sesije web aplikacije . U tom opsegu, svaka komponenta web aplikacije može pristupiti informacijama. Informacije se mogu koristiti za dijeljenje prijelaznog stanja između različitih komponenata iste web aplikacije (npr. Između portleta ili između portleta i servleta).

Uključujući servlete / JSP stranice

Da bi podržao obrazac Model-View-Controller, portlet mora biti u mogućnosti sadržavati sadržaj generiran iz servleta i JSP stranica. Na taj način, portlet može djelovati kao kontroler, ispuniti grah podacima i uključiti JSP stranicu za generiranje rezultata.

U JSR 168, mehanizam uključivanja za servlete i JSP stranice jednak je za API servleta. Kroz kontekst portleta, dispečer zahtjeva se dohvaća za zadani put; include()metoda je tada pozvao na ovaj zahtjev-dispečer objekta:

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

Usklađivanje s WSRP

WSRP objedinjuje sadržaj koji proizvode portleti koji rade na udaljenim računalima koji koriste različita programska okruženja, poput J2EE (Java 2 Platform, Enterprise Edition) i .Net. WSRP usluge su web usluge usmjerene na prezentaciju, okrenute prema korisnicima i koje se povezuju i igraju s portalima ili drugim aplikacijama. Dopuštaju tvrtkama da pružaju sadržaj ili aplikacije bez potrebe za bilo kakvim ručnim prilagođavanjem sadržaja ili aplikacija konzumiranjem portala; portali mogu jednostavno objediniti WSRP usluge bez napora za programiranje.

Stručna skupina za JSR 168 pažljivo je uskladila koncepte između JSR 168 i WSRP. Sljedeći popis daje pregled koliko su glavni koncepti usklađeni između oba standarda: