Вопрос по web-services, architecture – Что такое SOA (сервис-ориентированная архитектура)?

55

Если хотите, назовите меня троллем, но я серьезно:how exactly is the new SOA trend any different than the client-service architecture that I was building 15 years ago? Я продолжаю слышать SOA, но не вижу, как она отличается от того, что мы всегда делали.

Еще 10 лет назад в моей компании было несколько клиентов (на нескольких языках), которые пользовались одним и тем же сервисом. Это был не XML (это был двоичный протокол, называемый Microsoft DCOM), и не было автоматического обнаружения через WSDL, но это нормально, так как читать документы было так же просто. Наша система была даже "открытой" в том смысле, что мы задокументировали его достаточно, чтобы третьи стороны могли общаться с нашими службами. Мы не были пионерами - любая другая компания, которую я знал 10 лет назад, делала то же самое.

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

Так что же такое SOA, который отличается от того, что мы делали годами? Является ли SOA просто маркетинговым термином, представляющим лучшую практику, которая на самом деле стала распространенной давным-давно? Или я пропускаю некоторые из них в SOA, которые отличаются от того, что мы делали все это время?

Это дубликатstackoverflow.com/questions/973673/… и многие другие, но я был бы склонен оставить это здесь просто потому, что он имеет лучшую сюжетную линию. John Saunders
Вы не тролль, и нет НИКАКОЙ разницы в архитектуре клиент-сервис, которую вы сделали 15 лет назад. Или даже 30 лет назад. SOA - просто модное слово для применения основ компьютерного программного обеспечения. Я полагаю, что архитекторам и руководителям проектов становится легче, когда они спят ночью. D3vtr0n

Ваш Ответ

10   ответов
7

Фрэнк Лейманн из университета Штутгарта принимаетSOA в качестве ключевой концепции для егоИсследовательская работа по сервис-ориентированным вычислениям (SOC), когда он говорит о SOA, Считается, что его спрашивают об определении SOA, и последующий разговор может быть хорошим чтением.

Please note that our roadmap is about "service oriented computing (SoC)", i.e. the compute paradigm behind service-orientation. Service Oriented Architecture (SOA) is an architectural realization of this compute paradigm. You may compare this with "client/server computing" as paradigm and "browser/web server" or "DB-client/stored procedure" as two (of various other) architectural realizations of this paradigm.

...

SOA is not completely new. Some individual aspects of SOA are used in practice for a long time. For example, take a look at "loose coupling": Enterprises are using reliable messaging technology since decades to integrate applications, i.e. to loosely couple them. Don't get me wrong, there are new concepts in SOA, e.g. concepts resulting from the combination of concepts put together in SOA, i.e. they result from emergence.

Web Service specifications make the corresponding technologies available cross platform. I.e. the corresponding specifications do not invent fundamentally new concepts but define how these concepts and corresponding implementations work in heterogeneous environments. The resulting interoperability is groundbreaking, making SOA real.

In summary, SOA is a mixture of mature things and new emerging things.

Также естьСправочный документ SoC от апреля 2006 г.

Поиск в Google идентифицирует проф.Фрэнк Лейманн а такжеего работает.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

SOA (Service Oriented architecture) речь идет о стандартизированном построении приложения, чтобы другие приложения могли взаимодействовать с ним независимо от платформы.

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

Конечно, когда вы разрабатываете приложение, вы не можете гарантировать, что оно будет кросс-платформенным. Возьмите напримерstock Trading systems, Они используютFix protocol передавать сообщения. Ожидаете ли вы, что теперь он будет возвращать данные в формате XML, чтобы он мог быть так называемым SOA-совместимым? Точно нет! SOA - это архитектурный подход, который может помочь вамdecouple your application/services и пусть они взаимодействуют друг с другом. Основой SOA являетсяESB (Enterprise Service Bus) который используется для передачи данных из одного сервиса в другой. Архитектура SOA должна заботиться о преобразованиях форматов. Например -

FIX(Service 1) -> (XML ---ESB---> XML) -> JSON (Service 2)

