2010-05-28 5 views
6

전 세계 곳곳을 여행 (예 : 일부 물리적 인 힘에 따라)하려는 계획이 있었는지, 아마도 계산 자원/노드를 점유하고 자유롭게 할 수있는 프로그램이 있는지 물어보고 싶습니다. 문자 적으로 이는 일부 에이전트 기반 시스템이 단지 위치와 (필연적으로 어느 정도까지) 구성을 정기적으로 변경한다는 것을 의미합니다.여행 소프트웨어. 그게 개념인가요?

것 예 : 외부 센서 및 무료 컴퓨터가 있다고 가정 - 노드 - 공간 전역을; 센서에서 이니셜 라이저를 따르기 위해 자체 복제 에이전트가 의미가 있지만 물리적 비즈니스가 진행되는 곳에서만 계산이 국한되도록 제한적인 방식으로 적용 할 수 있습니다.

이 질문은 단지 '이론적 인'재미를위한 것이라는 점을 강조하고 싶습니다. '오래된'(outplated?) 에이전트 처리의 최적화를 제외하고 언급 된 제한 사항의 실질적인 이점을 볼 수 없기 때문입니다. 하지만 어쩌면 관심이있을 수 있습니다. 고맙습니다!

편집 : 같은 에이전트의 삭제가 거의 개발자의 우려하지만 그것은 바이러스가 예를 맞는 것이 분명하다. 좀 더 정확히 말하자면, 나는 '여행하는'소프트웨어에 관심이 있습니다. 즉, 에이전트의 수 (또는 최소 주문량)가 일정 할 때, 그리고 여행하는 시스템 전체 일뿐입니다.

+7

자기 복제 및 전파 컴퓨터 바이러스와 같은 뜻입니까? – FrustratedWithFormsDesigner

+0

허, 나는 그런 뜻이 아니었지만, 가장 명백한 관련 예제를 제공하기 위해 +1했습니다. – Bubba88

+1

당신의 질문이 무슨 뜻인지는 모르겠지만, 분산 된 운영체제의 경우, 이상한 것은 에드 우드 영화의 이름을 따서 명명되었습니다. /en.wikipedia.org/wiki/Plan_9_from_Bell_Labs – HostileFork

답변

1

나는 당신이 찾고있는 것을 모바일 에이전트라고합니다.

동의어 : 나는 바이러스가 적합하다고 생각하지 않습니다. 바이러스의 특징 중 하나는 이 자체적으로 이동할 수는 없지만 전파하려면 사람이 사용하는 사람에 달려 있다는 것입니다. 도 유효합니다.

+0

물론 모바일 에이전트! 그게 제가 설명하려고했던 것입니다. +1과 정답에 감사드립니다. – Bubba88

2

움직이는 프로그램으로 잘 수행 할 수있는 것은 널리 배포 된 프로그램에서 더 잘 수행 될 수있는 것처럼 보입니다.

+0

내 제안이 실제로 비효율적으로 구현 될 수 있다는 데 동의합니다. 그러나 역사에 똑같은 것이 있다면 나는 관심이있었습니다. 좋은 조언 BTW, 마스터 노드는 실질적으로 가치있는 솔루션입니다. – Bubba88

+0

널리 분산 된 시스템이 예를 들어. 모바일 요원? – Bubba88

5

obiquituous 컴퓨팅의 연구 커뮤니티는 이러한 종류의 문제에 많은 작업을 수행합니다. 예를 들어

, 당신은 당신이 주변 장치를 기반으로 특정 상호 작용 양상으로 표시 얻을 문서에서 작업하는 경우. 당신이 의사 소통을한다면, 똑같이. 많은 위치 기반 컴퓨팅 애플리케이션이 비슷한 것을한다고 주장 할 수 있습니다. 국방부는 상황에 맞는 자동 보조 장치 등에 대한 연구를 후원했습니다.

지구본이 분산 된 "클라우드"라고 가정하면 컴퓨팅이 실제로 이루어지는 위치가 알려지지 않고 투명 해집니다. 중요한 것은 상황입니다. GPS 지원 장치가 유비쿼터스 화되고 비디오 처리가 더 저렴 해짐에 따라 (50 달러짜리 카메라가 얼굴을 볼 수있게 됨) 컨텍스트의 품질이 확실히 향상되고 있습니다. 그런 의미에서 많은 프로그램이 이미 설명하고있는 비전을 나타냅니다. 당신은 전 세계적으로 처리 전송 네트워크 및 스크립트 마이그레이션의 일종이있는 경우

0

예, 당신은 로그인 스크립트가 위치 정보의 어떤 종류에 따라, 가까운 노드로 마이그레이션있을 수 있습니다.

1

나는 그것으로 자신을 일한 적이 있지만, 프로그래밍 언어 Obliq는 계산 같은 종류의 기어드 것으로 보인다.

Obliq가 네트워크를 통해 자신의 행동을 리디렉션 할 수 있습니다 객체 분산 프로그래밍의 매우 역동적 인 형태를 해결하고, 여기서 계산이 로밍 사이를 할 수 있습니다 :이 웹 페이지에서 참조 Obliq paper (12 페이지)에서 네트워크 사이트.

0

아마도 Botnet의 주검을 가까이서 찾을 수 있습니다. 분명히 위의 "바이러스"답변과 매우 유사합니다 : 바이러스는 일반적으로 복제, 확산, 사전 프로그래밍 된 불편한 작업을 수행하는 반면, 봇넷은 '일반적으로 사기가 나쁜 미래에 대한 기계를 제어하는 ​​것입니다. 동적 인 목적.'나는 호스트 (귀하의 "에이전트")가 botnet으로보다 쉽게 ​​변경 될 수 있다고 생각합니다.

1

아마도 이것은 간접적으로 Jini의 교의 중 하나입니다. 이 경우, 틀림없이, 그것은 드라이버를 다운로드하는 문제입니다. 그러나 자바 기반이기 때문에, 장치 간 이동 코드의 개념은 시스템의 핵심 철학 중 하나입니다.

이제이 코드는 그 자체로 "이동"하지 않고 복사됩니다. 서버를 "떠나지"않습니다.

하지만 자바를 사용하면 비어있는 JVM과 어떤 종류의 셸에서 시작하는 기본 사항을 볼 수 있으므로 한 JVM에서 다른 JVM으로 "이동"하는 코드를 작성하는 것이 매우 간단합니다.

이와 같은 과정을 볼 수 있습니다.

1) 시스템 A에는 상태 및 로컬 클래스가있는 응용 프로그램이 실행되고 있습니다. 2) 시스템 B가 시스템에서 실행중인 "전송 쉘"을 가지고 있습니다. 3) A가 B 으로 응용 프로그램을 이동하려고합니다. 4) A는 응용 프로그램을 일시 중지하고 해당 상태를 직렬화합니다. 이는 단지 주식 Java 객체 직렬화를 사용하는 것처럼 간단 할 수 있습니다. 이 직렬화 된 객체에는 "다시 시작"메서드가 있습니다. 5) B는 시스템 A의 클래스를 참조하는 ClassLoader를 설정합니다.이 클래스 로더는 요청시 클래스를 A에서 B로 복사 한 다음 로컬로 저장할 수 있습니다. 6) A는 직렬화 된 응용 프로그램 상태를 B로 역 직렬화합니다. 7) ClassLoader가 B에서 클래스 파일을 가져 오기 시작합니다. 응용 프로그램이 비 직렬화 될 때 8) 객체가 deserialize되면 B가 "restart"메소드를 호출하고 응용 프로그램이 계속 실행됩니다. 9) 응용 프로그램에 대해 "잊어 버렸습니다."B는 계속 A에서 분리되어 실행 중입니다.

분명히 이것은 순진하며 잠재적 인 문제가 있습니다.

그러나 가상 시스템을 사용하는 경우 어떻게 작동하는지 확인할 수 있습니다.

현대 VM 아키텍처는이 프로세스, 실제로이 프로세스, VM 실행 스냅 샷, 이미지를 다른 시스템으로 이동 및 시작하는 작업을하고 있습니다. VM의 기본은 이것을 "쉬운"것으로 만듭니다.

Java 예제는 가상화 엔지니어가 될 필요없이 사용할 수있는 것입니다.

+0

고마워,하지만 Jini와 같은 플랫폼은 그런 것들을 훨씬 더 직접적으로 지원하기위한 것이지만 Jini 서비스/컨테이너는 모든 컴퓨터에서 실행될 것입니다. 하지만 오히려 '일반'이기 때문에, 내 생각에 맞을 것 같아. :) – Bubba88

관련 문제