Som študent fakulty kybernetiky a chcem napísať jeden projekt pomocou Java. Chcem vytvoriť systém pre distribuované výpočty.
Bude obsahovať ďalšie komponenty:
1. Hlavný program používateľa (odlišný pre každú konkrétnu situáciu)
2. Užívateľský program úloh, ktorý dokáže vyriešiť iba malú úlohu (tiež odlišnú pre každý prípad)
3. Môj program, ktorý bude komunikovať s hlavným programom používateľa, aby vedel, aké úlohy je potrebné vyriešiť 4. Môj program, ktorý bude interagovať s užívateľským programom úloh, aby mu povedal vstupné údaje a získal výstupné údaje 5. Apache Tomcat a moje servlety + databáza, všetko toto umožní ďalšie veci:
- zaregistrovať uzol hlavného programu a výpočtov v systéme
- ukladať do DB úlohy z hlavného programu, ukladať výsledky úloh, ktoré budú zasielané z uzlov
- pozrite si niektoré štatistické informácie (koľko úloh je vyriešených, koľko uzlov v systéme atď.)
Prosím, povedzte mi niekoľko nápadov o navrhovaní tohto systému. Chcem tiež vedieť, ako môže môj program java interagovať s používateľským programom na lokálnom počítači (mám na mysli výmenu údajov).
PS: ďakujem, ospravedlňujem sa za moju angličtinu a pamätám si, že chcem napísať svoj vlastný systém (takže nemôžem využívať existujúce riešenia)
odpovede:
2 pre odpoveď č. 1Čítajte ďalej linda a JavaSpaces. Potom čítajte ďalej Apache Hadoop a MapReduce. To by vám malo dať niekoľko nápadov, ako možno tieto veci vyriešiť.
0 pre odpoveď č. 2
Prezrite si výukový program Java Remote Method Invocation Tutorial, aby ste pochopili základné prvky distribuovaného programovania.
http://download.oracle.com/javase/tutorial/rmi/index.html
0 pre odpoveď č. 3
Pri výučbe konceptov by som odporúčal študovať ako Hadoop Tvorba. Naučíte sa kopu!
0 pre odpoveď č. 4
Rýchlosť vášho sieťového systému bude závisieťpredovšetkým na tom, ako je každý uzol autonómny (tj. závislosť od nových údajov), a ako rovnomerné je rozdelenie procesov. Som presvedčený, že sa vaše riešenie bude nevyhnutnosťou podobať na model s viacerými procesmi.