문제

나는 죽이는데 여기에 문제가.을 목표로하고 있는데을 구축하는 프레임워크의 통합을 허용하는 다양한 트래픽 시뮬레이션 모델이다.이러한 통합을 기반으로 공유의 링크를 수행하고 있으므로,링크 비용,그리고 사이에 차량 시뮬레이션.

을 분산 시뮬레이션,계획하는'코디네이터는'(성급 호텔 토폴로지).참여하는 모든 시뮬레이션을 등록하는것,그리고 이야기만 코디네이터로 활동하고 있습니다.코디네이터는 다음 좌표가 실행의 다양한 작업을 각각 시뮬레이션입니다.

간단한 예제의 유통,문제는 경우 하나의 시뮬레이션은'책임'의 특정 개체에 다음과 같습니다.다른은'담'의 다른 도로입니다.그러나,이러한 도로 상호 연결되어 있(따라서,우리가 필요한 동기화 간에 이러한 시뮬레이션,그리고 필요한 교환할 수 있도록 데이터/메소드를 호출을 원격으로).

나는 보았는 RMI 고 생각될 수 있 이 작업에 적합합니다.(추상을 만드는 와이어 신호 분야).

이 제정신?문제는 여기서는 시뮬레이션 참가자들 필요가 중앙 집중화 의 데이터 저장에'코디네이터'하도록 명시적 동기화 간의 시뮬레이션.또한,일부 시뮬레이션 필요할 수 있는 구성 요소 또는 방법에서 다른 시뮬레이션.(따라서 아이디어를 사용하여 RMI).

나의 기본적인 접근 방식은'코디네이터'를 실행하는 거대한 RMI 레지스트리에 있습니다.모든 시뮬레이션은 단순히 보이는 모든 것을 레지스트리에서 보장하는 올바른 객체에 사용되는 각 단계입니다.

누군가에 대해 어떠한 조언을 아래로 향하고 이 경로는?

도움이 되었습니까?

해결책

을 확인할 수 있습 out 굳이 다 한다.굳이 다가는 오픈 소스 트랜잭션,배포/분할의 구현 큐,항목,지도,세트,목록,잠금 및 집행 서비스입니다.그것은 작업하기 매우 쉽;단가 hazelcast.jar 귀하의 클래스 경로를 시작합니다.거의 구성이 필요하지 않습니다.

에 관심이 있다면 실행하는 실행 가능한,호출에는 작업을 분산 방식으로,다음을 확인하시기 바랍산 집행자의 서비스 설명서 http://code.google.com/docreader/#p=hazelcast

굳이 다 아래에서 아파치 라이선스 및 엔터프라이즈급 지원에도 사용할 수 있습니다.

다른 팁

제정신입니까? IMHO NO. 그리고 왜 그런지 말해 줄게. 그러나 먼저 이것이 복잡한 주제라는 면책 조항을 추가하므로 모든 대답은 표면을 간신히 긁는 것으로 간주해야합니다.

먼저 나 자신을 반복하는 대신 Java 그리드/클러스터 기술 요약 내가 한동안 썼다. 대부분 완전한 목록입니다.

Star Topology는 "순진한"(나쁜 방식으로는 나쁜 방식으로 의미하지는 않습니다)의 "자연"은 포인트 간 포인트가 간단하고 중앙 집중화 된 키 컨트롤러 로직도 간단하기 때문에 구현됩니다. 그러나 결함에 장애가되지 않습니다. 확장 성 문제와 단일 병목 현상을 도입합니다. 그것은 의사 소통 비 효율성을 소개합니다 (즉, 포인트는 센터를 통해 2 단계 프로세스를 통해 통신).

이것에 대해 정말로 원하는 것은 아마도 클러스터 (데이터/컴퓨팅 그리드가 아닌) 솔루션 일 것입니다. 테라코타. 이상적으로 당신은 볼 것입니다 오라클 일관성 그러나 의심의 여지가 없습니다 (무료에 비해). 그래도 환상적인 제품입니다.

