Космическая архитектура
![]() | Эта статья может быть слишком технической для понимания большинства читателей . ( сентябрь 2011 г. ) |
Пространственная архитектура ( SBA ) — это подход к распределенным вычислительным системам, в котором различные компоненты взаимодействуют друг с другом путем обмена кортежами или записями через одно или несколько общих пространств. Это контрастирует с более распространенными подходами к службе очередей сообщений , в которых различные компоненты взаимодействуют друг с другом путем обмена сообщениями через брокера сообщений. В каком-то смысле оба подхода обмениваются сообщениями с неким центральным агентом, но способы обмена сообщениями весьма различны.
Аналогией может быть то, что брокер сообщений подобен академической конференции , где у каждого докладчика есть сцена, и он выступает в том порядке, в котором они запланированы; тогда как пространство кортежей похоже на Неконференцию , где все участники могут одновременно писать на общей доске, и все могут видеть ее одновременно.
- Пространства кортежей
- каждое пространство похоже на «канал» в системе брокера сообщений, с которым компоненты могут взаимодействовать.
- компоненты могут записывать «кортеж» или «запись» в пространство, в то время как другие компоненты могут читать записи/кортежи из пространства, но с использованием более мощных механизмов, чем брокеры сообщений.
- запись записей в пространство обычно не упорядочена, как в брокере сообщений, но может быть выполнена при необходимости
- разработка приложений с использованием этого подхода менее интуитивно понятна для большинства людей и может представлять большую когнитивную нагрузку, которую нужно оценить и использовать.
- Брокеры сообщений
- каждый брокер обычно поддерживает несколько «каналов», с которыми компоненты могут взаимодействовать.
- компоненты записывают «сообщения» в канал, в то время как другие компоненты читают сообщения из канала
- запись сообщений в канал обычно осуществляется по порядку, при этом они обычно читаются в том же порядке
- разработка приложений с использованием этого подхода более интуитивно понятна большинству людей, примерно так же, как базы данных NoSQL более интуитивно понятны, чем SQL.
Ключевой целью обоих подходов является создание слабосвязанных систем, которые минимизируют конфигурацию, особенно общие знания о том, кто что делает, что приводит к достижению целей повышения доступности, устойчивости, масштабируемости и т. д.
Более конкретно, SBA — это архитектура распределенных вычислений для достижения линейной масштабируемости высокопроизводительных приложений с отслеживанием состояния с использованием парадигмы пространства кортежей . Он следует многим принципам репрезентативной передачи состояния (REST), сервис-ориентированной архитектуры (SOA) и событийно-ориентированной архитектуры (EDA), а также элементам грид-вычислений . В космической архитектуре приложения состоят из набора самодостаточных блоков, известных как процессоры (PU). Эти единицы измерения независимы друг от друга, поэтому приложение можно масштабировать путем добавления дополнительных единиц.Модель SBA тесно связана с другими шаблонами, которые доказали свою эффективность в решении проблем масштабируемости приложений, такими как архитектура без общего доступа (SN), используемая Google, Amazon.com и другими известными компаниями. Модель также применялась многими фирмами в отрасли ценных бумаг для реализации масштабируемых приложений электронной торговли ценными бумагами.
История
[ редактировать ]Космическая архитектура (SBA) изначально была изобретена и разработана в Microsoft в 1997–1998 годах. Внутри Microsoft она была известна как платформа распределенного кэширования Youkon (YDC). Первыми крупными веб-проектами на его основе были MSN Live Search (выпущенный в сентябре 1999 г.), а затем хранилище маркетинговых данных MSN Customer (многотерабайтная база данных в памяти, совместно используемая всеми сайтами MSN), а также ряд других выпущенных сайтов MSN. в конце 1990-х и начале 2000-х годов. См. патенты США 6453404 и 6449695: [1] [2] и другие патенты на их основе: [3]
Компоненты космической архитектуры
[ редактировать ]Приложение, построенное на принципах космической архитектуры, обычно имеет следующие компоненты:
- Процессорный блок
- Единица масштабируемости и отказоустойчивости. Обычно процессорный блок создается из контейнера POJO (Plain Old Java Object), например, предоставляемого Spring Framework .
- Виртуальное промежуточное программное обеспечение
- Общая модель среды выполнения и кластеризации, используемая во всем стеке промежуточного программного обеспечения . Основными компонентами промежуточного программного обеспечения в типичной архитектуре SBA являются:
Компонент Описание Сетка сообщений Управляет потоком входящих транзакций, а также связью между службами. Сетка данных Управляет данными в распределенной памяти с возможностью синхронизации этих данных с базовой базой данных. Сетка обработки Компонент параллельной обработки на основе шаблона «главный/работник» (также известного как « шаблон доски» ), который обеспечивает параллельную обработку событий между различными службами.
- Модель сервисов на основе POJO
- Облегченная модель сервисов, которая может взять любую стандартную реализацию Java и превратить ее в слабосвязанный распределенный сервис. Модель идеальна для взаимодействия со службами, работающими в одном процессоре.
- Контейнер, управляемый SLA
- Контейнер на основе соглашения об уровне обслуживания позволяет развертывать приложение в динамическом пуле компьютеров на основе соглашений об уровне обслуживания. Определения SLA включают количество экземпляров, которые необходимо запустить, чтобы соответствовать политикам масштабирования приложений и отработки отказа, а также другим политикам.
См. также
[ редактировать ]Ссылки
[ редактировать ]Литература
[ редактировать ]Статьи/документы технические:
- Сюй, Дэчжэн; Сяоин Бай; Гуйлан Дай (2006). «Архитектура координации на основе кортежа для агентов тестирования в среде MAST» (PDF) . 2006 Второй международный симпозиум IEEE по сервисно-ориентированной системной инженерии (SOSE'06) . Университет Цинхуа, Китай. стр. 57–66. дои : 10.1109/СОСЕ.2006.6 . ISBN 0-7695-2726-4 . S2CID 19977346 .
- Энгельхардцен, Фритьоф Богер; Томми Ганьес (2002). «Использование JavaSpaces для создания адаптивных распределенных систем» (PDF) . Университетский колледж Агдера, Норвегия.