Menu

Zero Result

Tomas Knap Petr Jerman

Nultý návrh podoby výsledného produktu (zero stupid)

prosím přečíst nejprve celé, než přistoupíte k poznámkám a detailům

Základní myšlenky

  • Nainstalovaná Java, Virtuoso (DB instance, administrátorský přístupový účet, přístup přes JDBC) a případná dostupnost internetu budou softwarové požadavky, žádný instalátor pro tohle nebudem dělat, poskytneme jen know-how, případně přiložíme instalační soubory na CD. Přidáme kuchařku popisující typickou instalaci a konfiguraci (resp. odkážeme na stávající kuchařky).


  • Vše ostatní bude v Javě (nebo z ní ovladatelné) v jednom adresáři aplikace na CD, uživatel si to nakopíruje na lokál


  • Baťák pro Windows, script pro Linux spustí první aplikaci v Javě, jak je obvyklé (v zadání zatím žádné info o multiplatformitě)


  • Tato první aplikace představuje kontrolní, monitorovací a spouštěcí proces, který bude ovládat vše ostatní, prvořadá je robustnost


  • Tento supermonitor bude spouštět unifikované kontainery našich komponent, kontainery mají minimalizovanou vzájemnou komunikací od začátku designovanou jako meziprocesovou (jen pro diagnostiku stavu nebo progressu nějaké činnosti a základní signály (zprávy mezi procesy), naše komponenty budou primárně komunikovat přes permanentní úložiště DB, bez ní je náš SW k ničemu


  • Kromě kontainerů lze kód ještě spouštět v rámci WS a WebServeru na našem aplikačním serveru


  • Aplikační server běží opět v rámci našeho kontaineru


  • Komponenty z našich diagramů mající mezi sebou interface v Javě, které je nutí komunikovat v Javě napřímo budou v jednom kontaineru, jinak komunikují přes permanentní úĺožiště a jednoduché signálování, tento design kontainerů ponechává možnost to spouštět ve více procesech(může se podařit to pustit i jen v jednom procesu), je k tomu jednotný háv


  • cross-technologie typu logování použijeme robustním způsobem: využijí DB, pokud nepude, pak zapisují do souborů atd., jsou nám v opačném případě přínosem?

o žádném vhodném frameworku, který by to dělal nevím, všechno to je jednoduché, vděčné na UML apod., není nebezpečí, že se budeme trápit s externím frameworkem a takto investovaný čas nemusí být efektivní

Konkrétně

  • Baťák pro Windows, script pro Linux spustí první aplikaci - supermonitor v Javě


  • Ta pustí první komponentu, která zkontroluje sw podmínky, zda-li je nainstalováno, případně nainstaluje co je potřeba a co umí konfigurovat (DB, WS apod.)


  • Pustí se pak kontainer s aplikačním serverem ve kterém je serverová část GUI a WS, vše maximálně předkonfigurováno (u WS bude možná nutno měnit cfg soubory před spuštěním konkrétní instalace)


  • Pustí se náš čistící engine nebo bude supermonitor čistícím enginem sám (to není dobrý nápad)


Přídavky

  • Možnost spouštět sw jako službu (NT Service u Windows, daemon v Linuxu)


  • Pro vybrané platformy přidělat spouštěč jiný než bat a skript


  • Umožnit instalaci na externí aplikační server? - ten náš supermonitor by byl pak war na aplikáči, příliš práce, když to uděláme předchozím způsobem to není, spíše jde o testování na konkrétních aplikáčích


  • Instalátor, případně některé další komponenty, by mohli mít nějaké primitivní Java GUI těžkého klienta (pokud možno platformově nezávislé)

Otázky

  • SILK engine lze spouštět v rámci nějakého kontaineru, předpřipravit mu konf. data z DB, u integrace GUI už je to horší, otázkou je též způsob jakým přistupuje k DB (SPARQL endpoint)


  • Jak dalece půjde SPARQL endpoint Virtuosa konfigurovat z Javy? V případě že ne, tak tu máme onen kýžený pádný důvod proč na lowlevel dotazování dělat též WS. Pokud budem umět nakonfigurovat DB z Javy a konfigurace SPARQL endpointů bude též v naší režii, pak budem možná schopni udělat celou instalaci i s Virtuosem, každopádně nebudeme uživatele příliš nutit umět konfigurovat Virtuoso, stačí když si ho nainstaluje. Existuje pro SPARQL endpoint nějaký standard? (do zadání bych napsal, že bude umožněno data dotazovat dostupným standardem, z formulace by nemělo vyplývat jak to uděláme, jestli jen to nezablokujem Virtuosu nebo budem dělat WS)

Navrhovaný další postup

  • Naše analýza již poskytuje asi dost podkladů, abychom z ní byli schopni navrhnout
    takovýto podobný základní model výsledné aplikace, hlavně celkový soupis možností, které použijem a které budem měnit již jen vyjímečně


  • Do něj pak napasujem naše krabičky diagramy atd.


  • Ověříme celkovou funkčnost a zbylá bílá místa - a tím bych prototyp považoval za vyřízený, víc stejně nestihnem


  • S našimi znalostmi sw inženýrství, architektur atd. jistě takto vymyslíme kvalitní produkt, držel bych se u tohoto postupu zásad ze SCRUMU apod., že pokud něco nevymyslíme v určitém termínu (např. že jsme se utopili v detailech) tak to necháme jednodušší, i když to není dokonalý


  • K tomu to chce celkový plán, navrhuju dotvořit to tímto způsobem, projít to od návrhu výsledku odzadu až k vizím a pak zpět (výsledek pak může být odlišný)

Poznámka

Pro předvádění sw komisi bych navrhoval toto

  • použít VirtualBox s celými nainstalovanými systémy (dá se zazálohovat i kopírovat mezi PC)


  • až se z nějaké zálohy podaří 10..x perfektní předvedení, tak ji použijem


  • předvádění může být víc (více platforem, více možných předvádění - instalace, předvedení GUI, předvedení vyčištěné DB apod.)

Discussion


Log in to post a comment.

MongoDB Logo MongoDB