JAVA Development
Java je naše hlavní platforma pro „enterprise“ řešení. Řízený vývoj s mohutnou podporou otevřených standardů.
Java je jedním z nejpoužívanějších programovacích jazyků na světě. Díky své přenositelnosti je používán pro programy, které mají pracovat na různých systémech počínaje čipovými kartami (platforma JavaCard), přes mobilní telefony a různá zabudovaná zařízení (platforma Java ME), aplikace pro desktopové počítače (platforma Java SE) až po rozsáhlé distribuované systémy pracující na řadě spolupracujících počítačů rozprostřené po celém světě (platforma Java EE). Tyto technologie se jako celek nazývají platforma Java. Dne 8. května 2007 Sun* uvolnil zdrojové kódy Javy (cca 2,5 miliónů řádků kódu) a Java bude dále vyvíjena jako open source. Zdroj Wiki.
(* dnes součást společnosti Oracle
Základní vlastnosti jazyka Java
- Jednoduchá syntaxe.
- Objektově orientovaný jazyk.
- Distribuovaný – je navržen pro podporu aplikací v síti (podporuje různé úrovně síťového spojení, práce se vzdálenými soubory, umožňuje vytvářet distribuované klientské aplikace a servery).
- Interpretovaný jazyk – místo skutečného strojového kódu se vytváří pouze tzv. mezikód (bajtkód). Tento formát je nezávislý na architektuře počítače nebo zařízení. Program pak může pracovat na libovolném počítači nebo zařízení, který má k dispozici interpret Javy, tzv. virtuální stroj Javy - Java Virtual Machine (JVM). V současnosti se převážně používají technologie zvané HotSpot compiler, které mezikód zpočátku interpretují a na základě statistik získaných z této interpretace později provedou překlad často používaných částí do strojového kódu včetně dalších dynamických optimalizací (jako je např. in-lining krátkých metod atp.).
- Robustnost – je určen pro psaní vysoce spolehlivého softwaru – z tohoto důvodu neumožňuje některé programátorské konstrukce, které bývají častou příčinou chyb. Používá tzv. silnou typovou kontrolu – veškeré používané proměnné musí mít definovaný svůj datový typ.
- Správa paměti – správa paměti je realizována pomocí automatického Garbage collectoru, který automaticky vyhledává již nepoužívané části paměti a uvolňuje je pro další použití.
- Bezpečnost - má vlastnosti, které chrání počítač v síťovém prostředí, na kterém je program zpracováván, před nebezpečnými operacemi nebo napadením vlastního operačního systému nepřátelským kódem.
- Nezávislost na architektuře – vytvořená aplikace běží na libovolném operačním systému nebo libovolné architektuře. Ke spuštění programu je potřeba pouze to, aby byl na dané platformě instalován správný virtuální stroj.
- Přenositelnost – vedle zmíněné nezávislosti na architektuře je jazyk nezávislý i co se týká vlastností základních datových typů (je například explicitně určena vlastnost a velikost každého z primitivních datových typů).
- Výkon – přestože se jedná o jazyk interpretovaný, není ztráta výkonu významná, neboť překladače pracují v režimu „právě včas“ a do strojového kódu se překládá jen ten kód, který je opravdu zapotřebí.
- Multitasking – podporuje zpracování vícevláknových aplikací.
- Dynamický jazyk – Java byla navržena pro nasazení ve vyvíjejícím se prostředí. Knihovna může být dynamicky za chodu rozšiřována o nové třídy a funkce, a to jak z externích zdrojů, tak vlastním programem.
Zdroj Wiki.
Standardy
V Java vývoji využíváme využíváme především standardů JEE a JSE, máme ale zkušenosti i s J2ME (Java Mobile). V návrhu řešení uplatňujeme důsledně zásady třívrstvé a server/klient architektury, návrhové vzory a principy SOA. Větší systémy rozpadáme již v analytické fázi do samostatných modulů s jednoznačně definovanými necyklickými závislostmi, což nám umožňuje rozdělit a delegovat vývoj jednotlivých částí systému mezi víc týmů s jasně vymezenou zodpovědností. Využíváme standardy JEE5 (EJB 3.1, JPA), na vybraných projektech pak Sping framework, pro řízení persitence knihovnu Hibernate. Webové uživatelské rozhraní systémů vytváříme převážně za použití technologie Adobe Flex.
Produkty a nástroje
Pro řízení struktury projektu, závislostí a sestavovacího cyklu používáme standardně nástroj Maven 2, zdrojové kódy projektů a opakovaně použitelných modulů a knihoven sdílíme prostřednictvím vlastního SVN úložiště, výsledné programové jednotky pak ve vlastním Maven úložišti, které jsou využívány i některými našimi technicky orientovanými zákazníky. Enterprise aplikace nasazujeme do aplikačních serverů JBoss a Glassfish nebo web containeru Apache Tomcat.
Standardizovaný vývojový cyklus v Javě

Schéma modulární architektury Java řešení

Zásady třívrstvé a server/klient architektury

Realizovaná řešení
Certifikační autorita verze 3
Nasazení IS PharCom
Reportingový systém Woodoo
Luna - rezervační a obchodní systém
O3 - informační systém Odměny
IS Auto Moto
Videon - systém distribuce video obsahu
Regent - Pronájmy atelierů a místností


