programing

자바스크립트 분산 컴퓨팅

oldcodes 2023. 9. 1. 21:18
반응형

자바스크립트 분산 컴퓨팅

자바스크립트 분산 컴퓨팅 프레임워크/프로젝트가 없는 이유는 무엇입니까?그 아이디어는 저에게 정말 멋진 것 같습니다. 왜냐하면:

  • 클라이언트가 브라우저입니다.
  • AJAX를 통해 반복 작업 수행 가능
  • 웹마스터는 각각의 자바스크립트를 연결하여 프로젝트를 도울 수 있습니다.
  • 수백만 또는 심지어 수십억 명의 사용자가 눈치채지 못한 채 DC 프로젝트를 지원할 것입니다.

이 주제에 대한 의견을 공유해 주시기 바랍니다.

편집: 또한 JSDC에 적합한 문제는 무엇이라고 생각하십니까?

예를 들어 GIMPS는 구현이 불가능합니다.

워커가 곧 분산 컴퓨팅 프레임워크를 만드는 데 사용될 이라고 생각합니다. 이 개념에 대한 초기 시도가 있습니다.비차단 코드 실행은 setTimeout을 사용하기 전에 수행될 수 있었지만, 대부분의 브라우저 공급업체가 최근에 JS 엔진 최적화에 집중했기 때문에 약간 의미가 있었습니다.이제 코드 실행 속도가 빨라지고 새로운 기능이 추가되었기 때문에 웹을 탐색할 때 백그라운드에서 무의식적으로 일부 작업을 실행하는 것은 아마도 몇 달 만에 가능할 것입니다. ;)

여기에는 '사용자 권리'에 대해 할 말이 있습니다.Foo.com 의 웹마스터에 Folding@의 스크립트가 포함된 상황을 설명하는 것처럼 들립니다.그들의 사이트에 있는 집.결과적으로, Foo.com 을 방문하는 모든 방문자들은 Folding@에 대한 CPU의 일부를 가지고 있습니다.Foo.com 를 탐색할 때까지 집에 있습니다.일종의 거부권이나 선택권이 없다면 악성 프로그램의 한 형태로 간주하고 그러한 행위를 한 사이트를 방문하는 것을 피할 것입니다.

그렇다고 확인이나 허가를 요구하는 시스템을 구축하지 못했다는 것은 아니지만, 남용될 가능성이 확실합니다.

저는 상품 추천의 맥락에서 이것을 직접 생각해 보았습니다.

첫째, 속도에 문제가 없습니다!IT 컴파일된 Javascript는 특히 숫자 코드의 경우 최적화되지 않은 C만큼 빠를 수 있습니다.

더 큰 문제는 백그라운드에서 Javascript를 실행하면 브라우저 속도가 느려지고 사용자가 웹 사이트를 좋아하지 않을 수 있다는 것입니다.

분명히 보안상의 문제가 있는데 어떻게 결과를 확인할 수 있습니까?

그리고 개인 정보 보호는 중요한 데이터가 손상되지 않도록 보장할 수 있습니까?

게다가, 그것은 꽤 어려운 일입니다.당신이 방문하는 횟수가 당신이 그것에 쏟아야 할 노력을 정당화할 수 있습니까?코드를 서버나 클라이언트 측에서 투명하게 실행할 수 있다면 더 좋을 것입니다.다른 언어를 Javascript로 컴파일하면 여기에 도움이 될 수 있습니다.

요약하자면, 그것이 널리 퍼지지 않는 이유는 개발자들의 시간이 서버 시간보다 더 가치 있기 때문입니다.사용자 데이터가 손실될 위험과 사용자에게 불편함이 잠재적인 이점을 능가합니다.

가장 먼저 떠오르는 것은 보안입니다.제가 아는 거의 모든 분산 프로토콜은 암호화 기능을 가지고 있기 때문에 보안 위험을 방지합니다.비록 이 주제가 그렇게 혁신적이지는 않지만..

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

또한 Wuala는 Java 애플릿을 사용하여 구현되는 분산 시스템입니다.

