2009-07-17 3 views
0

당면한 문제는 제목을 참조하십시오. 특정 "계산 서비스"(cpu intensive)는 다음과 같이 클라이언트에 제공됩니다. 모든 클라이언트 요청은 대기열을 관리하는 하나의 시스템으로 이동하고 서버 또는 CPU가 클러스터에서 사용 가능할 때 Java AppServer로 요청을 전달합니다. 어플리케이션 서버는 워크 플로우 관리에 ejb를 사용하고 워크 플로의 한 지점에서 계산 서비스를 호출해야합니다 (*). 계산 결과는 워크 플로에서 관리됩니다.Queueserver -> java appservers -> 계산 서버 클러스터

질문 : - 계산 서비스에 대한 호출이 RMI이거나 다른 옵션이 있어야합니까? - 어떤 제품이이 아키텍처를 "즉시 사용 가능"으로 지원합니다 (말하자면).

(*) 내부적으로 JNI를 사용하는 독립형 Java 프로그램으로 호출됩니다.

답변

1

모든 형태의 RPC가 수행합니다. RMI는 좋은 해결책이지만, 나는 Spring Remoting을 선호한다. 이 인터페이스를 사용하여 인터페이스를 정의하고 원격으로 작업을 수행하는 인터페이스 구현을 삽입 할 수 있습니다. 나는 네가 잘하고 싶은 일에 맞을 것이라고 생각한다.

+0

Spring Remoting은 완전한 Spring 프레임 워크를 필요로합니까, 아니면 독립적으로 사용할 수 있습니까? – Gerard

+0

스프링 프레임 워크는 모듈로 나뉩니다. 당신은 그 중 일부가 필요 하겠지만 전부는 아닙니다. – GaryF

0

계산 서버 인스턴스가 모두 동일한 대기열에서 수신 대기 중일 수 있습니다. 그런 다음 새로운 계산을 할 준비가되면 대기열에서 항목을 읽고 작업을 수행 한 다음 응답 대기열에서 응답을 팝합니다.

이것은 서비스 요청에 대해 몇 가지 엔진을 사용하는 아주 간단한 방법입니다. 대기열 시스템의 가용성 특성은 이해되고 제어되어야합니다.

워크 플로 엔진은 계산 서버로 요청을 보내고 응답을 기다려야합니다. 이것은 워크 플로 엔진이 일종의 "외부 이벤트에 대한 일시 중지"기능을 갖게됨을 의미합니다. 워크 플로우는 또한 인간이 질문에 응답하는 것을 합리적으로 기다릴 수 있기 때문에 이것은 매우 공통적 인 특징입니다.

이렇게 자연스럽게 작동하는 상용 워크 플로 엔진이 하나 이상 있습니다.

+0

적어도 하나는 존재합니까? 즉 어느 것을 의미합니까? – Gerard

관련 문제