В программной инженерии, Canonical Schema – шаблон проектирования, применяемый в SOA для уменьшения преобразований модели данных за счёт использования общей унифицированной схемыMauro. et al. Service Oriented Device Integration - An Analysis of SOA Design Patterns. [Online], pp.1-10, 2010 43rd Hawaii International Conference on System Sciences, 2010. Date accessed: 30 April 2010..

Обоснование Взаимодействие между сервисами часто требует обмена бизнес-документами. Чтобы сервис-потребитель мог отправить данные (относящиеся к определённой бизнес-сущности, например, заказу), ему необходимо знать правильную модель данных. Для этого сервис-провайдер декларирует формат данных, которые он ожидает получить от потребителя (например, в случае веб-сервиса это может быть XML-схемаService can be implemented using any technology as long as it conforms to the service-orientation guidelines.). Зная схему данных, потребитель может правильно представить данные.

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

Двойная конвертация повышает издержки и усложняет проектирование композиции сервисов. Чтобы уменьшить необходимость в трансформациях, паттерн canonical schema предлагает использовать общую унифицированную модель данных для документов, которыми приходится часто обмениваться Thomas Erl, Herbjörn Wilhelmsen.Canonical Schema Design Pattern [Online]. Date accessed: April 8, 2010..

Применение

Ссылки

См. также et al., (2009).SOA Design Patterns . Prentice Hall. . Thomas Erl (2008).SOA Principles of Service Design. Prentice Hall. . SOA Terms Glossary SOA Design Patterns

Категория:Шаблоны проектирования