Subscribed unsubscribe Subscribe Subscribe

SE Can't Code

A Tokyo based Software Engineer. Not System Engineer :(

Actor modelについて

スクレイピングを実装したWebサービスpythonで作っているのだけれど、
作っている中でActorモデルなるものを知ったのでまとめる。

アクターモデルとは「全てのものはアクターである」という哲学が基本となっている。ソフトウェアの世界では平行システムを実装する際に利用されるモデルであり、オブジェクト指向と類似している。アクターモデルはアドレスを保持し、そのアドレスを元に非同期のメッセージのやり取りを行う。

で、何がいいのかと言うと以下が挙げられる。

・並列プログラミングの実装が容易
・粗結合を特徴とするため、ボトルネックのアクターを小さく分類できる。


要は、一つのタスクは他のタスクへ影響を与えることはなく並列で複数のタスクを実行することができるよ!並列処理やりたいときはアクター使おう!というわけです。


f:id:fixxman:20140921025711p:plain
<参照:「SearchEngineを作りながら学ぶソフトウェアツールプログラミング」>


①メッセージが投げられ、
②キューにメッセージが入り、
③ディスパッチャがメッセージ上のアドレスから、
④キックするタスクを振り分ける

ってのが簡単な一連の動きというわけです。



こいつを使うことで、たとえば一つのタスクが死んだとしても他の処理が落ちるといったことがなくなり、リスクをカプセル化することができるという点が優れているのだろうと思います。


以上です。
どうもありがとうございますた。

Remove all ads