PDA

Pogčedajte punu verziju : Modularna centralizovana aplikacija (lupam keyworde)


misk0
23. 12. 2006., 17:46
Znaci postoje neka 2 pravca u razvoju Enterprise aplikacija (postoji njih i vishe, ali mene interesuju sad ova 2). Jedno je kad se naprave klijenti na koje se smjesti business logic, koji se instaliraju po radnim stanicama i onda sa centralnim serverom komuniciraju zbog razmjene podataka (obicno je centralni server DB) a sve operacije se obavjaljuju na samim klijentima (eventualno neke server stored procedure za duze obracune tj obrade).
Drugi metod je web-app-db server struktura gdje end-users imaju web browsere preko kojih pristupaju aplikaciji. Taj metod ima prednost prilikom azuriranja aplikacije da ne mora svaki klijent da skida nove verzije, ali ima problem sa ogranicenjima web browsera (dan danas, se ta ogranicenja polako smanjuju, ali i dalje je to ostaje web aplikacija).
Sad, meni pada na pamet jedna ideja, a vjerovatno nisam prvi koji je to smislio, a interesuje me sta mislite o tome, eventualno linkove prema tako necemu i slicno.
Znaci napraviti desktop aplikaciju, koja ima modul za autentifikaciju i neke konfiguracione parametre. Nakon uspjesnog prijavljivanja na sistem, aplikacija skida sve dostupne module sa servera (u skladu sa pravima naravno) i radi neko dinamicko ucitavanje istih u aplikaciju, kreirajuci meni, opcije i sve neophodno za funkcionisanje te aplikacije. Prednost vidim u tome sto i dalje ostaje deskop aplikacija, ali koja nema potrebe za 'fizickim' azuriranjem u smislu da pri promjeni verzije se mora skidati nova sa app servera i slicno.
Naravno, moduli bi se keshirali i imali neki verzioniranje tako da ne bi pri svakom pokretanju bilo potrebno skinuti sve.

Napisah svasta....... pa da vas cujem..

Dejan Topalovic
23. 12. 2006., 23:38
Kod nas u firmi je razvijena jedna takva desktop aplikacija (uradjena u Delphiju, a baza je Oracle), koju ti opisujes i radi bas tako kako si naveo. Prilikom startanja, provjerava da li postoji upgrade verzija i automatski se aktualizuje. Autentifikacija se trenutno odvija putem uskladistene procedure u bazi.

Aplikacija radi savrseno, ali se planira "portanje" na web based aplikaciju, radi lakseg odrzavanja. Npr. imali smo dosta problema sa razlicitim client OS-ima (negdje je Win 2000, negdje Win XP, negdje je Win 2003 32bit ili 64 bit, dok recimo Linux nije podrzan, i td.), zatim problema sa performansama (kada koristimo dedicated mode na Oracle sevreru, onda se baza preoptereti kad broj istovremenih korisnika predje 500-600, a kada koristimo shared mode, onda se korisnici zale da im generisanje reporta i izlistavanje informacija traje dugo), te problema sa upgradeom Oracle client softwarea na svakom clientu. Ja sam taj problem Oracle client softwarea rijesio sistemskim silent installom na sve cliente, no to je samo workaround. Osim toga, ima jos situacija, koje se moraju "rucno" rjesavati, a koje bi se mogle sprijeciti prebacivanjem aplikacije na web.

Bas ove sedmice smo razradjivali planove za iducu godinu i razgovarali smo o prebacivanju te aplikacije na web.

Predlozeni grubi koncept izgleda ovako:
- DB engine ostaje Oracle
- kao middle tier koristice se Oracle Application server (ja sam predlagao kao alternativu JBoss, ali nece proci, jer vec koristimo Oracle Application server)
- servisi ce se razvijati kao SOA servisi i to koristeci Java tehnologije (J2EE, JSP, JSF i td.)
- podaci o korisnicima, privilegijama i rolama (eng. roles) ce se cuvati u LDAP repositoryu, kojemu ce se moci pristupati i iz drugih aplikacija
- na clientu ce biti potreban samo browser, a kao client tehnologije koristice se JavaScript i AJAX, te eventualno SVN za prikazivanje chartova; testirace se kompatibilnost sa najzastupljenijim browserima i ti browseri ce biti izlistani u preporucenoj listi browsera za koristenje; samim tim ce biti omogucena podrska i za Linux korisnike


