понедельник, 7 марта 2011 г.

ISSP \ Домен 09. Безопасность приложений. Часть 7

В этой части рассмотрены следующие вопросы:
  • Распределенные вычисления
  • CORBA и ORB
  • COM и DCOM
  • EJB
  • OLE
  • Распределенная вычислительная среда
  • Экспертные системы
  • Искусственные нейронные сети


Многие современные приложения используют клиент-серверную модель, при которой меньшая часть приложения (клиент) может работать на множестве различных систем, а большая часть (сервер) – запускается на сервере. Серверная часть имеет значительно более широкую функциональность и работает на более мощной платформе, по сравнению с клиентской частью. Клиенты направляют запросы серверной части, а сервер возвращает им уже готовые результаты. Выглядит достаточно просто. Но каким образом организуется взаимодействие клиентских частей с серверной?

Тремя основными вариантами архитектуры взаимодействия клиентских и серверной частей являются: CORBA, EJB и Microsoft COM. Они будут рассмотрены далее в этом разделе.

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

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


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

CORBA (Common Object Request Broker Architecture - Общая архитектура брокера объектных запросов) – это открытый объектно-ориентированный стандарт архитектуры, разработанный Object Management Group (OMG). CORBA позволяет организовать взаимодействие между собой огромного количества программного обеспечения, платформ и оборудования в современных средах. CORBA позволяет приложениям взаимодействовать друг с другом, независимо от того, где они находятся и кто их разработал.

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

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

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

Модель CORBA предоставляет стандарты для построения законченной распределенной среды. Она состоит из двух основных частей: компонентов, ориентированных на систему (брокеры объектных запросов (ORB – Object Request Broker) и сервисов объектов), и компонентов, ориентированных на приложения (объекты приложений и общие возможности). ORB управляет всеми коммуникациями между компонентами и позволяет им взаимодействовать в гетерогенной и распределенной среде, как показано на Рисунке 9-15. ORB работает независимо от платформы, на которой находятся объекты, что обеспечивает прекрасную совместимость.

Рисунок 9-15. ORB позволяет взаимодействовать и совместно работать различным компонентам через сетевое соединение

ORB – это промежуточное программное обеспечение (middleware), которое устанавливает отношения клиент-сервер между объектами. Если клиенту нужно получить доступ к объекту на сервере для выполнения этим объектом операции или метода, ORB перехватывает его запрос и выполняет поиск нужного объекта. Если объект будет найден, ORB вызывает нужный метод (или операцию), передает ему параметры, а затем возвращает результаты клиенту. Клиентскому программному обеспечению не нужно знать, где находится объект и как найти его. Это задача ORB. При этом объекты могут быть написаны на разных языках и работать на разных операционных системах и платформах, но клиенту не нужно беспокоиться об этом.

При взаимодействии объектов друг с другом, они используют каналы (pipe), которые являются сервисами межкомпонентной связи. Доступны различные типы каналов, например, удаленный вызов процедур (RPC – Remote Procedure Call) и ORB. ORB обеспечивают связь между распределенными объектами. Если объекту на рабочей станции нужен объект, находящийся на сервере обработки данных, он может сделать запрос через ORB. При этом ORB выполнит поиск необходимого объекта и обеспечит коммуникационный маршрут между двумя этими объектами на время, пока не завершится процесс их взаимодействия. Это клиент-серверные коммуникационные каналы, используемые во многих сетевых средах.

ORB является механизмом, который позволяет объектам взаимодействовать локально или удаленно. Он позволяет одним объектам делать запросы к другим объектам и получать ответы. Для клиента все это происходит прозрачно, ему предоставляется канал для связи со всеми нужными ему объектами. Использование CORBA позволяет приложению предоставлять доступ к своим объектам различным типам ORB. Это обеспечивает переносимость приложений и решает многие из проблем совместимости, с которыми могут столкнуться разработчики и поставщики, продукция которых работает в различных средах.


COM (Component Object Model - Объектная модель компонентов) представляет собой модель, которая обеспечивает межпроцессное взаимодействие в рамках одного приложения или между приложениями на одной компьютерной системе. Эта модель была создана Microsoft, она описывает стандартизированные API, схемы именования компонентов и коммуникационные стандарты. Если разработчику нужно, чтобы его приложение могло взаимодействовать с операционной системой Windows и различными работающими в ней приложениями, ему следует использовать стандарт COM.

