Сервис-Ориентированная Архитектура - Service-oriented architecture

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

Согласно одному из многих определений SOA, служба имеет четыре свойства:[2]

  1. Он логически представляет собой бизнес-деятельность с заданным результатом.
  2. Он самодостаточен.
  3. Это черный ящик для своих потребителей, что означает, что потребитель не должен знать о внутренней работе службы.
  4. Он может состоять из других базовых сервисов.[3]

Различные сервисы могут использоваться вместе для обеспечения функциональности большого программное обеспечение,[4] принцип SOA разделяет с модульное программирование. Сервис-ориентированная архитектура объединяет распределенные, отдельно обслуживаемые и развертываемые программные компоненты. Это обеспечивается технологиями и стандартами, которые облегчают взаимодействие и взаимодействие компонентов по сети, особенно по IP-сети.

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

Обзор

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

Определение понятий

Связанное модное слово сервис-ориентированность продвигает Слабая связь между службами. SOA разделяет функции на отдельные блоки или службы,[6] которые разработчики делают доступными по сети, чтобы пользователи могли комбинировать и повторно использовать их при создании приложений. Эти службы и соответствующие им потребители взаимодействуют друг с другом, передавая данные в четко определенном общем формате или координируя действия между двумя или более службами.[7]

В октябре 2009 года был опубликован манифест по сервис-ориентированной архитектуре. В нем были сформулированы шесть основных ценностей, которые перечислены ниже:[8]

  1. Ценность бизнеса придается большее значение, чем техническая стратегия.
  2. Стратегические цели придают большее значение, чем выгоды для конкретного проекта.
  3. Внутренняя совместимость придается большее значение, чем индивидуальная интеграция.
  4. Общие сервисы придают большее значение, чем реализациям для конкретных целей.
  5. Гибкость придается большее значение, чем оптимизация.
  6. Эволюционная доработка придается большее значение, чем стремление к изначальному совершенству.

SOA можно рассматривать как часть континуума, который варьируется от более старой концепции распределенных вычислений[6][9] и модульное программирование, через SOA, и на практике гибридные приложения, SaaS, и облачные вычисления (который некоторые считают порождением SOA).[10]

Принципы

Нет отраслевых стандартов, касающихся точного состава сервис-ориентированной архитектуры, хотя многие отраслевые источники опубликовали свои собственные принципы. Что-нибудь из этого[11][12][13][14]включая следующее:

Стандартный договор на обслуживание
Службы соответствуют стандартному соглашению о взаимодействии, как определено в совокупности одним или несколькими документами с описанием службы в рамках данного набора служб.
Автономность ссылок на сервисы (аспект слабой связи)
Отношения между сервисами сведены к минимуму до уровня, на котором они знают только о своем существовании.
Прозрачность местоположения услуги (аспект слабой связи)
Службы можно вызывать из любого места в сети, где бы они ни находились.
Долговечность службы
Услуги должны быть долговечными. Там, где это возможно, службы должны избегать принуждения потребителей к изменению, если им не требуются новые функции. Если вы позвоните в службу сегодня, вы сможете позвонить в ту же службу завтра.
Абстракция службы
Сервисы действуют как черные ящики, то есть их внутренняя логика скрыта от потребителей.
Автономность обслуживания
Сервисы независимы и контролируют инкапсулируемые ими функции как во время разработки, так и во время выполнения.
Безгражданство услуги
Службы не имеют состояния, то есть либо возвращают запрошенное значение, либо выдают исключение, что минимизирует использование ресурсов.
Детализация сервиса
Принцип обеспечения адекватного размера и объема услуг. Функциональность, предоставляемая сервисом пользователю, должна быть актуальной.
Нормализация обслуживания
Сервисы декомпозируются или консолидируются (нормализуются) для минимизации избыточности. В некоторых случаях это невозможно. Это те случаи, когда требуются оптимизация производительности, доступ и агрегирование.[15]
Возможность компоновки сервисов
Сервисы могут использоваться для создания других сервисов.
Обнаружение службы
Сервисы дополняются коммуникативными метаданными, с помощью которых они могут быть эффективно обнаружены и интерпретированы.
Возможность повторного использования сервиса
Логика разделена на различные службы, чтобы способствовать повторному использованию кода.
обслуживание инкапсуляция
Многие сервисы, которые изначально не планировались в рамках SOA, могут быть инкапсулированы или стать частью SOA.

Узоры

Каждый строительный блок SOA может играть любую из трех ролей:

Поставщик услуг
Он создает веб-службу и предоставляет информацию о ней в реестр служб. Каждый провайдер обсуждает множество способов и причин, например, какую услугу предоставить, чему придать большее значение: безопасность или легкая доступность, какую цену предложить услугу и многое другое.. Провайдер также должен решить, в какую категорию должна быть включена услуга для данной брокерской услуги.[16] и какие соглашения с торговыми партнерами необходимы для использования услуги.
Брокер услуг, реестр услуг или репозиторий услуг
Его основная функция - сделать информацию о веб-сервисе доступной любому потенциальному заказчику. Тот, кто внедряет брокера, определяет объем брокера. Публичные брокеры доступны везде и везде, но частные брокеры доступны только ограниченному кругу людей. UDDI была ранней, уже не поддерживаемой активно попыткой предоставить Обнаружение веб-сервисов.
Запрашивающая услуга / потребитель
Он находит записи в реестре брокера с помощью различных операций поиска, а затем связывается с поставщиком услуг, чтобы вызвать одну из его веб-служб. Какая бы услуга ни была нужна потребителям услуг, они должны передать ее брокерам, связать с соответствующей услугой и затем использовать. Они могут получить доступ к нескольким службам, если служба предоставляет несколько служб.

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

Шаблоны композиции услуг имеют два широких архитектурных стиля высокого уровня: хореография и оркестровка. Шаблоны интеграции предприятия нижнего уровня, не привязанные к определенному архитектурному стилю, по-прежнему актуальны и приемлемы для проектирования SOA.[18][19][20]

Подходы к реализации

Сервис-ориентированная архитектура может быть реализована с веб-сервисы или Микросервисы.[21] Это сделано для того, чтобы функциональные строительные блоки были доступны через стандартные Интернет-протоколы, которые не зависят от платформ и языков программирования. Эти службы могут представлять либо новые приложения, либо просто оболочки существующих устаревших систем, чтобы сделать их доступными для работы в сети.[22]

Разработчики обычно создают SOA, используя стандарты веб-сервисов. Одним из примеров является МЫЛО, который получил широкое признание в отрасли после рекомендации версии 1.2 от W3C[23] (Консорциум World Wide Web) в 2003 г. Эти стандарты (также называемые спецификации веб-сервисов ) также обеспечивают большую функциональную совместимость и некоторую защиту от привязки к проприетарному программному обеспечению поставщика. Однако можно также реализовать SOA, используя любую другую сервисную технологию, такую ​​как Джини, CORBA, ОСТАЛЬНЫЕ, или gRPC.

Архитектуры могут работать независимо от конкретных технологий и поэтому могут быть реализованы с использованием широкого спектра технологий, в том числе:

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

Эти сервисы взаимодействуют на основе формального определения (или контракта, например, WSDL), которое не зависит от базовой платформы и языка программирования. Определение интерфейса скрывает реализацию языковой службы. Таким образом, системы на основе SOA могут функционировать независимо от технологий и платформ разработки (таких как Java, .NET и т. Д.). Сервисы, написанные на C #, работающие на платформах .NET, и сервисы, написанные на Java, работающие на Java EE платформы, например, могут использоваться общим составным приложением (или клиентом). Приложения, работающие на любой платформе, также могут использовать сервисы, работающие на другой платформе, как веб-сервисы, которые облегчают повторное использование. Управляемые среды также могут объединять устаревшие системы COBOL и представлять их как программные услуги..[24]

Языки программирования высокого уровня такие как BPEL и спецификации, такие как WS-CDL и WS-координация расширить концепцию сервиса, предоставив метод определения и поддержки оркестровки детализированных сервисов в более грубые бизнес-сервисы, которые архитекторы, в свою очередь, могут включить в рабочие процессы и бизнес-процессы, реализованные в композитные приложения или порталы.

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

Элементы SOA, Дирк Крафциг, Карл Бэнке и Дирк Слама[25]
Мета-модель SOA, Linthicum Group, 2007 г.

Организационные преимущества

Немного архитекторы предприятий считают, что SOA может помочь предприятиям быстрее и экономичнее реагировать на меняющиеся рыночные условия.[26] Этот стиль архитектура способствует повторному использованию на макро (сервисном) уровне, а не на микро (классах) уровне. Это также может упростить подключение и использование существующих ИТ-активов (унаследованных).

Идея SOA в том, что организация может взглянуть на проблему целостно. Бизнес имеет более полный контроль. Теоретически не может быть массы разработчиков, использующих любые наборы инструментов, которые им нравятся. Но скорее они будут кодировать в соответствии со стандартом, установленным в бизнесе. Они также могут разрабатывать корпоративную SOA, инкапсулирующую бизнес-ориентированную инфраструктуру. SOA также была проиллюстрирована как система шоссе, обеспечивающая эффективность для водителей автомобилей. Дело в том, что если бы у всех была машина, но нигде не было бы шоссе, все было бы ограничено и дезорганизовано в любой попытке добраться куда-нибудь быстро или эффективно. Вице-президент IBM по веб-службам Майкл Либоу говорит, что SOA «строит магистрали».[27]

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

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

Причины для рассмотрения реализации услуг как отдельных проектов от более крупных:

  1. Разделение продвигает бизнес-концепцию о том, что услуги могут быть предоставлены быстро и независимо от более крупных и медленных проектов, типичных для организации. Бизнес начинает понимать системы и упрощенные пользовательские интерфейсы, вызывающие сервисы. Это защищает ловкость. Другими словами, он способствует развитию бизнес-инноваций и ускоряет вывод продукта на рынок.[28]
  2. Разделение способствует отделению услуг от проектов-потребителей. Это способствует хорошему дизайну, поскольку услуга разрабатывается без знания того, кто ее потребители.
  3. Документация и тестовые артефакты службы не встраиваются в детали более крупного проекта. Это важно, когда сервис необходимо повторно использовать позже.

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

Примеры могут оказаться полезными, чтобы помочь в документировании услуги до уровня, на котором она станет полезной. Документация по некоторым API в рамках процесса сообщества Java предоставляет хорошие примеры. Поскольку они являются исчерпывающими, сотрудники обычно используют только важные подмножества. Файл ossjsa.pdf в JSR-89 является примером такого файла.[29]

Критика

SOA была объединена с Веб-сервисы;[30] однако веб-службы - это лишь один из вариантов реализации шаблонов, составляющих стиль SOA. При отсутствии собственных или двоичных форм удаленного вызова процедур (RPC) приложения могут работать медленнее и требовать большей вычислительной мощности, что увеличивает затраты. Большинство реализаций несут эти накладные расходы, но SOA может быть реализована с использованием технологий (например, Бизнес-интеграция с Java (JBI), Фонд связи Windows (WCF) и служба распространения данных (DDS)), которые не зависят от удаленных вызовов процедур или перевода через XML или JSON. В то же время появляющиеся технологии синтаксического анализа XML с открытым исходным кодом (такие как VTD-XML ) и различные XML-совместимые двоичные форматы обещают значительно улучшить производительность SOA.[31][32][33]

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

Основная проблема, с которой сталкивается сервис-ориентированная архитектура, - это управление метаданными. Среды, основанные на SOA, включают множество сервисов, которые взаимодействуют друг с другом для выполнения задач. Из-за того, что дизайн может включать в себя несколько служб, работающих вместе, Приложение может генерировать миллионы сообщений. Дополнительные услуги могут принадлежать разным организациям или даже конкурирующим фирмам, что создает огромную проблему доверия. Таким образом, управление SOA входит в схему вещей.[36]

Еще одна серьезная проблема, с которой сталкивается SOA, - это отсутствие единой среды тестирования. Не существует инструментов, обеспечивающих необходимые функции для тестирования этих сервисов в сервис-ориентированной архитектуре. Основные причины затруднений:[37]

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

Расширения и варианты

Архитектура, управляемая событиями

Интерфейсы прикладного программирования

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

Веб 2.0

Тим О'Рейли ввел термин "Веб 2.0 "для описания воспринимаемого, быстро растущего набора веб-приложений.[38] Тема, которая получила широкое освещение, включает отношения между Web 2.0 и сервис-ориентированными архитектурами.[который? ]

SOA - это философия инкапсуляции логики приложения в сервисы с единообразно определенным интерфейсом и обеспечения их публичного доступа через механизмы обнаружения. Понятие сокрытия сложности и повторного использования, а также концепция слабо связанных сервисов вдохновили исследователей на уточнение сходства между двумя философиями, SOA и Web 2.0, и их соответствующими приложениями. Некоторые утверждают, что Web 2.0 и SOA имеют существенно разные элементы и поэтому не могут рассматриваться как «параллельные философии», тогда как другие считают эти две концепции взаимодополняющими и рассматривают Web 2.0 как глобальную SOA.[39]

Философия Web 2.0 и SOA обслуживает разные потребности пользователей и, таким образом, обнаруживает различия в дизайне, а также в технологиях, используемых в реальных приложениях. Однако по состоянию на 2008 г.сценарии использования продемонстрировали потенциал объединения технологий и принципов как Web 2.0, так и SOA.[39]

Микросервисы

