JLABS

JLabs.Docs.VaxNt

Co to je VaxNt


Bullet Na této stránce jsou shromážděny různé poznatky o VaxNt - větší detaily jsou k vidění:
Bullet Obecná dokumentace k VaxNt
Bullet VaxNt+Interbase (anglicky)


Bullet VaxNt je specifický nástroj pro tvorbu aplikací, který v sobě shrnuje zkušenosti z několika oborů. Jeho návrh a vývoj vyšel ze zkušensti, že aplikace pro IS je možno alespoň z 90-ti procent předem považovat za unifikované a že se vzájemně odlišují výčtem konkrétních datových struktur a pracovních scénářů. Jejich design, ovládání a celkové chování je ale možno unifikovat do jednotného rámce a všechny partikulární vlastnosti dané aplikace řešit až interpretací parametrů a kompilací just-in-time.


Bullet Naše snaha o vytváření "agnostických" aplikací je do maximální míry důsledná. Snažíme se nestavět projekt na žádném konkrétním databázovém stroji. Aplikace psaná ve stylu VaxNt proto poběží "rovnocenně" proti ORACLE, Interbase, Paradoxu nebo Informixu. Rovněž dostribuovaný exe-file je zcela agnostický a to i na úrovni aplikace. Nikde se v něm nevyskytují jména tabulek, resp.položek záznamu jako např. pacient, účet, platba nebo ceník. Kompletní databázové schéma aplikace, pracovní scénáře, formuláře, tabulky (gridy), pohledy i výstupní sestavy se aplikaci předávají jako parametry ve specifikačním jazyce.


Bullet Tento přístup má svoje výhody i nevýhody. Je zřejmé, že se jím nedají pokrýt všechny IS. Týká se to především některých možných pracovních scénářů, které se vymykají z námi předem přijatého modelu. Na druhou stranu je velkou výhodou to, že IS se nevytáří od nuly. Již od samotného počátku návrhování databáze/IS je možné s ní pracovat. Tím lze dosáhnout paralelního postupu prací např. při naplňování čísleníků, základních souborů dat, upřesňování analýzy projektu, průběžné kontrole hotových částí. Zkušenost ukazuje, že do 1-2 týdnů od první specifikace problému, má uživatel v rukou první (zkušební/základní) verzi. Další vývoj aplikace se pak děje postupným zpřesňováním všech parametrizovatelných částí systému. Pro takovýto scénář vývoje aplikace hovoří to, že není nutno s velkým předstihem analyticky kompletovat celý projekt, že nejsou vyvíjeny zbytečné moduly, že každý následující krok vývoje je ověřen praktickým používáním hotových částí. Nezřídka lze obecnost VaxNT využít i pro práci s existujícími původními databázemi. Významným argumentem je také to, že vývoj nevyžaduje zásahy do vlastního programu (.exe) a jeho následnou distribuci.


Bullet Největší nevýhodou VaxNt se může jevit jeho jednoznačný, "technicky" vyhlížející, předem daný základní design. Tím se diskvalifikuje předem a do značné míry je tomu tak úmyslně z řádu aplikací dělaných s nějakými předem neměnnými představami o budoucím ovládání. Tedy nehodí se tam, kde jde zákazník ve svém zadání do příliš velkých a konkrétních detailů typu, "fialovým knoflíkem v levé dolní části obrazovky s nápisem Start se bude aplikace vypínat". Design VaxNt respektuje zvyklosti nejrozšířenějšího GUI, tedy Windows. Jeho ovládání je konformí s ovládáním běžně používaných programů. Nakonec ani u nich zákazník nemůže měnit design.


Bullet Hlavní výhodou je robustnost a rychlá konvergence k cílovému stavu. Systém je 100% chodivý od počátku, s maximální funckionalitou (uživatelskou, kontrolní) v realizovaných/definovaných objektech, poradí si s nekonzistencemi databáze a dovoluje i během uvádění do provozu provádět rozsáhlé změny vyvolané nejčastěji tím, že původní zadání je příliš vzdáleno skutečnosti. Vedle aplikačního exe-souboru pro cílové/klientské prostředí je VaxNt podporován pro uživatele méně viditelnou částí - serverem. Pro typické aplikace na bázi serverů Unix/Linux je k dispozici kompletní systém automatického zálohování, dálkové správy, zotavení z havárií, webové prezentace i rozhraní na libovolné okolní systémy (přes Java). Je tedy možno realizovat velmi rychle velice rozsáhlý zcela autonomní systém.


Bullet Celý VaxNt je postaven na snaze programovat vždycky o stupeň vyšší abstrakcí, než je v daném případě nutné. Oplátkou se získává produkt, který se dá snadno rozšířit bez zvláštních zásahů. Prakticky vzato je VaxNt postaven na rigidním jádru ovládajícím všechny běžné obraty při rutinní práci s IS. Dále je dovybaven definičním a skriptovacím jazykem, který slouží k přizpůsobení na konkrétní situaci. Konstrukty jazyka jsou celkem mocné, vlastní exe-soubor se mění jenom málokdy a je tedy jenom zřídka předmětem problémů. Většina změn se dá provádět okamžitě, buď přímo na místě u zákazníka, nebo po síti z pracoviště řešitele. To je velký rozdíl od programů psaných na míru, pro které každá změna představuje zásah do zdrojového souboru aplikace, rekompilace (ta s sebou vždy nese riziko v podobě Run-Time Error XY ... ), distribuce, ... Doba potřebná na provedení změny je proto nesrovnatelná proti použití VaxNT.


Bullet Jádro VaxNt je vybaveno mimo jiné těmito rovnou použitelnými konstrukty:


Bullet SQL-definované pohledy do databáze, možnost uživatelských definic, ukládání vlastních pohledů.
Bullet Flexibilní vazby mezi různými zobrazeními na bázi podřízenosti.
Bullet Rozšíření SQL o parametry řešení just-in-time z kontextu nebo i dialogem s uživatelem.
Bullet Grafické zobrazení vazeb položek v databázi.
Bullet Úplná správa databáze v pozadí, tedy restrukturalizace tabulek, přidávání sloupců, vytváření nových objektů.
Bullet Pro administrátora úplný SQL přístup.
Bullet Interaktivní generování tiskových sestav.
Bullet Import a export dat.
Bullet Vytváření uživatelských profilů.
Bullet Správa přístupu.
Bullet ...


Bullet Důležité je, že VaxNt neoperuje s pojmem tabulka, ale spíše s výsledkem libovolného pohledu do DB/sql-query. Podobně se inteligentně vypořádává s nekonzistencemi, kterým se během vývoje programů nedá zabránit, např. nesoulad typů, jiná jména v databázi a jiná ve formulářích, nedokonale a ne definitivně rozdělená data v tabulkách apod.


Bullet Běžná VaxNt aplikace je taková, která uživateli umožňuje prohlížení složité databáze, formuláři řízené vstupy dat a dává mu k dispozici scénáře ovládající systém přes složitější kontroly. Naší původní ambicí bylo implementovat spíše nástroj na prototypování a realizaci ad-hoc aplikací. Postupně se ale touto technikou podařilo realizovat i velmi složité systémy a ty pak zůstaly vlastně definitivně ve fázi svého vlastního prototypu. Dálková správa takových systémů je mnohem snadnější než u "zadrátovaných aplikací" a typicky se daří ev. chyby obejít na úrovni skriptů, tedy bez nutnosti změny bináru a bez přerušení provozu.


Bullet Pro firmy, které instalují a provozují na míru dělané aplikace IS z několika velmi odlišných oborů, jsou důležité zejména tyto informace:


Bullet Aplikace na bázi VaxNt je možno s malým úsilím i velmi zásadně měnit. To plyne z podstaty věci.
Bullet Interpretací parametrů a vyšší abstrakcí základního programu dochází pouze k zanedbatelným dodatečným časovým ztrátám dokonce i na nepříliš výkonných koncových PC.
Bullet Údržbu parametrů systému i skriptů u zákazíka zvládne i osoba neprogramátorská. Důležitější je spíše pečlivost než znalosti informatiky a programování.
Bullet Nejrozsáhlejší realizace na bázi VaxNt pracuje s databází mnoha desítek miliónů záznamů (Interbase) v řádově stovkách tabulek. Má kolem desítky různých uživatelských profilů, několik stovek předem definovaných pohledů do databáze a má rovněž stovky pracovních scénářů a programovatelných formulářů. Běží non-stop a pro zákazníka je jeho provozování zásadní.
Bullet V horizontu několika dnů je možno realizovat "dospělou" aplikaci s překvapivě bohatou funkcionalitou.


Bullet Všechny výše uvedené argumenty ve prospěch VaxNT je nutno konfrontovat s podstatou případného projektu, do kterého by měl být začleněn. My ho můžeme doporučit přinejmenším jako mocný nástroj pro rychlou implementaci takových funkcí, se kterými specializovaný software nepočítá nebo tam, kde by jeho přizpůsobení bylo neekonomické. VaxNt je možno rovněz přímočaře použít k integrování mnoha různých databází a k vyřešení rozmanitých rozhraní. Rozmanitost se může týkat jak vyššího počtu zdrojů dat, tak nestability definice jednoho toku dat v čase, kdy změny mohou probíhat rychleji než stihnou autoři upravit aplikaci vytvořenou na míru.


Bullet Binár VaxNt.Exe je určen do prostředí GUI Windows a předpokládáme, že počínaje létem 2001 budeme mít k dispozici analogckou verzi pro X-Window pro aplikace nezávíslé na MS.


Bullet VaxNt neklade žádné velké požadavky ani na PC, na kterém je nainstalováno. Hodí se tedy pro masivní rozšíření netriviálních aplikací pro sběr dat v terénu nebo ve velké síti, což je cenově výhodné proti jiným přístupům. Některé z vlastností VaxNt má například MS Access, který dovoluje také "kutilské" programování, nicméně je zatížen licenční polikou distribučních firem vycházející ze skutečnosti, že musí být nainstalován na každém PC.


Bullet VaxNt umí tzv. polling a šetří tedy významným způsobem počet nutných permanentních linků mezi klientskými PC a databázovým serverem. Vedle explicitního navazování a rozvazování komunikace just-in-time je součástí VaxNt na straně serveru pro Linux i specializovaný datový robot, který umí integrovat cizorodé databáze tak, jako kdyby byly rovnou součástí jednoho systému. Zde zase platí, že pro koncová PC se to jeví jako přímý link do databáze a z hlediska databázového serveru se jedná o jeden jediný link. Navíc na koncová PC není nutno instalovat klientský software, tedy drivery. To je u aplikací client-server s mnoha clienty znatelná úleva při správě.


Bullet Rejstřík kapitoly
Bullet Nadřízená kapitola dokumentace / rejstřík


JLABS Updated 20000930. Comments: Lada.Janiga@jlabs.cz