Figure 11-21 CORBA provides standard interface definitions, which offer greater interoperability in heterogeneous environments.

DCOM (Distributed COM - Распределенная COM) поддерживает такую же модель взаимодействия компонентов, добавляя к ней возможность распределенного взаимодействия процессов (IPC – Interprocess Communications). COM позволяет приложениям использовать компоненты на той же системе, тогда как DCOM позволяет приложениям использовать объекты, находящиеся в различных местах в сети. Таким образом, DCOM позволяет выполнять клиент-серверное взаимодействие, в поддерживающей COM операционной системе или приложении.

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

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

Рисунок 9-16. Хотя DCOM предоставляет коммуникационный механизм для распределенной среды, он продолжает работать на основе архитектуры COM

Другими видами промежуточного программного обеспечения, предоставляющего аналогичные функциональные возможности, являются: ORB, MOM (message-oriented middleware - промежуточное программное обеспечение, ориентированное на обмен сообщениями), RPC, ODBC и т.п. DCOM предоставляет ORB-подобные сервисы, сервисы передачи данных, распределенные службы обмена сообщениями и распределенные службы транзакций, являющиеся надстройками над его механизмом RPC. DCOM объединяет все эти функции в одну технологию, которая использует тот же интерфейс, что и COM.
SOAP
Что делать, если вам нужно, чтобы программы, работающие на различных операционных системах, взаимодействовали посредством коммуникационных механизмов, основанных на веб-технологиях? Вам следует использовать SOAP (Simple Object Access Protocol - Простой протокол доступа к объектам). SOAP представляет собой протокол, основанный на XML, который кодирует сообщения в форму, понятную веб-сервисам. Если вы работаете на компьютере с операционной системой Windows 2000 и вам нужно получить доступ к серверу, работающему под управлением Windows 2008, который предоставляет некий веб-сервис, программы на вашей системе и сервере могут использовать для взаимодействия протокол SOAP, не углубляясь в вопросы совместимости. Такой вариант взаимодействия чаще всего осуществляется по протоколу HTTP, поскольку работает на подавляющем большинстве современных компьютеров.
Когда компьютер с Windows 2000 делает запрос к серверу с Windows 2008 для получения некоего сервиса, SOAP кодирует запрос таким образом, чтобы другие программы могли понять этот запрос и предоставить запрошенный сервис.
SOAP определяет XML-схему или структуру, описывающие порядок осуществления коммуникаций. XML-схема SOAP определяет порядок взаимодействия объектов напрямую. Одним из преимуществ SOAP является то, что программы могут взаимодействовать через межсетевые экраны, т.к. их правилами взаимодействие по протоколу HTTP обычно разрешено. Это помогает обеспечить работоспособность модели клиент-сервер в том случае, если клиенты и сервер находятся по разные стороны межсетевого экрана.

EJB (Enterprise JavaBeans) – это спецификация для разработки распределенных приложений, написанных на Java. EJB предоставляет интерфейсы и методы, позволяющие различным приложениям взаимодействовать в сетевой среде. При использовании протокола IIOP (Internet Inter-ORB Protocol), клиентской частью не обязательно должна быть программа, написанная на Java, это может быть любой корректно работающий клиент CORBA.
ПРИМЕЧАНИЕ. Компонент Java называется Java Bean.
J2EE (Java Platform Enterprise Edition) имеет несколько API, EJB является лишь одним из них. EJB используется для инкапсуляции бизнес-логики приложения в его серверной части (в модели клиент-сервер). Аналогично моделям COM и CORBA, которые были созданы для обеспечения модульного подхода к программированию с целью обеспечения совместимости, EJB определяет модель клиент-сервер, являющуюся объектно-ориентированной и независимой от платформы. Основной целью является получение стандартизированного метода реализации кода серверного программного обеспечения, реализующего бизнес-логику корпоративных приложений.


OLE (Object linking and embedding) - это технология связывания и внедрения объектов, основанная на COM, которая предоставляет возможность совместного использования объектов на локальном компьютере. OLE позволяет встраивать в документы объекты, такие как графические изображения, таблицы и т.п.
ПРИМЕЧАНИЕ. Возможность вызова одной программой другой программы называется связыванием (linking). Возможность поместить часть данных внутрь другой программы или документа называется встраиванием (embedding).
OLE позволяет также связывать различные объекты и документы. Например, когда вы редактируете документ в Microsoft Word и вставляете в него ссылку (URL), эта ссылка автоматически выделяется синим цветом и подчеркивается, что говорит пользователю, который будет читать ваш документ, что он может щелкнуть по этой ссылке, чтобы открыть соответствующий веб-сайт. Это является примером связывания. Если вы добавляете таблицу Excel в документ Word, экземпляр этой таблицы встраивается в ваш документ. Чтобы отредактировать эту таблицу непосредственно из Word, нужно дважды щелкнуть на таблице и операционная система откроет нужную среду (Microsoft Excel), позволяющую выполнить необходимые изменения.

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


Распределенная вычислительная среда (DCE – Distributed Computing Environment) – это стандарт, разработанный Open Software Foundation (OSF), называемой также Open Group. В основном это промежуточное программное обеспечение, доступное многим поставщикам для использования в своих продуктах. Оно обладает возможностями для поддержки множества различных видов приложений в рамках всей корпоративной среды. DCE предоставляет службу RPC, сервис безопасности, службу каталогов, службу времени, а также поддерживает распределенные файловые системы.

DCE – это набор управляющих сервисов, коммуникационные возможности которых основаны на RPC. Это программного обеспечение работает на сетевом уровне и предоставляет услуги приложениям, находящимся выше. DCOM и DCE предоставляют практически аналогичные функции. Однако DCOM был разработан Microsoft и более закрыт по своей природе.

Служба времени DCE обеспечивает синхронизацию системных часов узлов в сети, позволяет приложениям определять последовательности и планировать события, учитывая синхронизацию времени. Эта синхронизация времени предназначена для приложений, пользователи не могут напрямую получить доступ к этой функциональности. Служба каталогов дает возможность пользователям, серверам и ресурсам взаимодействовать из любых мест в сети. При передаче имени службе каталогов, она возвращает сетевой адрес ресурса вместе с другой необходимой информацией. DCOM использует глобально уникальные идентификаторы (GUID – globally unique identifier), тогда как DCE использует универсальные уникальные идентификаторы (UUID – universal unique identifier). Оба варианта применяются для однозначной идентификации пользователей, ресурсов и компонентов среды. DCE проиллюстрирован на Рисунке 9-17.

Рисунок 9-17. DCE предоставляет множество сервисов, объединенных в единую технологию

Функция RPC берет у отправляющей программы аргументы и команды, подготавливает их к передаче по сети. RPC определяет сетевой транспортный протокол, который используется для нахождения в службе каталогов узла-получателя и определения его адреса. Служба управления потоками в режиме реального времени реализует расстановку приоритетов в многопоточной среде. Сервис безопасности обеспечивает функции аутентификации и авторизации. Распределенная файловая служба (DFS - Distributed File Service) предоставляет единую интегрированную файловую систему, которую все пользователи DCE могут использовать для обмена файлами. Это важно, поскольку на различных компьютерах могут быть установлены разные операционных системы, которые могут не понимать другие файловые системы. При использовании DCE, локальная файловая система DCE работает совместно со встроенной файловой системой.


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

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

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

Обычная программа работает со входными данными и параметрами только таким способом, который был заложен в нее при разработке. Хотя обычные программы могут без труда рассчитать выплаты по ипотечному кредиту на 20 лет вперед при известной процентной ставке, они не могут спрогнозировать расположение звезд через 100 миллионов лет, поскольку у них нет значений всех переменных, которые должны применяться для такого расчета. Хотя обе программы (обычная программа и экспертная система) имеют конечный объем доступной им информации, экспертная система будет пытаться «думать» как человек, анализировать различные сценарии и сможет в результате дать ответ даже при отсутствии некоторых необходимых данных. Обычное программирование управляет данными с помощью процедур, в то время как люди пытаются решить сложные проблемы, используя абстрактные и символические подходы.

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

