[Pomysł] Serwer BOINC <- dla Windowsa

Zaczęty przez goofyx, 07 Czerwiec 2011, 19:25

goofyx

Cytat: TJM w 15 Lipiec 2011, 10:58
No to jest na dzieńdobry pierwszy problem nie do ominięcia, bo różne rzeczy (np. pliki od WU) mogą mieć nazwy które na Windows będą się powtarzać i system będzie nadpisywał jedne na drugie zamiast usadzać obok.
Nawiasem mówiąc tutaj wychodzi ciekawy zgrzyt nawet w oryginalnym kodzie klienta, bo można (nawet niechcący) stworzyć workunity które na maszynach z Windows będą się sypać, a na Linuksie nie.
A możesz podać przykład projektu na którym byłby taki problem?
Jaki projekt generuje o tej samej nazwie ale z różnymi wielkościami liter w nazwie.

TJM

Daleko nie muszę szukać - enigma generuje takie pliki gdy ich ilość w jednym batchu jest duża. Do oznaczeń pliku wejściowego używany jest wtedy kod literowy wykorzystujący wszystkie duże i małe litery + cyfry, co skraca długość nazwy WU o kilkanaście znaków.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

goofyx

Cytat: TJM w 15 Lipiec 2011, 11:25
Daleko nie muszę szukać - enigma generuje takie pliki gdy ich ilość w jednym batchu jest duża. Do oznaczeń pliku wejściowego używany jest wtedy kod literowy wykorzystujący wszystkie duże i małe litery + cyfry, co skraca długość nazwy WU o kilkanaście znaków.

Może i fantazjuje, ale popraw mnie jeśli się mylę.
Skoro np.: serwer boinc działa pod boinc to jego demony i inne mechanizmy można tak dopasować aby to wszystko działało "przeźroczyście" np.: tworząc pod katalogi dla takich WU.
Od strony projektu i klienta nie będzie to widoczne <- a wszystkim zajmowała by się odpowiednia część serwera boinca.


TJM

Jasne że można dopasować - tylko nie wiem czy zdajesz sobie sprawę z tego, że BOINC posiada również funkcję automatycznego rozrzucania plików po katalogach i jest to domyślnie używane (żeby zmniejszać stres na systemie plików) - pliki przydzielane są do podfolderów w drzewie pseudolosowo, na podstawie md5 nazwy, ponadto i tak później [domyślnie] spotykają się w jednym folderze. Nawet wolę nie myśleć ile trzeba by się nakombinować żeby ominąć ten jeden, drobny (na tle innych) problem....
W dobie takich rzeczy jak systemy wirtualne działające praktycznie bez straty wydajności, takie coś po prostu nie ma sensu, sztuka dla sztuki.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

goofyx

Cytat: TJM w 15 Lipiec 2011, 11:49
Jasne że można dopasować - tylko nie wiem czy zdajesz sobie sprawę z tego, że BOINC posiada również funkcję automatycznego rozrzucania plików po katalogach i jest to domyślnie używane (żeby zmniejszać stres na systemie plików) - pliki przydzielane są do podfolderów w drzewie pseudolosowo, na podstawie md5 nazwy, ponadto i tak później [domyślnie] spotykają się w jednym folderze. Nawet wolę nie myśleć ile trzeba by się nakombinować żeby ominąć ten jeden, drobny (na tle innych) problem....
W dobie takich rzeczy jak systemy wirtualne działające praktycznie bez straty wydajności, takie coś po prostu nie ma sensu, sztuka dla sztuki.
Jakoś mnie to nie zniechęca <- tak jak pisałem mam świadomość, że to nie jest proste.

ps.:Masz dostęp do jakiś diagramów itp dotyczących serwera boincowego? <- ja niestety nie znalazłem takowych

TJM

Nie wiem czy w ogóle jest coś takiego - dokumentacja to praktycznie tylko to, co na ichniejszym Wiki + parę powiązanych stron.
Dokładnej dokumentacji każdego daemona to chyba nikt nie ma, przy każdej poważniejszej pracy trzeba analizować częściowe info na Wiki + kod źródłowy  :wacko:

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

goofyx

Cytat: TJM w 15 Lipiec 2011, 12:13
Nie wiem czy w ogóle jest coś takiego - dokumentacja to praktycznie tylko to, co na ichniejszym Wiki + parę powiązanych stron.
Dokładnej dokumentacji każdego daemona to chyba nikt nie ma, przy każdej poważniejszej pracy trzeba analizować częściowe info na Wiki + kod źródłowy  :wacko:
w skrócie <- nie upublicznili ;) bo chcą mieć monopol na tą działkę.