저는 pluraprocessing.com 이 비슷한 일을 하고 있다는 것을 알고 있습니다. 정확히 자바스크립트인지는 모르겠지만, 그들은 브라우저를 통해 자바를 실행하고 엄격한 보안으로 완전히 메모리 내에서 실행됩니다.

그들은 웹 크롤링(80개의 다리)처럼 애플리케이션을 성공적으로 실행한 50,000대의 컴퓨터 그리드를 보유하고 있습니다.

저는 우리가 어떤 문제에 대한 결과를 검증할 수 있다고 생각합니다.

품목 수가 많고 분류가 필요하다고 가정해 보겠습니다.우리는 그것을 worker-1에게 줄 것이고 worker-1은 우리에게 결과를 줄 것입니다.O(n) 시간으로 확인할 수 있습니다.결과를 생성하는 데 적어도 O(n*log(n)) 시간이 걸린다는 점을 고려하십시오.또한 n개의 아이템이 얼마나 큰지 고려해야 합니다.(네트워크 속도에 대한 설명)

또 다른 예로 f(x)=12345와 함수가 있습니다.x의 값을 찾는 것이 목적입니다. x를 일부 작업자의 결과로 대체하여 테스트할 수 있습니다.저는 검증할 수 없는 몇몇 문제들은 누군가에게 주기 어렵다고 생각합니다.

Javascript Distributed Computing의 전체 아이디어에는 여러 가지 단점이 있습니다.

  • 단일 장애 지점 - 노드 간에 직접 통신할 수 있는 방법이 없음
  • 노드의 자연스러운 실패 - 모든 노드가 브라우저만큼 오래 작동합니다.
  • 노드의 자연적실패따라 전송된 메시지가 수신된다는 보장은 없습니다.
  • 수신된 메시지가 전송되었다는 보장은 없습니다. 일부 해커가 개입할 수 있기 때문입니다.
  • 클라이언트 측의 성가신 부하
  • 윤리적 문제

단 하나의 장점이 있지만 매우 매력적입니다.

  • 수백만 개의 노드에 쉽고 자유롭게 액세스 - 오늘날 거의 모든 장치에 JS 지원 브라우저가 있습니다.

그러나 가장 큰 문제는 확장성과 성가신 문제 사이의 상관 관계입니다.당신이 매력적인 웹 서비스를 제공하고 클라이언트 측에서 컴퓨팅을 실행한다고 가정해 보겠습니다.컴퓨팅에 사용하는 사람이 많을수록 더 많은 사람이 짜증을 냅니다.더 많은 사람들이 짜증을 내고, 더 적은 사람들이 당신의 서비스를 이용합니다.문제(컴퓨팅), 확장성을 제한하거나 그 사이에 무언가를 시도할 수 있습니다.

구글을 예로 들어 보겠습니다.만약 구글이 클라이언트 쪽에서 계산을 실행한다면, 어떤 사람들은 빙을 사용하기 시작할 것입니다.몇 개나?짜증 수준에 따라 다릅니다.

Javascript Distributed Computing의 유일한 희망은 멀티미디어 서비스일 수 있습니다.CPU를 많이 사용하는 한 추가 로드는 아무도 눈치채지 못할 것입니다.

제 생각에 1번 문제는 자바스크립트의 컴퓨팅 비효율성입니다.순수한 c/c++의 응용 프로그램이 100배 더 빠를 것이기 때문에, 그것은 단지 가치가 없을 것입니다.

저는 얼마 전에 이것과 비슷한 질문을 발견했습니다. 그래서 저는 이것을 할 수 있는 것을 만들었습니다.웹 워커를 사용하고 스크립트를 동적으로 가져옵니다(그러나 Eval!은 없습니다).웹 작업자는 창 또는 DOM에 액세스할 수 없도록 스크립트 샌드박스를 만듭니다.당신은 여기서 코드를 볼 수 있고, 주요 웹사이트는 여기서 볼 수 있습니다.

라이브러리에는 처음 로드할 때 동의 팝업이 표시되므로 사용자는 백그라운드에서 무슨 일이 일어나고 있는지 알 수 있습니다.

언급URL : https://stackoverflow.com/questions/1257818/javascript-distributed-computing

반응형