Programovanie

Predstavujeme špecifikáciu portletu, časť 1

So vznikom rastúceho počtu podnikových portálov rôzni dodávatelia vytvorili rôzne API pre portálové komponenty, tzv portlety. Táto škála nekompatibilných rozhraní generuje problémy pre poskytovateľov aplikácií, zákazníkov portálu a predajcov portálových serverov. Na prekonanie týchto problémov bola spustená JSR (Java Specification Request) 168, špecifikácia portletu, ktorá zaisťuje interoperabilitu medzi portletmi a portálmi.

JSR 168 definuje portlety ako webové komponenty založené na prostredí Java, ktoré sú spravované kontajnerom portletov a ktoré spracúvajú požiadavky a generujú dynamický obsah. Portály používajú portlety ako zásuvné komponenty používateľského rozhrania, ktoré poskytujú prezentačnú vrstvu informačným systémom.

Ciele JSR 168 sú nasledovné:

  • Definujte runtime prostredie alebo kontajner portletu pre portlety
  • Definujte API medzi kontajnerom portletov a portletmi
  • Poskytnite mechanizmy na ukladanie prechodných a trvalých údajov pre portlety
  • Poskytnite mechanizmus, ktorý umožní portletom zahrnúť servlety a JSP (JavaServer Pages)
  • Definujte balenie portletov, ktoré umožní ľahké nasadenie
  • Povoliť prenosnosť binárneho portletu medzi portálmi JSR 168
  • Spustite portlety JSR 168 ako vzdialené portlety pomocou protokolu Web Services for Remote Portlets (WSRP)

IT priemysel všeobecne akceptoval JSR 168. Všetky významné spoločnosti v portálovom priestore sú súčasťou expertnej skupiny JSR 168: Apache, ATG, BEA, Boeing, Borland, Broadvision, Citrix, EDS, Fujitsu, Hitachi, IBM, Novell, Oracle , SAP, SAS Institute, Sun Microsystems, Sybase, TIBCO a Vignette. Zoznam oficiálnych podporovateľov je ešte dlhší.

V súčasnosti je JSR 168 vo verejnej recenzii a konečná verzia je plánovaná na september 2003.

V tomto článku najskôr definujeme portály a portlety, potom vysvetlíme koncepty, ktoré predstavuje JSR 168, vrátane základných objektov API. Ďalej sa ponoríme do pokročilejších funkcií JSR, ako sú informácie o používateľoch, lokalizácia a ukladanie do pamäte cache. Potom pokryjeme body rozšírenia, ktoré umožňujú dodávateľom portálu rozšíriť aktuálne definované funkcie v špecifikácii portletu. Článok je ukončený popisom balenia a nasadenia portletových aplikácií.

Prečítajte si celú sériu o špecifikácii portletu:

  • Časť 1: Nechajte si nohy zvlhnúť pomocou základných pojmov a konceptov špecifikácie
  • Časť 2: Referenčná implementácia portletového API odhaľuje svoje tajomstvá

Základné definície

V tejto časti vysvetľujeme základné definície použité v špecifikácii portletu vrátane základnej architektúry portálu, kontajnera portletu a stránky portálu.

Portál

A portál je webová aplikácia, ktorá poskytuje personalizáciu, jednotné prihlásenie a agregáciu obsahu z rôznych zdrojov a hostí prezentačnú vrstvu informačných systémov. Agregácia je proces integrácie obsahu z rôznych zdrojov na webovú stránku. Portál môže mať prepracované funkcie prispôsobenia, ktoré používateľom poskytujú prispôsobený obsah. Portálové stránky môžu mať rôzne sady portletov vytvárajúcich obsah pre rôznych používateľov.

Obrázok 1 zobrazuje základnú architektúru portálu. Portálová webová aplikácia spracuje požiadavku klienta, načíta portlety na aktuálnej stránke používateľa a potom zavolá kontajner portletu na načítanie obsahu každého portletu. Kontajner portletov poskytuje runtime prostredie pre portlety a volá ich prostredníctvom portletového API. Kontajner portletu sa volá z portálu cez API Portlet Invoker; kontajner načíta informácie o portáli pomocou rozhrania SPI (Service Provider Interface) poskytovateľa portletov.

Strana

Obrázok 2 zobrazuje základné komponenty portálovej stránky. Samotná portálová stránka predstavuje kompletný značkovací dokument a agreguje niekoľko okien portletu. Okrem portletov môže stránka obsahovať aj navigačné oblasti a bannery. Okno portletu pozostáva z záhlavia s názvom portletu, dekoráciami a obsahom produkovaným portletom. Dekorácie môžu obsahovať tlačidlá na zmenu stavu a režimu okna portletu (tieto koncepty si vysvetlíme neskôr).

Portlet

