facebook LinkedIN LinkedIN - follow
IT SYSTEMS 12/2008 , DMS/ECM - Správa dokumentů

Portálová řešení nejen pro agenta 007

Miloš Dvořák


„Zase pondělí ráno a víkend byl tak nudný. Doufejme, že mi M nachystal nějaký pořádný úkol,“ pomyslel si James Bond a zasedl k počítači. Po spuštění prohlížeče se automaticky zobrazila portálová stránka mimo jiné i s přehledem úkolů. „Havana? Proč mě alespoň jednou nepošlou do Prahy. Tam bych se chtěl také někdy podívat.“ Opět se vrátil k portálu s předpovědí počasí: „Období tornád – to abych si vzal deštník.“


Možná nějak podobně bude jednou začínat další „bondovka“. My tento úvod ovšem nebudeme rozvíjet z hlediska agenta 007 a jeho dobrodružství, ale zaměříme se na portál, který mu tak dobře slouží.
Portál, jak už sám název napovídá, je brána a z hlediska internetových/intranetových technologií je to brána k informacím. Zpravidla se jedná o webovou aplikaci, jejímž základním úkolem je integrovat informace z různých zdrojů a obsah poskytnout uživateli v přehledné formě. Všichni uživatelé internetu portály znají a zpravidla je portál první místo, kde své výlety po internetu začínají. Příkladem mohou být stránky Yahoo nebo Seznamu. Možnosti portálů jsou ovšem mnohem širší. Proto se v tomto článku pokusíme definovat portál z hlediska jeho vlastností, obchodních příležitostí, implementace a správy.

Portál je, když...

Co tedy budeme rozumět pod pojmem portál? Portál je webová aplikace, která agreguje obsah z různých zdrojů, představuje prezentační vrstvu informačních systémů a obvykle uživatelům poskytuje personalizaci a výhody prostředí single sign-on (SSO).
Každý uživatel má jiný vkus a jiné priority. Portál by měl umožnit nastavení vzhledu a chování podle specifických potřeb uživatele. Nastavit lze nejen barvy, font nebo velikost písma, ale například i jazyk portálu, rozložení informací na stránce nebo výběr obsahu, který uživatele zajímá. Uživatel má nástroje, jak si přizpůsobit stránku tak, aby mu vyhovovala a jeho práce byla efektivní. Tak se bude Jamesi Bondovi na portále zobrazovat například seznam jeho úkolů, seznam posledních vynálezů technického oddělení, předpověď počasí pro jednotlivé lokality a přehled nových typů zbraní i s manuály. Naopak jeho nadřízenému bude portál poskytovat přehled o působení jeho agentů, statistiku jejich úspěšnosti, přehled posledních událostí na politické scéně doplněný o komentáře a analýzy politického oddělení. Spolu s jiným barevným řešením se může stejný portál na první pohled jevit jako úplně odlišná aplikace.
Portál agreguje obsah z různých zdrojů a aplikací. Umožňuje konzistentní pohled na data a jejich vztahy napříč hranicemi oddělených aplikací. Lze tak na jedné stránce zobrazit výsledky hospodaření firmy za poslední čtvrtletí, přehled o skladových zásobách, kurzu koruny a poslední vývoj burzy. Takto široký pohled na data zcela jistě podporuje schopnost rychlé reakce a rozhodování kompetentních pracovníků. Integrace a zpřístupnění informací je proto nejsilnějším motivem pro implementaci portálu v korporátním prostředí.

Obr. 1: Portál je webová aplikace, která agreguje obsah z různých zdrojů, představuje prezentační vrstvu informačních systémů a obvykle uživatelům poskytuje personalizaci a výhody prostředí single sign-on
Obr. 1: Portál je webová aplikace, která agreguje obsah z různých zdrojů, představuje prezentační vrstvu informačních systémů a obvykle uživatelům poskytuje personalizaci a výhody prostředí single sign-on


