Рецензии на книгу
"Шаблоны интеграции корпоративных приложений (Signature Series)"
24.01.2006
RSDN.RU (портал)
http://rsdn.ru/?res/book/prog/IntegrationPatterns.xml
Очередная книга серии "The Addison-Wesley Signature Series" раскрывает читателям секреты и опыт разработчиков в области интеграции сложных бизнес-систем. Складывается впечатление, что книги этой серии содержат некий учебный план для разработчиков, как альтернатива университетскому образованию. В университете получают научные знания, а в этой серии передаются практические навыки.
О книге. Книга создавалась параллельно с уже известной нам книгой Мартина Фаулера "Архитектура корпоративных приложений". Мартин преднамеренно упустил большую и сложную часть инженерных решений, посвященных взаимодействию в n-уровневой архитектуре. Этот пропуск восполнила книга " Enterprise Integration Patterns". В ней представлено множество решений, о которых большинство из нас, не имея общего формата знаний, интуитивно догадывается или даже использует. Авторы проделали большую работу по выделению среди множества удачных программ неких единых принципов построения связей в распределённых приложениях. И, самое главное, построили из выделенных принципов строгую систему, в которой легко ориентироваться (см. карту решений в начале главы 3).
Тем, кто сталкивался с одним из сетевых протоколов (например, TCP/IP) более детализовано, книга покажется простой, тем не менее рекомендую её просмотреть. Для тех, у кого нет опыта разработки сетевых приложений, книга будет удачным стартом, как в область системного программирования протоколов низкого уровня, так и при использовании всевозможных бизнес-надстроек (Biztalk и др.). Полезна будет и гуру Message Queue в качестве обобщения и сравнения с альтернативными решениями от различных производителей. Можно заметить, что в предлагаемых примерах крен в сторону интеграции за счет системы передачи сообщений. Действительно, в книге выделена только одна область - область "обмена сообщениями" (Messaging). Но даётся сравнительный обзор и других вариантов обмена данными. Кстати, обзор альтернативных методов сделал Мартин Фаулер. В лучших традициях описания паттернов (patterns) предлагается аргументация, почему лучше применять то или иное решение.
Тем, кто полагает, что система с асинхронными сообщениями панацея, параграф в начале книги, раскроет ее недостатки ("Challenges of Asynchronous Messaging").
Остановимся на различных методах коммуникации. Обмен файлами (File Transer) - способ, когда одно приложение копирует файл в общедоступное место для других приложений. Приложение-приёмник обнаруживает новый файл, скачивает и запускает процедуру обработки. Общая база данных (Share Database) - в данном случае несколько приложений имеют доступ к единой базе данных, через таблицы которой происходит обмен. Вызов удалённых процедур (Remote Procedure Invocation) - приложения имеют ряд процедур, которые доступны внешним приложениям. Заинтересованное приложение инициирует вызов, в результате которого выполняются действия на удалённой машине и происходит обмен данных. Последний вариант - обмен сообщениями (Messaging). В таком случае каждое приложение подключено к единой системе, через которую передаются сообщения, содержащие данные и команды на выполнение.
Обобщённая схема работы системы на базе передачи сообщений такова: create - send - delivery - receive - process (см. "What Is a Messaging System?"). А структура следующая: 1) сообщение (message), 2) канал (message channel), 3) маршрутизатор (routing), 4) преобразователь (message translator), 5) потребитель (message endpoint). Понятие сообщений (глава 5) и каналов (глава 4) не должно вызывать трудностей. Маршрутизация (глава 7) отвечает за механизм построения пути передачи сообщения. Преобразователи (глава 8) в зависимости от целей системы изменяют передаваемое сообщение с целью адаптации под интерфейс принимающей системы. Последнее, на что стоит обратить внимание - это потребители (глава 10), удачное построение которых так же влияет на всю систему.
Кому полезна эта книга? Преимущественно архитекторам приложений уровня предприятия и интеграционным архитекторам. Отчасти полезна разработчикам сетевых протоколов в качестве теоретической основы и знакомства с обобщённым опытом гуру.
Выводы: очередной справочник опыта. Кажется, пора организовывать программу самостоятельной подготовки, в основе которой будет серия самых лучших книг в отрасли корпоративных приложений. Надеюсь, первый курс обойдётся 10 книгами.