Шаблон канонической схемы
В обеспечения разработке программного Canonical Schema — это шаблон проектирования , применяемый в рамках парадигмы сервисно-ориентированного проектирования , целью которого является уменьшение необходимости выполнения модели данных. [ 1 ] трансформация, когда услуги [ 2 ] обмениваться сообщениями, которые ссылаются на одну и ту же модель данных. [ 3 ]
Обоснование
[ редактировать ]Взаимодействие между сервисами часто требует обмена деловыми документами. Чтобы потребитель услуги мог отправлять данные (относящиеся к конкретному бизнес-объекту, например, заказу на поставку), ему необходимо знать структуру данных, т.е. модель данных. Для этого поставщик услуг публикует структуру данных, которые он ожидает, во входящем сообщении от потребителя услуги. В случае реализации сервисов как веб-сервисов, [ 4 ] это будет документ схемы XML. Как только потребитель услуги узнает необходимую модель данных, он может соответствующим образом структурировать данные. Однако при некоторых условиях может оказаться возможным, что потребитель услуги уже обладает необходимыми данными, которые относятся к конкретному деловому документу, но эти данные не соответствуют модели данных, указанной поставщиком услуг. Это несоответствие между моделями данных приводит к необходимости преобразования модели данных, чтобы сообщение преобразулось в требуемую структуру, как того требует поставщик услуг. Основываясь на вышеупомянутом примере, вполне возможно, что после обработки полученного бизнес-документа поставщик услуг отправит обработанный документ обратно потребителю услуги, который еще раз выполнит преобразование модели данных, чтобы преобразовать обработанный бизнес-документ обратно в модель данных. который он использует в своей логике для представления бизнес-документа.
Такое преобразование модели данных во время выполнения увеличивает затраты на обработку и усложняет разработку композиций сервисов. [ 5 ] Чтобы избежать необходимости преобразования модели данных, шаблон канонической схемы требует использования стандартизированных моделей данных для тех бизнес-документов, которые обычно обрабатываются службами в реестре служб. [ 6 ] [ 7 ]
Использование
[ редактировать ]Служба A использует другую модель данных по сравнению со службой B для того же бизнес-документа. При обмене сообщениями необходимо выполнить преобразование модели данных во время выполнения.
Обе службы используют одну и ту же модель данных для представления конкретного бизнес-документа. В результате при обмене сообщениями преобразование модели данных не требуется.
Этот шаблон проектирования полностью поддерживается применением принципа проектирования стандартизированного контракта на обслуживание . Принцип проектирования стандартизированных контрактов на обслуживание предполагает, что контракты на обслуживание основываются на стандартизированных моделях данных. Это достигается путем анализа плана инвентаризации услуг. [ 8 ] чтобы узнать часто встречающиеся деловые документы, которыми обмениваются между службами. Эти деловые документы затем моделируются стандартизированным образом. Например, в случае веб-сервисов бизнес-документы моделируются как схемы XML. Когда в инвентаре сервисов существует стандартизированный уровень представления данных, разные контракты на обслуживание могут использовать одни и те же модели данных, если им необходимо обмениваться одними и теми же бизнес-документами. Это устраняет необходимость в каком-либо преобразовании модели данных и снижает накладные расходы на обработку, связанные с преобразованием модели данных. Это также увеличивает потенциал повторного использования службы, поскольку теперь услугу можно использовать, не требуя какой-либо специальной логики преобразования модели данных. В некотором смысле, применение шаблона канонической схемы уменьшает необходимость применения преобразования модели данных. [ 9 ] шаблон дизайна.
Соображения
[ редактировать ]Применение этого шаблона проектирования требует стандартов проектирования. [ 10 ] которые делают использование стандартизированных моделей данных обязательным, поскольку простое создание моделей данных не гарантирует их использование. [ 11 ] Несмотря на простоту в принципе, ее трудно реализовать, поскольку она требует участия различных проектных групп, что может повлечь за собой дополнительные усилия со стороны каждой команды с точки зрения разработки решений, учитывающих стандартизированные модели данных.
В некоторых случаях, либо из-за огромного размера организации, либо из-за сопротивления со стороны различных сегментов предприятия, может потребоваться применение шаблона проектирования Canonical Schema в пределах определенного реестра доменов, созданного с помощью инвентаризации домена дизайна . шаблон. [ 7 ]
Схемы необходимо разрабатывать отдельно от проекта контракта службы, чтобы между ними не было зависимости. [ 11 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Структура данных, например, в базе данных, структура данных, содержащихся в таблице, представлена схемой таблицы. В случае документов на основе XML соответствующий документ схемы XML содержит структуру документа XML.
- ^ "Услуги" . Архивировано из оригинала 1 мая 2012 г. Проверено 17 марта 2010 г.
- ^ Мауро. и др. Сервис-ориентированная интеграция устройств: анализ шаблонов проектирования SOA. Архивировано 28 марта 2010 г. в Wayback Machine [Онлайн], стр. 1–10, 2010 г., 43-я Гавайская международная конференция по системным наукам, 2010 г. Дата обращения: 30 апреля 2010 г.
- ^ Сервис может быть реализован с использованием любой технологии, если она соответствует принципам ориентации на сервис .
- ^ «Служебные композиции» . Архивировано из оригинала 11 марта 2010 г. Проверено 17 марта 2010 г.
- ^ «сервисный инвентарь» . Архивировано из оригинала 13 марта 2010 г. Проверено 17 марта 2010 г.
- ^ Jump up to: а б Томас Эрл , Хербьорн Вильгельмсен. Шаблон проектирования канонической схемы [онлайн]. Дата обращения: 8 апреля 2010 г.
- ^ «План инвентаризации услуг» . Архивировано из оригинала 11 мая 2010 г. Проверено 17 марта 2010 г.
- ^ «Трансформация модели данных» . Архивировано из оригинала 13 февраля 2010 г. Проверено 17 марта 2010 г.
- ^ «стандарты проектирования» . Архивировано из оригинала 17 марта 2010 г. Проверено 17 марта 2010 г.
- ^ Jump up to: а б Эбен Хьюитт. Книга рецептов Java SOA [ постоянная мертвая ссылка ] [Онлайн]. стр. 50. Дата обращения: 25 апреля 2010 г.
- Эрл и др., (2009). Шаблоны проектирования SOA . Прентис Холл. ISBN 0-13-613516-1 .
- Томас Эрл (2008). SOA-принципы проектирования сервисов . Прентис Холл. ISBN 0-13-234482-3 .