Подтвердить что ты не робот

Анти-шаблон SOA или WCF

Хотя я могу найти много статей, посвященных SOA или WCF, мой вопрос заключается в том, что то, что не должно отображаться как сервис, есть ли какое-то уменьшение, которое мы узнаем из отказа SOA. WCF - это способ реализации SOA, если мы используем WCF, значит, мы реализуем SOA. Конечно, есть много людей, использующих С#, пишущий неподдающийся код код.

4b9b3361

Ответ 1

Я думаю, что ты прав. В моем текущем задании (веб-разработка) каждый доступ к базе данных реализуется как служба. Мы - "ЧИСТАЯ СОА", как сказал ведущий архитектор... Вау!

В фактах это добавляет много сложности ко всему. Когда я хочу прочитать содержимое простой таблицы, я должен сгенерировать что-то вроде 8 проектов, 42 файлов, 8 сборок и, возможно, 9 конфигурационных файлов!

Много сложностей, как я уже сказал. Скорее всего, кто-то где-то забудет один файл... Разоблачение простого процесса как службы глупо.

В моих книгах вы должны подвергать свои процессы службе, когда:

  • Многие приложения, использующие разные языки и фреймворки, должны называть ваши материалы.
  • Существует более чем одна платформа (Windows, Unix...).
  • Обработанные данные являются ядром предприятия.

Также обратите внимание, что сервис должен быть DESIGNED для обслуживания, а проектирование службы по меньшей мере сложнее, чем проектирование библиотеки: улавливание ошибок должно быть тщательно обработано, регистрация должна быть достаточно гибкой, документация должна быть полной, и др.

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

Ну, очень интересный вопрос. 1 балл: o)

Ответ 2

SOA как концепция - отличная идея.

SOA, реализованная с использованием HTTP-WS/BPEL и др., - это шутка, которая заслуживает смерти в моем не очень скромном виде. Я прекратил принимать систему серьезно вскоре после изучения их единственной концепции распределенных транзакций - транзакции компенсации... bzzt NEXT!!

Ответ 3

Есть два основных анти-шаблона, о которых я знаю:

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

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

Вот отличный совет на высоком уровне: http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2013%20-%20Service%20Layer%20Guidelines

Вот конкретный пример типа классов сообщений, о которых идет речь, и о том, как реализовать его в WCF: http://dotnet.org.za/hiltong/pages/windows-communication-foundation-tutorial-part-3-messaging-messagecontracts.aspx

Ответ 4

Я опубликовал несколько анти-шаблонов SOA

Дело в том, что многие люди рассматривают SOA как установку переднего конца веб-сервиса перед логикой и забывают о последствиях полученного RPC (также известного как Ошибки распределенных вычислений)

Ответ 5

SOA - одна из худших представленных концепций. SOA является архитектурным стилем и не имеет ничего общего с веб-сервисами или любой технологией. Я согласен с тем, что объяснение SOA через веб-сервисы и BPEL является обманчивым, BPEL обычно не имеет ничего общего с SOA, но вместо этого является способом реализации WS-оркестровки. Продавцы сделали ужасный беспорядок.

Я предлагаю очень красивую загружаемую книгу, которая действительно объясняет, что такое SOA:

http://www.infoq.com/minibooks/enterprise-soa

Затем вы можете прочитать эту интересную запись в блоге

Привет