免責事項: 著者は OTP の初心者であり、Erlang の構文、プロセス、およびメッセージに関する基本的な知識を持っています。
Erlang での動作の概念を理解しようとしていますが、gen_server のような動作の原理全体を理解するのを妨げる多くの疑問が頭に浮かびます。
さて、gen_server の公式ドキュメントには、クエリと応答の矢印で接続されたサーバーと 3 つのクライアントの素敵な図が示されています 。
しかし、その概念をさらに理解しようとするたびに行き詰まります。
頭の中で 1 つの大きな概念に組み込むことができない概念がたくさんあります。
- 動作の実装;
- 行動コンテナ;
- 動作インターフェイス;
- コールバック モジュール;
- コールバック関数;
- API 関数。
次のリソースを使用します。
- Erlang/OTP in Action book;
- OTP 動作プレゼンテーションの紹介、http://www.slideshare.net/gamlidek/ceug-introduction-to-otp-behaviors-part-i-genserver ;
- http://spawnlink.com/articles/an-introduction-to-gen_server-erlybank/index.htmlの「ErlyBank」。
私はまだ「1つのモジュールで1つの関数を呼び出し、この関数は他の関数を呼び出し、その関数はプロセスを作成します...スタック」状態にあります
gen_server の概念を図で説明する方法はありますか? クライアントとサーバー間の対話フローを視覚的に示すにはどうすればよいでしょうか? (あまり賢くない初心者が概念を視覚的に理解できるようにするため)
たとえば、次のようになります: http://support.novell.com/techcenter/articles/img/dnd2003080506.gif
UPD:私は自分の図を描こうとしましたが、図のコネクタの目的をまだ理解していません: http://postimage.org/image/qe215ric/full/
UPD2: これは、私が見たいものに似たものです: http://cryptoanarchy.org/wiki/Worker_patterns (モデル)。ただし、モジュール、関数、およびプロセス間の相互作用は示していません。