Javascript Distributed Computing [zamknięty]

Dlaczego nie ma żadnych rozproszonych frameworków / projektów Javascript? Pomysł wydaje mi się absolutnie zajebisty Bo:

  • Klientem jest przeglądarka
  • iteracja może być wykonana za pomocą AJAX
  • webmasterzy mogą pomóc projektom, łącząc odpowiedni Javascript
  • miliony, a nawet miliardy użytkowników pomogłyby projektom DC, nawet nie zauważając

Podziel się swoimi poglądami na ten temat.

EDIT: no i jakie problemy czy uważasz, że nadaje się do JSDC?

Na przykład GIMPS byłby niemożliwy do zaimplementowania.

Author: Alix Axel, 2009-08-11

9 answers

Pierwsze, co przychodzi mi do głowy, to bezpieczeństwo. Prawie wszystkie protokoły rozproszone, które znam, mają szyfrowanie, dlatego zapobiegają zagrożeniom bezpieczeństwa. Chociaż ten temat nie jest tak innowacyjny..

Http://www.igvita.com/2009/03/03/collaborative-map-reduce-in-the-browser/

Również Wuala jest systemem rozproszonym, który jest zaimplementowany przy użyciu apletu java.

 3
Author: Sorantis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-10 23:49:10

Myślę, że Web Workers wkrótce zostaną wykorzystane do tworzenia rozproszonych frameworków obliczeniowych, są pewne wczesne próby tej koncepcji. Nieblokujące wykonywanie kodu mogło zostać wykonane przed użyciem setTimeout, ale miało to trochę sensu, ponieważ większość dostawców przeglądarek skupiła się niedawno na optymalizacji swoich silników JS. Teraz mamy szybsze wykonywanie kodu i nowe funkcje, więc nieświadomie uruchamianie niektórych zadań w tle podczas przeglądania Internetu to prawdopodobnie tylko kwestia miesięcy ;)

 6
Author: pawel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-11 00:07:11

Jest tu coś do powiedzenia o "prawach użytkownika". Wygląda na to, że opisujesz sytuację, w której webmaster dla Foo.com zawiera skrypt, powiedzmy, Folding @ Home na swojej stronie. W rezultacie wszyscy odwiedzający Foo.com mieć jakiś ułamek ich procesora "oddany" do Folding@Home, dopóki nie odejdą od Foo.com.bez pewnego rodzaju zrzeczenia się lub opt-in, uznałbym to za formę złośliwego oprogramowania i unikałbym odwiedzania jakiejkolwiek strony, która to zrobiła.

That ' s not to say you nie można zbudować systemu, który poprosił o potwierdzenie lub pozwolenie, ale istnieje możliwość nadużycia.

 5
Author: Annabelle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-10 23:57:52

Zastanawiałem się nad tym osobiście w kontekście rekomendacji pozycji.

Po pierwsze, nie ma żadnego problemu z prędkością! JIT skompilowany javascript może być tak szybki jak nieoptymalizowane C, szczególnie dla kodu numerycznego.

Większy problem polega na tym, że uruchamianie javascript w tle spowalnia przeglądarkę i dlatego użytkownicy mogą nie lubić Twojej strony, ponieważ działa ona powoli.

Jest oczywiście kwestia bezpieczeństwa, jak można zweryfikować wyniki?

I prywatność, czy możesz zapewnić, że poufne dane nie zostaną naruszone?

Poza tym, jest to dość trudna rzecz do zrobienia. Czy liczba odwiedzin, które otrzymujesz, może usprawiedliwiać wysiłek, który będziesz musiał włożyć w to? Byłoby lepiej, gdybyś mógł uruchomić kod w sposób przejrzysty na serwerze lub po stronie klienta. Kompilowanie innych języków do javascript może tutaj pomóc.

Podsumowując, powodem, dla którego nie jest on rozpowszechniony, jest to, że czas deweloperów jest cenniejszy niż czas serwera. Ryzyko wystąpienia utrata danych użytkownika i niedogodności dla użytkowników przeważają nad potencjalnymi zyskami.

 4
