Telefonní seznam jako portlet
Každá firma potřebuje, aby mezi sebou její zaměstnanci komunikovali. Čím více zaměstnanců, tím spíše budou používat telefon či e-mail. Ovšem čím více firemních telefonních čísel a e-mailů, tím obtížněji se udržuje jejich seznam aktuální, nemluvě o možnosti v něm snadno vyhledávat. Pro našeho zákazníka jsme proto nedávno vytvořili portletovou aplikaci, která tyto úkoly s pomocí našeho Identity Managementu CzechIdM usnadňuje.
Co je to portlet?
Portlet je Java aplikace určená k začlenění do portálu. Portál je (v tomto kontextu) webová aplikace obsahující společný rámec (např. přihlašování uživatelů) pro všechny portlety, které se pak starají o samotný obsah portálu. Z programátorského hlediska je portlet potomek rodičovské třídy javax.portlet.GenericPortlet.
Velká výhoda portletů spočívá v tom, že nejsou přímo závislé na portálu, do kterého se ve výsledku mají instalovat; od toho existují standardy JSR-168 resp. novější JSR-286. Konkrétně, náš zákazník používá Sun Java System Portal Server 7.1, nicméně portlety jsme vyvíjeli pomocí Liferay pluginů do Eclipse. Až na pár drobných odlišností způsobených spíše zastaralostí Sun portálu (firma Oracle již jeho vývoj nepodporuje) nebyl problém do něj začlenit portlety vytvořené a testované na portálu Liferay.
Původní stav telefonního seznamu
Telefonní seznam našeho zákazníka spravovali administrátoři v obyčejném tabulkovém procesoru. Všechny údaje se tam zapisovaly ručně a průběžně bylo třeba text formátovat tak, aby bylo možné celý seznam vytisknout do brožury formátu A5.
Na webovém portálu zákazníka fungovala portletová aplikace pro vyhledávání kontaktů na zaměstnance podle jména a pracovní pozice. Data do ní byla načítána přímo z personálního systému, tedy nezávisle na údajích v telefonním seznamu.
Požadavky na novou aplikaci
- uchovávat všechny kontakty ve společné databázi
- automaticky aktualizovat kontakty na zaměstnance pomocí Identity Manageru
- umožnit snadnou editaci ostatních obecných kontaktů (vedoucí pobočky, vrátný,…) pomocí webového rozhraní
- zpřístupnit online vyhledávání kontaktů návštěvníkům webového portálu zákazníka
- nepřihlášeným uživatelům portálu skrýt důvěrné informace (např. soukromý mobil)
- automaticky generovat telefonní seznam ve formátu vhodném pro tisk (PDF)
Výsledek
Námi vytvořená aplikace se skládá ze dvou nezávislých portletů, které komunikují se společnou MySQL databází.
Portlet s uživatelským rozhraním je dostupný všem návštěvníkům portálu, jimž umožňuje online vyhledávání kontaktů telefonního seznamu podle jména a organizačního útvaru. Je-li návštěvník portálu registrován a přihlášen, uvidí u kontaktu také všechna jeho telefonní čísla a jeho sídlo.
Portlet s administrátorským rozhraním slouží uživatelům s administrátorským oprávněním k editaci kontaktů a adres, případně k úpravám organizační struktury firmy.
Kvůli generování telefonního seznamu ve formátu PDF jsme nejdříve důkladně prostudovali strukturu existující tištěné brožury, abychom ji mohli co nejlépe napodobit a usnadnit zákazníkovi přechod na nový systém.
Poté následoval výběr vhodné Java knihovny pro práci s PDF. Nakonec jsme použili iText verze 2.1.7 (poslední verze s licencí LGPL), neboť jako jediný z volně šiřitelných knihoven zvládal práci se všemi českými znaky (problémy obvykle přinášely znaky kódované v Unicode hodnotou větší než 256).
Napojení na Identity Manager proběhlo na závěr. Pomocí univerzálního JDBC konektoru je CzechIdM napojen přímo na MySQL databázi telefonního seznamu. Do uživatelského rozhraní CzechIdM jsme přidali záložku, kde si mohou uživatelé sami nastavovat své kontakty uvedené v telefonním seznamu a nemusí kvůli tomu zatěžovat administrátory. CzechIdM vše zapíše do databáze, čímž jsou změny okamžitě viditelné v obou portletech a do druhého dne i ve vygenerovaném PDF (neboť generování se podle přání zákazníka spouští automaticky jednou za den).
Závěr
Vytvoření této aplikace byl úkol, který se Identity Managementu týkal jen okrajově, nicméně byla to pro nás zajímavá zkušenost, kdy jsme se mohli seznámit s dalšími moderními technologiemi.
Zaujal-li Vás článek nebo máte-li otázky ohledně portletů či Identity Manageru, neváhejte napsat na můj mail info@bcvsolutions.eu.