webservice-nel pl alapbol van olyan, hogy aszinkron webservice. a hivo a hivasban ad egy url-t. a szerver ha befejezte a cuccot, (megtortent amire varunk) erre az url-re hiv vissza.
Ha már EJB. Egy ilyen esetben simán jó lehet egy remote EJB kapcsolat. Ha már van alkalmazásszerver, használjuk ki. Nem bonyolult feldobni két remote EJB interfészt meg egy kis implementációt a kommunikáció miatt.
Mondom, ez nekem csak a privát véleményem. Könnyen elképzelhető, hogy van olyan helyzet, amire az EJB a tökéletes megoldás, de az biztos, hogy sok olyan helyen erőltetik, ahol nem.
Általában véve a kilens mindig az, aki kezdeményez. A szerver az, aki válaszol. Ha a szerver "visszahív", akkor abban a kontextusban ő kliens lesz, a másik fél meg szerver.
Ebben nincs semmi ördögtől való, de ez akkor már nem egy tiszta szerver-kliens rendszer, hiszen ugyanaz a fél felváltva lehet ez is és az is. De nem is igazán peer-to-peer, mert a leírásod szerint a felek nem egyenrangúak.
Megoldható a dolog, de azért számtalan kérdés felvetődik:
1. Megéri-e? Mennyit nyersz azzal, hogy pull helyett push modellt használsz? És mennyivel lesz ettől bonyolultabb a rendszer?
2. Tűzfalak. Sokszor egyszerűen nem lehet mindkét irányból kapcsolatot kezdeményezni. Ezt tudnod kell kezelni.
3. Terhelés. Bár első ránézésre úgy tűnik, ezzel a húzással csökkented a szerver terhelését, ez nem feltétlenül van így. Mi történik akkor, ha a kliens lassú és a szerverről indított visszahívást percekig dolgozza fel? Vagy mondjuk ha lassú a hálózat.
4. Skálázhatóság. Mi van, ha több szervert akarsz párhuzamosan működtetni?
Hogy ez hogy néz ki EJBs környezetben, azt nem tudom. Személyes véleményem szerint az EJB egy teljesen elbaszott ötlet volt, amit addig sikerült pofozgatni, amíg már majdnem olyan használható nem lett, mint a nem EJB, csak még mindig százszor bonyolultabb.
Szerver-kliens alkalmazasoknal (akar konkretan egy Szerver - vastagKliens EE elosztott alkalmazasra gondolva) ugyebar az alap hozzaallas az, hogy a klens hivogatja a szervert. Mennyire ordogttol valo dolog az, ha a szerver is hivja a kliens alkalmazast? Szoktak ilyet csinalni? (RMI-vel ez siman megoldhato ugy egyebkent, alacsonyabb szinten, tehat ha nem egy EE projectre gondolva). (ugyebar EE is kb RMI-re epit) Peldaul egy keszletnyilvantarto rendszerben hogy a kliens mindig a legfrisebb adatokat lassa, "ne kelljen allandoan a frissites gombot nyomkodni", vagy pl masodpercenkent kerdezgetni szervert, hogy modosult e a keszlet, ha valtozas van a keszletben, a szerver szol a klienseknek, hogy frissitsek az adataikat.
Csekely ismertem JavaEE teruleten azt sejteti, hogy nem egyszeru ez a kicsit forditott hozzaallas.
Tamogatja ezt a java EE specifikacio. Pl egy ha egy alkalmazasszerverre - EJB-kkel, webservice-szal - gondolok.
újabb Eclipsekben lehet eleve olyan projectet csinálni ami dinamikus web applikáció, és ott ezeket a foldereket megcsinálja, STS-el meg van beépített tomcat server amin pár kattintással futtatható is - de ez annyira nem jó, mert instabil, folyton szétesik a webalkalmazás, cleanelni kell, az meg sokáig tart etc
Koszonom a tippeket, megprobalkozom veluk. (azt gondoltam, hogy megoldhato ez "egy klikkel" az eclipse IDE-n belul, ezek szerint tevedtem). Megnezem az ant-et.
ahol jar-kent megadtam a kulso classt, ott megadhatom classkent is. a hibajelenseg u.az. az eclipse latja a projectemben, hogy hol a People osztaly, nem is jelez hibat az ide, amikor hivatkozom a kulso tipusra. ezzel nincs gond. viszont a tomcathez mar nem jut jol el a project. mmint mondtam megneztem, hogy belekerul a war fileba, ha exportalok egyet. se abba sem teszi bele a People classt.
A szervletem "import com.beans.People" - kovetoen hasznal egy masik csomagan definialt, importalt People tipust. Az Eclipse IDE telmeszetesen "latja" az idegen People osztalyt (A build path-nal add external jar menuponttal megadtam a kulso osztaly hol talalhato), nem mutat hibat a kodban. A project run as/run on server utan viszon nem talalja a tomcat a People osztalyt.
javax.servlet.ServletException: Servlet execution threw an exception
java.lang.NoClassDefFoundError: com/beans/People
Egyebkent ha war exportalok a projectbol, abba sem kerul bele a People osztaly.
Meg tudna v.ki mondani, hogy mit kell meg beallitani az eclipse-ben, hogy a tomcat is lassa a People classt?
vagy a masik, hogy regisztralod az adott hivast hibernate-nek. RegisterFunction("adddate",newSQLFunctionTemplate(NHibernateUtil.Date,"adddate(?1, ?2)")); es utana hasznalod hql-be.
milyen adatbazissal hasznalod? Hasznalhatod az adatbazisod fugvenyeit. Ha HQL nem tudja ertelmezni akkor azt kuldi tovabb az sql szervernek. Mondjuk mysql-be: adddate() stb stb
Tudna valaki segíteni, hogy HQL-ben milyen módon lehet dátumokkal matematikai műveleteket végezni? Tehát például összeadni/kivonni két dátumot, vagy egyéb dátumkezelő függvények.
A konkrét feladat a következő lenne: egy adattábla eseményeket tartalmaz, az esemény időpontja timestamp típusú mezőben van letárolva. Ebből az adattáblából szeretnék listázni mindig "1 napnyi" adatmennyiséget. Tudom meg lehet oldani egyszerűbben is kezdő- és végdátum paraméterrel, de érdekelne az elegánsabb megoldás.
Másik gondolatom, hogy azt is kellene vizsgálni, hogy a sorok t[2] tömbjében szerepel-e a ,,be,, szó. Ha igen akkor csak ezeket írja ki.
És nincs hozzájuk későbbi időpontban "ki".
Szerintem itt felesleges a Calendart erőltetni. A "mezei" java.util.Date bőven elég, mivel műveleteket nem végzel vele, csak parseolod SimpleDateFormat-tal egy Stringből.
es ilyenkor a diak kivagja magat, hogy mivel nem volt meghatarozva a feladatban, ezert 0-nak vettem, stb stb. 1 feladatot sosem lehet 100%-osan specifikalni. Mi van azokkal, akik az ablakon at mentek ki? ;)
viszont pont az ilyen hazikat kiado oktatok szoktak utanna belekotni a sajat maguk altal kiadott feladat alulhatarozottsagaba. es szopatjak a hallgatot ilyenekkel, hogy fiam, nem is foglalkoztal a kiindulasi allapottal.
realisztikus? ne rohogtessel mar halalra. a Valodi Elet ben egy ilyen problemat az eletben nem allnak neki mezitlab javaban megoldani. van egy olyan cucc hogy adatbaziskezelo, eleg regi, de bevalt.
egy realisztikus rendszerben napi logra lehet számítani, ha a cég elég nagy, és 10,000 embert foglalkoztatnak folyamatos műszakban, akkor a napi ki/be forgalom lehet kb 20,000 vagy 25,000, ha kijár mindenki ebédelni, akkor mondjuk 30K
ez 30K sor, soronként kb 100 karakterrel, ami kétbájtos utf kódolás mellett kb 6 MByte, ennyi biztosan elfér a memóriában
a legtöbb cégnél nincs ennyi ember egy telephelyen, még a nagyobbak közül sem
nem tudni milyen módon, és milyen gyakorisággal akarják olvasni, tehát nap 1 logfájlt feltételeztem, de lehet hogy kevesebb a dolgozó, és csak havonta cserélnek logfájlt, amit naponta többször is beolvasnak
ami meg még valószínűbb, hogy a rendszer eleve nem fájlba logolja a ki/be lépéseket hanem adatbázisba, és akkor már sokminden másképp alakul