Моделирование очередей сообщений - PullRequest
1 голос
/ 02 марта 2009

У меня есть эта система, которая состоит из множества различных этапов, соединенных вместе. В частности, у меня есть много разных процессов, которые взаимодействуют через tcp-ip; обмен сообщениями через пакетно-ориентированный протокол (большее количество сообщений может быть объединено в один блок данных проводного протокола если соблюдены определенные условия); У меня тоже есть очереди управления потоками - сокеты не блокируются, если мне не удается отправить Я помещаю сообщения в очередь или даже объединяю их в очереди отправки; Конечно, то, что происходит во время выполнения, зависит от потока управления tcp ip, поэтому я бы хотел смоделировать очереди tcp ip. Итак, вопрос в том, может ли кто-нибудь поделиться своими мыслями о том, как сделать симуляцию для моей системы? Я подумал сделать для него симулятор - то есть: программу со структурой данных очереди для каждой очереди. У меня есть в моей модели, каждый раз, когда я делаю галочку, я заставляю модель развиваться в соответствии с моим пониманием системы. то есть, если структура данных для буфера tcp в моей модели говорит, что у него достаточно места, я уменьшаю номер сообщения в очереди вывода и уменьшите счетчик доступного пространства в модели буфера tcp на размер сообщения, и так далее - тогда я делаю буфер tcp пуст со скоростью, основанной на пропускной способности для канала tcp (конечно, я выдвигаю гипотезу, что я накачиваю много данных и что единственный параметр для ссылки tcp это пропускная способность). Создание такой вещи, кажется, требует больших усилий, и я не уверен, что это то, что мне нужно. Может быть, мне лучше использовать какую-нибудь модель таблицы Excel, но я не уверен, как ее структурировать.

Ответы [ 2 ]

0 голосов
/ 02 марта 2009

Вы можете использовать TCP Simulator Рональда Сзето . У него есть Java-интерфейс. Я бы не стал усложнять парные очереди. Просто смоделируйте свою систему, а затем используйте этот симулятор для моделирования основных сетевых условий и свяжите их вместе, как это было бы в вашей ОС. Я предполагаю, что у вас, вероятно, нет отдельных сетевых очередей в вашей реальной системе для каждой в вашем приложении.

0 голосов
/ 02 марта 2009

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

...