Ako bolo uvedené vyššie, portlet je webový komponent založený na prostredí Java, ktorý spracováva požiadavky a generuje dynamický obsah. Obsah generovaný portletom sa nazýva a fragment, časť označenia (napr. HTML, XHTML alebo WML (Wireless Markup Language)), ktoré dodržiavajú určité pravidlá. Fragment je možné agregovať s ďalšími fragmentmi a vytvoriť tak kompletný dokument, ako je to znázornené na obrázku 3. Obsah portletu sa zvyčajne agreguje s obsahom iných portletov a vytvorí tak portálovú stránku. Kontajner portletov riadi životný cyklus portletu.

Weboví klienti interagujú s portletmi prostredníctvom paradigmy požiadavka / odpoveď implementovaná portálom. Používatelia zvyčajne interagujú s obsahom vyprodukovaným portletmi, napríklad sledovaním odkazov alebo odosielaním formulárov, čo má za následok, že portál prijíma akcie portletu, ktoré potom prechádzajú na portlety zamerané na interakcie používateľa.

Obsah generovaný portletom sa môže líšiť od jedného používateľa k druhému v závislosti od konfigurácie používateľa portletu.

Portletový kontajner

A kontajner portletu prevádzkuje portlety a poskytuje im požadované behové prostredie. Kontajner portletu obsahuje portlety a spravuje ich životné cykly. Poskytuje tiež mechanizmy trvalého ukladania pre preferencie portletu. Kontajner portletu prijíma z portálu požiadavky na vykonávanie požiadaviek na portletoch hostených týmto portletom. Kontajner portletu nie je zodpovedný za agregáciu obsahu produkovaného portletmi; samotný portál sa stará o agregáciu.

Portál a kontajner portletu môžu byť zostavené spoločne ako jeden komponent aplikačnej sady alebo ako dva samostatné komponenty portálovej aplikácie.

Koncepty

Táto časť vysvetľuje základné koncepty programovania v JSR 168, ako je životný cyklus portletu, rozhranie a režimy a stavy okna, ako aj prístup k relácii, trvalý prístup k úložisku a ako zahrnúť servlety a stránky JSP.

Životný cyklus portletu

Základný životný cyklus portletu JSR 168 je:

  • Init: inicializujte portlet a dajte ho do prevádzky
  • Vybaviť žiadosti: spracovávať rôzne druhy žiadostí o akciu a vykreslenie
  • Zničiť: vyradiť portlet z prevádzky

Kontajner portletu spravuje životný cyklus portletu a volá príslušné metódy na rozhraní portletu.

Rozhranie portletu

Každý portlet musí implementovať rozhranie portletu alebo rozširovať triedu, ktorá implementuje rozhranie portletu. Rozhranie portletu pozostáva z nasledujúcich metód:

  • init (konfigurácia PortletConfig): na inicializáciu portletu. Táto metóda sa volá iba raz po vytvorení inštancie portletu. Túto metódu je možné použiť na vytvorenie drahých objektov / prostriedkov používaných portletom.
  • processAction (požiadavka ActionRequest, odpoveď ActionResponse): aby informoval portlet, že užívateľ spustil akciu na tomto portlete. Na žiadosť klienta sa spustí iba jedna akcia. V akcii môže portlet vydať presmerovanie, zmeniť jeho režim alebo stav okna, upraviť jeho trvalý stav alebo nastaviť parametre vykreslenia.
  • render (RenderRequest request, RenderResponse response): na vygenerovanie značky. Pre každý portlet na aktuálnej stránke sa nazýva metóda vykresľovania a portlet môže vytvárať značky, ktoré môžu závisieť od stavu alebo okna okna portletu, parametrov vykreslenia, atribútov požiadavky, trvalého stavu, údajov relácie alebo údajov typu back-end.
  • zničiť (): aby naznačil portletu koniec životného cyklu. Táto metóda umožňuje portletu uvoľniť zdroje a aktualizovať všetky trvalé údaje, ktoré k tomuto portletu patria.

Režimy portletov

Režim portletu označuje funkciu, ktorú portlet vykonáva. Portlety zvyčajne vykonávajú rôzne úlohy a vytvárajú odlišný obsah v závislosti od funkcií, ktoré momentálne vykonávajú. Režim portletu radí portletu, akú úlohu má vykonávať a aký obsah má generovať. Pri vyvolaní portletu poskytuje kontajner portletu portletu aktuálny režim portletu. Portlety môžu pri spracovaní požiadavky na akciu programovo zmeniť svoj režim.

JSR 168 rozdeľuje režimy portletov do troch kategórií:

  1. Požadované režimy: Každý portál musí podporovať režimy Upraviť, Pomocník a Zobraziť. Portlet musí minimálne podporovať režim Zobraziť, ktorý sa používa na vykreslenie značiek pre stránku. Režim úprav sa používa na zmenu nastavení podľa používateľov na prispôsobenie značiek portletu a režim pomoci na zobrazenie obrazovky pomocníka.
  2. Voliteľné vlastné režimy: Toto sú režimy, ktoré portál môže podporovať; zatiaľ čo vo voliteľnom režime nemusí byť portlet možné zavolať. Medzi voliteľné režimy patrí režim About na zobrazenie správy „about“; režim Konfigurácia, ktorý umožňuje správcom konfigurovať portlet; Režim Edit_defaults, ktorý umožní správcovi prednastaviť hodnoty režimu Edit; režim Náhľad na zobrazenie ukážky portletu; a režim tlače na vykreslenie pohľadu, ktorý je možné ľahko vytlačiť.
  3. Režimy špecifické pre dodávateľa portálu: Tieto režimy nie sú definované v špecifikácii, a preto sú špecifické pre dodávateľa.

Stavy okien

Stav okna označuje veľkosť priestoru portálovej stránky, ktorá sa pridelí obsahu vygenerovanému portletom. Pri vyvolaní portletu poskytuje kontajner portletu aktuálny stav okna portletu. Portlet môže na základe stavu okna rozhodnúť, koľko informácií by mal vykresliť. Portlety môžu pri spracovaní žiadosti o akciu programovo zmeniť stav svojho okna.

JSR 168 definuje nasledujúce stavy okna:

  • Normálne: Označuje, že portlet môže zdieľať stránku s inými portletmi. Toto je predvolený stav okna.
  • Maximalizované: Označuje, že portlet môže byť jediným portletom na portálovej stránke alebo že portlet má viac priestoru v porovnaní s ostatnými portletmi na portálovej stránke, a preto môže produkovať bohatší obsah ako v normálnom stave okna.
  • Minimalizované: Označuje, že portlet by mal poskytovať iba minimálny alebo vôbec žiadny výstup.

Okrem týchto stavov okna umožňuje JSR 168 portálu definovať stavy okna špecifické pre dodávateľa.

Portlet je možné volať v ktoromkoľvek z týchto troch stavov okna, ale pre všetky tri stavy môže vytvárať rovnaké značky.

Trvalý obchod

Portlet môže ukladať trvalé údaje o konkrétnom užívateľovi pomocou servera Predvoľby portletu objekt. Predvoľby je možné čítať a zapisovať vo fáze akcie a čítať vo fáze vykreslenia. Preferovaným režimom na zapisovanie predvolieb je režim úprav, ktorý poskytuje používateľovi obrazovku prispôsobenia. Predvoľbami môžu byť reťazce alebo hodnoty poľa reťazcov spojené s kľúčom typu reťazec. Predvoľby je možné predvoliť predvolenými hodnotami v deskriptore nasadenia.

Predvoľby a definícia portletu v deskriptore nasadenia spolu definujú portlet, ktorý sa niekedy nazýva a entita portletu.

Relácie

Koncept relácie JSR 168 je založený na HttpSession definované pre webové aplikácie. Pretože portletové aplikácie sú webové aplikácie, používajú rovnakú reláciu ako servlety. Ak chcete portletom umožniť ukladanie dočasných údajov súkromných do portletu, predvolený rozsah relácie je portlet rozsah. V tomto rozsahu môže portlet ukladať informácie potrebné v rámci požiadaviek používateľov a špecifické pre entitu portletu. Atribúty uložené v tomto rozsahu majú v relácii predponu kontajner portletu, aby sa zabránilo tomu, že dva portlety (alebo dve entity s rovnakou definíciou portletu) navzájom prepíšu nastavenia.

Okrem rozsahu relácie portletu podporuje JSR 168 aj Webová aplikácia rozsah relácie. V tomto rozsahu môže mať k informáciám prístup každý komponent webovej aplikácie. Informácie môžu byť použité na zdieľanie prechodného stavu medzi rôznymi komponentmi tej istej webovej aplikácie (napr. Medzi portletmi alebo medzi portletom a servletom).

Vrátane servletov / stránok JSP

Na podporu vzoru Model-View-Controller musí portlet obsahovať obsah generovaný z servletov a stránok JSP. Týmto spôsobom môže portlet pôsobiť ako radič, naplniť fazuľu údajmi a zahrnúť stránku JSP na vykreslenie výstupu.

V JSR 168 je mechanizmus zahrnutia pre servlety a stránky JSP rovnaký pre API Servlet. Prostredníctvom kontextu portletu sa získa dispečer požiadavky pre danú cestu; the zahrnúť () metóda sa potom volá na tomto objekte požiadavka-dispečer:

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

Zosúladenie s WSRP

WSRP agreguje obsah produkovaný portletmi bežiacimi na vzdialených počítačoch, ktoré používajú rôzne programovacie prostredia, ako sú J2EE (Java 2 Platform, Enterprise Edition) a .Net. Služby WSRP sú prezentačné webové služby orientované na používateľa, ktoré sa pripájajú a hrajú s portálmi alebo inými aplikáciami. Umožňujú podnikateľom poskytovať obsah alebo aplikácie bez toho, aby vyžadovali akékoľvek manuálne prispôsobenie konkrétneho obsahu alebo aplikácie konzumáciou portálov; portály môžu ľahko agregovať služby WSRP bez potreby programovania.

Expertná skupina JSR 168 starostlivo zosúladila koncepty medzi JSR 168 a WSRP. Nasledujúci zoznam poskytuje prehľad, do akej miery boli hlavné koncepty zosúladené medzi oboma štandardmi:

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