Выделяют несколько основных направлений коммерческого рынка продуктов искусственного интеллекта:
1) экспертные системы; теперь их часто обозначают еще одним термином - «системы, основанные на знаниях»;
2) нейронные сети и «размытые» (ftizzy) логики;
3) естественно-языковые системы.
Этот рынок можно разделить и иначе:
1) системы искусственного интеллекта (приложения);
2) инструментальные средства, предназначенные для автоматизации всех этапов существования приложения.
Причины, способствовавшие коммерческому успеху СИИ, следующие.
1. Специализация. Переход от разработки инструментальных средств общего назначения к проблемно/предметно специализированным средствам, что обеспечивает сокращение сроков разработки приложений, увеличивает эффективность использования инструментария, упрощает и ускоряет работу эксперта, позволяет повторно использовать информационное и программное обеспечение (объекты, классы, правила, процедуры).
2. Использование языков традиционного программирования и рабочих станций. Переход от систем, основанных на языках искусственного интеллекта (Lisp, Prolog и т.п.), к языкам традиционного программирования (С, C++ и т.п.) упростил «интегрированность» и снизил требования приложений к быстродействию и емкости памяти. Использование рабочих станций вместо ПК резко увеличило круг возможных приложений методов искусственного интеллекта.
3. Интегрированность. Разработаны инструментальные средства искусственного интеллекта, легко интегрирующиеся с другими информационными технологиями и средствами (с CASE, СУБД, контроллерами, концентраторами данных и т.п.).
4. Открытость и переносимость. Разработки ведутся с соблюдением стандартов, обеспечивающих данные характеристики.
5. Архитектура клиент/сервер. Разработка распределенной информационной системы в данной архитектуре позволяет снизить стоимость оборудования, используемого в приложении, децентрализовать приложения, повысить надежность и общую производительность, поскольку сокращается объем информации, пересылаемой между компьютерами, и каждый модуль приложения выполняется на адекватном оборудовании.
Перечисленные причины могут рассматриваться как общие требования к инструментальным средствам создания систем искусственного интеллекта.
Из пяти факторов, обеспечивших их успех в передовых странах, в России, пожалуй, полностью не реализованы четыре с половиной (в некоторых отечественных системах осуществлен переход к языкам традиционного программирования, однако они, как правило, ориентированы на среду MS-DOS, а не ОС UNIX или Windows NT. Кроме того, в России в ряде направлений исследования практически не ведутся, следовательно, в этих направлениях (нейронные сети; гибридные системы; рассуждения, основанные на прецедентах; рассуждения, основанные на ограничениях) нельзя ожидать и появления коммерческих продуктов.
Одно из наиболее популярных направлений последних лет связано с понятием автономных агентов. Их нельзя рассматривать как «подпрограммы»; это, скорее, прислуга, даже компаньон, поскольку одной из важнейших их отличительных черт является автономность, независимость от пользователя. Идея агентов опирается на понятие делегирования своих функций. Другими словами, пользователь должен довериться агенту в выполнении определенной задачи или класса задач. Всегда существует риск, что агент может что-то перепутать, сделать что-то не так. Значит, доверие и риск должны быть сбалансированными. Автономные агенты позволяют существенно повысить производительность работы при решении тех задач, в которых на человека возлагается основная нагрузка по координации различных действий.
В том, что касается автономных (интеллектуальных) агентов, то велись исследования относительно агентов, отвечающих за автоматическое генерирование технической документации. Академик А.П. Ершов для решения этой задачи сформулировал понятие деловой прозы как четко определенного подмножества естественного языка, которое может быть использовано, в частности, для синтеза технической документации (это одно из самых узких мест в любом производстве).
Еще одно направление в области искусственной жизни — генетическое программирование (genetic programming) — является попыткой использовать метафору генной инженерии для описания различных алгоритмов. Строки (string) искусственной «генетической» системы аналогичны хромосомам в биологических системах. Законченный набор строк называется структурой (structure). Структуры декодируются в набор параметров, альтернативы решении или точку в пространстве решений. Строки состоят из характеристик, или детекторов, которые могут принимать различные значения. Детекторы могут размещаться на разных позициях в строке. Все это сделано по аналогии с реальным миром. В природных системах полный генетический пакет называется генотипом. Организм, который образуется при взаимодействии генотипа с окружающей средой, носит название фенотипа. Хромосомы состоят из генов, которые могут принимать разные значения. (Например, ген цвета для глаза животного может иметь значение «зеленый» и позицию 10.)
В генетических алгоритмах роль основных строительных блоков играют строки фиксированной длины, тогда как в генетическом программировании эти строки разворачиваются в деревья.
Генетическое программирование вдохнуло новую жизнь в хорошенько уже подзабытый язык LISP (List Processing), который создавался группой Д. Маккарти (того самого, кто в 60-е годы ввел в наш обиход термин «искусственный интеллект»), как раз для обработки списков и функционального программирования. Кстати, именно этот язык
в США был и остается одним из наиболее распространенных языков программирования для задач искусственного интеллекта.
Итак, в области искусственного интеллекта наибольшего коммерческого успеха достигли экспертные системы и средства для их разработки. В свою очередь в этом направлении наибольшего успеха достигли проблемно/предметно специализированные средства.
Компьютерные сети
Локальные сети
Для удобства изложения приведем определения базовых терминов.
Сеть - два или более компьютера и подключенные к ним устройства, соединенные средствами связи (объединение нескольких компьютеров).
Клиент - компьютер или программа, использующая сетевые ресурсы, которые предоставляет другой компьютер (или программа), называемые серверами.
Сервер - компьютер (или программа) — компонент сети, предоставляющей компонентам доступ к сетевым ресурсам. Для каждого типа сетевых ресурсов создается один или несколько серверов: файл-сервер, сервер печати, почты, приложений и т.п.
Одноранговая сеть - сеть, в которой нет выделенных серверов или иерархии среди компьютеров. Все компьютеры считаются равноправными. Каждый компьютер в такой сети может использоваться как клиент и как сервер.
Простая сеть - количество компьютеров меньше десяти.
Сеть на основе сервера - сеть, в которой функции компьютеров дифференцированы на клиентов из сервера. Данный тип является стандартом для сетей, обслуживающих более десяти пользователей.
Локальная сеть - сеть со скоростью передачи данных не менее 10 Мбит/с. Соединяет ПК и другое офисное оборудование, позволяя пользователям обмениваться информацией и совместно использовать ресурсы (принтеры, устройства хранения данных). Оборудование, подключенное к локальной сети, может находиться в одном или нескольких соседних зданиях. Диаметр сети меньше 1 км. Локальные сети являются частными и не содержат арендованные каналы, однако могут иметь выходы в сети общего пользования.
Глобальная сеть - охватывает большую территорию и использует коммутированные или выделенные каналы связи, предоставляемые телефонными компаниями. Может объединять несколько локальных сетей.
Узел сети - устройство, подключенное к сети и способное взаимодействовать с другими сетевыми устройствами (рабочая станция, сервер).
Топология сети - принцип соединения компьютеров в сеть. Выделяют топологию «звезда», «кольцо» и др.
Типичная локальная сеть состоит из нескольких рабочих станций и сервера, на котором могут работать файловая служба, служба печати и другие сетевые программные средства (сервис сети).
Рабочие станции и серверы соединены некоторой средой передачи данных (media), например коаксиальным кабелем.
Для работы со средой передачи данных на каждом компьютере, подключенном к сети, должен быть сетевой адаптер (Network Interface Card). Серверы и рабочие станции связываются в локальные сети адаптерами связи через дополнительное оборудование. Основное назначение — ветвление или усиление сигнала. Сетевые адаптеры могут отличаться скоростью передачи, типом используемого кабеля, электрическими характеристиками сигнала. На одной линии, которая в локальных сетях обычно называется сегментом, могут быть подключены однотипные адаптеры. В большей части локальных сетей используют сетевые адаптеры стандарта Ethernet. Адаптеры Ethernet используют множественный доступ с контролем передачи и обнаружением столкновений CSMA/CD.
Любой установленный в компьютере адаптер должен иметь специфический драйвер, т.е. программу, которая стандартные команды передать, принять и другие преобразует в специфические для данного адаптера коды.
Современный подход к построению локальных сетей состоит в использовании специального концентрирующего оборудования для ветвления. Устройства, транслирующее кадры данных во все имеющиеся сетевые интерфейсы, называются концентратором (Hub). Устройство с внутренним буфером, фильтрующее пакеты данных (кадры данных) по имеющейся таблице адресов (MAC адресов) получателей, называется маршрутизатором (Switch).
Основное назначение КС - поддержка взаимодействия пользователей сети за счет сетевых ресурсов — вычислительных и информационных ресурсов, создания сетевых сервисов (услуг), обеспечивающих рост производительности ИС и повышение надежности и качества работы ИС. Основным параметром КС является топология сети (схема информационных потоков в сети): общая шина, кольцо (петля), «звезда», иерархическая структура и др. По масштабу территории охвата принято выделять локальные (охват до нескольких километров) - ЛВС (LAN), региональные (муниципальные, отраслевые, охват до нескольких сотен километров) - РВС (MAN), глобальные вычислительные сети (без ограничения масштаба территории) - ГВС (WAN). По признаку владения (принадлежности) различают: корпоративные (закрытые) КС - владельцами являются сообщества, организации и предприятия, ассоциации пользователей; обще доступные (открытые) КС.
Виды КС определяются в зависимости от однородности сетевых сервисов для узлов сети:
• одноранговые сети (все рабочие станции «равны» между собой по набору сетевых сервисов и телекоммуникационных функций обработки данных);
• серверные сети (различают два типа узлов: серверы, реализующие предписанные сетевые сервисы, и рабочие станции, потребляющие сетевые сервисы; например, файловый сервер обеспечивает хранение, передачу и прием файлов, защиту от несанкционированного доступа; сервер печати управляет выполнением заданий на печать на сетевом принтере, сервер Бд обеспечивает хранение и первичную обработку данных Бд и др.).
Серверные сети имеют различную архитектуру построения: файл-серверная, клиент-серверная, сервис-ориентированная. В первом варианте единицей обмена данных между сервером и рабочей станцией является файл, в других — сообщение.
Файл-серверные сети при увеличении числа пользователей имеют большой сетевой трафик. Общие данные, хранимые на сервере и поступающие на рабочие станции для обработки, недоступны для одновременного использования в процессе редактирования. Это ограничивает пропускную способность и доступность ИС.
Клиент-серверные сети используют более сложное программное обеспечение, серверная и клиентская части программного кода различаются между собой, устранены основные недостатки файл-серверных сетей, когда единицей обмена между сервером и рабочей станцией является запрос и релевантная запросу выборка, а не целый файл; при редактировании данные доступны для коллективного доступа; уменьшена нагрузка на сетевой трафик.
Разновидности клиент-серверной архитектуры:
• двухуровневый толстый клиент - на рабочей станции находится программное обеспечение в виде пользовательского интерфейса, программ бизнес-приложений. Обработка данных функциональных задач осуществляется на рабочей станции. Сервер обеспечивает хранение файлов и БД, управление сетевыми ресурсами (доступ к файлам и БД, сетевые принтеры);
• двухуровневый тонкий клиент - на рабочей станции находится только программное обеспечение в виде пользовательского интерфейса; на сервере находятся общесетевые ресурсы (БД, бизнес-приложения, принтеры). Обработка запросов к БД с использованием общесетевых бизнес-приложений выполняется на сервере;
• трехуровневый клиент-сервер - на рабочей станции находится только программное обеспечение в виде пользовательского интерфейса, сетевые ресурсы (бизнес-приложения, БД, принтеры) находятся на разных серверах. При этом возможны и трехзвенные конструкции: «клиент» - «сервер приложений» - «сервер ресурсов», основанное на использовании специального программного обеспечения (монитор обработки транзакций, программный интерфейс взаимодействия серверов-приложений с серверами БД - протокол ХА).
Сервис-ориетированная архитектура поддерживает различные Интранет/Интернет технологии: «браузер» - «сервер приложений» - «сервер ресурсов»; «сервер динамических страниц» - «веб-сервер».
Модель взаимодействия открытых сетей (модель OSI) разработана международной организацией по стандартизации.
Проблема взаимодействия двух узлов или двух станций сети разделена на семь уровней:
1) уровень приложения - инициализация или прием запроса от прикладной программы;
2) уровень представления - форматирование в пакет (при реализации некоторых стеков протоколов может отсутствовать);
3) сеансовый уровень - добавление информации о трафике (потоке информации) с указанием момента отправки пакета;
4) транспортный уровень - добавление информации для обработки ошибок;
5) сетевой уровень - добавление адресной информации и информации о месте пакета в последовательности передаваемых пакетов;
6) канальный уровень - добавление информации для проверки ошибок и подготовка данных по физическим соединениям;
7) физический уровень - передача пакета (кадра) как потока битов.
Протокол - совокупность соглашений, которые используются для связи между одноименными уровнями.
Интерфейс - взаимодействие двух смежных уровней.
В настоящее время широкое распространение получил протокол TCP/IP. Это протоколы стека в версии ОС UNIX. В качестве основного протокола сетевого уровня в стеке используется протокол IP, который изначально проектировался как протокол передачи пакетов в сетях, составляющих из большого количества локальных сетей, объединенных как локальными, так и глобальными связями.
ТСР/ IР. Термином «TCP/IP» обычно обозначают все, что связано с протоколами TCP и IP. Он охватывает целое семейство протоколов, прикладные программы и даже саму сеть. В состав семейства входят протоколы UDP, ARP, ICMP, TELNET, FTP и многие другие. ТСР/IР — это технология межсетевого взаимодействия. Модуль IP создает единую логическую сеть.
Архитектура протоколов ТСР/IР предназначена для объединенной сети, состоящей из соединенных друг с другом шлюзами отдельных разнородных пакетных подсетей, к которым подключаются разнородные машины. Каждая из подсетей работает в соответствии со своими специфическими требованиями и имеет свою природу средств связи. Однако предполагается, что каждая подсеть может принять пакет информации (данные с соответствующим сетевым заголовком) и доставить его по указанному адресу в этой конкретной подсети. Не требуется, чтобы подсеть гарантировала обязательную доставку пакетов и имела надежный протокол передачи. Таким образом, две машины, подключенные к одной подсети, могут обмениваться пакетами. Когда необходимо передать пакет между машинами, подключенными к разным подсетям, то машина-отправитель посылает пакет в соответствующий шлюз (шлюз подключен к подсети так же, как обычный узел). Оттуда пакет направляется по определенному маршруту через систему шлюзов и подсетей, пока не достигнет шлюза, подключенного к той же подсети, что и машина-получатель; там пакет направляется к получателю. Проблема доставки пакетов в такой системе решается путем реализации во всех узлах и шлюзах межсетевого протокола IP. Межсетевой уровень является по существу базовым элементом во всей архитектуре протоколов, обеспечивая возможность стандартизации протоколов верхних уровней.
Структура связей протокольных модулей. Логическая структура сетевого программного обеспечения, реализующего протоколы семейства TCP/IP в каждом узле сети Интернет, изображена на рис. 7.11. Прямоугольники обозначают обработку данных, а линии, соединяющие прямоугольники,- пути передачи данных. Горизонтальная линия внизу рисунка обозначает кабель сети Ethernet, которая используется в качестве примера физической среды. Понимание этой логической структуры является основой для понимания всей технологии Интернета.
Рис. 7.11. Структура протокольных модулей в узле сети TCP/ IP
Потоки данных. Введем ряд базовых терминов, которые мы будем использовать в дальнейшем.
Драйвер - программа, непосредственно взаимодействующая с сетевым адаптером.
Модуль - программа, взаимодействующая с драйвером, сетевыми прикладными программами или другими модулями.
Драйвер сетевого адаптера и, возможно, другие модули, специфичные для физической сети передачи данных, предоставляют сетевой интерфейс для протокольных модулей семейства TCP/IP.
Название блока данных, передаваемого по сети, зависит от того, на каком уровне стека протоколов он находится. Блок данных, с которым имеет дело сетевой интерфейс, называется кадром; если блок данных находится между сетевым интерфейсом и модулем IP, то он называется IP-пакетом; если между модулем IP и модулем UDP, то UDP-датаграммой; если между модулем IP и модулем TCP, то TCP-сегментом (или транспортным сообщением); наконец, если блок данных находится на уровне сетевых прикладных процессов, то он называется прикладным сообщением.
Эти определения, конечно, несовершенны и неполны. К тому же они меняются от публикации к публикации.
Дата: 2019-02-02, просмотров: 277.