Jump to content

Абстракция сервиса

Абстракция сервиса — это принцип проектирования, который применяется в рамках ориентированного на сервис, парадигмы проектирования, так что информация, публикуемая в контракте на обслуживание, ограничивается тем, что требуется для эффективного использования сервиса. [1] Контракт службы не должен содержать никакой лишней информации, которая не требуется для его вызова. Кроме того, поскольку информация должна быть ограничена только контрактом на обслуживание (техническим контрактом и соглашением об уровне обслуживания ), никакой другой документ или носитель потребителям услуг не должен быть доступен , кроме контракта на обслуживание, который содержит дополнительную информацию, связанную с обслуживанием.

Контракт службы, содержащий подробную информацию о том, что он инкапсулирует (например, логику, реализацию и технологию, используемую для создания службы), может в конечном итоге использоваться определенным образом, предоставляя потребителю службы больше знаний о работе службы. В случае ориентации на услуги больше знаний не обязательно означает лучше. Существует вероятность того, что дополнительная информация может препятствовать повторному использованию сервиса, поскольку разработчик-потребитель сервиса может оптимизировать свой проект на основе этих знаний. Однако это повлияет на развитие контракта службы, поскольку теперь потребитель службы косвенно связан с реализацией службы, которую, возможно, придется заменить в будущем. Это увеличивает тип связи между потребителем и контрактом , что является положительным типом связи. Однако слишком большая зависимость может негативно повлиять на развитие как поставщика услуг, так и потребителя услуг.

Сокрытие информации остается одним из ключевых принципов объектно-ориентированной парадигмы, которая способствует абстрагированию внутренней работы программы . Классическим примером может быть использование абстрактных классов для сокрытия фактической логики метода. Та же концепция применяется в принципе абстракции сервиса, чтобы скрыть ненужные подробности о работе сервиса и облегчить его развитие. [2]

Приложение

[ редактировать ]

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

Функциональная абстракция

[ редактировать ]

Эта форма абстракции зависит от того, какая часть логики сервиса представлена ​​как возможности сервиса. Примером может служить класс, в котором некоторые из его методов являются частными, а другие — общедоступными. Класс будет предоставлять общедоступными только те методы, которые он считает важными для своих объектов; любые вспомогательные методы, не относящиеся к объектам, остаются скрытыми.

Контракт на обслуживание, на который не распространяется этот принцип, можно назвать «подробным контрактом», который раскрывает большую часть бизнес-правил и логику проверки. Как только этот принцип будет применен в достаточной степени, контракт можно будет назвать «кратким контрактом». Дальнейшее применение этого принципа проектирования приведет к созданию «оптимизированного контракта», который максимизирует потенциал повторного использования услуги.

Технологическая информационная абстракция

[ редактировать ]

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

Логическая абстракция

[ редактировать ]

Программные детали логики сервиса должны быть абстрагированы. [3] поскольку знание о том, как служба на самом деле выполняет свои функции, может привести к тому, что потребители услуги будут учитывать эту информацию и, следовательно, будут разрабатываться с учетом этих предположений. Это может серьезно затруднить усилия по рефакторингу сервисной логики и может рассматриваться как противодействие применению шаблона проектирования рефакторинга сервисов .

Качественная абстракция

[ редактировать ]

Абстракция качества относится к деталям, представленным в сопроводительном соглашении об уровне обслуживания. Важно сконцентрироваться только на той информации, которая действительно поможет определить надежность и доступность услуги. Никакая другая информация не должна включаться, раскрывая ненужные детали, например, подробности о том, как услуга находится в общем бизнес-процессе и какова ее роль. другие услуги, которые он использует для выполнения своих функций.

Уровень контроля доступа, применяемый к услуге, будет определять, какая часть абстракций технологии, логики и качества службы будет задействована. «Открытый доступ» обеспечит свободный доступ всем, кто заинтересован в выяснении технических характеристик услуги. При «контролируемом доступе» доступ предоставляется только уполномоченным лицам, а политика «запрета доступа» полностью запрещает любой доступ к проектной документации.

Соображения

[ редактировать ]

Хотя сокрытие информации считается здоровой практикой, слишком большое сокрытие информации может оказаться контрпродуктивным, поскольку может ограничить уровень повторного использования службы. Это также может привести к дублированию сервисов, поскольку разработчики сервисов не имеют достаточной информации о возможностях сервиса. Для этого каждый контракт службы должен быть разработан в краткой, но всеобъемлющей форме, чтобы возможности службы можно было эффективно обнаруживать и интерпретировать в соответствии с принципом обнаружения службы .

Вид информации, представленной в контракте на обслуживание, также может привести к некоторым проблемам, связанным с безопасностью. например, служба, которая распространяет сведения об используемой базе данных в результате внутренней ошибки, может стать жертвой атаки, когда злоумышленник использует сообщенные сведения об ошибке и пытается подключиться к базе данных. Эту проблему можно решить путем применения проверки сообщений. [4] и экранирование исключений [5] шаблоны проектирования .

  1. ^ Сервис
  2. ^ Деннис Висноски. Принципы и модели Министерства обороны США [онлайн]. Дата обращения: 13 апреля 2010 г.
  3. ^ Кьель-Сверре Ериярви. Модель срока действия контракта SOA [онлайн]. Дата доступа: 13 апреля 2010 г.
  4. ^ Проверка сообщений
  5. ^ Экранирование исключений

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d89f6fa69238cbbf7350d7d31893a17d__1688779560
URL1:https://arc.ask3.ru/arc/aa/d8/7d/d89f6fa69238cbbf7350d7d31893a17d.html
Заголовок, (Title) документа по адресу, URL1:
Service abstraction - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)