Dobrý den, o Javu jsem se začal zajímat asi před 3-4 měsíci, kdy jsem si ji po zdravém zvážení zvolil jako výchozí platformu, na které chci v budoucnu stavět své aplikace. Nyní jsem programátorem v PHP (Javu se zatím mám stále pouze učím z knih a internetu), ve kterém tvořím webovou aplikaci informačního systému, která běží na intranetové síti. Aplikace v dnešních dnech obsahuje cca. 30 modulů od schvalování požadavků na informatiku po plánování pracovníků., .... Jako datový zdroj využívám MySQL, která je plněna z dalších systémů běžících na Oracle či v dosovém režimu, čili ze souborů csv. Aplikace má po ročním vývoji cca. 160 tabulek a je mi jasné, že PHP + MySQL je na takto velký systém (stále se rozšiřující) naprosto nevhodná.
Jako své řešení mě napadlo vytvářet SWING aplikaci (tlustého klienta), která bude jako datovou základnu využívat mysql a později Oracle. Rád bych věděl, zda je možné vytvářet swing aplikaci tím způsobem, že na klientském PC bude pouze malý "komunikátor", který zobrazí přihlašovací obrazovku a po úspěšném přihlášení se na klientské PC nahraje SWING aplikace. Jde mi totiž o to, že aplikace se bude stále vytvářet a nebylo by možné každý den aktualizovat klientské stanice s novými rozšířeními. Vím, že existují tzv. distrubuované objekty, ale jsem v Jave zatím na začátku a nevím jak toto skutečně využít. Datová základna chci, aby obsahovala uložené procedury, apod. tzn. vlastní aplikační logiku, abych co nejméně musel řešit tyto věci přes javu a tím jí s DB přímo svazoval (i když se tomu ve většině případů nevyhnu [pivotní tabulky, složité where podmínky po filtraci, apod., věci, které nyní často řeším v PHP přes array, ne vždy lze totiž napsat pouze 1 select]). Popsal jsem tedy třívrstvou aplikaci DB -> server -> klient. Jako vývojové prostředí jsem si zvolil Eclipse, které nyní používám víceméně na PHP. Ve webové aplikaci se mi líbí ta logika, že se jedná o tenkého klienta a uživateli stačí jen webový prohlížeč. Navíc při změně skriptů, se změna projeví hned, jak ji nahraji na server, což mi umožňuje stále projekt nezávisle na klientstkých PC rozšiřovat. Od aplikace ve SWINGU si slibuji to, že toto půjde vyřešit distribuovanými objekty. U tlustého klientka chci využívat různé události a změny na straně klienta, aniž by se mi musela refreshovat stránka jako u webové aplikace. Zkoušel jsem používat v PHP např. AJAX ši jen obyčejný javascript, ale nic z toho mi k srdci nepřirostlo a navíc implementace je dost složitá, těžkopádná a ne každý prohlížeč ji podporuje. Rád bych věděl na co bych se ve svém studiu Javy měl nejvíce zaměřit, pokud chci tvořit takovou aplikaci. V současné době jsem na toto vše sám, což se sice může v budoucnu změnit, ale jistě ne v nejbližších měsících. Zatím se dost peru s OOP, mám totiž navýky psát procedulárně, což se sice pomalu odnaučuji na PHP5, ale jak sami jistě víte, není to zrovna dobře řešený OOP jazyk. Co se týče literatury, v dnešních dnech využívám více méně české weby linuxsoft.cz, interval.cz, java.cz, na kterých jsou nějaké návody + knihy Rudolfa Petřinovského, programujeme profesionálně v jazyku Java či základy v jazyku Java. Za případné návrhy na co se nejvíce zaměřit a jakým způsobem řešit navrhovanou aplikaci, budu moc rád, děkuji.
