Představuji QTBoinc

Fórum týkající se Boinc Managera, Boinc Studia, BOINC View atd..

Moderátoři: petnek, nenym, Zelvuska

Odpovědět
Zpráva
Autor
InHuMan
26.3157894737 %
26.3157894737 %
Příspěvky: 238
Registrován: ned 19 úno, 2012 03:05
rok narození: 19 pro 1989
ID CNT statistics: 134

Představuji QTBoinc

#1 Příspěvek od InHuMan » stř 03 říj, 2012 19:47

Už dlouho se potýkám s problémem jak spravovat BOINC na více počítačích a jelikož asi pořádné řešení neexistuje. Rozhodl jsem se, že si napíšu vlastní. 45hh
Zatím není ve stavu, kdy bych se ho opovažoval vydat, ale stejně mě zajímají vaše názory 33aaa
Pro vzdálenou správu jsou pro mne důležité tyto aspekty:
  • Možnost ovládat počítače vzdáleně (přes internet)
  • Možnost sledovat a ovládat více strojů najednou
  • Jednoduché ovládání (GUI)
  • "Multiplatformnost" (Linux/Windows) (Napsáno v QT)
  • Bezpečná komunikace - Veškerá síťová komunikace se šifruje pomocí SSL, pro identifikaci se používají certifikáty.

graf.png
graf.png (40.16 KiB) Zobrazeno 1216 x
Takže jak to vlastně funguje? Program má 3 části: Node (Uzel), Server a Client
Node (Uzel): běží na stroji kde beží BOINC, připojuje se k Servru.
Client: vlastní GUI pro ovládání, připojuje se k Servru.
Server: Spojuje Node a Client. Může k němu být připojeno víc klientů a uzlů.

Může se to zdát trochu složitý, ale lepší způsob jak se dostat skrz NAT mě nenapadl. :) Kdybychom tu už měli IPv6, život by byl jednodušší. Stačí tedy aby Server běžel na počítači s veřejnou IP adresou nebo s namapovaným portem

Za funkcemi klasického BOINC Managera, zatím zaostává, zatím jsem implementoval jen to co je na screenshotech: ovládání projektů (zákaz práce, pozastavení, apod.), výpis jednotek a zpráv.
Screenshoty:
1.png
1.png (44.47 KiB) Zobrazeno 1216 x
2.png
2.png (61.71 KiB) Zobrazeno 1216 x
3.png
3.png (51.76 KiB) Zobrazeno 1216 x
5.png
5.png (71.44 KiB) Zobrazeno 1216 x
Aktuální stav týmových počítačů
IQE: Obrázek
Cimrman: Obrázek
IQE farma: Obrázek
Matfyz farma: Obrázek

Uživatelský avatar
vkliber
Admin webu a fóra CNT
Admin webu a fóra CNT
Příspěvky: 9886
Registrován: čtv 29 bře, 2007 10:41
ID CNT statistics: 1
Bydliště: Brušperk, 48 let
Kontaktovat uživatele:

Re: Představuji QTBoinc

#2 Příspěvek od vkliber » čtv 04 říj, 2012 09:35

Pěkně 33iii .

Pár myšlenek které mě hned teď napadají (v žádném případě se nejedná o kritiku, pouze myšlenky k zamyšlení)

- ovládat vzdáleně několik BOINC klientů v rámci jedné sítě lze i nyní z BOINC Managera (více zde)
- ovládat vzdáleně několik BOINC klientů v několika různých sítích lze i nyní z BOINC Managera (více zde poslední odstavec) ... nutnost nakonfigurovat router
- ovládat více BOINC klientů z jednoho GUI najednou lze i nyní (více zde)

Určitě bych byl rád jedním z prvních testerů, tvoje řešení se mi zamlouvá. Největší problém zřejmě budeš mít s implementací různých verzí BOINC a tím nemyslím jenom změny v 7 oproti 6, ale např. tuším od verze 6.12 je jiná syntaxe boinccmd (nevím jestli používáš na nodech boinccmd, nebo čteš přímo client_state.xml, nebo používáš přímo interní port 31416). V každém případě velice zajímavý počin a rád budu testovat.

Jiná varianta jak pohodlně ovládat své klienty přes celý internet by byla vytvořit speciální projekt (obdoba WUProb) kdy by na všech klientech běžela nci aplikace tohoto projektu (v tvém řešení to je ta Node aplikace) a pak by byla možnost ovládat všechny klienty ze všech klientů nebo z webu z účtu tohoto projektu (obdoba BAM!). Oproti BAM! by byla ta výhoda, že by nedocházelo ke zpoždění (čekání na timeout jak je to u BAM!), protože projekty už dnes umí vynutit komunikaci s klientem.

Možná trochu OT, ale určitě to k tomu patří :
- myslím že více zajímavý nástroj by byl tzv. BOINC Master Client, který jsem už tady na fóru někde popisovat, jednalo by se o jeden hlavní BOINC v síti (Master), který by měl pod sebou několik BOINC (Slave) clientů (libovolných Windows/Linux/...) a tito Slave klienti by byli připojeni k Master klientu, který by znal jejich konfigurace a byl by připojen ke všem projektům daného účtu a stahoval by práci pro všechny své podřízené klienty a tuto práci by jim plynule přiděloval. Tedy jakási forma třívrstvé architektury, kdy koncoví klienti by ani nemuseli mít přímý přístup na internet. NA ten by byl připojen jen Master client. To by ale samozřejmě znamenalo použít zdrojáky oficiálního BOINC klienta a celé to překopat aby vznikli 2 různé distibuce : Master a Slave Client.

Jejda ... nějak jsem se po ránu rozepsal 45cc .
Statistiky CNT | Projekty CNT | Distribuované výpočty CNT | SETI CNT | Einstein CNT
.....::::: Proč se mít nejlépe, když se můžu mít čím dál tím stejně :::::.....
Moje skromná statistika tady , tady , tady nebo grafy.
˙ıɔıqɐɹʞ ʌ ǝןɐ 'ıןʇʎd ʌ ǝɔıɾɐz ǝʇɾndnʞǝu ʎpʞıu ˙˙˙

InHuMan
26.3157894737 %
26.3157894737 %
Příspěvky: 238
Registrován: ned 19 úno, 2012 03:05
rok narození: 19 pro 1989
ID CNT statistics: 134

Re: Představuji QTBoinc

#3 Příspěvek od InHuMan » čtv 04 říj, 2012 16:51

Děkuji za odezvu... :)
vkliber píše: - ovládat vzdáleně několik BOINC klientů v rámci jedné sítě lze i nyní z BOINC Managera (více zde)
- ovládat vzdáleně několik BOINC klientů v několika různých sítích lze i nyní z BOINC Managera (více zde poslední odstavec) ... nutnost nakonfigurovat router
- ovládat více BOINC klientů z jednoho GUI najednou lze i nyní (více zde)
O tom vím, ale žádné řešení nebylo pod Linux :( a klasický Boinc manager neumí ovládat víc PC najednou. (Chci třeba 5 počítačům říct aby nepočítali projekt A a začali s projektem B) Nemluvě o tom jaký je problém se dostat skrz NAT, (Pro každý pc se musí mapovat port a pak si je hlavně člověk musí pamatovat 45hh)
vkliber píše: Určitě bych byl rád jedním z prvních testerů, tvoje řešení se mi zamlouvá. Největší problém zřejmě budeš mít s implementací různých verzí BOINC a tím nemyslím jenom změny v 7 oproti 6, ale např. tuším od verze 6.12 je jiná syntaxe boinccmd (nevím jestli používáš na nodech boinccmd, nebo čteš přímo client_state.xml, nebo používáš přímo interní port 31416). V každém případě velice zajímavý počin a rád budu testovat.
Používám ten interní port, a protokol jsem získal reverzním inženýrstvím (čistější by bylo použít knihovnu od BOINC, ale nemam nervy na to jí začleňovat do svého programu... 45hh ). Zatím to vyvíjím pro verzi 7, ale mělo by to fungovat i na starších. Nepředpokládám, že se ten protokol bude zásadně měnit. (většinou dělají změny takové, aby byly zpětně kompatibilní) V nejhorším případě ale není problém zjistit co je jinak a opravit to. 45cc Mělo by pak stačit updatovat jen Klienta (GUI), protože server a Node ty zprávy jen přeposílají (tedy kromě zadání hesla, to si řeší Node sám).
Ještě to není ve stavu, kdy to můžu vydat. (např. konfigurace IP je natvrdo ve zdrojácích... :D) Ale až to bude, zajímala by tě verze pro Win nebo Linux?
vkliber píše: Jiná varianta jak pohodlně ovládat své klienty přes celý internet by byla vytvořit speciální projekt (obdoba WUProb) kdy by na všech klientech běžela nci aplikace tohoto projektu (v tvém řešení to je ta Node aplikace) a pak by byla možnost ovládat všechny klienty ze všech klientů nebo z webu z účtu tohoto projektu (obdoba BAM!). Oproti BAM! by byla ta výhoda, že by nedocházelo ke zpoždění (čekání na timeout jak je to u BAM!), protože projekty už dnes umí vynutit komunikaci s klientem.
Tak todle je vskutku originální řešení... 33iii
Ale asi chtělo nějaký webový frontend a s tím bohužel nemám žádné zkušenosti, tak to bude muset realizovat někdo jiný... 45hh Mimochodem jak funguje ta vynucená komunikace? To jako BOINC klient udržuje aktivní spojení na servery projektů, aby ho mohly kontaktovat?
vkliber píše: Možná trochu OT, ale určitě to k tomu patří :
- myslím že více zajímavý nástroj by byl tzv. BOINC Master Client, který jsem už tady na fóru někde popisovat, jednalo by se o jeden hlavní BOINC v síti (Master), který by měl pod sebou několik BOINC (Slave) clientů (libovolných Windows/Linux/...) a tito Slave klienti by byli připojeni k Master klientu, který by znal jejich konfigurace a byl by připojen ke všem projektům daného účtu a stahoval by práci pro všechny své podřízené klienty a tuto práci by jim plynule přiděloval. Tedy jakási forma třívrstvé architektury, kdy koncoví klienti by ani nemuseli mít přímý přístup na internet. NA ten by byl připojen jen Master client. To by ale samozřejmě znamenalo použít zdrojáky oficiálního BOINC klienta a celé to překopat aby vznikli 2 různé distibuce : Master a Slave Client.
No určitě by to udělat šlo... 45hh. Teoreticky by stačilo modifikovat jen tu serverovou část tak, aby se pro klienty tvářila jako další server s projektem. A server by se choval jako proxy. Pro projekty by se tvářil jako několik počítačů a stahoval vy práci a přeposílal ji... :) Kdyby k tomu protokolu byla pořádná dokumentace, tak by to ani nemuselo být těžký napsat 45cc
Otázka, jestli ta práce za to stojí a není lepší používat standardní klienty a ovládat je všechny najednou přes síť... :)
Aktuální stav týmových počítačů
IQE: Obrázek
Cimrman: Obrázek
IQE farma: Obrázek
Matfyz farma: Obrázek

