• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

DS - Distribuovane programovanie

Started by diacon.mex, 26.09.2008, 18:13:47

« predchdzajce - alie »

diacon.mex

Zdravim  br, chcel by som sa spytat, ake mate dojmy z toho distribuovaneho programovania. Lebo neviem ci som dobre pochopil, ale to sa bude kodovat v unixe, cez to pripojenie na server? Ci ako? Da sa to aj v NetBeans-e nejak? Co k tomu je potrebne urobit a stiahnut? Lebo stale nechapem co je to ten ShareMe. Ked s tym uz niekto zacal robit, alebo tomu rozumie, prosim nech trosku poda blizsie informacie, kedze na cviku a prednaske som to nejak nepochopil. Dakujem.
A este sa snad spytam, ze kedy sa chystate s tym zacat robit, nakolko tam su terminy odovzdania. Dik este raz.  br

Ing. nemtom

kodovat budes v jave, nie v unixe :D ostatne ti povedia javaci, java suxx :P
brix will be shat

johnyo13

ja sa to snazim rozbehat v beansoch uz par hodin, ale stale to akosi celkom nefunguje...
zisiel by sa podrobnejsi navod :)
☼Ѿ☼ ... ☼Ѿ☼

Raleon

Akoze, shareme je taky programcek. Bude vediet komunikovat ostatnymi programami, na pocitacoch ktore su navyajom spojene, alebo hoci aj na jednom pocitaci (kde su viacere instancie tohto programu)
Kazdy program (teda kazde ,,zadanie'') (v terminologii: NODE) bude
-oznamovat ze je pristupny
-detekovat tieto ,,som zivy'' signaly od ostatnych, a vytvarat pre seba tabulku dostupnych node-ov
-vytvarat zoznam suborov, ktore ma k sebe priradene (teda zdielane subory) - aj na poziadanie inych node-ov
-poziadat ostatnych node-ov , aby vratili svoj zoznam zdielanych suborov.
-vytvarat zoznam suborov, ktore su zdielane vsetkymy nodemi, spolocne.

komunikacia prebieha multicastom (ked nevies co to je - go wikipedia, alebo prvy rocnik), programovanie v Jave (programovaci jazyk :) - no dobre, pre velmyu odbornikov - Technologia... ), a musi to bezat na servri, kde bezi operacny system Unix (nejaka distribucia, ktoviejaka...), vas vystup ma byt konzolova aplikacia.
odporucujem to vytvarat priamo na servri, pretoze>
-mate 1 verziu (ak robite na viacerich strojoch, tak moze vam vzniknut bordel , ze ktora verzia je novsia)
-je pristupna pre vas vsade kde mate net.
-mate pristupne nejake hotove a zive node-y na tom servri, teda hned budete vediet, ci komunikacia s nimi funguje alebo nie
-ajtak odovzdavate na servri, kde bude bezat - odpada vam kopirovanie, a ladenie keby nahodou u vas doma to islo, ale na serveri nie.


There is no such bad temper that can not be fixed with some good wine.

sri

To zadanie sa mi na prvy pohlad tiez pozdava, ale predstava, ze budem robit vo vimku (prip. joe ci jak sa to vola) a este pri takom stabilnom pripojeni ake doma mam  ...  :mishela Tomasek este spominal nejaky program cez ktory sa tam tiez da napojit, RemoteS (alebo rovno RemoteDesktop?), neviem  ah: Neviete poradit? Tam sa vraj da robit aj v NetBeanse ...

Agamemnon

ono... dá sa to nahodiť aj na local, a kódiť to na locale... len niektoré veci tam otestuješ ťažšie - napr. komunikáciu medzi uzlami a pod... niektorí tak robili, že normálne v netbeansoch písali na locali a až potom hotové uploadovali na server
All code is crap.

42

kOsTi

ja budem asi v beansoch a potom uploadovat src adresar cely
:trestac:

ppt

Je tu niekto (ako ja), kto nema reverzny zaznam na svoju IP adresu? Ak ano, ide tomu niekomu prihlasit sa cez ssh na dslab.fei.tuke.sk? Ja musim len cez proxy :(

diacon.mex

ked sa prihlasite na dslab, tak co mate v adresari? lebo ja nic len nejaky Mail... a ziaden iny subor... neviem, ci som zle pochopil, ale nema tam byt nieco so zadanim uz predinstalovane? nejake Directory, alebo nieco take? Ci to treba tam este daco nahodit? Dik.

Agamemnon

All code is crap.

42

JCube

Quote from: diacon.mex on  27.09.2008, 04:34:38
ked sa prihlasite na dslab, tak co mate v adresari? lebo ja nic len nejaky Mail... a ziaden iny subor... neviem, ci som zle pochopil, ale nema tam byt nieco so zadanim uz predinstalovane? nejake Directory, alebo nieco take? Ci to treba tam este daco nahodit? Dik.
cez wget si stiahnes ten tar.gz archiv a rozbalis
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

diacon.mex

Ako sa dostanem v kode... v tej 1. ulohe... 1.2 napr. ku IConstants.RMI_REGISTRY_HOST kedze to je interface toho ShareMe a v domovskom adresari ho nemam, nakolko sme tam mali rozbalit ten tar.gz arvhiv, v ktorom boli len prazdne priecinky, ak som spravne pochopil. A ked to mam v NetBeans-e... a pretiahol som tam ShareMe.jar subor z toho dslab, co som tam stiahol ani neviem kde... ako sa s tym komunikuje, tam?
Mozno by bolo najlepsie na priklade nejak napisat. Vdaka  ;)

johnyo13

ja som to robil v beansoch tak, ze som vytvoril novy projekt, a dal som poslednu moznost ->vytvorit projekt z Antovskeho scriptu, potom sa ta pyta, kde chces mat zdrojaky, kde hotove(skompilovane) triedy a daco take...nakoniec sa ta pyta ci chces importnut nejake kniznice, a tam som dal tie dva *.jar-y, ktore boli v tom archive..v adresari "lib"
na dslabe neviem, ale tam asi netreba nic nastavovat, tam si tie kniznice najde ked pouzijes ant..ale ako presne to ma vyzerat, netusim:)
☼Ѿ☼ ... ☼Ѿ☼

diacon.mex

#13
Quote from: johnyo13 on  28.09.2008, 00:06:10
ja som to robil v beansoch tak, ze som vytvoril novy projekt, a dal som poslednu moznost ->vytvorit projekt z Antovskeho scriptu, potom sa ta pyta, kde chces mat zdrojaky, kde hotove(skompilovane) triedy a daco take...nakoniec sa ta pyta ci chces importnut nejake kniznice, a tam som dal tie dva *.jar-y, ktore boli v tom archive..v adresari "lib"
na dslabe neviem, ale tam asi netreba nic nastavovat, tam si tie kniznice najde ked pouzijes ant..ale ako presne to ma vyzerat, netusim:)


Diki ;) A tam potom pises kod do toho <default_package>->ShareMe.jar->at->... ?? lebo nevidim tam ziadne "Source packages"...

edit: No skusam to tak, ale nechapem ako utobit toto : V konštruktore získajte IP adresu lokálneho počítača použitím triedy java.net.InetAddress a uložte túto hodnotu v množine premenných prostredia pod kľúčom IConstants.RMI_REGISTRY_HOST.
skusal som to nejak tak : at.ac.tuwien.infosys.rnue.interfaces.IConstants.RMI_REGISTRY_HOST =  java.net.InetAddress.getLocalHost().toString();
ale vypisuje, ze: cannot assign a value to final variable RMI_REGISTRY_HOST
co s tym? urobil to niekto? lebo tam stojim uz dost dlho.

Diki  :-\

Payne

Sak ti pise ze to je konstanta a jej predsa hodnotu nemozes pridelit...

A import ti nic nehovori? Sak to mas strasne neprehladne...

diacon.mex

Quote from: Payne on  28.09.2008, 01:17:43
Sak ti pise ze to je konstanta a jej predsa hodnotu nemozes pridelit...

A import ti nic nehovori? Sak to mas strasne neprehladne...

No ved viem, ze je to konstanta, ale ako to potom inak tam dostat?? Ako si to riesil Ty?

Payne

Dam ti radu, ak to chces robit sam, tak citaj dokumentaciu...

Dade nazaciatku bolo, ze vytvaras konstruktor triedy a ma parameter typu Properties, tak hned si kukni dokumentaciu k tomu Properties v Java Core API no a tam hned uvidis ze je to vlastne hashtable a je tam aj popisane, ze by sa mali nastavovat properties cez setProperty() metodu a nie cez jednoduche vkladanie do kolekcie... No a dalej zrejme si este kukni ze jake typy ma ta metoda (String, String) no a podla toho robis dalej...



Inak teraz moja otazka, ma dakto uz spravene cviko 1.3??? Ja to mam napisane, akurat ze mi to robi chyby pri spusteni a sice ze je tam problem s konstantou ShutdownPort, kde mi jednak nesedi typ (String vs. int) ale hlavne je tam retazec nepreveditelny na int, konkretne presne "ShutdownPort".

