Являются ли большинство приложений Erlang, таких как MochiWeb, Riak, RabbitMQ, Zotonic, ejabberd и CouchDB OTP приложениями? - PullRequest
5 голосов
/ 24 сентября 2010

Только что начал читать главу OTP о великой книге Эрланга Франческо Чезарини.Являются ли большинство приложений Erlang, таких как MochiWeb, Riak, RabbitMQ, Zotonic, ejabberd и CouchDB OTP, приложениями?

Ответы [ 3 ]

3 голосов
/ 24 сентября 2010

CouchDB имел много проблем с этим, но новейшие источники, опубликованные Cloudant, показывают CouchDB в арматуре, поэтому он должен быть совместимым с OTP.Riak).Btw2.это очень красиво написанное приложение, хорошее место для изучения передового опыта.

Zotonic исходный код выглядит немного беспорядочно.Я вижу там «приложение» и т. Д., Но структура каталогов не похожа ни на какой правильный узел OTP.Btw.даже Лицензия не добавлена ​​поверх всех модулей:?

ejabberd полон sups и приложений, но у него также есть некоторые интересные;) варианты дизайна, поэтому, возможно, не изучать Erlang на этом примере.

3 голосов
/ 24 сентября 2010

Приложение базы данных Hibari определенно основано на OTP. Сервер разбит на несколько приложений OTP, в том числе небольшое для управления конфигурацией и ведением журнала (gmt), большое для самого сервера (gdss), небольшое для собственных клиентов Erlang (gdss_client) и отдельные приложения OTP для каждого обработчиков протоколов на стороне сервера (например, JSON-RPC, UBF, EBF / BERT).

Иногда картинка стоит не менее нескольких сотен слов. У меня есть некоторые снимки экрана из приложения "appmon" (монитор приложений) Erlang, которое показывает дерево процессов супервизора и рабочего. Извините, приложения-обработчики протоколов не показаны на изображении # 01, но они были бы, если бы я запустил их, когда я сделал снимок.

Ссылка здесь: OTP 'appmon' скриншоты

-Скотт

3 голосов
/ 24 сентября 2010

MochiWeb следует базовым Принципам разработки OTP : он использует поведение supervisor (3) для перезапуска аварийных процессов (модуль mochiweb_sup.erl ) и gen_server (3) поведение.Однако в нем реализовано множество подпрограмм для обработки данных, например, из mochinum.erl для более быстрой сериализации чисел с плавающей запятой и mochijson[2].erl для обработки JSON и т. Д.

Плохая вещь с mochiweb (Я пояснил, почему здесь ) ИМХО, что он использует сомнительную и официально недокументированную (с 2003 года!) Методику параметризации модулей (модуль mochiweb_request.erl, уведомление-module(mochiweb_request, [Socket, Method, RawPath, Version, Headers]). в заголовке файла).То же относится и к другой HTTP-библиотеке Erlang misultin (misultin_req.erl).

Поправьте меня, если я ошибаюсь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...