OberonCore
https://forum.oberoncore.ru/

Программные объекты и способы управления ими
https://forum.oberoncore.ru/viewtopic.php?f=27&t=4103
Страница 1 из 1

Автор:  Иван Кузьмицкий [ Четверг, 04 Октябрь, 2012 09:26 ]
Заголовок сообщения:  Программные объекты и способы управления ими

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

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

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

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

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

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

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

Автор:  albobin [ Четверг, 04 Октябрь, 2012 09:50 ]
Заголовок сообщения:  Re: Программные объекты и способы управления ими

Вот это не подойдёт?

Название: Шаблоны интеграции корпоративных приложений
Автор: Грегор Хоп, Бобби Вульф
Издательство: Вильямс
Год: 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 ]
Заголовок сообщения:  Re: Программные объекты и способы управления ими

М.б., Фаулер?

Автор:  Иван Кузьмицкий [ Четверг, 04 Октябрь, 2012 11:32 ]
Заголовок сообщения:  Re: Программные объекты и способы управления ими

albobin писал(а):
Авторы подчеркивают как преимущества, так и недостатки обмена сообщениями, а также дают практические советы по написанию кода подключения приложения к системе обмена сообщениями, маршрутизации сообщений и мониторинга состояния системы.
Было бы интересно почитать

Автор:  albobin [ Четверг, 04 Октябрь, 2012 11:41 ]
Заголовок сообщения:  Re: Программные объекты и способы управления ими

В сети наверное и сейчас есть, по крайней мере книга была доступна раньше.

Автор:  Info21 [ Четверг, 04 Октябрь, 2012 12:44 ]
Заголовок сообщения:  Re: Программные объекты и способы управления ими

Актуальная тема.

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

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

Автор:  Александр Ильин [ Четверг, 04 Октябрь, 2012 13:33 ]
Заголовок сообщения:  Re: Программные объекты и способы управления ими

Info21 писал(а):
Актуальная тема.

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

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

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

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

Автор:  Иван Кузьмицкий [ Четверг, 04 Октябрь, 2012 14:43 ]
Заголовок сообщения:  Re: Программные объекты и способы управления ими

Info21 писал(а):
Если что-то про приложение чётко известно, то это что-то желательно прописывать статически -- тогда методы.
Вот я сделал виджет, с ограниченным и понятным контрактом, потом завернул его в одну обёртку, третью, пятую и в итоге его методы напрямую не дёрнуть. Чем выцарапывать его из обёрток как арматуру из бетона, проще послать сообщение "сквозь бетон".

Автор:  Info21 [ Четверг, 04 Октябрь, 2012 17:04 ]
Заголовок сообщения:  Re: Программные объекты и способы управления ими

Потому и актуальная тема, что нужно баланс определять каждый раз заново, голову ломать :)

Автор:  Пётр Кушнир [ Четверг, 04 Октябрь, 2012 21:03 ]
Заголовок сообщения:  Re: Программные объекты и способы управления ими

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

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/