Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы.doc
Скачиваний:
11
Добавлен:
18.09.2019
Размер:
151.55 Кб
Скачать

Понятие распределенного приложения. Клиенты и серверы.

Архитектура клиент/сервер (двухуровневая – two-tier) предполагает разделение задачи между сервером (хранит, обрабатывает и поставляет данные) и клиентом (которому необходимы эти данные). В настоящее время эта архитектура вытесняется распределенными приложениями (distributed application).

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

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

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

Пятислойная архитектура распределенных приложений.

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

Архитектура, ориентированная на сервисы. Понятие об облачных вычислениях.

Се́рвис-ориенти́рованная архитекту́ра (SOA, англ. service-oriented architecture) — модульный подход к разработке программного обеспечения, основанный на использовании распределённых, слабо связанных (англ. loose coupling) заменяемых компонентов, оснащённых стандартизированными интерфейсами для взаимодействия по стандартизированным протоколам.

Программные комплексы, разработанные в соответствии с сервис-ориентированной архитектурой обычно реализуются как набор веб-служб, взаимодействующих по протоколу SOAP, но существуют и другие реализации (например, на базе jini, CORBA, на основе REST).

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

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

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