Uživatelský avatar
Kyong
Admin webu a fóra CNT
Admin webu a fóra CNT
Příspěvky: 1506
Registrován: pát 03 lis, 2006 13:43
rok narození: 29 kvě 1984
ID CNT statistics: 19525
Bydliště: Olomouc
Kontaktovat uživatele:

Re: Představuji QTBoinc

#4 Příspěvek od Kyong » čtv 04 říj, 2012 17:24

No, ještě jedno řešení, která používám u některých pc já, je udělat si vlastní VPN server a všechny pc, kde je BOINC, tak by se připojovali ještě k VPN, která by sloužila čistě pro BOINC. Tím pádem není problém z každého pc s každým pc, kde je BOINC manager, komunikovat, nemusí se řešit porty a nemusí se řešit ani změna IP, což je problém dnes už hlavně jenom u mobilního připojení, kde používám AndroBOINC i když ten zatím toho ještě moc neumí. Takže v podstatě celé tohle řešení, co jsi napsal, tak mi funguje díky VPN. 45hh
Jsem vždycky někde na netu. Vždyť síť je přece rozlehlá a nekonečná.

Jifox.cz
Blog
Czech National Team
Asteroids@home - český projekt - zkoumání tvaru planetek z fotometrických dat

Uživatelský avatar
vkliber
Admin webu a fóra CNT
Admin webu a fóra CNT
Příspěvky: 9886
Registrován: čtv 29 bře, 2007 10:41
ID CNT statistics: 1
Bydliště: Brušperk, 48 let
Kontaktovat uživatele:

Re: Představuji QTBoinc

#5 Příspěvek od vkliber » čtv 04 říj, 2012 20:26

InHuMan píše:Ale až to bude, zajímala by tě verze pro Win nebo Linux?
Server a Client určitě pro Win, Node pro Win i Linux 45cc .
InHuMan píše:Mimochodem jak funguje ta vynucená komunikace? To jako BOINC klient udržuje aktivní spojení na servery projektů, aby ho mohly kontaktovat?
Přiznám se jak toto funguje netuším, ale několikrát jsem byl svědkem kdy mi server zrušil jednotky projektu (tuším že to bylo doprovázeno i nějakou hláškou : Vynuceno serverem) a to i přesto, že BM neměl důvod kontaktovat server. A něco podobného dělá i projekt PrimeGrid při začátku turnaje, kdy se zcela mimo pořadí spustí komunikace clienta se serverem.

Možná že plácám nesmysly a komunikace je inicializována skutečně klientem nikoli serverem :smt102 .
Statistiky CNT | Projekty CNT | Distribuované výpočty CNT | SETI CNT | Einstein CNT
.....::::: Proč se mít nejlépe, když se můžu mít čím dál tím stejně :::::.....
Moje skromná statistika tady , tady , tady nebo grafy.
˙ıɔıqɐɹʞ ʌ ǝןɐ 'ıןʇʎd ʌ ǝɔıɾɐz ǝʇɾndnʞǝu ʎpʞıu ˙˙˙

nenym
78.9473684211 %
78.9473684211 %
Příspěvky: 7059
Registrován: úte 13 led, 2009 15:33
rok narození: 0- 0-1956
ID CNT statistics: 10124

Re: Představuji QTBoinc

#6 Příspěvek od nenym » čtv 04 říj, 2012 20:44

vkliber píše:Možná že plácám nesmysly a komunikace je inicializována skutečně klientem nikoli serverem :smt102 .
Rozhodně nejsi mimo, komunikaci s klientem si vynucují nejméně tyto další servery: eOn, dDm, Volpex. Jak toho lze dosáhnout netuším, anžto žádnou takovou option jsem v popisu config file serveru nenašel.
Blíží se další krize; jím plesnivé sýry, piji staré víno a jezdím v autě bez střechy.
UotD 505x
Obrázek 2xObrázek 7xObrázek 10xObrázek Obrázek
Obrázek

Odpovědět

Zpět na „BOINC a jeho obslužné programy“