Учебники

Распределенная Архитектура

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

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

  • Распределенная система может быть продемонстрирована клиент-серверной архитектурой, которая формирует основу для многоуровневых архитектур; альтернативами являются архитектура брокера, такая как CORBA, и сервис-ориентированная архитектура (SOA).

  • Существует несколько технологических структур для поддержки распределенных архитектур, включая .NET, J2EE, CORBA, .NET Web-сервисы, AXIS Java Web-сервисы и сервисы Globus Grid.

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

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

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

Распределенная система может быть продемонстрирована клиент-серверной архитектурой, которая формирует основу для многоуровневых архитектур; альтернативами являются архитектура брокера, такая как CORBA, и сервис-ориентированная архитектура (SOA).

Существует несколько технологических структур для поддержки распределенных архитектур, включая .NET, J2EE, CORBA, .NET Web-сервисы, AXIS Java Web-сервисы и сервисы Globus Grid.

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

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

Промежуточное ПО как инфраструктура для распределенной системы

Концепция распределенной архитектуры

Основой распределенной архитектуры является ее прозрачность, надежность и доступность.

В следующей таблице перечислены различные формы прозрачности в распределенной системе.

Sr.No. Прозрачность и описание
1

Доступ

Скрывает способ доступа к ресурсам и различия в платформе данных.

2

Место нахождения

Скрывает, где расположены ресурсы.

3

Технология

Скрывает от пользователя различные технологии, такие как язык программирования и ОС.

4

Миграция / Переезд

Скрыть ресурсы, которые могут быть перемещены в другое место, которые используются.

5

копирование

Скрыть ресурсы, которые могут быть скопированы в нескольких местах.

6

совпадение

Скрыть ресурсы, которые могут быть использованы другими пользователями.

7

недостаточность

Скрывает сбой и восстановление ресурсов от пользователя.

8

Упорство

Скрывает, находится ли ресурс (программное обеспечение) в памяти или на диске.

Доступ

Скрывает способ доступа к ресурсам и различия в платформе данных.

Место нахождения

Скрывает, где расположены ресурсы.

Технология

Скрывает от пользователя различные технологии, такие как язык программирования и ОС.

Миграция / Переезд

Скрыть ресурсы, которые могут быть перемещены в другое место, которые используются.

копирование

Скрыть ресурсы, которые могут быть скопированы в нескольких местах.

совпадение

Скрыть ресурсы, которые могут быть использованы другими пользователями.

недостаточность

Скрывает сбой и восстановление ресурсов от пользователя.

Упорство

Скрывает, находится ли ресурс (программное обеспечение) в памяти или на диске.

преимущества

  • Совместное использование ресурсов — совместное использование аппаратных и программных ресурсов.

  • Открытость — Гибкость использования аппаратного и программного обеспечения разных производителей.

  • Параллельная обработка — параллельная обработка для повышения производительности.

  • Масштабируемость — увеличение пропускной способности за счет добавления новых ресурсов.

  • Отказоустойчивость — способность продолжать работу после возникновения неисправности.

Совместное использование ресурсов — совместное использование аппаратных и программных ресурсов.

Открытость — Гибкость использования аппаратного и программного обеспечения разных производителей.

Параллельная обработка — параллельная обработка для повышения производительности.

Масштабируемость — увеличение пропускной способности за счет добавления новых ресурсов.

Отказоустойчивость — способность продолжать работу после возникновения неисправности.

Недостатки

  • Сложность — они более сложны, чем централизованные системы.

  • Безопасность — более подвержена внешним атакам.

  • Управляемость — для управления системой требуется больше усилий.

  • Непредсказуемость — непредсказуемые ответы в зависимости от организации системы и загрузки сети.

Сложность — они более сложны, чем централизованные системы.

Безопасность — более подвержена внешним атакам.

Управляемость — для управления системой требуется больше усилий.

Непредсказуемость — непредсказуемые ответы в зависимости от организации системы и загрузки сети.

Централизованная система против распределенной системы

критерии Централизованная система Распределенная Система
экономика Низкий Высоко
Доступность Низкий Высоко
сложность Низкий Высоко
консистенция просто Высоко
Масштабируемость Бедные Хорошо
Технология гомогенный гетерогенный
Безопасность Высоко Низкий

Клиент-серверная архитектура

Архитектура клиент-сервер является наиболее распространенной архитектурой распределенной системы, которая разбивает систему на две основные подсистемы или логические процессы —

  • Клиент — это первый процесс, который отправляет запрос второму процессу, то есть серверу.

  • Сервер — это второй процесс, который получает запрос, выполняет его и отправляет ответ клиенту.

Клиент — это первый процесс, который отправляет запрос второму процессу, то есть серверу.