Nezbytnou vlastností aplikací je kontrola přístupu ke svému obsahu, a to autentifikací a autorizací. Výsledek asi znáte sami. Pro samý login není kam se vrtnout. A člověk, než se přihlásí, zapomene, co vlastně chtěl. A jak by vypadal přístup k portálové stránce, kde je autentifikace řešena jednotlivými aplikacemi? Správně, něco takového není přípustné. Portál tedy musí poskytovat přístup ke všem aplikacím, k čemuž stačí pouze jediná autentifikace uživatele. To práci uživatele nejen zrychlí, ale hlavně zpříjemní hned ze dvou důvodů. Ač uživatel většinou chápe nutnost nějaké přihlašovací stránky, většinou ji bere jako nutné zlo. Navíc různé autentifikační systémy mají jiné bezpečnostní strategie a uživatel si musí pamatovat různá hesla. Implementace SSO proto znamená zásadní kvalitativní pokrok a může znamenat i zvýšení návštěvnosti aplikace.
Druhým zmiňovaným způsobem ochrany obsahu je autorizace definující pravidla pro přístup k informacím. Portál poskytuje nástroje pro administrátora, které mu umožní povolit nebo omezit přístup ke specifickému obsahu či aplikaci.
Jmenovali jsme různé vlastnosti portálu a mlčky předpokládali nějaký obsah. Obsah je ale to hlavní a musíme mít stále na paměti, že portál je tak dobrý, jak dobrý je jeho obsah. Jistě není těžké si představit portál se single sign-on, výborným grafickým řešením a zvládnutou personalizací, který má ovšem minimální návštěvnost, protože po obsahové stránce nemá pro návštěvníka žádný přínos. Portály se velice často používají v kombinaci se systémy pro správu obsahu a dokumentů (content management system, document management system). Některé portály již takový systém mají přímo jako svoji součást, jiné spoléhají na aplikace třetích stran, se kterými se integrují.

Klasifikace portálů

Podle svého obsahu a zaměření na určitou cílovou skupinu lze portály rozlišit na různé typy:

  • firemní,
  • vládní, regionální,
  • sportovní, kulturní, vědecké, ...,
  • osobní, komunitní, ...

Samo označení již napovídá, co na jednotlivých portálech můžeme hledat. Nás v dalším povídání budou zajímat hlavně firemní portály.
Řada organizací nahlíží na portál jako na jeden přístupový bod ke všem informacím. Ovšem z historického hlediska často vznikaly portály pro jednotlivé oblasti, které byly zaměřeny na jednu oblast, tzv. vertikální portály. Vertikálním portálem tak může být například aplikace zaměřená na řešení problému skladu a skladových zásob. Jiným bude portál zaměřený na obchod a komunikaci se zákazníkem. Postupem času vznikla potřeba integrovat tyto vertikální portály a další zdroje pomocí horizontálních portálů, které už mohou fungovat jako jeden přístupový bod pro všechny zaměstnance firmy. Toto dělení je ovšem obecné a netýká se pouze firemního prostředí. Vertikální portály jsou úzce zaměřené na dané téma, kdežto horizontální portály integrují širokou škálu informací a služeb. Příkladem horizontálního portálu může být například Yahoo.
V korporátním prostředí tak lze standardně nalézt následující typy portálů:

  • B2E – pro zaměstnance (business to employee, intranet),
  • B2B – pro obchodní partnery (business to business, extranet),
  • B2C – pro zákazníky (business to customer, internet).

