SlideShare a Scribd company logo
1 of 3
Vývoj a popis portletů

Téma jsem zvolila kvůli mému studiu informatiky. Tento obor nenabízí ve vetšině případů materiály,
které již existují a nemění se. Jedná se spíše o kreativní činnost spojenou s moderním uvažováním a
hlavně hledáním a posuzováním nových informací. Je na každém, jakým se vydá směrem, já jsem si
oblíbila programování v jazyce Java, a vývoj portletů je poměrně nová technologie, která nabízí hodně
nových možností a vylepšení.

Vývojové prostředky a nástroje jdou stále kupředu. Portál je jakoby webová stránka, do které mohu
přidávat různé aplikace – portlety. Portlety nabízí moderní řešení vývoje webových stránek, které je
velmi dynamické a nabízí nové možnosti oproti bežným statickým stránkám, např. fungují na spoustě
uživatelských zařízení, vzhed stránky lze jednoduše měnit podle potřeby, uživatel sám může zvolit
rozložení portletů na stránce, maximalizova a minimalizovat podle potřeby.

Klíčová slova: Portlet, stránka, uživatel, komunikace

Co je to portlet?
Portlet je aplikace poskytující určitou část obsahu (informaci nebo službu) a je součástí
portálové stránky. Je řízen portletovým kontejnerem, který zpracovává požadavky a
generuje obsah. Portál používa portlety jako uživatelské komponenty poskytující
prezentační vrstvu. Portlet je seskupován s ostatnímí portlety a obsah jednoho portletu
býva propojen s obsahem ostatních portletů. Uživatelé komunikují s portlety pomocí
požadavků a odpovědí. Uživatelé např. odesílají formulář a tím posílají portálu akci, která
je přeposílána požadovanému portletu. Portlety poskytují uživatelské rozhraní složené
z komponent.
Portletový kontejner
Portletový kontejner spouští portlety a poskytuje je s požadovaným běhovým prostředím.
Obsahuje portlety a řídí jejich životní cyklus. Poskytuje uložení nastavení portletů.
Portletový kontejner přijímá požadavky od portálu, aby zpracoval požadavky vlastněné
portlety. Kontejner není zodpovědný za seskupování obsahu portletů na stránku, to má na
starosti portál. Portál a portletový kontejner mohou být sestaveny dohromady jako jedna
komponenta aplikačního souboru nebo jako dvě samostatné komponenty.
Příklad
Máme internetový obchod, kde si uživatel prohlíží katalog s produkty. Kliknutím na
tlačítko pro přidání produktu do nákupního košíku posílá požadavek portálu. Portál ho
přijme a určí, zda obsahuje akci zaměřenou na některý portlet spojený s portálovou
stránkou. Pokud ano, portál požádá portletový kontejner, aby vyvolal portlet, který akci
zpracuje. Portál vyvolá portlet pomocí kontejneru, a tím získa obsah fragmentů výsledné
stránky. Portál seskupí výstup portletů do portálove stránky a posílá ji zpět klientovi.
Zpracování požadavků
Požadavky zapouzdřují veškeré informace o klientském požadavku, a to parametry, data
v požadavku, portletový mód, stav okna, atd. Požadavek je posílán metodám portletu pro
zpracování akce, události, zdroje nebo metodám pro zobrazení obsahu. Když portlet
přijímá požadavky od klienta, parametry musí být ve tvaru řetězce zakódované v URL, a
jsou součastí požadavku. Parametry jsou uložené jako množina hodnot ve tvaru jmenohodnota.
Zpracování odpovědí
Odpověď zapouzdřuje všechny informace, které mají být vráceny portletem portletovemu
kontejneru běhěm požadavku, a to přesměrování, změnu portletového módu, nadpis,
obsah, atd. Portál/portletový kontejner využívá tyto informace pro sestavení odpovědi,
obvykle portálove stránky, ktera má být vrácena klientovi. Odpověď je posílána metodám
pro zpracování akcí, udalostí, zdrojů nebo metodám pro zobrazováni obsahu. Odpověď
může použít vlastnosti, aby poslala typicke vlastnosti o portálu/portletovému kontejneru.
Mód portletu
Mód portletu vyjadřuje funkci, kterou portlet provádí v metodě render. Každy portlet
vykonává jiný úkol a generuje jiný obsah v závislosti na funkci, kterou právě provádí.
Mód portletu mu radí, který úkol má vykonat a jaký obsah generovat. Při vyvolávání
portletu, portletovy kontejner poskytuje aktuální mód portletu. Portlety mohou módy
měnit při zpracovávání požadavku na nějakou akci. Existuji tři módy, a to view, edit a
help. Dostupnost módů pro portlet může být portálem omezena do určitých uživatelských
rolí. Například anonymnímu uživateli je povoleno používat módy view a help, ověřenému i
mód edit.
View
Očekávaná funkcionalita portletu v tomto módu je generování výstupu odrážející aktuální
stav portletu. Může například zahrnovat jednu nebo více obrazovek, se kterými uživatel
komunikuje, nebo statický obsah, ktery nepožaduje žádnou interakci s uživatelem.
Funkcionalita tohoto módu by měla být implementována pomocí metody doView třídy
GenericPortlet. Portlety tento mód musí podporovat.
Edit
Tento mód by měl poskytovat obsah a logiku, která uživateli povoluje přizpůsobit chování
portletu. Může obsahovat několik obrazovek, se kterými uživatel komunikuje, aby mohl
zadat přizpůsobená data. Portlety v tomto módu nastavují nebo aktualizují nastavení
portletu. Funkcionalita je poskytnuta metodou doEdit třídy GenericPortlet. Portlety tento
mód nemusí podporovat.
Help
Pokud je portlet v módu help, měl by poskytovat pomocné informace o portletu. Tyto
informace by měla představovat jednoduchá obrazovka vysvětlující celý portlet v
souvislém textu. Funkcionalitu poskytuje metoda doHelp třidy GenericPortlet a portlety
tento mód nemusí podporovat.
Stavy oken
Stav okna vyjadřuje množství prostoru na portálové stránce, který bude generován
metodou portletu render. Když je portlet vyvoláván, portletový kontejner poskytuje
aktuální stav okna portletu. Portlet používá stavy pro určení množství informací, které má
zobrazit. Portlety mohou měnit svůj stav při zpracovávání nějakého požadavku na
nějakou akci. Portletová specifikace definuje tři stavy okna, a to normal, maximized a
minimized.
Normal
Tento stav naznačuje, že portlet může sdílet stránku s ostatními portlety. Nebo také že
cílove zařízení má omezené zobrazovací schopnosti. Proto by měl portlet omezovat
velikost zobrazovaného výstupu při tomto stavu.
Maximized
Portlet v tomto stavu může být buď jediným portletem na stránce, nebo je větší oproti
ostatním. Pokud je portlet v tomto stavu, měl by generovat bohatší obsah.
Minimized
Portlet ve stavu minimized by měl zobrazovat pouze minimální obsah, nebo vůbec žádny.