Сервер — это второй процесс, который получает запрос, выполняет его и отправляет ответ клиенту.

В этой архитектуре приложение моделируется как набор сервисов, предоставляемых серверами, и набор клиентов, использующих эти сервисы. Серверы не должны знать о клиентах, но клиенты должны знать идентичность серверов, и отображение процессоров на процессы не обязательно 1: 1

Двухуровневая клиент-серверная архитектура

Клиент-серверная архитектура может быть классифицирована на две модели на основе функциональности клиента —

Модель тонкого клиента

В модели тонкого клиента вся обработка приложений и управление данными осуществляется сервером. Клиент просто отвечает за запуск программного обеспечения для презентации.

  • Используется, когда устаревшие системы переносятся на архитектуры клиент-сервер, в которых устаревшая система действует как сервер сама по себе с графическим интерфейсом, реализованным на клиенте

  • Основным недостатком является то, что он создает большую нагрузку на обработку как на сервере, так и в сети.

Используется, когда устаревшие системы переносятся на архитектуры клиент-сервер, в которых устаревшая система действует как сервер сама по себе с графическим интерфейсом, реализованным на клиенте

Основным недостатком является то, что он создает большую нагрузку на обработку как на сервере, так и в сети.

Модель толстого / толстого клиента

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

  • Наиболее подходит для новых систем C / S, где возможности клиентской системы известны заранее

  • Более сложная, чем модель тонкого клиента, особенно для управления. Новые версии приложения должны быть установлены на всех клиентах.

Наиболее подходит для новых систем C / S, где возможности клиентской системы известны заранее

Более сложная, чем модель тонкого клиента, особенно для управления. Новые версии приложения должны быть установлены на всех клиентах.

Толстый / Толстый клиент Модель

преимущества

  • Разделение обязанностей, таких как представление пользовательского интерфейса и обработка бизнес-логики.

  • Возможность повторного использования серверных компонентов и возможности параллелизма

  • Упрощает проектирование и разработку распределенных приложений

  • Это облегчает миграцию или интеграцию существующих приложений в распределенную среду.

  • Он также эффективно использует ресурсы, когда большое количество клиентов получают доступ к высокопроизводительному серверу.

Разделение обязанностей, таких как представление пользовательского интерфейса и обработка бизнес-логики.

Возможность повторного использования серверных компонентов и возможности параллелизма

Упрощает проектирование и разработку распределенных приложений

Это облегчает миграцию или интеграцию существующих приложений в распределенную среду.

Он также эффективно использует ресурсы, когда большое количество клиентов получают доступ к высокопроизводительному серверу.

Недостатки

  • Отсутствие разнородной инфраструктуры, чтобы справиться с изменениями требований.

  • Осложнения безопасности.

  • Ограниченная доступность и надежность сервера.

  • Ограниченная тестируемость и масштабируемость.

  • Толстые клиенты с презентацией и бизнес-логикой вместе.

Отсутствие разнородной инфраструктуры, чтобы справиться с изменениями требований.

Осложнения безопасности.

Ограниченная доступность и надежность сервера.

Ограниченная тестируемость и масштабируемость.

Толстые клиенты с презентацией и бизнес-логикой вместе.

Многоуровневая архитектура (n-уровневая архитектура)

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

N-уровневая архитектура

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

Уровень презентации

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

Уровень приложения (бизнес-логика, уровень логики или средний уровень)

Уровень приложения координирует приложение, обрабатывает команды, принимает логические решения, оценивает и выполняет вычисления. Он контролирует функциональность приложения, выполняя подробную обработку. Он также перемещает и обрабатывает данные между двумя окружающими слоями.

Уровень данных

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

Уровень данных

преимущества

  • Лучшая производительность, чем у тонкого клиента, и проще в управлении, чем у толстого клиента.

  • Улучшает возможность повторного использования и масштабируемости — по мере увеличения требований могут быть добавлены дополнительные серверы.

  • Обеспечивает многопоточную поддержку, а также уменьшает сетевой трафик.

  • Обеспечивает ремонтопригодность и гибкость

Лучшая производительность, чем у тонкого клиента, и проще в управлении, чем у толстого клиента.

Улучшает возможность повторного использования и масштабируемости — по мере увеличения требований могут быть добавлены дополнительные серверы.

Обеспечивает многопоточную поддержку, а также уменьшает сетевой трафик.

Обеспечивает ремонтопригодность и гибкость

Недостатки

  • Неудовлетворительная тестируемость из-за отсутствия инструментов тестирования.

  • Более критичная надежность и доступность сервера.

Неудовлетворительная тестируемость из-за отсутствия инструментов тестирования.

Более критичная надежность и доступность сервера.

