일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Hyperledger fabric gossip protocol
- play 강좌
- 스칼라 강좌
- 하이브리드앱
- play2 강좌
- Play2
- Play2 로 웹 개발
- Golang
- hyperledger fabric
- 파이썬
- 블록체인
- 플레이프레임워크
- 파이썬 강좌
- 스칼라 동시성
- 하이퍼레저 패브릭
- CORDA
- akka 강좌
- Adapter 패턴
- 안드로이드 웹뷰
- 파이썬 동시성
- 주키퍼
- 엔터프라이즈 블록체인
- 스칼라
- 파이썬 데이터분석
- Akka
- 스위프트
- 그라파나
- Actor
- 파이썬 머신러닝
- 이더리움
- Today
- Total
HAMA 블로그
Actor 모델 과 ActiveObject 패턴의 차이 본문
http://brad2014.tistory.com/215 이전 포스팅에서 언급된 Actor 모델 과 ActiveObject 패턴의 차이에
대한 논문이 있다. http://members.unine.ch/anita.sobe/res/RR-I-AS-2014.06.1.pdf
간단 요약
역사
- 멀티코어 프로그래밍의 시대가 왔고 장점에 대한 소개
- 멀티쓰레드 프로그래밍의 어려움 소개 ( 데드락, 레이스 컨디션, 일관성깨짐등)
- 그런 환경에서 좀더 안전하고 빠르게 개발하기위하여 Actor 모델같은 동시성 패턴이 생겨나다.
- 1973년 에 Actor 모델이 소개되었고, 인공지능의 멀티 에이전트 디자인에 의해 발전되어졌다.
- Actor 모델은 그후 Actove Object 패턴같은 다양한 패턴들에 영향을 주었다.
차이
- 구조적으로 두 패턴모두 스케쥴러와 큐를 가지고있다.
- 구조적으로 ActiveObject 는 프록시를 활용하며 , Future 객체를 사용한다.
- 구조적으로 Actor 패턴은 ActiveObject 에 비해서 자유성이 높다.
- 메세징/통신측면에서 ActiveObject 패턴은 미리 정해진 함수호출을 통해서 잡을 전달한다.
- 메세징/통신측면에서 Actor 패턴은 문자열을 보내며, 그 문자열 포맷은 매우 자유롭다.
따라서 Actor 패턴에서 각각의 Actor 의 OnRecvier 구현은 매우 유연하다.
- Actor 모델은 더욱 확장하기 쉬운데 어떤 액터나 프록시가 될수있고 다른 액터와 분산해서
작업부하를 가질수있다.
- 대부분의 AOM 구현들은 정해진 서번트와 함께 쓰레드풀에 의존적이다.
- 양쪽 모델모두 가능한 이미 존재하는 Actor 나 ActiveObject 를 재사용한다는걸 알아둬라.
- 보통 Actor 모델은 큐가 제한이 없으며, ActiveObject 는 큐의 크기에 제한이 있다.
다양한 패턴들
object : 객체로 호출하면 바로 반응한다.
actor : 능동적인 객체 ( 즉 자신의 쓰레드가 있고 큐를 가지고있다 ) 호출하면 바로 응답하지 않는다.
reactor : actor 에 추가적으로 해당 이벤트에 대한 핸들러가 매핑되어서 디스패치하는 구조. (selector 느낌)
proactor : 행위를 actor 에 넘겨서 그 행위에 대한 결과를 받은 구조. ( IOCP 느낌)
activeobject : 행위할수 있는 actor 에게 자신의 요청 사항을 넘겨준후에 future 객체를 이용하여 결과 파악을 함.
'디자인패턴' 카테고리의 다른 글
JDBC 와 디자인패턴 - 5. Adapter 패턴 (0) | 2015.08.16 |
---|---|
JDBC 와 디자인패턴 - 4. chain of Responsibility 패턴 (0) | 2015.08.14 |
JDBC 와 디자인패턴 - 3. State 패턴 (0) | 2015.07.30 |
JDBC 와 디자인패턴 - 1.소개 및 2. Abstract Factory 패턴 (0) | 2015.07.28 |
Interpreter 패턴 (0) | 2015.05.06 |