WTF? Vie dakto ze o co tam ide?

P.S. V properties mam samozrejme nastavene heslo aj port a je to aj spravny nazov suboru...

johnyo13

Quote from: diacon.mex on  28.09.2008, 01:29:04
No ved viem, ze je to konstanta, ale ako to potom inak tam dostat?? Ako si to riesil Ty?
opat nerucim ze to, ze co pisem ma zmysel, ale ja to chapem tak, ze to IConstants su nejke systemove konstanty, ktore nemozes menit...proste nejake adresy systemu a hodnoty ktore ta nemusia zaujimat, proste su tak nastavene :) ...
teda ty musis priradit hodnotu (IP adresu) ktora ti pride z tej funkcie ku klucu IConstants.RMI_REGISTRY_HOST, kedze je tam napisane ulozte do premennej prostredia asi tym myslia ten objekt triedy Properties...
cize asi tak (ale mozno blbost:) :mojaMalaPropertia.setProperty(tu bude kluc, teda - IConstants.RMI_REGISTRY_HOST, a tu bude ta funkcia co vrati ip adresu stroja - treba kuknut javaAPI);
☼Ѿ☼ ... ☼Ѿ☼

Payne

No a? Sak toto iste som aj ja napisal...

Inak samozrejme mas pravdu, ale naozaj to nevidis? IConstants je predsa rozhranie no a v rozhrani ked su uvedene nejake atributy, tak su implicitne dane na public static final, cize konstanta to fakt je, tomu ver...

johnyo13

#19
ked som zacal pisat ten prispevok, tvoj tam este nebol, len som ho pisal dost dlho lebo som este studoval dokumentaciu, aby som tam nepisal blbosti...teda som nevedel ze uz je to tam vysvetlene :)
btw co ci nevidim? sak ja som tam  napisal ze su to nemenne konstanty!
☼Ѿ☼ ... ☼Ѿ☼

Mao

#20
Quote from: Payne on  28.09.2008, 02:48:12

Inak teraz moja otazka, ma dakto uz spravene cviko 1.3??? Ja to mam napisane, akurat ze mi to robi chyby pri spusteni a sice ze je tam problem s konstantou ShutdownPort, kde mi jednak nesedi typ (String vs. int) ale hlavne je tam retazec nepreveditelny na int, konkretne presne "ShutdownPort".

WTF? Vie dakto ze o co tam ide?

P.S. V properties mam samozrejme nastavene heslo aj port a je to aj spravny nazov suboru...

ShutdownPort je String pretoze jeho hodnotou je retazec "ShutdownPort" vid ShareMeAPI, a ten retazec treba pouzit ako kluc, na zakalde ktoreho z hashtabulky ziskas hodnotu. Nie je to samotne cislo portu.

diacon.mex

johnyo13, ked pridavas triedu napr. do ...rnue.implementation, a to konkretne tam trebalo "ShareMeImpl"... lebo mne to povolilo len mimo toho ShareMe.jar a dalo ju hned do <default_packages> no a teraz pise hlasku, ze:



java.lang.ClassNotFoundException: at.ac.tuwien.infosys.rnue.implementation.ShareMeImpl
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at at.ac.tuwien.infosys.rnue.helpers.ShareMeMain.main(ShareMeMain.java:40)
Could not create implementation class via reflection! Aborting!
java.lang.ClassNotFoundException: at.ac.tuwien.infosys.rnue.implementation.ShareMeImpl
Java Result: 1



neviem kde tu triedu mam pridat, alebo co urobit... na serveri ten prikaz "ant lab1" prebehne v poho, ale ten "ant run1" vypise presne to iste... a pritom mam tu triedu tam kde ma byt... :( co s tym?

Ing. nemtom

#22
brix will be shat

diacon.mex

#23
Quote from: Bc. nemtom on  28.09.2008, 06:46:56
kukni v archive, urcite som o tom pisal

EDIT: tu je problem http://www.tu-ke.com/forum/index.php?topic=1612.msg70397#msg70397

EDIT 2: tu riesenie http://www.tu-ke.com/forum/index.php?topic=1612.msg74329#msg74329

Diki, uz som to prestudoval cele medzitym, ale ja mam package v tom subore ShareMeImpl.java



"package src.at.ac.tuwien.infosys.rnue.implementation;"



hned v prvom riadku... a aj tak to iste :(

Ing. nemtom

ten package musis mat v kazdom subore, nie len v tom jednom
brix will be shat