TJM

Sami pewnie raczej nic takiego nie mają, bo bywa że zgłosi się dość poważny błąd i zaczyna się szukanie fixa na chybił-trafił  XD

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

goofyx

Cytat: TJM w 15 Lipiec 2011, 12:55
Sami pewnie raczej nic takiego nie mają, bo bywa że zgłosi się dość poważny błąd i zaczyna się szukanie fixa na chybił-trafił  XD

Taki bardzo uproszczony schemacik znalazłem:


@TJM weź mi powiedz jak to w praktyce wygląda. Serwer boinc składa się ze swoich demonów np.: generatora WU, analizatora WU itp ale te musi napisać autor projektu. Jedyna stała część to chyba feeder ten od uplodów i dowloadów WU.
To z czego się składa (wiem, że z bazy MySql, apache, strony php) i co robi serwer boinc? Skoro chyba polowe rzeczy trzeba napisać samemu? <- bo tak rozumiem ze wszelkich opisów dotyczących stawiania własnego serwera boincowego
Moje pytanie wynika z braku wiedzy praktycznej <- osobiście nie brałem udziału w projekcie boinc od strony technicznej w przeciwieństwie do ciebie jak dobrze pamiętam. Dlatego nie ogarniam do końca tematu serwera boinc.

TJM

Nic nie pisze się samemu, są gotowe templatki do wszystkiego - np. żeby napisać validator, trzeba tylko wklepać zawartość funkcji w odpowiednie ramki.
Oprócz tego co jest na schemacie, jest jeszcze 10x wiecej - w narzędziach serwerowych.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

goofyx

Cytat: TJM w 15 Lipiec 2011, 13:45
Nic nie pisze się samemu, są gotowe templatki do wszystkiego - np. żeby napisać validator, trzeba tylko wklepać zawartość funkcji w odpowiednie ramki.
Oprócz tego co jest na schemacie, jest jeszcze 10x wiecej - w narzędziach serwerowych.
1. Templatki można zrobić to oczywiste
2. Znaczy co jeszcze jest <- niestety musiałem nie doczytać

TJM

Te "templatki" to w tym wypadku gotowe programy - od biedy w niektórych projektach można jechać na domyślnym validatorze (jednym z kilku).
A co do reszty to ściągnij źródła i zobacz - jest cała góra narzędzi do obsługi serwera i "półdemonów".


W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

goofyx

Przeglądam po trochu źródła z SVN z boinca <- połowa to chaos :)

goofyx

Cytat: TJM w 14 Lipiec 2011, 23:54
Jeśli zaś chodzi o przeniesienie oryginalnego środowiska serwerowego pod Windows, to znając dość dobrze źródła serwera po prostu nie jestem w stanie sobie wyobrazić jaki ogrom pracy byłby do tego potrzebny. Źródła są miejscami niesamowicie zagmatwane, brak jest komentarzy i dokumentacji, ogólnie dla osoby która nie miesza w tym na codzień - horror*, na dodatek w wielu miejscach zastosowano rozwiązania raczej typowe dla linuchów i trzeba by mocno się głowić, żeby to przeportować.
Stary temat, ale znowu przeglądam sobie źródła boinca plik po pliku, linijka po linijce <- tak jakoś mnie naszło ;)
Zgadzam się z tym, że źródła są w niektórych momentach ostro "pogięte" <- to pewnie pozostałości po starych wersjach procedur, później człowiek dorabia nowe funkcje i na siłe stara się aby wszystko ze sobą było kompatybilne zamiast poświęcić godzinkę i przepisać ładnie na nowo.
A wracając do pierwszego zdania mojej wypowiedzi... magluje wujka google i strony z opisami co każdy z demonów robi, jak działa i ...
nie za bardzo wiem czym jest taka trudność w serwerze boinc?
Wiem, że mogę coś źle rozumować, ale pogubiłem się w fakcie, że oni ciągle coś rozwijają a tak naprawdę nie za dużo kodu przybyło od wersji 4 do 6 w serwerze.
Przykładowo taki "feeder" robi dokładnie to samo czyli karmi boinca nowymi WU <- jedyne jakie różnice zauważyłem w kodzie to:
1. zmiany w strukturze bazy danej
2. pojawienie się nowych parametrów
3. nowe stany WU
Albo "assimilator" który sprawdza (jak dobrze pamiętam) czy dane WU zostało przeliczone np.: 2 razy i zapisuje w bazie nową flagę dla WU <- to są raptem dwa zapytanie SQL.
Już nie mówiąc o całej serii file_updater, file_deleter itp

