Книги по разным темам Pages:     | 1 |   ...   | 46 | 47 | 48 | 49 | 50 |   ...   | 53 |

Распределенные вычисления появились с первыми локальными вычислительными сетями (ЛВС). Сегодня практически любая компания использует некоторый тип распределенных вычислений. Чаще всего используется архитектура клиент-сервер, при которой клиент (рабочая станция) запрашивает информацию и сервис у удаленного сервера. В качестве сервера могут выступать мощные рабочие станции, микрокомпьютеры, миникомпьютеры и мейнфреймы. Обычно они соединены в ЛВС. Сложность такой схемы в последние годы увеличивается. Для поддержки модели клиентсервер разработано несколько операционных систем, которые иногда плохо взаимодействуют друг с другом. UNIX, Windows, Novell и Banyan Vines среди тех, которые могут взаимодействовать между собой, хотя не всегда эффективно.

Принцип работы заключается в следующем: набор рабочих станций, соединенных TCP/IP сетью (кластер), можно рассматривать как мультипроцессорную систему с разделенной памятью. Для выполнения расчетов на такой системе наиболее прост и эффективен подход с разделением данных (Data parallel computing) (Рис. 1).

Рис. 1. Различия централизованного подхода и подхода с разделением данных Вторая ежегодная межрегиональная научно-практическая конференция Инфокоммуникационные технологии в региональном развитии 5-6 февраля 2009 года Говоря простыми словами, если обычное приложение обрабатывает массив независимых друг от друга данных, то при вычислении на кластере каждая рабочая станция получает на обработку свой кусочек массива.

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

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

необходимо использовать только свободное процессорное время, не мешая пользователю;

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

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

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

На рис. 2 показано типичное двухзвенное решение клиент-сервер. Это наиболее распространенная на сегодняшний день модель.

Рис. 2. Двухзвенное решение клиент-сервер Трехзвенная архитектура (Рис. 3.) используется в случаях, когда на рабочих станциях недостаточно вычислительной мощности, необходимой для выполнения приложения. В трехзвенной архитектуре также присутствует Вторая ежегодная межрегиональная научно-практическая конференция Инфокоммуникационные технологии в региональном развитии 5-6 февраля 2009 года сервер базы данных. Большинство процессов, которые обычно выполняются на рабочей станции, переносятся на сервер приложений, а клиент отвечает лишь за обновления экрана, нажатия клавиш и прочие визуальные изменения. Это значительно уменьшает нагрузку на клиентские машины и позволяет старым машинам использовать новые приложения.

Рис. 3. Трехзвенная архитектура В последнее время появилась новая среда для распределенных вычислений - Интернет. Компьютер клиента подключается к серверу, который в свою очередь передает запрос на удаленный сервер, а тот выполняет команду и возвращает результат клиенту.

Интернет изначально был изобретен военными для связи своих исследовательских центров по всей территории США. В 1990 MCI создала шлюз между отдельными сетями, чтобы позволить отдельным пользователям обмениваться почтовыми сообщениями. С появления MCIMail начался быстрый рост служб Интрнет, которые быстро расширились за территорию США и распространились по всему миру.

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

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

Толстых клиентов легко настраивать, их можно использовать независимо от сети.

Термин тонкий клиент относится к специфичному программному продукту, который обеспечивает удаленный ПК программами и информацией на низкоскоростном канале. При использовании ПО удаленного управления Вторая ежегодная межрегиональная научно-практическая конференция Инфокоммуникационные технологии в региональном развитии 5-6 февраля 2009 года между сервером и клиентом передаются только коды нажатых клавиш и изменения экрана.

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

Настоящее отличие тонкой машины от толстой состоит в отсутствии у первой жесткого диска.

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

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

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

Наконец, распределенные вычисления позволяют использовать устаревшие компьютеры для сложных расчетов, которые они не могли бы делать. Например, старые машины на процессорах 386 могут получать доступ к ресурсам серверов под управлением Windows. Причем этот тип доступа прозрачен для пользователя. Разработчик может писать приложение только для одной операционной системы и не проверять, как оно работает на других системах. Это снижает стоимость разработки и программа становится дешевле для пользователя.

Федер А.Л.