Eto, to je onako ugrubo opisano...

jablan
24. 12. 2006., 00:39
Sad, meni pada na pamet jedna ideja, a vjerovatno nisam prvi koji je to smislio, a interesuje me sta mislite o tome, eventualno linkove prema tako necemu i slicno.
Ne moraš čak ni da pišeš aplikaciju sa pluginovima, dovoljno je da korisniku staviš prečicu na desktopu koja pokazuje na exe na serveru... Ili da napraviš batch fajl koji će pre startovanja iskopirati poslednju verziju sa servera na lokalni hard-disk.

Ali veb aplikacija ima i nekih drugih prednosti. I dosta mana.

kaizen
24. 12. 2006., 01:05
Ne znam na kojoj platformi radiš, ali ako je u pitanju Java, definitivno pogledaj
java web start/ (java.sun.com/products/javawebstart/).

misk0
24. 12. 2006., 11:57
@Dejan: to je super, pojavljuje se tonu nekih stvari o kojima nisam ni razmisljao.
A jeste razmisljali da i tu razvijete (ili koristite vec neki postojeci) app server. Tad se ne bi pojavljivao problem od 500 client konekcija na DB vec bi konekcije bile uradjene preko APP servera, a za DB bi se koristio connection pool.
Hm.. ali tu je opet opterecenje na APP serveru, pa pitanje kako njega rijesiti.

Ja imam iskustvo od prije par godina za Oracle DB i Oracle App Serverom, ali tad je na klijentima fakticki bilo neophodno dozvoliti izvrsavanje certifikovanih Java Appleta i citav ekran browsera je bio jedan java Applet. To je donekle OK rjesenje, ali desktop app mi i dalje izgledaju ljepse (i funkcionalnije) od Java Appleta, a osim toga manje opterecuju masinu. Znaci bilo bi interesantno iskoristiti vec postojeci App Server a napraviti EXE aplikaciju (interesuje me samo Windows platforma) koja bi se azurirala i svu komunikaciju obavljala sa app serverom.

@jablan: da, ali tad je potrebno imati domen, sharing i slicne stvari koje nisu bas najsrecnije rjesenje. Pogotovo ako je rijec o udaljenim lokacijama sirom zemlje i slicno. Mozda i moze ....

@kaizen: thx.

U sustini, ne radim jos nista, samo razmisljam, cisto da podijelim sa ljudim iz 'struke' ideje da vidim dokle to moze otici ukoliko se sutra ukaze potreba za tako necim.

Ajd, ako imate jos kakvih ideja ili zamisli, podijelite ih ovdje..

pozz.

Dragi Tata
24. 12. 2006., 16:50
Imaš .NET smart client aplikacije http://www.microsoft.com/net/products/client.asp kao i gorepomenute Java Web Start (ko tu koga kopira ne znam niti me interesuje).

Međutim, moj utisak je da te inicijative ne vode nikud i da "enterprise" ide na web kilijente i Ajax, ma koliko to ružno zvučalo.

jablan
24. 12. 2006., 20:40
da, ali tad je potrebno imati domen, sharing i slicne stvari koje nisu bas najsrecnije rjesenje. Pogotovo ako je rijec o udaljenim lokacijama sirom zemlje i slicno.
Onda poziv w g e t ili scp u batch fajlu pre startovanja aplikacije. Poenta je da pri izboru rešenja za nešto što ti treba (bilo šta, priča je generalna), pođeš od najjednostavnijeg mogućeg rešenja i komplikuješ ga samo ako je zaista neophodno... ;)

LiquidBrain
25. 12. 2006., 07:43
Elem, Java applet mopze da radi skoro sve kao desktop aplikacija, ne znam zashto kazesh da applet nije dovoljno dobar za to.

Web aplikacija je veoma dobro resenje, ako lepo u firmi standardizujete browsere, recimo Firefox, i napravite web aplikaciju koja radi kako treba pod firefox-om, imacete lepo okruzenje, jednostavno za odrzavanje,...