Registrační portál NTK

V průběhu větší části roku 2009 jsem se pod vedením Hewlett-Packard podílel na budování infrastruktury v nové budově Národní technické knihovně (NTK), slavnostně otevřené 9.9.2009, konkrétně na implementaci registračního webového portálu. Registrační web je aplikace, do které pracovníci NTK zapíšou (nebo ještě lépe načtou, viz níže) vaše údaje, když se tam přijdete zaregistrovat jako zákazník či nový zaměstnanec.

Produkt byl vyvinut v rámci mé externí spolupráce s firmou Hewlett-Packard. Vlastníkem veškerých majetkových práv k tomuto software je Hewlett-Packard. S případnými dotazy se proto prosím obracejte především na tuto firmu.

Implementace tohoto portálu byla poměrně dosti náročná, ale zároveň zajímavá a často i zábavná: kromě základní funkcionality, tj. grafického rozhraní nad databází uživatelů, komunikuje aplikace s různými periferiemi (čtečkami karet, webovou kamerou, tiskárnami) a obecně integruje celou škálu různých technologií.

Vzhledem k tomu, že se — především z počátku, po otevření nové budovy NTK — očekávalo velké vytížení aplikace, byl kladen velký důraz na co nejefektivnější práci s intranetovým portálem. Registrace jednoho nového zákazníka neměla trvat déle než několik málo minut, včetně vyplnění všech údajů, pořízení nové zákaznické čipové karty a podepsání smlouvy. Tohoto cíle jsme se pokusili dosáhnout hlavně třemi způsoby: 1) tzv. předregistrací, při které si zákazník sám předvyplní osobní údaje na kioscích knihovny, 2) podporou čtečky průkazů totožnosti, která umožňuje rychlé zadání údajů nebo jejich kontrolu, a konečně 3) okamžitou validací formulářů, které upozorňují na chyby rovnou při jejich vyplňování.

Celkové schema procesu registrace z hlediska portálu
Schématické znáznornění procesu registrace zákazníka NTK z pohledu registračního portálu

Na obrázku nahoře je schematicky znázorněn proces registrace zákazníka. Přijde-li se zaregistrovat např. nový zákazník, je zkontrolována jeho totožnost (a automaticky načteny údaje z dokladu totožnosti), zaregistrována nová bezkontaktní čipová karta, pořízena fotografie zákazníka, načež — po kontrole všech údajů — může být vytištěna předvyplněná smlouva k podepsání a nakonec i potištěna zákaznická karta.

Hlavní vlastnosti aplikace

  • Hlavním účelem aplikace je správa databáze zákazníků, zaměstnanců a návštěvníků NTK.
  • Uživatele lze prohledávat podle libovolného kritéria, přičemž základní formulář podporuje mj. rychlé vyhledání podle načtené zákaznické karty nebo průkazu totožnosti.
  • Formuláře důsledně a průběžně kontrolují zadané parametry na syntaktickou i logickou správnost. Validace formulářů probíhá na pozadí a rovnou při vyplňování dat. Pokud se objeví nějaká chyba, duplicita nebo jiná nesrovnalost, uživatel je na ni upozorněn ihned a nikoliv až při odeslání formuláře.
  • Aplikace komunikuje se čtečkou zákaznických RFID karet. Pro načtení karty ji stačí přiložit ke čtečce a číslo karty se automaticky vyplní do relevantního pole formuláře a případně rovnou spustí vyhledávání podle čísla karty.
  • Portál také spolupracuje se čtečkou průkazů totožnosti, umí tedy načíst strojově čitelnou zónu (MRZ) dokladů, jako je občanský průkaz, pas nebo povolení k pobytu. Načtené údaje se opět vyplní do správných políček formuláře nebo spustí vyhledávání podle čísla dokladu, rodného čísla, data narození apod.
  • Fotografie registrované osoby je pořízena pomocí webkamery napojené na portál. Aplikace pro sejmutí snímku umožňuje přehrávání live videa webkamery, sejmutí snímku a vytvoření patřičně velkého ořezu fotografie.
  • Portál také komunikuje s dvěma druhy tiskáren —- se speciální tiskárnou pro potisk čipových karet a s obyčejnou tiskárnou pro tisk smluv. U dalších běžných tiskáren v intranetu podporuje portál počítání vytištěných stránek pro jednoduché účtování služby tisku pro čtenářskou veřejnost.
  • Kromě hlavního webového frontendu aplikace bylo pro vybrané funkce vytvořeno také rozhraní webových služeb (web service). Na toto rozhraní je napojen například veřejný portál NTK a další intranetové aplikace.

