metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-07-12 12:00 pm

SOA vs db-centric приложения

А вот скажите, чем может быть полезна SOA и кто это дело использовал на практике?
А вот тут учинился спор между мной(адептом баз данных, реляционных моделей и db-centric приложений) и программистом на жабе, который рекомендует SOA, на базе своего опыта.

Я с ходу не представлю, чем настолько хороша SOA, кроме сплошного админского напряга следить за всеми этими сервисами и их доступностью, согласовывать протоколы взаимодействия и прочей энтерпрайзности.

[identity profile] plumqqz.livejournal.com 2010-07-12 12:18 pm (UTC)(link)
Глубоким и тяжелым мозгоебизмом он может быть полезен. Дельфовый датасет может быть, вообще говоря, какой угодно от вызова к вызову, а вот SOA - какой был гвоздями в wsdl прибит. Командир сказал "хорек" - и никаких сусликов. Самая радость начинается, когда, скажем, неймспейс партнеры невзначай в новом билде поменяют. Ну, так, случайно, рука дрогнула - было http://foo.bar/baz, а стало http://foo.bar/baz/ - и все по-новой. Красотищща.

Что где-то на Марсе какие-то неведомые науке Васи Пупкины добились удивительных результатов - вполне верю, вон, в цирке воздушные гимнасты, жонглеры-наездники да эквилибристы-эксцентрики еще и не то выделывают. Только вот я - не эквилибрист, и окружен далеко не жонглерами.

[identity profile] lionet.livejournal.com 2010-07-12 12:31 pm (UTC)(link)
Мы использовали SOA для сопряжения с мейнфреймами Experian. Естественно, когда сервера одной компании стоят на одном побережье, а сервера другой — на другом, и при этом общение должно происходить в реал-тайме ("пока пользователь ждёт", ~100ms на запрос-ответ), мало чего из распространённого может сравниться с SOA. В локальной системе, нефедерированной (из кучи кусков от различных вендоров, плохо общающихся между собой), смысла в SOA мало. Один такой смысл может быть в том, что жёстко фиксируются интерфейсы: cам факт проектирования и фиксации интерфейсов может быть полезным для разработки.

В качестве даунсайда, убивающего идею на практике — геморрой с интеропом: внутри джавы это ещё хоть как-то работает, но если начинается C, PHP, etc — туши свет. Стандарты то сырые (WSDL 2.x), то устаревшие (WSDL 1.x).

Фактически, получается, SOA — это очередная пляска типа CORBA: система достаточно сложна, чтобы написать полностью конформного клиента на коленке, а автоматические средства генерации выдают плохо совместимый друг с другом и с версиями WSDL код.

[identity profile] ex-biespart.livejournal.com 2010-07-12 12:32 pm (UTC)(link)
Один я подумал, что для нормальных человеков SOA - это тип DNS-записи?

[identity profile] sorhed.livejournal.com 2010-07-12 12:42 pm (UTC)(link)
Всё очень просто.

SOA позволяет нескольким людям или небольшим командам работать над разными частями проекта почти независимо (координация осуществляется на уровне спецификаций/контрактов сервисов), а DB-centric проекты требуют интенсивной коммуникации/координации между участниками проекта, где DB guy — царь и бог.

Для небольших проектов SOA не нужна.

[identity profile] guamoka.livejournal.com 2010-07-12 01:15 pm (UTC)(link)
Мое ИМХО, SOA- доп. уровень абстракции, который помимо прочего- ограничения того, что и как клиент может читать и апдейтит,- может, например, использовать источники данных, отличные от DB, или легаси системы, и клиент об этом даже не будет задумываться. Опять же, с SOA клиент может быть написан на любом языке и платформе, и в более привычном стиле вызова процедур. Т.е. пока ваша система пишется только вами и используется, соответственно, клиентом, написанным опять же вами, то зачем вам еще один уровень абстракции? SOA- это скорее инструмент интеграции и повторного использования в глобальных масштабах. Опять же, ИМХО.


All you have to do now is cross your fingers that no requirements ever change for just one service. If something happens to cause a schema change, you could find yourself needing to rebuild, retest, and redeploy lots of services. I know of one company with 2,500 web services. As Sponge Bob Square Pants says, good luck with that.

[identity profile] norguhtar.livejournal.com 2010-07-12 02:00 pm (UTC)(link)
С моей точки зрения SOA надо использовать только в одном единственном случае, внешние интерфейсы системы. К примеру для биллинга это платежные шлюзы, заведение договоров контрагентами и т.п. Если опять же есть большой концерн в который входит множество предприятий, то SOA можно использовать для обмена между ними.

[identity profile] http://users.livejournal.com/_slw/ 2010-07-12 04:26 pm (UTC)(link)
я использовал
а мне другого интерфейса не дали -- не html же парсить?

[identity profile] astoon.livejournal.com 2010-07-12 10:18 pm (UTC)(link)
по комментариям такое ощущение, что разное понимают под SOA. Причем тенденция сужать область определения.

[identity profile] hshhhhh.livejournal.com 2010-07-13 09:47 am (UTC)(link)
ребе, а можно с вами как-нибудь минут на 10 пересечься потыкать в нокию вашу пальцем?

[identity profile] max-posedon.livejournal.com 2010-07-13 03:22 pm (UTC)(link)
Не используйте простые структуры данных и сложные алгоритмы, предпочитайте сложные структуры данных и простые алгоритмы (с) высказываение одного очень известного программиста.