Konkrétní struktura a obsah portálů se sice firmu od firmy liší a odráží její konkrétní potřeby, přesto mají společné základy. Podívejme se blíže na typického zástupce zaměstnaneckého portálu.
Cílem B2E portálu je poskytnout zaměstnancům společnosti všechny potřebné informace, které jsou nezbytné pro jejich efektivní fungování v rámci organizace. Na jednom místě tak zaměstnanec může nalézt všechny závazné normy, pokyny a nařízení, jimiž se musí řídit, možnosti, které mu společnost nabízí (např. popis systému benefitů, vzdělávání, kariérního růstu), informace o aktuálním dění ve firmě a řadu dalších. Při poskytování informací hraje portál významnou roli jediného přístupového bodu, kde jsou informace soustředěny a zveřejněny podle své věcné podstaty. Zaměstnanec tak nemusí při hledání potřebné informace řešit, který útvar danou službu (např. jazykové kurzy) zajišťuje. Místo toho se k ní dostane buď přes věcně členěný strom témat, nebo využije možnosti vyhledávání v portálu.
Další podstatnou skupinu informací představuje organizační struktura společnosti. Snad každý firemní intranet obsahuje aplikaci telefonního seznamu, která umí vyhledat kontakt podle jména nebo útvaru zaměstnance. Portál však může jít podstatně dále. Základem stále zůstává pravidelně aktualizovaný seznam zaměstnanců, který se kombinuje s organizační strukturou společnosti a dalšími informačními zdroji. Výsledkem pak může být pohled na strukturu firmy, kde lze pro každý útvar nalézt nejen zaměstnance, kteří v něm pracují, včetně plného kontaktu, funkce a třeba i fotografie, ale také krátkou prezentaci daného útvaru a odkazy na další informace, jež se k danému útvaru vztahují. V tomto okamžiku lze využít možností portálu a jednotlivé informace vzájemně provázat. Zaměstnanec se tak například z tématu o jazykových kurzech snadno dostane na příslušný útvar, kde si dohledá potřebné kontakty.
Kromě zveřejňování obecných informací může zaměstnanecký portál nabízet také data zajímavá pro samotného zaměstnance, například vyúčtování ze závodní jídelny, stav konta benefitů. Stejně tak i jeho nadřízený může na jediném místě získat přehled o stavu přesčasů a dovolených svých lidí nebo jimi generovaných nákladů, například agregované údaje o spotřebě pohonných hmot ve služebních vozech, aniž by musel přistupovat k jednotlivým aplikacím, které potřebná data spravují.
Zaměstnanecký portál by neměl informace pouze poskytovat. Portál by měl zaměstnanci také umožnit vyřídit běžné činnosti spojené se statutem zaměstnance – zažádat si o dovolenou, přihlásit se na školení, rezervovat si vstupenky na pořádanou kulturní akci, zúčastnit se ankety týkající se spokojenosti se závodní jídelnou... Toto a řadu dalších aktivních činností může portál uživatelům poskytnou prostřednictvím miniaplikací ve formě portletů (viz dále) bez toho, aby uživatelé museli spouštět nějaké další aplikace, vyplňovat papírové formuláře, posílat e-maily.
Jak již bylo také zmíněno, portál představuje bránu k informacím. Kromě toho, že řadu informací sám obsahuje nebo zprostředkovává z dalších zdrojů, může nabídnout seznam odkazů na další aplikace. Skutečnost, že se nabídka aplikací bude lišit podle přístupů daného zaměstnance, snad ani není potřeba zdůrazňovat. Z pohledu zaměstnance je podstatné, že mu stačí jediná adresa (samozřejmě na portál, pokud ji už nemá nastavenou jako domovskou stránku ve svém prohlížeči) a jedny přístupové údaje, aby se dostal do všech aplikací, které ke své práci potřebuje. To vše díky SSO prostředí portálu a aplikacím.

Stavební kameny portálu – portlety

Základním stavebním kamenem portálových frameworků jsou portlety. Portlety jsou znovupoužitelné komponenty uživatelského rozhraní založené na technologiích Java, které přijímají požadavek, zpracují jej a vygenerují dynamický obsah. Technologie portletů je standardizována specifikací JSR168 a novější JSR286 a podobně jako jiné technologie JEE i portlety jsou založené na konceptu kontejnerů. Kontejner poskytuje portletu prostředí a služby. Portálová stránka při tomto přístupu připomíná desktop, kde obsahy jednotlivých portletů jsou vykreslovány v portletových oknech. Podobně jako okna desktopu mají i portletová okna hlavičku, kde jsou umístěny ovládací prvky okna, mezi něž patří například minimalizace, maximalizace okna nebo spuštění portletu v různých režimech, jako jsou konfigurační, editační nebo prezentační.
Protože jsou portály častou a užitečnou aplikací, existují frameworky pro jejich rychlý a snadný vývoj. Tyto frameworky se zaměřují na klíčové funkčnosti portálu jako je personalizace nebo single sign-on.