Author: dan_waterworth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-08 13:15:03

Wiem o pluraprocessing.com robiąc podobne rzeczy, nie jestem pewien, czy dokładnie javascript, ale uruchamiają Javę przez przeglądarkę i działa całkowicie w pamięci ze ścisłym bezpieczeństwem.

Mają 50 000 komputerów, na których z powodzeniem uruchamiają aplikacje nawet takie jak web-crawling(80legs).

 1
Author: Munish Goyal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-10 10:58:42

Myślę, że możemy zweryfikować wyniki jakiegoś problemu.

Załóżmy, że mamy n liczbę elementów i musimy je posortować. Damy to robotnikowi-1, robotnik-1 da nam wynik. Możemy to zweryfikować O (N) czasie. Proszę wziąć pod uwagę, że uzyskanie wyniku zajmuje co najmniej O(n*log(n)). Dodatkowo powinniśmy rozważyć, jak duże jest N elementów? (troska o szybkość sieci)

Inny przykład, f (x)=12345, i funkcja jest podana. Celem jest znalezienie wartości x. możemy ją przetestować przez zastąp x jakimś wynikiem pracy. Myślę, że niektóre problemy, które nie są weryfikowalne, są trudne do przekazania komuś.

 1
Author: Melug,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-21 02:12:49

Cała idea JavaScript Distributed Computing ma wiele wad:

  • pojedynczy punkt awarii - nie ma bezpośredniego sposobu komunikowania się między węzłami
  • naturalne awarie węzłów - każdy węzeł działa tak długo jak przeglądarka
  • Brak gwarancji, że wysłana wiadomość zostanie kiedykolwiek odebrana - zgodnie z naturalnymi awariami węzłów
  • nie ma gwarancji, że otrzymana wiadomość została kiedykolwiek wysłana - ponieważ niektórzy hakerzy mogą wtrącać
  • irytujące obciążenie po stronie klienta
  • problemy etyczne

Choć jest tylko jedna (ale bardzo kusząca) zaleta:

  • łatwy i darmowy dostęp do milionów węzłów - prawie każde urządzenie ma obecnie JS obsługujące przeglądarkę

Jednak największym problemem jest corelacja między skalowalnością a irytacją . Załóżmy, że oferujesz atrakcyjną usługę internetową i uruchamiasz komputer po stronie klienta. Więcej ludzi, których używasz do komputerów, więcej ludzi jest zirytowanych. Więcej osób jest zirytowanych, mniej osób korzysta z Twoich usług. Cóż, możesz ograniczyć irytację( przetwarzanie), skalowalność lub spróbować czegoś pomiędzy.

Rozważ na przykład google. Jeśli google będzie uruchamiać obliczenia po stronie klienta, niektórzy ludzie zaczną korzystać z bing. Ilu ? Zależy od poziomu irytacji.

Jedyną nadzieją dla Javascript mogą być usługi multimedialne. Dopóki zużywają dużo procesora, nikt nie będzie zwróć uwagę na dodatkowe obciążenie.

 1
Author: Scony,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-31 19:29:13

Myślę, że problemem nr 1 jest nieefektywność javascript w informatyce. Nie byłoby to po prostu tego warte, ponieważ aplikacja w czystym c / C++ byłaby 100 razy szybsza.

 -1
Author: Thinker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-10 23:46:09

Jakiś czas temu znalazłem podobne pytanie, więc zbudowałem coś, co tak robi. Używa Web workerów i pobiera Skrypty dynamicznie (ale nie Eval!). Web workers piaskuje skrypty, aby nie mogli uzyskać dostępu do okna lub DOM. Możesz zobaczyć kod tutaj , a główną stronę tutaj

Biblioteka ma wyskakujące okienko zgody przy pierwszym załadowaniu, więc użytkownik wie, co dzieje się w tle.

 -1
Author: Flarp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-10 23:52:55