Vítejte,

naše společnost AQUASOFT spol. s r.o. chce pomoci vývojářům, kteří pracují na napojení AISů na Informační systém základních registrů (ISZR). Proto jsme se rozhodli zveřejnit námi vytvořenou pomocnou knihovnu pro připojení k ISZR pomocí webových služeb včetně zdrojových kódů pod licencí LGPL.

 

Proč projekt vznikl?

Naši zákazníci mají od 1.7.2012 povinnost využívat ISZR pro získávání referenčních údajů obyvatel a osob. Při zkoumání nepřeberného množství dokumentů a prezentací různě rozmístěných na projektovém webu a videí (http://www.youtube.com/user/ZakladniRegistry/videos?view=1) projektu, jsme na různých místech nalezli odkazy na tzv. “Referenčního klienta”, ale bohužel nebylo přesně popsáno, o co půjde a k čemu přesně bude sloužit. Vzhledem ke komplexnosti webových služeb jsme očekávali (spíše doufali), že se bude jednat o knihovnu využitelnou pro volání ISZR, která bude obsahovat vygenerované proxy objekty pro volání WS. Bohužel se ukázalo, že Referenční klient (dostupný zde: http://www.szrcr.cz/vyvojari) slouží pouze pro ukázku volání několika základních služeb a webové služby jsou vygenerovány nejjednodušší metodou Add Service Reference z MS Visual Studia.

Při zkoumání zveřejněných XSD jsme zjistili, že jednotlivé služby mezi sebou sdílí nemalé množství tříd. Bohužel MS Visual Studio neumí jednoduchou cestou nareferencovat služby tak, aby mezi sebou tyto typy sdílely. Tím se při vývoji komplexnějšího (klasicky editačního) AISu značně snižuje možnost vytvořit ucelenou platformu pro volání WS ISZR.

 

Cíl projektu:

Hlavním cílem projektu je vytvořit knihovnu, ve které budou vygenerovány proxy třídy pro všechny webové služby ISZR, které sdílejí jednotlivé typy a umožnit jednoduchým a jednotným způsobem volat jednotlivé webové služby.

 

Proč využít tuto knihovnu namísto referencování služeb ISZR “po jednom”:

  1. Knihovna obsahuje proxy třídy pro volání všech služeb ISZR se sdílenými typy.
  2. Volání všech služeb pomocí jedné metody na společném předkovi. Pomocí generické třídy je zajištěna kompilační kontrola typovosti vstupu a výstupu.
  3. IszrServiceManager umožňuje na jednom místě odchytávat různé události z libovolné služby ISZR (ServiceCreated, BeforeCallService, AfterCallService, ErrorCallService).
  4. Podpora vyplňování elementu ZadostInfo z jednoho místa pro všechny služby.
  5. Typová práce s “xsd choices” (nastavení i čtení - get i set). Tím je zajištěna kompilační kontrola správnosti vyplnění dotazu nebo čtení odpovědi.
  6. Některé číselníky ISZR, které jsou poskytovány pouze v excelech a podobných dokumentech, jsou přeneseny do kódu aplikace.
  7. Různé enumy stavů referenčních údajů (např. StavRppType, AdresaStavTypeStav, StatutarniOrganStavTypeStav,…) je možné převést na jednotný StavType.
  8. Některé proxy třídy se stejným významem, ale definované různými typy, jsou “sjednoceny” pomocí rozhraní (interface). Klasický příklad jsou data osob v různých WS nebo sjednocení referenčních údajů, které obsahují informaci o stavu a času změny.
  9. Jednoduché nillable typy (např. int, bool,…) jsou vygenerovány jako Nullable<T>.

 

Budeme rádi, když nám svoje poznámky, připomínky, náměty a dotazy napíšete do místní diskuze.

Aquasoft Team

Last edited Jul 23, 2012 at 10:52 AM by LonDat, version 12