IBM Rational Software Architect: создание комбинированных шаблоновИсточник: IBM developerWorks Россия Йи-Сиу Вэй, старший инженер-программист, IBM Жанет Вонг, старший инженер, IBM Скотт Шнайдер, инженер-программист, консультант, IBM
О чем эта статьяШаблоны часто связаны друг с другом и, соответственно, используются совместно для создания более объемных архитектур и проектов. Например, представим, что вы ответственны за решение проблемы, требующей применения нескольких шаблонов, и будете решать эту проблему неоднократно, каждый раз, главным образом, с тем же самым набором шаблонов. Эффективным решением могло бы быть создание комбинированного шаблона, содержащего в себе набор шаблонов компонентов. Данная статья расширяет восьмую часть серии developerWorks "Создание J2EE-приложений с использованием IBM Rational Software Architect Enterprise Patterns". В ней рассказывается, как создать комбинированный шаблон. Такой готовый к повторному использованию комбинированный шаблон позволяет быстро создавать J2EE-приложения (Java 2 Platform, Enterprise Edition), используя инструментальные средства IBM Rational Software Architect. Вы узнаете, как объединить два корпоративных шаблона в их обычно используемых конфигурациях для создания комбинированного шаблона. Затем вы сможете применить этот комбинированный шаблон для информационной модели вашего бизнеса, для генерирования J2EE-артефактов для модели и методов-заместителей для бизнес-логики, как если бы вы применили два корпоративных шаблона по отдельности. Комбинированные шаблоныХотя e-business-шаблоны фиксируют передовой опыт и знания разработки решений в документированной форме (в виде спецификаций шаблонов), средства мета-программирования IBM Rational Software Architect дают возможность кодировать шаблоны в готовые к повторному использованию программные артефакты, называемые основанными на шаблонах микро-программами (pattern-based micro-tools) или реализациями шаблонов (pattern implementations). В данной статье шаблонами (patterns) называются кодированные, готовые к повторному использованию, основанные на шаблонах микро-программы. Поскольку все большее количество шаблонов становится доступным для повторного использования, комбинированные шаблоны могут стать более привычной практикой разработки решений, использующих несколько шаблонов более низкого уровня. Затем можно использовать эти "рецепты шаблонов" для документирования и руководства объединенным использованием выбранных шаблонов и других артефактов при необходимости быстрого решения проблемы. Кроме этого, комбинированные шаблоны вбирают в себя, в кодированной шаблонной форме, традиционную практику и передовой опыт разработки решений, использующих несколько шаблонов. Комбинированные шаблоны поднимают абстракцию разработки программного обеспечения на уровень, подходящий для решения проблем конкретной предметной области. Совместимость шаблоновХотя шаблоны могут быть скомбинированы на основе их назначения и взаимодействий входных и выходных параметров, семантическая совместимость компонентных шаблонов не просто проанализировать механически. Это происходит, в основном, из-за отсутствия полных семантических спецификаций для шаблонов, отличающихся по типу и многообразию входных параметров. Например, для использования профилей ожидаемые стереотипы элемента, связываемого с параметром шаблона, и ожидаемый результат трансформации шаблона могут быть, самое большее, документированы только неформально в описаниях шаблонов. Несмотря на это ограничение, композиция шаблонов довольно близка другим методикам программирования, в которых опыт и предыдущие примеры обычно указывают, как использовать несколько сервисов вместе для создания сервисов или решений более высокого уровня. Целью комбинирования шаблонов является интеграция общеизвестных приемов использования шаблонов, работающих совместно. Существует несколько кросс-шаблонных семантических проблем при комбинировании шаблонов для автоматизации проверенной общей практики. Пример создания комбинированного шаблона из двух корпоративных шаблоновСоздание комбинированного шаблона имеет значение в том случае, если вы полагаете, что комбинация шаблонов будет неоднократно использована при разработке нескольких решений или улучшений решений проблем специфической предметной области. Комбинированный шаблон включает в себя шаблон использования компонентных шаблонов и связанных с ними артефактов. Данный пример использует корпоративные шаблоны Session Facade и Business Delegate (см. рисунок 1). Шаблон Session Facade генерирует класс сессионного компонента для работы в качестве интерфейсной части набора классов компонентов управления данными, моделирующих бизнес-информацию. Класс сессионного компонента обеспечивает сервисы бизнес-информации. Шаблон Business Delegate генерирует стандартный Java™-класс из класса сессионного компонента. Можно добавить бизнес-логику к Java-классу, для того чтобы бизнес-клиенты обращались к бизнес-информации через бизнес-логику. Business Delegate также скрывает некоторые характеристики бизнес-сервисов от клиента, например, удаленность и выбранные технологии. Рисунок 1. Взаимоотношения корпоративных шаблонов Экземпляры Session Facade и Business Delegate, показанные на рисунке 2, включают несколько параметров шаблонов для настройки. Рисунок 2. Шаблоны Session Facade и Business Delegate Если в своей среде вы разрабатываете много решений, применяя шаблоны Session Facade и Business Delegate, будет полезен комбинированный шаблон, называемый Business Delegate Facade, комбинирующий два компонента. Шаблоны обнаруживаются, а не придумываются. Этот же принцип применим и к комбинированным шаблонам. Следовательно, перед попыткой скомбинировать шаблон важно рассмотреть использование существующих шаблонов в прошлом, чтобы выяснить, применялись ли шаблоны совместно и как именно, как взаимодействовали их параметры, какие параметры должны быть сконфигурированы и какие параметры часто используют одинаковые фиксированные значения. В данном примере, основанном на опыте использования, мы знаем, как эти два корпоративных шаблона работают вместе и как взаимодействуют их параметры. Следовательно, мы проанализируем зависимости их параметров и выполним делегирование шаблонов в интегрированную среду шаблонов Rational Software Architect для активизации комбинированного шаблона, выполняющего операции, которые ранее выполняли два компонентных шаблона по отдельности. Для создания комбинированного шаблона с названием Business Delegate Facade выполните следующие действия:
На рисунке 3 изображена последовательность действий и приведено краткое резюме по каждому из них. Также вы можете решить назначить параметрам значения по умолчанию (или убрать видимость параметра), основываясь на опыте использования компонентных шаблонов в прошлом. Это может упростить работу пользователей в дальнейшем. 1. Анализ ввода-выводаНа рисунке 4 изображена взаимосвязь ввода/вывода и зависимости параметров двух компонентных шаблонов. Параметр
2. Параметры комбинированного шаблонаПоскольку выходной параметр Новый шаблон имеет параметр, называемый
Каждый параметр имеет такой же тип, что и соответствующий параметр в компонентном шаблоне (cм. рисунок 5):
Рисунок 5. Параметры нового шаблона
3. Анализ зависимостей параметровКак показывают пунктирные стрелки на рисунке 4, параметр Такая же зависимость параметров должна сохраняться в комбинированном шаблоне. На рисунке 5 параметр
Итак, на рисунке 4 параметр 4. Анализ делегированияПараметры в комбинированном шаблоне делегируют свои операции компонентным шаблонам двумя способами:
Реализация комбинированного шаблонаИмея результаты анализа проекта, можно приступать к кодированию комбинированного шаблона. Для этого выполните следующие действия:
Рисунок 6. Экземпляр комбинированного шаблона
4. Для каждого параметра, имеющего зависимости от других параметров, добавьте выражение
5. Как общее правило, добавьте выражение
Применение нового комбинированного шаблонаВы можете применить комбинированный шаблон к модели пользовательских данных точно так же, как и шаблон Session Facade (см. рисунок 7). Просто выполните следующие действия:
Примечание: Стереотип Рисунок 7. Применение комбинированного шаблона Исключение параметровПараметры шаблона предоставляют точки изменения (variation points) для настройки. В зависимости от опыта использования шаблона вы можете дать параметру значение по умолчанию или удалить его из комбинированного шаблона путем жесткого кодирования. Это может еще больше упростить использование шаблона. В данном примере вы, возможно, захотите указать параметру Ценность изученногоВ данной статье был рассмотрен общий метод создания комбинированных шаблонов из существующих шаблонов. На подробном примере было показано, как спроектировать и реализовать такой шаблон. Комбинированные шаблоны включают в себя опыт вашего использования существующих шаблонов и обеспечивают высокий уровень абстракции для их повторного использования в комбинации. Таким образом, они могут еще больше упростить процесс разработки, основанный на использовании шаблонов. Перед началом создания основанных на шаблонах решений вы, возможно, захотите рассмотреть уровень модульности, прежде чем решить, какие шаблоны сформировать, комбинируя существующие. Можно применить рассмотренные в данной статье действия для создания ваших собственных комбинированных шаблонов и иерархий для их повторного использования. |