Weźcie mi to na chłopski rozum wytłumaczcie...

ps.: a patrząc na komunikację między serwerem i klientem to raptem chyba 10 xml jest wysyłanych i odbieranych poprzez metodę Http iGET
ps1.: gdyby to pisał od zera to pewnie trochę by zajęło postawienie pierwszej testowej wersji, ale gdzie jest haczyk czyli główna trudność której nie widzę?

goofyx

naszła mnie myśl czysto teoretyczna <- poprawcie mnie jeśli źle myślę.

Gdyby (rozważania czysto teoretyczne) założyć, że raczej nie ma możliwości na 100% kompatybilność między serwerem boinc na linux, a ewentualnym serwerem na windows to można by w sumie olać 90% źródeł serwera na linuksa.
Dlaczego? Najważniejsza jest komunikacja:
1. między serwerem a managerem <- tu obsługa musi być identyczna
2. pliki statystyk xml takie same, jeśli projekty z takiego serwera miałyby pokazywać się w np.: boincStats.com itp

Przy takim założeniu sami od zera tworzymy każdy z elementów serwera czyli np.: feeder, validator itp itd
Takie rozwiązanie (o ile dobrze myślę) byłoby o wiele prostsze do realizacji niż przepisywanie istniejącego serwera.

Co wy na to?
Podkreślam, że jest to rozważanie czysto teoretycznie.

krzyszp

Obawiam się, że ilość zagadnień z tym związanych przerasta jedną osobę - ale próbuj :)
Natomiast jaki jest sens ekonomiczny tego przedsięwzięcia??? (Ale popieram próbę)

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

goofyx

Cytat: krzyszp w 24 Sierpień 2012, 00:18
Obawiam się, że ilość zagadnień z tym związanych przerasta jedną osobę - ale próbuj :)
Natomiast jaki jest sens ekonomiczny tego przedsięwzięcia??? (Ale popieram próbę)
na razie nic nie próbuje <- tak jak pisałem to są czysto teoretyczne rozważania.
nie podważam faktu, ze roboty nie jest dużo <- ale przy założeniu pisanie serwera a nie jego przepisywania stopień trudności maleje o dobre 50%

krzyszp

Wręcz przeciwnie....
Ostatnio zacząłem przerabiać system pisany przez lata w VB6 na .NET z podobnym założeniem - przecież jestem bogatszy o doświadczenia... Po 6 miesiącach się poddałem, nie da się w parę miesięcy zrobić czegoś, co powstawało przez lata i w dodatku jest pełne hack'ów poprawiających wydajność, responsywność, itd...

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

goofyx

Cytat: krzyszp w 24 Sierpień 2012, 00:55
Wręcz przeciwnie....
Ostatnio zacząłem przerabiać system pisany przez lata w VB6 na .NET z podobnym założeniem - przecież jestem bogatszy o doświadczenia... Po 6 miesiącach się poddałem, nie da się w parę miesięcy zrobić czegoś, co powstawało przez lata i w dodatku jest pełne hack'ów poprawiających wydajność, responsywność, itd...
Z jednej strony się zgadzam <- ale tak jak pisałem "tłumaczenie" źródeł dla windowsa trwało by jeszcze dłużej.
A te "hacki" wydajnościowe i tak są pewnie dopasowane od linux'a i na windzie nie miałyby prawa bytu.

Troll81

Napisać ten serwer w javie i będzie dostępny na każdą platformę z maszyna wirtualną javy....  %)

goofyx

Cytat: Troll81 w 24 Sierpień 2012, 07:49
Napisać ten serwer w javie i będzie dostępny na każdą platformę z maszyna wirtualną javy....  %)
Jak dla mnie Java jest strasznie muląca

Troll81

dla każdego i na każdej maszynie jest tak samo muląca :D to jest jej zaleta :D

goofyx

Cytat: Troll81 w 24 Sierpień 2012, 07:52
dla każdego i na każdej maszynie jest tak samo muląca :D to jest jej zaleta :D
buhahaha :D

Tobas

IMHO robienie portu na Windę jest całkowicie pozbawione sensu.
Strona projektu analogicznie miałaby stać na IIS?
Szkoda czasu, jest 1000 innych rzeczy (programistycznych) do zrobienia.
Nie warto robić czegoś co jest OPEN na komercyjne dystrybucje,
w dodatku pełne błędów i mało wydajne.

goofyx

Cytat: Tobas w 24 Sierpień 2012, 09:57
Strona projektu analogicznie miałaby stać na IIS?
dlaczego?
Przecież jest dobrze działający Apache dla windows

Troll81

Ale apache to tylko serwer WWW. serwer BOINC to zupełnie inne kwiatki.

goofyx

Cytat: Troll81 w 24 Sierpień 2012, 20:31
Ale apache to tylko serwer WWW. serwer BOINC to zupełnie inne kwiatki.
ale apacha uzylem w odniesieniu nie do calego serwera boinc, a tylko do tego ze mozna go uzyc zamiast mikrosofckiego IIS.

Troll81

akurat boincowi chyba dynda na czym stoi jego interfejs WWW. gorzej z resztą.....

goofyx

Cytat: Troll81 w 24 Sierpień 2012, 20:51
akurat boincowi chyba dynda na czym stoi jego interfejs WWW. gorzej z resztą.....
Trolu, wiemy o tym <- nie warto gnębić tego tematu!

Troll81

kod źródłowy serwera BOINC jest dostępny z tego co wiem. Dyskusja podobna zresztą juz się toczyła i powraca jak bumerang.....

http://boinc.berkeley.edu/dev/forum_thread.php?id=5527

goofyx

Cytat: Troll81 w 24 Sierpień 2012, 23:34
kod źródłowy serwera BOINC jest dostępny z tego co wiem. Dyskusja podobna zresztą juz się toczyła i powraca jak bumerang.....

http://boinc.berkeley.edu/dev/forum_thread.php?id=5527
Czytałem ten wątek, ale oni mówią o przepisani serwera.
W naszych aktualnych rozważaniach czysto teoretycznych jest mowa o budowie nowego serwera zgodnego komunikacyjnie z managere i np.: boincStats

Troll81

    The BOINC Server can be deployed on Windows Vista systems[citation needed] (as they are POSIX compliant) but the design structure of Windows makes this difficult and more expensive than just using off the shelf Linux.
http://en.wikipedia.org/wiki/BOINC_client%E2%80%93server_technology

goofyx

Cytat: Troll81 w 25 Sierpień 2012, 00:19
    The BOINC Server can be deployed on Windows Vista systems[citation needed] (as they are POSIX compliant) but the design structure of Windows makes this difficult and more expensive than just using off the shelf Linux.
http://en.wikipedia.org/wiki/BOINC_client%E2%80%93server_technology
Czyli nie mnie ni więcej  <- lepiej napisać serwera od zera specjalnie dla windy bo lepiej się ant tym wyjdzie..
Oczywiście czysto teoretycznie Trollu.

Troll81

gdyby w berkeley siedział tłum ludzi od klepania kodu to pewnie by w try miga zrobili port na winde. Ale prawda jest taka ze pisze to garstka pasjonatów i mocy im brakuje nawet na ogarnianie bugów w bieżącym wydaniu serwera nie wspominając o portowaniu. wiele ficzerów czeka na implementację jak choćby ten ze przy wstrzymywaniu pracy nie wstrzymywać projektów oznaczonych jako non-cpu intensive.....

goofyx

Cytat: Troll81 w 25 Sierpień 2012, 00:51
gdyby w berkeley siedział tłum ludzi od klepania kodu to pewnie by w try miga zrobili port na winde. Ale prawda jest taka ze pisze to garstka pasjonatów i mocy im brakuje nawet na ogarnianie bugów w bieżącym wydaniu serwera nie wspominając o portowaniu. wiele ficzerów czeka na implementację jak choćby ten ze przy wstrzymywaniu pracy nie wstrzymywać projektów oznaczonych jako non-cpu intensive.....
ale teraz pomieszałeś serwera z managerem ;) bo co ma wstrzymywanie projektu w managerze do serwera projektu.
Dlatego od początku odkąd przeglądałem źródła boinca na SVN uważam, że tak naprawdę 90% to manager, a tylko 10% to serwer.

Troll81

bo managera używa więcej osób niż serwera i maja oni z reguły mniejsze doświadczenie. A założenie dla serwera jesttaki że instalują go osoby które potrafia napisac własna aplikację licząca a więc wiedzę IT maja sporo większa od przeciętnego usera.

goofyx

Cytat: Troll81 w 26 Sierpień 2012, 19:43
bo managera używa więcej osób niż serwera i maja oni z reguły mniejsze doświadczenie. A założenie dla serwera jesttaki że instalują go osoby które potrafia napisac własna aplikację licząca a więc wiedzę IT maja sporo większa od przeciętnego usera.
nie no w porządku, ale nie mieszaj pojęć: napisanie aplikacji liczącej przy użyciu dostępnego api to jedno a administrowanie serwerem na linux'ie  to całkiem co innego