г. Смоленск Военная академия ВПВО ВС РФ ЭВОЛЮЦИЯ ИНТЕЛЛЕКТУАЛЬНЫХ АГЕНТОВ В МОДЕЛИРОВАНИИ ИНФОРМАЦИОННЫХ СИСТЕМ Вторая ежегодная межрегиональная научно-практическая конференция Инфокоммуникационные технологии в региональном развитии 5-6 февраля 2009 года В области информационных систем интеллектуальные агенты используются, прежде всего, для интеграции информационных систем, пользователей, оборудования, для поддержки принятия решений, управления знаниями.

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

Исследования в области мультиагентных систем (МАС) отличаются от исследований в области распределенного искусственного интеллекта (ИИ).

В ИИ функционирование системы распределено по множеству вершин для совместного решения проблемы. В МАС агенты имеют свои собственные цели, которые могут вступать в противоречие с целями других агентов. Тем не менее, группа логически децентрализованных агентов решает работать вместе для достижения общей цели. Это возможно сделать различными путями. Один из путей - разделить задачу на части между агентами. Другой - позволить каждому из агентов решать исходную задачу своим способом. В случае отыскания приближенных решений затем может быть выбрано наилучшее.

ибо может применяться процедура голосования агентов за то или иное решение.

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

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

Парадигма мультиагентного проектирования и реализации систем состоит в том, что программные агенты для достижения цели (выполнения некоторой работы) перемещаются с одного сервера на другой. Агенты выполняют свою работу локально на том сервере, на котором они в данный момент находятся. Обмен сообщениями (между серверами) по сети агенты, как правило, не используют. Т.Комийя, Т.Енокидо и М.Такидзава рассмотрели следующую модель.

Пусть в системе имеются серверы Serv1, Serv2, Е, Servm, соединенные каналами связи, и агенты A1, A2, Е, An, пользующиеся услугами этих серверов.

Агенты автономно выполняются на серверах. Агент самостоятельно инициализируется на сервере: процедура и данные агента записываются в память сервера объектов, если на этом сервере достаточно ресурсов для работы агента. Говорят, что агент Ak размещается (land - приземляется) на сервере Servi и этот сервер становится для агента текущим.

Для размещения на сервере важны два условия:

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

Вторая ежегодная межрегиональная научно-практическая конференция Инфокоммуникационные технологии в региональном развитии 5-6 февраля 2009 года 2. отсутствие на сервере в этот момент времени других агентов, конфликтующих с агентом Ak. Конфликт может быть вызван различными причинами, например, тем, что два агента будут работать с одним и тем же объектом в режиме изменения этого объекта (в режиме записи).

После выполнения работы с объектами на сервере Servi агент Ak может переместиться на сервер Servj для выполнения работы с находящимися там объектами. Перемещения агента зависят от того, какая перед ним стоит цель и на каких серверах находятся нужные ему объекты.

Агенты выполняют определенные операции над объектами, но и сами агенты могут быть объектами операций. Следующие операции обычно входят в перечень операций над агентами:

1. создание агента (по некоторому описанию). Создание происходит всегда на некотором сервере. Этот сервер называют домашним для созданного агента;

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

3. расслоение агента A. Агент A разделяется на несколько агентов A1, A2, Е, Al, начинающих самостоятельное существование в системе. Это разделение может коснуться программ и данных агента, а также его целей и задач;

4. слияние агентов A1, A2, Е, Al. Вместо нескольких агентов, прекращающих самостоятельное существование, возникает один агент, обобщающий процедуры и данные составляющих агентов, а также их цели и задачи;

5. уничтожение агента A. Агент A перестает существовать в системе.

Модель агентов важна, например, для обработки транзакций. Как известно, транзакция - это последовательность взаимосвязанных действий, которые должны быть выполнены на нескольких серверах распределенной системы.

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

Решение проблемы распределения состоит из четырех фаз:

1. декомпозиция агентом A задачи на подзадачи;

2. назначение подзадач агентам Ai;

3. решение подзадач агентами;

4. синтез общего результата из частных результатов.

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

Вторая ежегодная межрегиональная научно-практическая конференция Инфокоммуникационные технологии в региональном развитии 5-6 февраля 2009 года При назначении подзадач должны быть выбраны подходящие (по тем или иным критериям) агенты.

Решение подзадачи агентом Ai, которому она передана, может состоять в полностью самостоятельном решении. Но этот агент также может решить проблему распределения, т.е. в свою очередь, произвести декомпозицию подзадачи и попросить помощи у других агентов. Этот процесс разбиения задачи на подзадачи может состоять из нескольких уровней.

Pages:     | 1 |   ...   | 46 | 47 | 48 | 49 | 50 |   ...   | 53 |    Книги по разным темам