2009-05-29 4 views
0

Я разрабатываю протокол примитивов с удаленной резьбой. В настоящее время нам нужны только мьютексы (т. Е. Мониторы) и семафоры. Основная идея заключается в том, что не обязательно быть центральной властью - примитивы должны быть организованы среди интересующих их сверстников.Удаленная блокировка

Я несколько раз набросал несколько идей на бумаге и в голове в течение нескольких недель; но я думаю, что мне действительно нужно взглянуть на предыдущую литературу. Есть ли?

Он будет работать через XMPP, но это деталь реализации. Я просто ищу спецификацию или таковую в фактическом потоке протокола - поэтому на самом деле не имеет значения, из какого протокола берутся из литературы.

Спасибо, миллион.

+1

не уверен, что это поможет, но я бы посмотрел на источник некоторых проектов промежуточного программного обеспечения с открытым исходным кодом http://en.wikipedia.org/wiki/Message_queue, в частности, существует довольно много алгоритмов более высокого уровня, таких как распределенные кеши и тому подобное, которые могут использовать примитивы, подобные тем, которые вам нужны, и обрабатывать таймауты, коррупцию и т. д. –

+0

@ sambo99 - почему бы не сделать это ответом? –

ответ

1

Распределенные мьютексы - сложные структуры. Вам нужно обрабатывать всевозможные странные условия, которые не существуют с одной машинной реализацией. В частности, вам необходимо обрабатывать ситуации, когда агенты теряют связь с группой и по-прежнему удерживают блокировку на общем ресурсе. В дополнение к этому сценарию существуют сложные сценарии, в которых ваша группа разбита, и вы захватываете блокировку ресурса. Когда группы с трещинами присоединяются к большой группе, вам нужен способ примирить блокировки, которые далеки от тривиальных.

Я настоятельно рекомендую посмотреть в каком-то messaging based middleware такие как Erlang и JBoss

Я также рекомендовал бы разместить отдельные вопросы, касающиеся конкретных распределенные алгоритмы/структур данных, которые нужны реализованы. Возможно, вам удастся избавиться от готовой реализации в библиотеке промежуточного программного обеспечения, которая может быть скорректирована в соответствии с вашими потребностями.

Смежные вопросы