2013-10-04 3 views
3

F #에서 다중 에이전트 응용 프로그램을 개발하려고합니다. 다음은 내가하려는 일입니다.F #의 느슨하게 결합 된 에이전트

  • 소수의 에이전트 (예 : 100)를 만듭니다.

  • 이러한 에이전트는 이벤트를 사용하여 비동기 적으로 서로 통신합니다.

  • 매우이 에이전트들 각각은 서로에 대한 지식이 없어야한다는 요구 사항이 있습니다.

  • 위의 요점은 에이전트 (예 : A1,이 경우 게시자)가 다른 에이전트 (예 : A2, 구독자)에게 이벤트를 보내려면 상담원 A2가 A1을 인스턴스화하여 알림을받습니다. F #의 이벤트 프레임 워크와 Reactive Extensions (Rx)이이 인스턴스화 방법을 따릅니다.

  • 내가 찾고있는 것은 에이전트가 해당 이벤트을 게시하는 에이전트를 인스턴스화하지 않고 이벤트 을 구독 할 수있게하는 F # 기반 이벤트 브로커 프레임 워크/미들웨어입니다. 즉, 에이전트는 시스템의 다른 에이전트에 대한 지식이 없다. 그들은 단지 존재하는 이벤트 목록을 알고 그 목록에서 (하나 이상의) 이벤트를 구독합니다. 가입 된 이벤트를 수신하면 에이전트는 해당 메소드 중 하나를 호출합니다.

  • 내가 생각할 수있는 한 가지 해결책은 이벤트 집계 도구 패턴 (예 : 프리즘)입니다. 그러나이 패턴의 F # 구현을 보지 못했습니다.

모든 참조/포인터를 이해할 수 있습니다. 미리 감사드립니다.

답변

0

Reactive Extensions 프레임 워크로 반응성 프로그래밍에 관심이 있습니다. 이를 통해 이벤트 스트림을 작성하고 조작 할 수 있습니다.

기본 소개 시나리오는 상담원이 이벤트를 구독하거나 이벤트를 보낼 수있는 Subject을 생성하여 프로듀서 또는 소비자로 활동하는 것입니다.

다른 이벤트 패턴의 구체적인 F # 구현이 있는지 확실하지 않지만 프레임 워크 자체는 믿을 수 없을만큼 강력하고 내 의견으로는 조사 할 가치가 있습니다.

+0

틀렸을 수도 있지만, 내가 이해 한 바에 따르면, Rx 프레임 워크는 인스턴스화가 필요합니다 (위에서 언급 한 것처럼). 예 : 상담원 (이 경우 게시자 인 A1)이 다른 상담원 (예 : A2)에게 이벤트를 보내려면 상담원 A2가 알림을 수신하기 위해 A1을 인스턴스화해야합니다. 내가 뭘 찾고있는 F # 기반 이벤트 - 중개인 - 프레임 워크/미들웨어는 에이전트가 이벤트를 구독하지 않고 * 해당 이벤트를 게시하는 에이전트를 인스턴스화 할 수 있습니다. 즉, 에이전트는 시스템의 다른 에이전트에 대한 지식이 없다. –