OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 26 Июнь, 2019 03:36

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
СообщениеДобавлено: Четверг, 04 Октябрь, 2012 09:26 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2931
Откуда: г. Ярославль
При разработке всякого частенько стоит выбор разных способов управления программными объектами: использовать методы или же рассылку сообщений. Методы проще и вроде бы нагляднее, но сообщения позволяют не ломать интерфейс каждый раз при добавлении новых возможностей.

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

1) Мы имеем дело с программными системами.
2) Программные системы состоят из программных объектов (это не совсем ООП-объекты, а скорее, конструктивные элементы)
3) Чтобы система стала системой, эти самые объекты должны как-то взаимодействовать между собой.
4) Взаимодействие объектов можно рассматривать как коммуникационные акты, передачу и получение информации (что, в общем-то, в реальности и происходит)
5) Коммуникационные акты можно разбить на две категории - прямой и косвенный.

Прямое общение происходит путём использования методов, а прямым его можно назвать потому, что объекты непосредственно "видят" друг друга.

Косвенное общение происходит посредством сообщений, как например, по Generic Message Bus сообщение проходит по всем вложенным в друг друга виджетам, покуда его не обработает адресат.

И вот почему-то так получается, что использовать такие понятия при проектировании становится удобно. Как только есть подозрение, что объекты не смогут общаться непосредственно, так сразу же применяем сообщения.

Гугление на эту тему не даёт результатов, почему-то. Может быть, кто-нибудь встречал тексты про коммуникации программных объектов именно в данном разрезе?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Октябрь, 2012 09:50 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 692
Откуда: Псков
Вот это не подойдёт?

Название: Шаблоны интеграции корпоративных приложений
Автор: Грегор Хоп, Бобби Вульф
Издательство: Вильямс
Год: 2007
Страниц: 672
Формат: djvu
Размер: 10 Мб
ISBN: 978-5-8459-1146-9, 0-321-20068-3

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

Книга ориентирована на разработчиков программного обеспечения и системных интеграторов, использующих различные технологии и продукты для обмена сообщениями, такие как Java Message Service (JMS), Microsoft Message Queuing (MSMQ), IBM WebSphere MQ, Microsoft BizTalk, TIBCO, WebMethods, SeeBeyond, Vitria и др.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Октябрь, 2012 09:52 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9126
Откуда: Россия, Орёл
М.б., Фаулер?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Октябрь, 2012 11:32 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2931
Откуда: г. Ярославль
albobin писал(а):
Авторы подчеркивают как преимущества, так и недостатки обмена сообщениями, а также дают практические советы по написанию кода подключения приложения к системе обмена сообщениями, маршрутизации сообщений и мониторинга состояния системы.
Было бы интересно почитать


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Октябрь, 2012 11:41 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 692
Откуда: Псков
В сети наверное и сейчас есть, по крайней мере книга была доступна раньше.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Октябрь, 2012 12:44 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8153
Откуда: Троицк, Москва
Актуальная тема.

Кроме косвенности общения, есть аспект статического знания:

Если что-то про приложение чётко известно,
то это что-то желательно прописывать статически -- тогда методы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Октябрь, 2012 13:33 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2307
Откуда: Россия, Санкт-Петербург
Info21 писал(а):
Актуальная тема.

Кроме косвенности общения, есть аспект статического знания:

Если что-то про приложение чётко известно,
то это что-то желательно прописывать статически -- тогда методы.

Меня тоже терзали мысли на эту тему.
Статические методы легче понимать, чем бросаемые неизвестно кому сообщения.
Но теряется гибкость.

Я даже думал о том, чтобы безболезненно переключаться между этими подходами по мере развития системы. Скажем, сначала пишем статически, а потом для некоторых объектов (в смысле, классов) переходим на сообщения. Может быть, даже превращать в сообщения некоторое ограниченное подмножество методов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Октябрь, 2012 14:43 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2931
Откуда: г. Ярославль
Info21 писал(а):
Если что-то про приложение чётко известно, то это что-то желательно прописывать статически -- тогда методы.
Вот я сделал виджет, с ограниченным и понятным контрактом, потом завернул его в одну обёртку, третью, пятую и в итоге его методы напрямую не дёрнуть. Чем выцарапывать его из обёрток как арматуру из бетона, проще послать сообщение "сквозь бетон".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Октябрь, 2012 17:04 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8153
Откуда: Троицк, Москва
Потому и актуальная тема, что нужно баланс определять каждый раз заново, голову ломать :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Октябрь, 2012 21:03 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2591
Откуда: Россия, Ярославль
У опосредованного взаимодействия объектов есть удобное свойство - все накладные расходы по их хранению и жизнедеятельности обеспечивает среда, проводник взаимодействий. Которая, в свою очередь, может быть настроена для наиболее точного описания бизнес-логики приложения. То есть, например, не просто передать объект-сообщение, а передать его с журналированием, асинхронно, через сеть. И суть в том, что для получателя в этом случае не изменится ничего. Можно, конечно, вспомнить всякие SOAP, dbus и прочие.
А ещё есть целый концептуальный пример реализации многоагентной среды в ББ. Основная суть в том, что количество перцепторов у агента по определению, ограничено. А количество сигналов не ограничено. Похоже на методы и объекты-сообщения..


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB