난 당신이 토론을 가져 기뻐요, 내 욕망 Akka 정적 입력의 어떤 수준을 추가 할 수는 오래된 내 프로젝트 참여. 1.x를 살펴보면 akka.actor.Channel [T]를 염두에 두었고 2.1과 2.2에는 매크로 기반 실험으로 Typed Channels가 있습니다. 후자는 사고 실험에서 코드로 실제로 넘어갔습니다. 정적 유형이 매우 동적 인 시스템과 상호 작용하는 방식에 대한 느낌을 얻기 위해 사용해 볼 수 있습니다.
입력 된 채널의 주요 단점은 부적절한 복잡성 (형식 매개 변수가 너무 많고 형식 수준 목록 및지도가 포함 된 너무 복잡한 형식)이었습니다. 우리는 점진적으로 올바른 균형을 맞출 수있는 디자인에 점차 집중하고 있습니다 만, 본질적으로 Akka 액터들로부터 sender
을 제거하는 것을 의미합니다 (이는 미래의 변형에서 사물을 마무리하는 것과 관련하여 매우 환영받는 다른 이점도 있습니다). 그것의 요지는 ActorRef [T]가 받아들이는 메시지 유형 (Props [T], Actor [T] 등의 명백한 노크 - 온 효과)으로 매개 변수화하는 것입니다. 그런 다음 액터는 적절한 유형의 자체에 대한 참조를 노출 할 수 있으며, 형식 지우기를 위해 특정 메시지의 다른 액터로 보냅니다. 이것은 심지어 메시지 프로토콜, a.k.a. 세션 유형의 공식화 또는 적어도 그것의 근사화를 허용합니다.
Derek는 액터 모델이 실제로 유형에 제약을받지 않는 이점을 얻었음을 나타냅니다. 메시지 라우터는 메시지 모델을 통과하는 메시지에 대해 반드시 알아야 할 필요는 없습니다. 라우터 자체를 매개 변수화하기 위해 얼마나 잘 작동하는지는 아직까지 알 수 없지만 일반적으로 이러한 라우팅 단계는 유형 정보를 파괴합니다. 우리가 할 수있는 일은 많지 않습니다. 어떤 유형 검사가 전혀없는 것보다 나을 때 좋다고 생각하는 점은 나에게 잘 어울리는 점이다. 차이점은 개발자에게 분명히 분명하다. 우리는 잘못된 보안 감각을 피해야한다.
이렇게하면 Endre가 정적 검증에서 동시 동작에 액세스 할 수 없다는 유효한 의미를 갖게됩니다. 문제는 비 결정적인 액션이 타입 분리를 야기한다는 메시지 손실보다 훨씬 더 넓어서 타입 구조의 기하 급수적 인 폭발을 통해 멋진 정적 타입을 죽입니다. 이것은 결정적으로 타입을 사용하는 것만을 타입으로 표현할 수 있음을 의미합니다. 타입 A의 메시지를 액터로 보내면 타입 B의 메시지를 얻을 수 있습니다 (이것은 액터 리셉션 [B] A와 B는 일반적으로 "이 액터에서 허용하는 모든 명령"과 "보낼 가능성이있는 모든 응답"과 같은 합계 유형입니다. 컴파일러가 실제로 발생하는지 여부를 알 수 없으므로 액터의 질적 인 상태 변화를 모델링하는 것은 불가능합니다.
비록 약간의 빛이 있습니다. 대상의 ActorRef [C]를 포함하는 메시지 B를받은 경우 메시지 A의 효과가 발생했다는 증거가 있으므로 배우가 지금 있다고 가정 할 수 있습니다 메시지 C를 허용하는 상태입니다. 그러나 이것은 보장이 아니며, 그 동안에 배우가 추락했을 수 있습니다.
이 중 어느 것도 원격 메시징에 의존하지 않습니다. 액터를 동시성과 분배 부분으로 분리하려는 당신의 욕구는 매우 이해하기 쉽습니다. 그런 다음 동시성과 배포가 실제로 동일하다는 것을 깨닫게되었습니다. 프로세스는 실행이 공간 또는 시간으로 분리되어있는 경우 즉, 분산된다는 의미에서 동시에 실행될 수 있으며 반면에 유한 한 광속은 분산 된 프로세스를 의미합니다 정의에 의해 동시성이 될 것입니다.우리는 액터에 대한 캡슐화와 구획화를 원하며 메시지를 사용하여 통신합니다.이 모델은 두 명의 액터가 항상 서로 분리되어 동일한 JVM에서 실행되는 경우에도 배포된다는 것을 의미합니다 (대기열이 가득 차거나 실패 할 수 있음, 통신이 가능함). 신뢰성은 네트워크의 경우보다 훨씬 높지만 완전히 신뢰할 수는 없습니다. 현대 프로세서에 대해 생각해 보면, 다른 코어와 특히 소켓은 네트워크로 분리되어있어, 그랜드 아빠의 기가비트 이더넷보다 훨씬 빠릅니다.
이것은 바로 액터 모델이 현재 및 미래의 응용 프로그램에서 독립적 인 조각을 모델링하는 데 적합한 추상화라고 생각하는 이유입니다. 하드웨어 자체가 점점 더 많이 분산되고 배우가 그 본질을 파악하기 때문입니다. . 그리고 제가 위에서 논한 것처럼 정적 인 타이핑 측면에 개선의 여지가 있습니다.
나는 Varga의 설명이 가장 매력적이지만,이 모든 논의는 매우 유용합니다. 감사 – jcc333