이 두 제품은 여러 가지 방법으로 사용될 수 있지만 두 가지의 핵심은 캐시를 분산지도처럼 처리하는 것입니다. 당신은 물건을 넣고, 물건을 꺼내고, 캐시를 바꾸는 코드를 발사합니다. 이와 관련하여 일관성 (내가 더 친숙한)은 환상적으로 잘 척도입니다. 이들은 진정한 클러스터의 경우 더 "서버"기반 제품입니다.

보다 분산 된 모델을보고 있다면 아마도 더 많은 SOA 기반 접근법을보고 있어야합니다.

살펴보십시오 http://www.terracotta.org/

분산 된 Java VM이므로 클러스터링 된 응용 프로그램이 표준 Java 응용 프로그램과 다르게 보이지 않는 이점이 있습니다.

나는 그것을 응용 프로그램에 사용했으며 속도는 지금까지 매우 인상적입니다.

메시지 대기열 접근법 사용을 고려해 보셨습니까? JMS를 사용하여 일련의 서버/노드 사이에서 작업 및 결과를 통신/조정할 수 있습니다. Amazon의 SQS (Simple Deue Service : Aws.amazon.com/sqs)를 사용하고 EC2에서 서버를 실행하여 필요에 따라 확장 및 아래로 확장 할 수 있습니다.

내 2 센트.

Jini를 살펴보십시오. 그것은 당신에게 약간의 사용 일 수 있습니다.

글쎄, Jini, 또는 더 구체적으로 Javaspaces는 문제에 대한 간단한 접근 방식을 시작하기에 좋은 곳입니다. Javaspaces를 사용하면 마스터 (케이스의 코디네이터)가 Javaspace에 작업을 작성하고 해당 작업을 쿼리하고 처리하여 마스터를 위해 결과를 다시 작성하는 마스터 작업자 모델을 구현할 수 있습니다. 문제가 당황스럽게 평행하지 않으며 작업자가 데이터를 동기화/교환해야하므로 솔루션에 약간의 복잡성이 추가됩니다.

Javaspaces를 사용하면 일반 RMI (기본 "와이어 프로토콜"으로 내부적으로 Jini 프레임 워크에서 사용하는 일반 RMI를 사용하는 구현에 훨씬 더 많은 추상화가 추가됩니다.

이것을 살펴보십시오 기사 소개를 위해 태양에서.

그리고 Jan Newmarch 's 지니 튜토리얼 지니를 배우기 시작하기에 좋은 곳입니다

그리드 및 클라우드 컴퓨팅에 중점을 둔 다른 답변에 추가 된 것처럼 시뮬레이션 모델에는 시뮬레이션 시간이라는 하나의 고유 한 특성이 있음을 알 수 있습니다.

분산 시뮬레이션 모델을 병렬로 실행하고 동기화하면 두 가지 옵션이 있습니다.

  • 각 시뮬레이션 모델에 고유 한 시뮬레이션 시계 및 이벤트 목록이 있으면 네트워크를 통해 동기화해야합니다.
  • 또는 모든 분산 (SUB) 모델에 대해 "시간을 선택"하는 단일 시뮬레이션 클록 및 이벤트 목록이있을 수 있습니다.

첫 번째 옵션은 HLA (High Level Architecture)를 위해 광범위하게 연구되었습니다. http://en.wikipedia.org/wiki/ieee_1516 스타터로.

그러나 두 번째 옵션은 더 간단하고 오버 헤드가 적습니다.

그리드 게인 좋은 대안입니다. "분할 및 집계에 대한 직접 API 지원"및 "분산 작업 세션"을 사용하여 맵/축소 구현이 있습니다. 탐색 할 수 있습니다 그들의 예 그리고 그들 중 일부가 당신의 필요에 맞는지 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top