Přínosy aplikace

  • Jak již bylo několikrát zmíněno, hlavní předností aplikace je její maximální důraz na rychlou a efektivní práci. Tohoto stavu není v takovémto, různými způsoby omezeném, prostředí webové aplikace úplně jednoduché dosáhnout.
  • Přínosem portálu je také rozsáhlá integrace rozličných částí procesu registrace „pod jednu střechu“ aplikace. Kromě obsluhy hardwarových periferií není třeba pracovat s ničím jiným než právě s portálem.
  • Čtečky čipových karet a dokladů totožnosti jsou v aplikaci podporovány asynchronně, tj. nikde není třeba nic zapínat, spouštět nějakou akci a podobně, stačí prostě kdykoliv kartu/doklad načíst a aplikace načtená data správným způsobem automaticky zpracuje.
  • Portál umí automaticky vybrat správnou tiskárnu pro tisk smlouvy či potisku karty. Není tedy třeba složitě v dialogu pro tisk vybírat relevantní tiskárnu, program to udělá za nás.
  • Šablonovací systém aplikace a celé její uspořádání umožňuje relativně jednoduchou změnu vzhledu aplikace a do budoucna případně i překlad do jiného jazyka apod.

Technologie

  • Základ webového registračního portálu je implementován v jazyce Java s využitím pokročilých a moderních technologií tvorby interaktivního webu. Celá aplikace je postavena na platformě JavaEE (dříve známé jako J2EE). Interaktivní prvky zajišťuje knihovna IceFaces s podporou šablon stránek pomocí Facelets.
  • Kód pro komunikaci se čtečkami čipových karet a dokladů totožnosti je do portálu integrován jako neviditelný applet, který na pozadí přijímá ze čteček data. Další applet slouží pro pořízení fotografie z webové kamery.
  • Se čtečkou čipových karet komunikuje applet pomocí Windows SmartCard API pro Javu, tj. pomocí Java Card technologie. Data ze čtečky dokladů totožnosti applet sbírá ze sériového portu. Webovou kameru obsluhuje aplikace pomocí Java Media Framework.
  • Webové služby jsou postaveny na protokolu SOAP, tj. pracují na principu výměny jednoduchých XML zpráv mezi klientem a serverem.
  • Pro počítání stránek portál využívá SNMP protokolu, kterým se u jednotlivých tiskáren získává stav počitadla vytištěných stránek.
  • Zdrojový kód: celkem přes 25000 řádků kódu.

Ukázky

Poznámka: ze zřejmých důvodů — pro ochranu osobních údajů zákazníků — zachycují obrázky vývojovou verzi aplikace s testovacími daty.

Hlavní obrazovka
  • Hlavní obrazovka — s hlavním menu, základním hledacím formulářem a výsledkovou tabulkou. Do horního editačního pole se automaticky načítají přiložené zákaznické karty či doklady totožnosti, které se pak využijí pro hledání. Pokud je jednoznačnou metodou nalezen vyhovující uživatel, program rovnou zobrazí jeho editační formulář.
Ukázka validace formuláře
  • Validace formulářů — toto je drobný výřez jednoho z editačních formulářů. Zobrazuje okamžitou validaci, zde upozornění na duplicitu v zadaném občanském průkazu, která se zobrazila ihned po vyplnění čísla dokladu. Odkazem se pak lze rovnou rychle dostat na původní záznam zákazníka.
Snímání fotky
  • Snímání fotografie — pro sejmutí fotky tištěné na zákaznickou kartu se využívá připojené webkamery. Aplikace v odděleném okně snímá live video z webkamery. Na obrázku situace po pořízení snímku s nastavitelným ořezovým rámečkem.
Náhled zákaznické karty
  • Náhled zákaznické karty — po sejmutí snímku webkamerou a výběru ořezu se automaticky zobrazí náhled výsledné zákaznické karty, který je pak možné jedním kliknutím myši automaticky vytisknout na speciální tiskárně.

Stín v žáru Vašich
informačních potřeb