Эти модули преобразования обычно называютсяadapters и, как правило, являются частью пакета SOA. Для получения дополнительной информации обратитесь к другому ответу -

Разница между SOA и ESB

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

Также обратитесьВики-страница для того же.

13

Позвольте мне использовать знаменитого мальчика для битья Интеграционного ада: Телко.

Еще в 90-х годах компании сотовой связи были в моем районе плеторическими, почти такими же многочисленными, как реселлеры, работающие на больших расстояниях, что стало возможным благодаря дерегулированию связи середины 90-х годов. Что ж, время идет, и Bell Atlantic становится центром власти Verizon и поглощает компанию за компанией (и, по крайней мере, один Baby Bell). У каждой из этих компаний есть свои технологии: в башнях, в коммутационном оборудовании, в биллинговых системах, которые ПОЛНОСТЬЮ несовместимы друг с другом.

Таким образом, компания уходит и говорит: «Хорошо, у нас есть эти модели того, как мы ведем бизнес, давайте представим дружелюбное, последовательное лицо ВСЕМ нашей технологии в форме WSDL / SOAP / XSD - для каждого языка и системы, которые у нас есть». сегодня можно связать с этим! Медленно, но верно, компания делает все свои системы способными сообщать о возможностях, опрашивать их в целях загрузки и выставления счетов и выставлять будущим провидцам возможность использовать таким образом, который еще не был учтен.

Любой может создать клиент SOA. Любой, у кого есть wget и текстовый редактор. И любой может разобрать результаты (XML).

Это то, что принципиально отличается от прошлых архитектур клиент / сервер. Я только что говорил с кем-то о взаимодействии систем на основе Cobol и Smalltalk с SOA-архитектурами. Эту проблему легко решить. Скажите, что вы можете сказать то же самое для ваших систем DCOM.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

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

84

которую вы можете купить, хотя ее часто продают таким образом.

Суть SOA - в ИТorganization, Смысл SOA состоит в том, чтобы избежать огромного количества «приложений». которые имеют изолированные пулы данных и либо вообще не общаются друг с другом (и, следовательно, часто дублируют данные), либо только неэффективно, с ошибками, через уровни адаптера или системы EAI.

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

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

С точки зрения бизнеса это очень желательно. Шумиха и суп с аббревиатурой - это просто ИТ-компании & apos; пытается нажиться на этой желательности. К сожалению, это (неправильно) привело многих людей, в том числе руководителей компаний, к убеждению, что SOA - это продукт, который вы можете купить, и он волшебным образом сделает вашу ИТ более эффективной, даже не подозревая, что это произойдет, только если вы также реорганизуете всю свою ИТ (и довольно возможно, ваши бизнес-подразделения), чтобы быть SOA-совместимым.

Error: User Rate Limit ExceededOf courseError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

A service-oriented architecture (SOA) это архитектурный паттерн, в котором программное обеспечение спроектировано как строительный блок. то есть модульная разработка, которая обеспечивает гибкость сборки любым удобным для нас способом. Если вы хотите начать новый проект вместо того, чтобы начинать с нуля, мы можем повторно использовать сервисы, а если вы хотите использовать новый сервис, мы можем легко интегрироваться с существующим сервисом для создания нового проекта. Таким образом, мы можем сэкономить много времени и денег. Основные принципы сервис-ориентированной архитектуры не зависят от поставщиков, продуктов и технологий.

Аналогия: игрушки строятся с использованием строительных блоков Lego.

Lego toys build using Lego bricks

0

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

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

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

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

SOA - это подход или идея. Это не рамки или инструмент. Когда WDSL и EJB теряют имена, об этом часто забывают ... так как идея SOA вовсе не нова.

2

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

Error: User Rate Limit Exceeded
9

nothing but a way of designв котором модули сообщаются друг с другом через «сервисы». Это просто так, и теперь следующий вопрос: что такое «услуга»? и в чем его отличие с обычным "методом"?

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

SOA не имеет ничего общего с конкретной технологией, это просто особый способ проектирования.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы