04.11.2014 Views

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

126 Štúdie vybraných tém programových a informaných systémov<br />

Uvedená koncepcia dovouje abstrahova od konkrétneho prostredia, kde bude aplikácia<br />

nasadená. CLR poskytuje služby týkajúce sa manažmentu pamäti, manažmentu vláken,<br />

spracovania výnimiek, tzv. istenia pamäti (manažment odstraovania nepotrebných<br />

entít z pamäti) a bezpenosti.<br />

Okrem BCL a CLR medzi alšie kúové vlastnosti rámca patrí interoperabilita. Rámec<br />

.NET obsahuje podporu pre realizáciu funkcionality súiastok, ktorá je vykonávaná<br />

mimo rámec (poskytuje súpravu služieb pre prístup k súiastkam modelu COM a obsahuje<br />

podporu pre iné modely prostredníctvom metódy P/Invoke). Rámec alej obsahuje<br />

podporu pre nasadzovanie softvéru, ktorá zaha kontrolu bezpenostných požiadaviek<br />

a integrity voi predchádzajúcim verziám. Rámec poskytuje spoloný bezpenostný model<br />

pre aplikácie a vlastný manažment pamäti. Ten zabezpeuje zbera odpadu, ktorý je spúš-<br />

aný periodicky v samostatnom vlákne, aby identifikoval nepoužité objekty a získal spä<br />

nimi alokovanú pamä.<br />

Autori rámca deklarujú aj platformovú nezávislos. Tá je však limitovaná na komerné<br />

implementácie rámca, ktoré pokrývajú platformy Windows, Windows CE a Xbox 360.<br />

4.3.3 Rámec Spring<br />

Alternatívou pre vývoj webových aplikácií v jazyku Java je rámec Spring, ktorý vznikol<br />

v roku 2002 ako odpove na zložitos rámca JEE (v tom ase vo verzii 1.2, oznaovaný tiež<br />

ako J2EE). Služby, ktoré rámec ponúka vývojárom, sú nasledovné (Johnson, 2005):<br />

Princíp tzv. obrátenia kontroly (angl. Inversion of Control; IoC). Základom je tzv. kontajner<br />

IoC, ktorý reprezentuje konceptuálny prostriedok pre konfigurovanie a manažment<br />

životného cyklu objektov jazyka Java. Objekty sú vytvárané na základe konfigurácie prostredníctvom<br />

XML súborov alebo anotácií. Zostavovanie objektov prebieha prostredníctvom<br />

tzv. vstreknutia, resp. vyhadania závislosti (angl. dependency injection, resp. dependency<br />

lookup). Ide o vzory, pri ktorých samotný kontajner posiela (vstrekuje) objekty iným<br />

objektom na základe ich požiadavky alebo konfigurácie.<br />

Aspektovo-orientované programovanie (angl. Aspect-Oriented Programing; AOP). Rámec<br />

Spring obsahuje podporu pre aspektovo-orientované programovanie prostredníctvom<br />

vlastného rámca SpAOP, ktorý modularizuje pretínajúce záležitosti v aspektoch. Rámec<br />

SpAOP bol vytvorený so snahou prinies do vývoja webových aplikácií základné vlastnosti<br />

AOP bez zbytonej zložitosti v návrhu, implementácii alebo konfigurácii. Rámec SpAOP<br />

je založený na tzv. zachycovaniach (angl. interceptions), o redukuje potrebu kompilácie<br />

aspektov alebo ich vtkania (angl. weaving) v ase naahovania. V porovnaní s rámcom AspectJ,<br />

de facto štandardom AOP pre platformu Java, má rámec SpAOP menšiu výrazovú<br />

silu, ale zárove je menej komplikovaným. Rámec Spring má priamu podporu pre konfiguráciu<br />

aspektov priamo v kontajneri.<br />

Prístup k dátovej vrstve. Rámec Spring obsahuje rozsiahlu podporu pre existujúce rámce<br />

prístupu k dátovej vrstve pre jazyk Java. Pokrýva manažment zdrojov (automatické<br />

získavanie a uvoovanie databázových zdrojov), riešenie výnimiek (preklad nízkoúrov-<br />

ových výnimiek do vlastnej hierarchie), sledovanie transakcií, rozbaovanie databázových<br />

zdrojov (z vyrovnávacích pamätí databáz) a podporu pre spracovávanie vekých<br />

binárnych alebo znakových objektov. Samostatnou kapitolou je manažment spracovania<br />

transakcií.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!