Obr. 2: Základním stavebním kamenem portálových frameworků jsou portlety
Obr. 2: Základním stavebním kamenem portálových frameworků jsou portlety


Na první pohled se nabízí podobnost mezi technologií portletů a servletů. Stejně jako servlet i portlet je Java komponenta, což s sebou automaticky nese vlastnosti jako nezávislost na platformě. Obě komponenty běží v prostředí kontejneru, který řídí i jejich životní cyklus. Komponenty jsou založeny na request/response paradigmatu a generují dynamický obsah.
Nicméně portlet není servlet a mezi oběma komponentami jsou zásadní rozdíly. Zatímco úkolem servletu je vygenerovat celou HTML stránku, portlety generují pouze fragmenty stránky a samotnou stránku sestavuje portál na základě zvoleného layoutu. Portlety mohou být spuštěny pouze pomocí URL, která jsou generována pomocí portlet API. Weboví klienti přistupují k portletům pomocí portálu. Portlety rozlišují mnohem více typů požadavků, jako jsou požadavky pro provedení akce, událostí, vykreslení fragmentu. Portlet může být na jedné stránce použit vícekrát a má definovány různé módy a stavy, které ovlivňují fungování portletu.
Jak již bylo řečeno, portál poskytuje služby běžícím portletům. Mezi ty nejdůležitější služby patří:

  • personalizační služba, která umožní portletu využití rule enginů (systémů pravidel) a uživatelských profilových informací k modifikaci obsahu zobrazovanému uživateli,
  • zpracování událostí,
  • komunikace mezi portlety, kdy lze sdílet nebo posílat data mezi portlety a umožnit tak pohled na data napříč jednotlivými zdroji,
  • vyhledávací služby, které usnadní práci s obsahem portálu,
  • správa uživatelů a skupin.

Infrastruktura portálové aplikace

Portál je webová aplikace, a proto pro ni platí stejná pravidla jako pro ostatní webové aplikace a stejným způsobem je postavena i infrastruktura. Komunikace je postavena na protokolu HTTP/HTTPS. Pro zvýšení škálovatelnosti a dostupnosti je vhodná multiplikace zdrojů, mezi které rozděluje požadavky load balancer. Autentifikační software řeší SSO a přístup k portálu. Statický obsah portálu, jako jsou obrázky nebo skripty, je vhodné umístit na samostatný webový server, který je rychlejší než samotný portál a pro poskytování statického obsahu je dostatečný. Samotný portál integruje pomocí portletů obsahy různých zdrojů a sjednocuje jejich vykreslení ve stejném stylu, tzv. tématu.

Obr. 3: Pro zvýšení škálovatelnosti a dostupnosti portálu je vhodná multiplikace zdrojů, mezi které rozděluje požadavky load balancer
Obr. 3: Pro zvýšení škálovatelnosti a dostupnosti portálu je vhodná multiplikace zdrojů, mezi které rozděluje požadavky load balancer


Výsledkem je HTML stránka, která je interpretována prohlížečem klienta. Pro zkrácení času odpovědi se často používají cache. Tyto cache lze použít na libovolné úrovni infrastruktury. Použití cache musí mít ale silný důvod, protože na oplátku za zrychlení reakcí aplikace zhoršují správu aplikace. Přidáním cache se do infrastruktury přidává software, který může vykazovat nějaké chyby, a proto je nutné se o něj starat. Navíc je nutné mít na paměti aktuálnost informace. Ne každý obsah lze cachovat, obzvláště ten dynamický.
Portálových řešení existuje celá řada, ať jsou to produkty komerční nebo open source. Komerční portálové řešení nabízí samozřejmě lídři enterprise trhu – IBM se svým WebSphere Portal Server, Oracle s produktem Oracle Portal 10g nebo Sun s Java System Portal Server. Jako zástupce open source světa jmenujme alespoň JetSpeed od Apache nebo JBoss Portal. Není v možnostech tohoto článku porovnávat jednotlivá řešení, nehledě k faktu, že existuje celá řada dalších produktů. A to jsme nahlédli pouze do světa Javy.

Autor pracuje jako senior consultant ve společnosti Unicorn.

Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.