Дипломы, курсовые, рефераты, контрольные...
Срочная помощь в учёбе

Обмен сообщениями через Input Pool

РефератПомощь в написанииУзнать стоимостьмоей работы

Максимальное число сообщений с конкретными идентификаторами: для Input Pool можно определить, сколько сообщений определенного, заданного через идентификатор типа (например, счет) может одновременно храниться в Input Pool, независимо от того, от какого субъекта они исходят. Данные на нуле допускают только синхронный прием сообщений; Удаление и разблокировка самого старого сообщения (или самого… Читать ещё >

Обмен сообщениями через Input Pool (реферат, курсовая, диплом, контрольная)

Для решения возникающих проблем при асинхронном обмене сообщениями была разработана концепция т.н. входящего буфера сообщений (Input Pool). И хотя связь через Input Pool значительно сложнее, чем другие виды связей, через него можно передавать любое количество сообщений одновременно. Рассмотрим Input Pool как почтовый ящик работника, чьи условия работы четко определены.

Каждый субъект имеет свой собственный Input Pool. В нем временно хранятся отправленные субъекту сообщения, независимо от того, от какого субъекта они исходят. По сравнению со стеком компьютерных структур хранения данных, в котором можно посмотреть и взять только самое свежее сообщение, Input Pool позволяет работу с любым сообщением. Т. е. для субъекта видны все сообщения, которые находятся в его Input Pool.

Input Pool имеет следующие параметры конфигурации (рис. 5.2):

  • — размер пула: размер определяет, какое число сообщений можно хранить в Input Pool, независимо от количества и сложности параметров сообщения, которые передаются с ним. Если размер Input Pool равен нулю, это означает, что сообщения могут передаваться только синхронно;
  • — максимальное число сообщений от конкретных субъектов: для Input Pool можно определить, какое количество сообщений от конкретного субъекта можно хранить одновременно в Input Pool. Здесь нулевое значение также означает, что сообщения можно передавать только синхронно;
  • — максимальное число сообщений с конкретными идентификаторами: для Input Pool можно определить, сколько сообщений определенного, заданного через идентификатор типа (например, счет) может одновременно храниться в Input Pool, независимо от того, от какого субъекта они исходят. Данные на нуле допускают только синхронный прием сообщений;
  • — максимальное число сообщений с конкретными идентификаторами от конкретных субъектов: для Input Pool также может быть определено, сколько сообщений с конкретными идентификаторами от конкретных субъектов одновременно может храниться в Input Pool.
Параметры конфигурации Input Pool.

Рис. 5.2. Параметры конфигурации Input Pool

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

Для этого есть три стратегии:

— блокировка отправителя до того момента, пока Input Pool не станет свободным: если все места в Input Pool заняты, то отправляющий субъект остается заблокированным, пока получающий субъект не примет предыдущее (-ие) сообщение (-я). Это освобождает место для нового сообщения отправителя. Если несколько субъектов хотят оставить сообщение в загруженном Input Pool, то преимущество имеет тот субъект, который дольше всех ждет свободного места;

удаление и разблокировка самого старого сообщения (или самого старого сообщения определенного типа): в этом случае если все места в Input Pool определенного субъекта заняты, то самое старое сообщение стирается, а на его место записывается новое (соответствует структуре данных «очередь»);

— удаление и разблокировка самого свежего сообщения (или самого свежего сообщения определенного типа): из Input Pool удаляется самое свежее сообщение, чтобы сделать возможным принятие входящего сообщения (соответствует структуре данных «стек»). Если все места определенного субъекта в Input Pool заняты, то самое свежее сообщение стирается и на него записывается новое.

Показать весь текст
Заполнить форму текущей работой