Брокер Архитектурный Стиль

Broker Architectural Style — это архитектура промежуточного программного обеспечения, используемая в распределенных вычислениях для координации и обеспечения связи между зарегистрированными серверами и клиентами. Здесь обмен объектами происходит через систему промежуточного программного обеспечения, называемую посредником запросов объектов (программная шина).

  • Клиент и сервер не взаимодействуют друг с другом напрямую. Клиент и сервер имеют прямое подключение к своему прокси, который взаимодействует с посредником-брокером.

  • Сервер предоставляет сервисы, регистрируя и публикуя свои интерфейсы с брокером, и клиенты могут запрашивать сервисы у брокера статически или динамически при поиске.

  • CORBA (Common Object Request Broker Architecture) является хорошим примером реализации архитектуры брокера.

Клиент и сервер не взаимодействуют друг с другом напрямую. Клиент и сервер имеют прямое подключение к своему прокси, который взаимодействует с посредником-брокером.

Сервер предоставляет сервисы, регистрируя и публикуя свои интерфейсы с брокером, и клиенты могут запрашивать сервисы у брокера статически или динамически при поиске.

CORBA (Common Object Request Broker Architecture) является хорошим примером реализации архитектуры брокера.

Компоненты брокерского архитектурного стиля

Компоненты архитектурного стиля брокера обсуждаются в следующих главах —

Маклер

Брокер отвечает за координацию коммуникации, такую ​​как пересылка и отправка результатов и исключений. Это может быть сервис, ориентированный на вызовы, брокер, ориентированный на документы или сообщения, которому клиенты отправляют сообщение.

  • Он отвечает за обработку запросов на обслуживание, поиск соответствующего сервера, передачу запросов и отправку ответов клиентам.

  • Он сохраняет регистрационную информацию серверов, включая их функциональные возможности и услуги, а также информацию о местоположении.

  • Он предоставляет API-интерфейсы для запросов клиентов, серверы для ответа, регистрации или отмены регистрации серверных компонентов, передачи сообщений и определения местоположения серверов.

Он отвечает за обработку запросов на обслуживание, поиск соответствующего сервера, передачу запросов и отправку ответов клиентам.

Он сохраняет регистрационную информацию серверов, включая их функциональные возможности и услуги, а также информацию о местоположении.

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

огрызок

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

Прокси скрывает IPC (межпроцессное взаимодействие) на уровне протокола и выполняет маршалинг значений параметров и демаршализацию результатов с сервера.

остов

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

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

Мост

Мост может соединять две разные сети на основе разных протоколов связи. Он является посредником различных брокеров, включая DCOM, .NET remote и Java CORBA.

Мосты являются необязательным компонентом, который скрывает детали реализации, когда два брокера взаимодействуют, принимают запросы и параметры в одном формате и переводят их в другой формат.

Модель брокера

Брокерская реализация в CORBA

CORBA является международным стандартом для Object Request Broker — промежуточного программного обеспечения для управления связью между распределенными объектами, определенными OMG (группа управления объектами).

Архитектура CORBA

Сервис-ориентированная архитектура (SOA)

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

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

SOA

Особенности SOA

Сервис-ориентированная архитектура обеспечивает следующие функции —

  • Распределенное развертывание. Предоставляйте корпоративные данные и бизнес-логику в виде слабых, связанных, обнаруживаемых, структурированных, основанных на стандартах, грубых компонентов без сохранения состояния, называемых сервисами.

  • Возможность компоновки. Соберите новые процессы из существующих сервисов, которые представлены с желаемой степенью детализации через четко определенные, опубликованные и стандартные интерфейсы жалоб.

  • Функциональная совместимость — совместное использование возможностей и повторное использование общих служб в сети независимо от базовых протоколов или технологий реализации

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

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

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

Функциональная совместимость — совместное использование возможностей и повторное использование общих служб в сети независимо от базовых протоколов или технологий реализации

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

SOA Operation

На следующем рисунке показано, как работает SOA.

SOA-операции

преимущества

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

Каждый компонент службы независим от других служб благодаря функции обслуживания без сохранения состояния.

Реализация службы не повлияет на применение службы, если открытый интерфейс не изменяется.

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

Возможность повторного использования активов и сервисов, поскольку клиенты сервиса должны знать только его открытые интерфейсы, состав сервиса.

Разработка бизнес-приложений на основе SOA намного эффективнее с точки зрения времени и затрат.

Улучшает масштабируемость и обеспечивает стандартное соединение между системами.

Эффективное и эффективное использование «Бизнес-услуг».

Интеграция становится намного проще и улучшается внутренняя совместимость.

Абстрактная сложность для разработчиков и активизация бизнес-процессов ближе к конечным пользователям.