JAVA Development
Java je naša hlavná platforma pre „enterprise“ riešenia. Riadený vývoj s mohutnou podporou otvorených štandardov.
Java je jedným z najpoužívanejších programovacích jazykov na svete. Vďaka svojej prenositeľnosti je používaný pre programy, ktoré majú pracovať na rôznych systémoch počínajúc čipovými kartami (platforma JavaCard), cez mobilné telefóny a rôzne zabudované zariadenia (platforma Java ME), aplikácia pre desktopové počítače (platforma Java SE) až po rozsiahle distribuované systémy pracujúce na množstve spolupracujúcich počítačov rozptýlené po celom svete (platforma Java EE). Tieto technológie sa ako celok nazývajú platforma Java. Dňa 8. mája 2007 Sun* uvoľnil zdrojové kódy Javy (cca 2,5 miliónov riadkov kódu) a Java bude ďalej vyvíjaná ako open source. Zdroj Wiki.
(* dnes súčasť spoločnosti Oracle
Základné vlastnosti jazyka Java
- Jednoduchý syntax.
- Objektovo orientovaný jazyk.
- Distribuovaný – je navrhnutý pre podporu aplikácií v sieti (podporuje rôzne úrovne sieťového spojenia, práca so vzdialenými súbormi, umožňuje vytvárať distribuované klientské aplikácie a servery).
- Interpretovaný jazyk – miesto skutočného strojového kódu sa vytvára iba tzv. medzikód (bajtkód). Tento formát je nezávislý na architektúre počítača alebo zariadení. Program potom môže pracovať na ľubovoľnom počítači alebo zariadení, ktorý má k dispozícii interpret Javy, tzv. virtuálny stroj Javy - Java Virtual Machine (JVM). V súčasnosti sa prevážne používajú technológie zvané HotSpot compiler, ktoré medzikód spočiatku interpretujú a na základe štatistík získaných z tejto interpretácie neskôr prevedú preklad často používaných částí do strojového kódu vrátane ďalších dynamických optimalizácií (ako je napr. inlining krátkych metód atp.).
- Robustnosť – je určený pre písanie vysoko spoľahlivého softwaru – z tohoto dôvodu neumožňuje niektoré programátorské konštrukcie, ktoré bývajú častou príčinou chýb. Používa tzv. silnú typovú kontrolu – všetky používané premeny musia mať definovaný svoj dátový typ.
- Správa pameti – správa pameti je realizovaná pomocou automatického Garbage collectoru ktorý automaticky vyhľadává už nepoužívané časti pameti a uvolňuje ich pre ďalšie použitie.
- Bezpečnosť - má vlastnosti, ktoré chránia počítač v sieťovom prostredí, na ktorém je program spracovávaný, pred nebezpečnými operáciami alebo napadnutím vlastného operačného systému nepriateľským kódom.
- Nezávislosť na architektúre – vytvorená aplikácia beží na ľubovoľnom operačnom systéme alebo ľubovoľnej architektúre. K spusteniu programu je potreba iba to, aby bol na danej platforme inštalovaný správny virtuálny stroj.
- Prenositeľnosť – vedľa zmienenej nezávislosti na architektúre, je jazyk nezávislý aj čo sa týka vlastností základných datových typov (je napríklad explicitne určená vlastnosť a veľkosť každého z primitívnych dátových typov).
- Výkon – napriek tomu že sa jedná o jazyk interpretovaný, nie je strata výkonu významná, pretože prekladače pracujú v režime „práve včas“ a do strojového kódu sa prekladá len ten kód, ktorý je naozaj potreba.
- Multitasking – podporuje spracovanie viacvláknových aplikácií.
- Dynamický jazyk – Java bola navrhnutá pre nasadenie vo vyvíjajúcom sa prostredí. Knižnica môže byťt dynamicky za chodu rozšiřovaná o nové triedy a funkcie, a to jak z externých zdrojov, tak vlastným programom.
Zdroj Wiki.
Štandardy
V Java vývoji využívame predovšetkým štandardy JEE a JSE, máme ale skúsenosti i s J2ME (Java Mobile). V návrhu riešení uplatňujeme dôsledne zásady trojvrstvové a server/klient architektúry, návrhové vzory a princípy SOA. Väčšie systémy rozpadáme už v analytickej fáze do samostatných modulov s jednoznačne definovanými necyklickými závislosťami, čo nám umožňuje rozdeliť a delegovať vývoj jednotlivých častí systému medzi viac tímov s jasne vymedzenou zodpovednosťou. Využívame štandardy JEE5 (EJB 3.1, JPA), na vybraných projektoch potom Sping framework, pre riadenie persitence knižnice Hibernate. Webové uživateľské rozhrania systémov vytvárame prevažne za použitia technológie Adobe Flex.
Produkty a nástroje
Pre riadenie štruktúry projektu, závislosti a zostavovacieho cyklu používame štandardne nástroj Maven 2, zdrojové kódy projektov a opakovane použiteľných modulov a knižníc zdieľame prostredníctvom vlastného SVN úložiska, výsledné programové jednotky potom vo vlastnom Maven úložisku, ktoré sú využívané aj niektorými našimi technicky orientovanými zákazníkmi. Enterprise aplikácie nasadzujeme do aplikačných serverov JBoss a Glassfish alebo web containerov Apache Tomcat.
Štandardizovaný vývojový cyklus v Jave

Schéma modulárnej architektúry Java riešení

Zásady trojvrstvovej a server/klient architektúry