Микросервисы - это современная интерпретация сервис-ориентированных архитектур, используемых для построения распределенные программные системы. Сервисы в микросервисной архитектуре[40] находятся процессы которые общаются друг с другом по сеть чтобы выполнить цель. Эти сервисы не зависят от технологий протоколы,[41] которые помогают инкапсулировать выбор языка и фреймворков, делая их выбор внутренним для сервиса. Микросервисы - это новый подход к реализации и реализации SOA, который стал популярным с 2014 года (и после введения DevOps ), в которых также делается упор на непрерывное развертывание и другие гибкие методы.[42]

Нет единого общепринятого определения микросервисов. В литературе можно найти следующие характеристики и принципы:

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

Смотрите также

использованная литература

  1. ^ «Глава 1: Сервисно-ориентированная архитектура (SOA)». msdn.microsoft.com. Архивировано из оригинал 6 февраля 2016 г.. Получено 21 сентября, 2016.
  2. ^ «Стандарты сервис-ориентированной архитектуры - открытая группа». www.opengroup.org.
  3. ^ "Что такое SOA?". www.opengroup.org. Архивировано из оригинал 19 августа 2016 г.. Получено 21 сентября, 2016.
  4. ^ Велте, Энтони Т. (2010). Облачные вычисления: практический подход. Макгроу Хилл. ISBN  978-0-07-162694-1.
  5. ^ «Переход на сервис-ориентированную архитектуру, часть 1». 9 декабря 2008 г. Архивировано 9 декабря 2008 г.. Получено 21 сентября, 2016.CS1 maint: BOT: статус исходного URL-адреса неизвестен (ссылка на сайт)
  6. ^ а б Майкл Белл (2008). «Введение в сервис-ориентированное моделирование». Сервис-ориентированное моделирование: анализ, проектирование и архитектура сервисов. Wiley & Sons. п.3. ISBN  978-0-470-14111-3.
  7. ^ Майкл Белл (2010). Шаблоны моделирования SOA для сервис-ориентированного обнаружения и анализа. Wiley & Sons. п.390. ISBN  978-0-470-48197-4.
  8. ^ «Манифест SOA». www.soa-manifesto.org. Получено 21 сентября, 2016.
  9. ^ Томас Эрл (июнь 2005 г.). О принципах. Serviceorientation.org
  10. ^ «Блог о стратегиях платформы приложений: SOA мертв; да здравствует сервис». Apsblog.burtongroup.com. 5 января 2009 г. Архивировано с оригинал 15 января 2009 г.. Получено 13 августа, 2012.
  11. ^ Ивонн Бальцер Улучшите свои планы проекта SOA, IBM, 16 июля 2004 г.
  12. ^ Команда Microsoft Windows Communication Foundation (2012). «Принципы сервис-ориентированного дизайна». msdn.microsoft.com. Получено 3 сентября, 2012.
  13. ^ Принципы Томас Эрл компании SOA Systems Inc. восемь конкретных принципов сервисной ориентации
  14. ^ М. Хади Валипур; Бавар АмирЗафари; Х. Ники Малеки; Негин Данешпур (2009). «Краткий обзор концепций архитектуры программного обеспечения и сервис-ориентированной архитектуры». 2009 2-я Международная конференция IEEE по компьютерным наукам и информационным технологиям. С. 34–38. Дои:10.1109 / ICCSIT.2009.5235004. ISBN  978-1-4244-4519-6. S2CID  14980694.
  15. ^ Тони Шан (2004). "Создание сервис-ориентированной электронной Банковское дело Платформа". Международная конференция IEEE по Сервисы Computing, 2004. (SCC 2004). Ход работы. 2004 г.. С. 237–244. Дои:10.1109 / SCC.2004.1358011. ISBN  978-0-7695-2225-8. S2CID  13156128.2004
  16. ^ Дуань, Юконг; Нарендра, Нанджангуд; Ду, Вэньцай; Ван, Юнчжи; Чжоу, Няньцзюнь (2014). «Изучение брокерской деятельности облачных сервисов с точки зрения интерфейса». Международная конференция IEEE по веб-сервисам, 2014 г.. IEEE. С. 329–336. Дои:10.1109 / ICWS.2014.55. ISBN  978-1-4799-5054-6. S2CID  17957063.
  17. ^ Дуань, Юконг (2012). «Обзор договора на оказание услуг». 2012 13-я Международная конференция ACIS по программной инженерии, искусственному интеллекту, сетям и параллельным / распределенным вычислениям. IEEE. С. 805–810. Дои:10.1109 / SNPD.2012.22. ISBN  978-1-4673-2120-4. S2CID  1837914.
  18. ^ Олаф Циммерманн, Чезаре Паутассо, Грегор Хопе, Бобби Вульф (2016). «Десятилетие моделей интеграции предприятия». Программное обеспечение IEEE. 33 (1): 13–19. Дои:10.1109 / MS.2016.11.CS1 maint: несколько имен: список авторов (ссылка на сайт)
  19. ^ Ротем-Гал-Оз, Арнон (2012). Шаблоны SOA. Публикации Мэннинга. ISBN  978-1933988269.
  20. ^ Юлиш, Клаус; Сутер, Кристоф; Войталла, Томас; Циммерманн, Олаф (2011). «Соблюдение нормативных требований - Преодоление пропасти между аудиторами и ИТ-архитекторами» (PDF). Компьютеры и безопасность. 30 (6–7): 410–426. CiteSeerX  10.1.1.390.3652. Дои:10.1016 / якоза.2011.03.005.
  21. ^ Бранднер М., Краес М., Оеллерманн Ф., Циммерманн О. Архитектура, ориентированная на веб-службы, в производстве в финансовой индустрии, Informatik-Spektrum 02/2004, Springer-Verlag, 2004
  22. ^ "www.ibm.com". Получено 10 сентября, 2016.
  23. ^ "SOAP Version 1.2 の 公開 に つ い て (W3C 勧 告)" (по-японски). W3.org. Получено 13 августа, 2012.
  24. ^ Окишима, Харухиру (2006). "." Пример системной архитектуры, использующей ресурсы COBOL."" (PDF).
  25. ^ Корпоративная SOA. Прентис Холл, 2005
  26. ^ Кристофер Кох Новый план для предприятия, Журнал CIO, 1 марта 2005 г.
  27. ^ Элизабет Миллард (январь 2005 г.). «Создание лучшего процесса». Пользователь компьютера. Стр.20.
  28. ^ Брайан Циммерли (11 ноября 2009 г.) Бизнес-преимущества SOA, Университет прикладных наук Северо-Западной Швейцарии, Школа бизнеса
  29. ^ JSR-000089 OSS Service Activation API Specification 1.0 Final Release. sun.com
  30. ^ Джо МакКендрик. "Брэй: SOA слишком сложна; просто поставщик BS'". ZDNet.
  31. ^ Джимми Чжан (20 февраля 2008 г.) «Индексирование XML-документов с помощью VTD-XML». XML журнал.
  32. ^ Джимми Чжан (5 августа 2008 г.) «Точка зрения i-Technology: проблема производительности двоичного XML». Журнал микросервисов.
  33. ^ Джимми Чжан (9 января 2008 г.) «Управляйте XML-контентом с помощью Ximple». devx.com.
  34. ^ «Причина, по которой SOA не обеспечивает устойчивое программное обеспечение». jpmorgenthal.com. 19 июня 2009 г.. Получено 27 июня, 2009.
  35. ^ «Сервисы SOA все еще слишком ограничены приложениями, которые они представляют». zdnet.com. 27 июня 2009 г.. Получено 27 июня, 2009.
  36. ^ «Уровень управления». www.opengroup.org. Получено 22 сентября, 2016.
  37. ^ «Как эффективно протестировать сервис-ориентированную архитектуру | WSO2 Inc». wso2.com. Получено 22 сентября, 2016.
  38. ^ «Что такое Web 2.0». Тим О'Рейли. 30 сентября 2005 г.. Получено 10 июня, 2008.
  39. ^ а б Кристоф Шрот; Тилль Джаннер (2007). «Web 2.0 и SOA: конвергенция концепций, делающих возможным Интернет услуг». ИТ-специалист. 9 (3): 36–41. Дои:10.1109 / MITP.2007.60. S2CID  2859262. Получено 23 февраля, 2008.
  40. ^ Драгони, Никола; Джаллоренцо, Саверио; Альберто Люч Лафуэнте; Маццара, Мануэль; Монтези, Фабрицио; Мустафин, Руслан; Сафина, Лариса (2016). «Микросервисы: вчера, сегодня, завтра». arXiv:1606.04036v1 [cs.SE ].
  41. ^ Джеймс Льюис и Мартин Фаулер. «Микросервисы».
  42. ^ Balalaie, A .; Heydarnoori, A .; Джамшиди, П. (1 мая 2016 г.). «Архитектура микросервисов позволяет DevOps: переход к облачной архитектуре» (PDF). Программное обеспечение IEEE. 33 (3): 42–52. Дои:10.1109 / MS.2016.64. HDL:10044/1/40557. ISSN  0740-7459. S2CID  18802650.