Obrázek
K části popsaného tématu by asi nešel vytvořit moc velký diagram či graf, proto jsem tuto část převedla
na implementaci Intenetového obchodu, jehož část se nachází i v popsaném příkladě. BPMN (Business
process model and notaion diagram) popisuje možné implementace jednotlivých portletů a jejich
propojení a komunikaci.
Zdroje:

Inc. Formtek. The benefits on a portal/portlet application. URL: http:
//www.formtek.com/blog/?p=21. (květen 2011).
(S daným tématem mám zkušenosti, proto vím, že informace jsou pravdivé. Tento text mi pomohl
s vytvořením popisu fungování portletů v portálu, a to hlavně ohledně seskupování informací, a
ukazuje výhody používání této technologie. Je zde datum publikace. Dále jméno autora. Člának je
úhledně upraven do odstavců s nadpisy.)

Cris Holdorph. How portlet development is different from servlet
development. URL: http://www.unicon.net/node/586. (květen
2011).
(Článek obsahuje datum, dále jméno autora. Je úhledně upraven do odstavců s nadpisy. Dále
obsahuje zajímavé informace o vývoji portletů a jejich spolupráci. Obsahuje velké množství
informací. )

Richard L. Sezov, Jr. Liferay administrator’s guide, 2008.
(Kniha je vydaná v roce 2008, takže hodně informací by mělo být aktuální. Jedná se o informace
ohledně Liferay, což je portál, na kterém jsem pracovala. Kniha má dobrou strukturu. Dále
obsahuje množství důležitých dat o portálu Liferay.)



(Při studiu informatiky se soustřeďujeme spéše na webové zdroje, jelikož informace pořád
zastarávají a knihy nemusí být aktuální.)

More Related Content

Similar to Závěrečný úkol KPI

Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)
Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)
Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)Jakub Fiala
 
Entity Framework: Optimalizace a záludnosti
Entity Framework: Optimalizace a záludnostiEntity Framework: Optimalizace a záludnosti
Entity Framework: Optimalizace a záludnostiProfinit
 
Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Tomáš Kukol
 
Polymer project presentation
Polymer project presentationPolymer project presentation
Polymer project presentationjskvara
 
Vytvořeno pro SEO (Designed for SEO)
Vytvořeno pro SEO (Designed for SEO)Vytvořeno pro SEO (Designed for SEO)
Vytvořeno pro SEO (Designed for SEO)Pavel Ungr
 
Pavel ungr designed_for_seo
Pavel ungr designed_for_seoPavel ungr designed_for_seo
Pavel ungr designed_for_seoH1.cz
 
Woocommerce úpravy funkčnosti a ovlivňování dat
Woocommerce   úpravy funkčnosti a ovlivňování datWoocommerce   úpravy funkčnosti a ovlivňování dat
Woocommerce úpravy funkčnosti a ovlivňování datVladislav Musílek
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEEMartin Ptáček
 
Seo Pro Drupal Developery
Seo Pro Drupal DeveloperySeo Pro Drupal Developery
Seo Pro Drupal DeveloperyJozef Toth
 
Prezentace setkání Komunity Targito 24.06.2021.pptx
Prezentace setkání Komunity Targito 24.06.2021.pptxPrezentace setkání Komunity Targito 24.06.2021.pptx
Prezentace setkání Komunity Targito 24.06.2021.pptxTargito
 
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)Jakub Kulhan
 
MoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache WicketMoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache WicketTomáš Páral
 

Similar to Závěrečný úkol KPI (20)

TNPW2-2011-04
TNPW2-2011-04TNPW2-2011-04
TNPW2-2011-04
 
Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)
Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)
Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)
 
Entity Framework: Optimalizace a záludnosti
Entity Framework: Optimalizace a záludnostiEntity Framework: Optimalizace a záludnosti
Entity Framework: Optimalizace a záludnosti
 
TNPW2-2011-03
TNPW2-2011-03TNPW2-2011-03
TNPW2-2011-03
 
TNPW2-2012-07
TNPW2-2012-07TNPW2-2012-07
TNPW2-2012-07
 
TNPW2-2013-02
TNPW2-2013-02TNPW2-2013-02
TNPW2-2013-02
 
Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]
 
Polymer project presentation
Polymer project presentationPolymer project presentation
Polymer project presentation
 
Vytvořeno pro SEO (Designed for SEO)
Vytvořeno pro SEO (Designed for SEO)Vytvořeno pro SEO (Designed for SEO)
Vytvořeno pro SEO (Designed for SEO)
 
Pavel ungr designed_for_seo
Pavel ungr designed_for_seoPavel ungr designed_for_seo
Pavel ungr designed_for_seo
 
Woocommerce úpravy funkčnosti a ovlivňování dat
Woocommerce   úpravy funkčnosti a ovlivňování datWoocommerce   úpravy funkčnosti a ovlivňování dat
Woocommerce úpravy funkčnosti a ovlivňování dat
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE
 
TNPW2-2011-08
TNPW2-2011-08TNPW2-2011-08
TNPW2-2011-08
 
Seo Pro Drupal Developery
Seo Pro Drupal DeveloperySeo Pro Drupal Developery
Seo Pro Drupal Developery
 
TNPW2-2016-02
TNPW2-2016-02TNPW2-2016-02
TNPW2-2016-02
 
TNPW2-2012-02
TNPW2-2012-02TNPW2-2012-02
TNPW2-2012-02
 
TNPW2-2014-02
TNPW2-2014-02TNPW2-2014-02
TNPW2-2014-02
 
Prezentace setkání Komunity Targito 24.06.2021.pptx
Prezentace setkání Komunity Targito 24.06.2021.pptxPrezentace setkání Komunity Targito 24.06.2021.pptx
Prezentace setkání Komunity Targito 24.06.2021.pptx
 
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
 
MoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache WicketMoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache Wicket
 

Závěrečný úkol KPI

  • 1. Vývoj a popis portletů Téma jsem zvolila kvůli mému studiu informatiky. Tento obor nenabízí ve vetšině případů materiály, které již existují a nemění se. Jedná se spíše o kreativní činnost spojenou s moderním uvažováním a hlavně hledáním a posuzováním nových informací. Je na každém, jakým se vydá směrem, já jsem si oblíbila programování v jazyce Java, a vývoj portletů je poměrně nová technologie, která nabízí hodně nových možností a vylepšení. Vývojové prostředky a nástroje jdou stále kupředu. Portál je jakoby webová stránka, do které mohu přidávat různé aplikace – portlety. Portlety nabízí moderní řešení vývoje webových stránek, které je velmi dynamické a nabízí nové možnosti oproti bežným statickým stránkám, např. fungují na spoustě uživatelských zařízení, vzhed stránky lze jednoduše měnit podle potřeby, uživatel sám může zvolit rozložení portletů na stránce, maximalizova a minimalizovat podle potřeby. Klíčová slova: Portlet, stránka, uživatel, komunikace Co je to portlet? Portlet je aplikace poskytující určitou část obsahu (informaci nebo službu) a je součástí portálové stránky. Je řízen portletovým kontejnerem, který zpracovává požadavky a generuje obsah. Portál používa portlety jako uživatelské komponenty poskytující prezentační vrstvu. Portlet je seskupován s ostatnímí portlety a obsah jednoho portletu býva propojen s obsahem ostatních portletů. Uživatelé komunikují s portlety pomocí požadavků a odpovědí. Uživatelé např. odesílají formulář a tím posílají portálu akci, která je přeposílána požadovanému portletu. Portlety poskytují uživatelské rozhraní složené z komponent. Portletový kontejner Portletový kontejner spouští portlety a poskytuje je s požadovaným běhovým prostředím. Obsahuje portlety a řídí jejich životní cyklus. Poskytuje uložení nastavení portletů. Portletový kontejner přijímá požadavky od portálu, aby zpracoval požadavky vlastněné portlety. Kontejner není zodpovědný za seskupování obsahu portletů na stránku, to má na starosti portál. Portál a portletový kontejner mohou být sestaveny dohromady jako jedna komponenta aplikačního souboru nebo jako dvě samostatné komponenty. Příklad Máme internetový obchod, kde si uživatel prohlíží katalog s produkty. Kliknutím na tlačítko pro přidání produktu do nákupního košíku posílá požadavek portálu. Portál ho přijme a určí, zda obsahuje akci zaměřenou na některý portlet spojený s portálovou stránkou. Pokud ano, portál požádá portletový kontejner, aby vyvolal portlet, který akci zpracuje. Portál vyvolá portlet pomocí kontejneru, a tím získa obsah fragmentů výsledné stránky. Portál seskupí výstup portletů do portálove stránky a posílá ji zpět klientovi. Zpracování požadavků Požadavky zapouzdřují veškeré informace o klientském požadavku, a to parametry, data v požadavku, portletový mód, stav okna, atd. Požadavek je posílán metodám portletu pro zpracování akce, události, zdroje nebo metodám pro zobrazení obsahu. Když portlet přijímá požadavky od klienta, parametry musí být ve tvaru řetězce zakódované v URL, a jsou součastí požadavku. Parametry jsou uložené jako množina hodnot ve tvaru jmenohodnota. Zpracování odpovědí Odpověď zapouzdřuje všechny informace, které mají být vráceny portletem portletovemu kontejneru běhěm požadavku, a to přesměrování, změnu portletového módu, nadpis, obsah, atd. Portál/portletový kontejner využívá tyto informace pro sestavení odpovědi, obvykle portálove stránky, ktera má být vrácena klientovi. Odpověď je posílána metodám pro zpracování akcí, udalostí, zdrojů nebo metodám pro zobrazováni obsahu. Odpověď
  • 2. může použít vlastnosti, aby poslala typicke vlastnosti o portálu/portletovému kontejneru. Mód portletu Mód portletu vyjadřuje funkci, kterou portlet provádí v metodě render. Každy portlet vykonává jiný úkol a generuje jiný obsah v závislosti na funkci, kterou právě provádí. Mód portletu mu radí, který úkol má vykonat a jaký obsah generovat. Při vyvolávání portletu, portletovy kontejner poskytuje aktuální mód portletu. Portlety mohou módy měnit při zpracovávání požadavku na nějakou akci. Existuji tři módy, a to view, edit a help. Dostupnost módů pro portlet může být portálem omezena do určitých uživatelských rolí. Například anonymnímu uživateli je povoleno používat módy view a help, ověřenému i mód edit. View Očekávaná funkcionalita portletu v tomto módu je generování výstupu odrážející aktuální stav portletu. Může například zahrnovat jednu nebo více obrazovek, se kterými uživatel komunikuje, nebo statický obsah, ktery nepožaduje žádnou interakci s uživatelem. Funkcionalita tohoto módu by měla být implementována pomocí metody doView třídy GenericPortlet. Portlety tento mód musí podporovat. Edit Tento mód by měl poskytovat obsah a logiku, která uživateli povoluje přizpůsobit chování portletu. Může obsahovat několik obrazovek, se kterými uživatel komunikuje, aby mohl zadat přizpůsobená data. Portlety v tomto módu nastavují nebo aktualizují nastavení portletu. Funkcionalita je poskytnuta metodou doEdit třídy GenericPortlet. Portlety tento mód nemusí podporovat. Help Pokud je portlet v módu help, měl by poskytovat pomocné informace o portletu. Tyto informace by měla představovat jednoduchá obrazovka vysvětlující celý portlet v souvislém textu. Funkcionalitu poskytuje metoda doHelp třidy GenericPortlet a portlety tento mód nemusí podporovat. Stavy oken Stav okna vyjadřuje množství prostoru na portálové stránce, který bude generován metodou portletu render. Když je portlet vyvoláván, portletový kontejner poskytuje aktuální stav okna portletu. Portlet používá stavy pro určení množství informací, které má zobrazit. Portlety mohou měnit svůj stav při zpracovávání nějakého požadavku na nějakou akci. Portletová specifikace definuje tři stavy okna, a to normal, maximized a minimized. Normal Tento stav naznačuje, že portlet může sdílet stránku s ostatními portlety. Nebo také že cílove zařízení má omezené zobrazovací schopnosti. Proto by měl portlet omezovat velikost zobrazovaného výstupu při tomto stavu. Maximized Portlet v tomto stavu může být buď jediným portletem na stránce, nebo je větší oproti ostatním. Pokud je portlet v tomto stavu, měl by generovat bohatší obsah. Minimized Portlet ve stavu minimized by měl zobrazovat pouze minimální obsah, nebo vůbec žádny. Obrázek K části popsaného tématu by asi nešel vytvořit moc velký diagram či graf, proto jsem tuto část převedla na implementaci Intenetového obchodu, jehož část se nachází i v popsaném příkladě. BPMN (Business process model and notaion diagram) popisuje možné implementace jednotlivých portletů a jejich propojení a komunikaci.
  • 3. Zdroje: Inc. Formtek. The benefits on a portal/portlet application. URL: http: //www.formtek.com/blog/?p=21. (květen 2011). (S daným tématem mám zkušenosti, proto vím, že informace jsou pravdivé. Tento text mi pomohl s vytvořením popisu fungování portletů v portálu, a to hlavně ohledně seskupování informací, a ukazuje výhody používání této technologie. Je zde datum publikace. Dále jméno autora. Člának je úhledně upraven do odstavců s nadpisy.) Cris Holdorph. How portlet development is different from servlet development. URL: http://www.unicon.net/node/586. (květen 2011). (Článek obsahuje datum, dále jméno autora. Je úhledně upraven do odstavců s nadpisy. Dále obsahuje zajímavé informace o vývoji portletů a jejich spolupráci. Obsahuje velké množství informací. ) Richard L. Sezov, Jr. Liferay administrator’s guide, 2008. (Kniha je vydaná v roce 2008, takže hodně informací by mělo být aktuální. Jedná se o informace ohledně Liferay, což je portál, na kterém jsem pracovala. Kniha má dobrou strukturu. Dále obsahuje množství důležitých dat o portálu Liferay.) (Při studiu informatiky se soustřeďujeme spéše na webové zdroje, jelikož informace pořád zastarávají a knihy nemusí být aktuální.)