Специалисты в области ИИ разрабатывают методы, которые обеспечивают моделирование информации на более высоком уровне абстракции. Эти методы являются частью используемых языков и инструментов, которые позволяют разрабатывать программы, работающие подобно человеческой логике. Такие программы, способные провести человеческую экспертную оценку в конкретной области, и называются экспертными системами.
Экспертная система представляет собой компьютерную программу, содержащую базу знаний и набор алгоритмов и правил, используемых для вывода новых фактов на основе имеющихся данных и входящих запросов.
Программирование на основе правил (Rule-based programming) или логическое программирование является распространенным способом разработки экспертных систем. Правила основаны на логических последовательностях «если-то» и определяют набор действий, которые должны быть выполнены в данной ситуации. Это один из способов, которые экспертная система использует для нахождения зависимостей, что называется сравнением с образцом (pattern matching). Механизм, называемый механизмом логических выводов (inference engine), автоматически сопоставляет факты на соответствие образцу и определяет, какие правила применимы в этом случае. Соответствующие этим правилам действия, запускаются механизмом логических выводов в соответствии с его настройками.

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

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

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

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

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

Часто экспертные системы используются для автоматизации процесса анализа журналов регистрации событий в системах выявления вторжений (IDS).


Искусственная нейронная сеть (ANN – artificial neural network) – это математическая или вычислительная модель, основанная на нейронной структуре мозга. Компьютеры выполняют такие виды деятельности, как расчеты с большими числами, хранение объемных документов, выполняют сложные математические функции, но они не могут распознавать образы или учиться на собственном опыте, как может это делать мозг. ANN состоит из множества модулей, симулирующих нейроны, каждый из которых обладает небольшим объемом памяти. Эти модули обрабатывают данные, которые вводятся через их многочисленные соединения. Используя правила обучения, такие системы способны учиться на примерах и могут обобщать.

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

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

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

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

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

Известно, что события, которые произошли с человеком, находящемся в высокоэмоциональном состоянии, будут им запомнены гораздо лучше, скорее всего, он запомнит все до мельчайших подробностей. Например, Анна прекрасно помнит события своего дня рождения в 30 лет, на который она получила много подарков и провела его в компании друзей. Но она плохо помнит, что происходило в ее день рождения в 31 год, когда ее муж просто подарил ей открытку. Зато она прекрасно помнит события своего дня рождения в 32 года, когда ее муж вообще забыл ее поздравить, что едва не привело к разводу. Причиной того, что некоторые воспоминания являются более яркими, чем другие, заключается в том, что с этими воспоминаниями связано гораздо больше эмоций или они более значительны. В искусственных нейронных сетях некоторые входы также имеют больший вес, по сравнению с другими входами, что усиливает значение или важность получаемой через них информации, аналогично тому, что делают эмоции с людьми.

Интуиция – это качество, которое очень сложно повторить в электрических схемах и логических элементах. Для реализации интуиции, прогнозирования, догадок применяется нечеткая логика (fuzzy logic) и другие математические дисциплины. Эти подходы работают с вероятностями, используя математику и анализируя членство в различных множествах. Простым примером использования нечеткой логики, является стиральная машина, обладающая некоторым интеллектом. После того, как вы загрузили в нее грязную одежду, и бак заполнился водой, машина, основываясь на принципах нечеткой логики, посылает лучи света из одной части бака в другую. В зависимости от того, сколько света фактически было получено в другой части бака, она может определить, насколько грязна загруженная в нее одежда, учитывая плотность грязи в воде. Чтобы определить тип загрязнений (жирные или сухие) и проверить другие аспекты, могут использоваться дополнительные проверки. Стиральная машина берет всю эту информацию, анализирует ее, и на основании полученных результатов выбирает температуру стирки и нужное количество порошка. Это обеспечивает более эффективную стирку, т.к. экономится вода и порошок, стирка выполняется при наиболее правильной температуре, в течение нужного количества времени. Стиральная машина не может знать всех фактов, она не может быть уверена в точности всей собранной информации, однако она способна строить догадки на основе этой информации, которые будут довольно близки к реальности.

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

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

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

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

Комментариев нет: