Программное обеспечение промежуточного слоя
Сейчас проявляется большой интерес к средствам промежуточного (межплатформного) программного обеспечения (middleware). Рынок этих продуктов рос в последнее время экспоненциально, и в ближайшие годы такая тенденция сохранится.
Главной задачей ПО промежуточного слоя (ПОПС) является согласование интерфейсов программ и устройств, Практически оно позволяет упростить процесс взаимодействия приложений друг с другом или с ресурсами и выполняет две функции:
– облегчение доступа приложений к ресурсам;
– ускорение процессов взаимодействия.
В промежуточном слое могут находится программы двух типов – услуги и объекты. Каждая из услуг выполняет конкретную простую функцию.
Промежуточный слой располагается между прикладным управлением и прикладными процессами, между этими процессами либо между операционной системой и прикладными процессами. К нему относят следующие средства (см. рис. 5.6).
Рисунок 5.6 – Классификация средств middleware
ПОПС, ориентированное на работу с серверами БД, предоставляет API для доступа к локальным или удаленным базам и скрывают особенности ОС и локальность базы данных. К этому типу ПОПС относятся средства реализации спецификаций ODBC, OLE DB, JDBC (Java Object Database Connectivity).
Мониторы транзакций оптимизируют работу системы, располагаются между клиентом и сервером БД и являются вторым уровнем трехзвенной архитектуры клиент-сервер. Клиентское приложение инициирует транзакцию в мониторе, который при необходимости запускает транзакцию базы данных, получает результат и перенаправляет его обратно клиентскому приложению. Наиболее популярными мониторами транзакций являются Microsoft Transaction Server, Tuxedo (BEA Systems), CICS (IBM), Encina (Transarc) и др.
Средства удаленного вызова процедур (RPC, Remots Procedure Call) предназначены для выделения части создаваемого приложения для выполнения на удаленной машине, организации вызова удаленного метода программы так, как если бы программный код находился на локальной машине. Код RPC «присоединяется» источнику и приемнику, осуществляет необходимые преобразования данных и запускает подпрограммы передачи данных по сети. RPC стали удобным механизмом для взаимодействия приложений на различных программно-аппаратных платформах. Распространенность языка программирования Java привела к созданию аналога RPC для Java-приложений – RMI (Remote Method Invocation).
MOM (Message Oriented Middleware) – система передачи сообщений между активными приложениями, в основе лежит технология очередей сообщений: приложения обмениваются информацией не непосредственно друг с другом, а используя специальные буферы (очереди). В случае необходимости обмена данными программа пересылает их в принадлежащую ей очередь и продолжает функционирование. Доставку сообщения по назначению и его хранение обеспечивает МОМ. Система может работать на разных программно-аппаратных платформах с использованием различных сетевых протоколов.
MOM, аналогично мониторам транзакций, способно оптимизировать процесс взаимодействия приложений: мониторы транзакций управляют доступом к базе данных, MOM оптимизирует пути доставки сообщений, исходя из определенного критерия. Системы, построенные на базе MOM, похожи на системы электронной почты, но отличаются от последних тем, что обеспечивают взаимодействие между приложениями, а не между людьми, передают структурированную технологическую информацию, формирующуюся без участия пользователя.
В настоящее время основную долю рынка MOM занимают продукты IBM MQSeries и Microsoft MSMQ. IBM
ORB (Object Request Broker) – брокеры объектных запросов – наиболее бурно развивающийся тип middleware, управляют обменом сообщениями в сети, принимают запросы от клиента (клиентского приложения), осуществляяют поиск и активизацию удаленных объектов, которые принципиально могут ответить на запрос, и передают ответ объектам запрашивающего приложения. ORB, как и RPC и MOM, скрывает от пользователя процесс доступа к удаленным объектам. ORB поддерживает объектную модель, ставшую де-факто стандартом при разработке больших информационных систем. В настоящее время на рынке конкурируют стандарт CORBA и технология COM корпорации Microsoft.
MOM и ORB являются наиболее универсальными средствами middleware и могут применяться в большинстве случаев для организации связи между приложениями.
Прикладные программы, написанные на языке, не зависимом от платформ, сами могут служить промежуточным слоем.
Использование промежуточного слоя оказывается целесообразным в любой распределенной среде, не зависимо от ее сложности. Особенно широко он применяется в задачах, связанных с экономикой, например, торговлей. При необходимости передачи сообщений прикладная программа посылает запрос на обслуживание. После этого все заботы об их транспортировке берет на себя промежуточный слой программного обеспечения. Примером промежуточного слоя являются программы электронной почтовой рассылки.
Основным принципом при выборе того или иного типа промежуточного ПО должно быть его соответствие тем условиям, в которых осуществляется взаимодействие, в ряде случаев целесообразно комбинирование различных типов ППО для достижения необходимой функциональности, тем более что многие из них предоставляют удобные интерфейсы для взаимодействия друг с другом.
Интеграция ИС
В условиях исключительно подвижной и изменчивой среды современного бизнеса преимущества продуктов и услуг конкурентов становятся малоразличимы, способность бизнеса быстро перестраивать свою деятельность, адекватно реагировать на открывающиеся возможности, снижать риски от вероятных угроз и соответствовать требованиям контролирующих органов становятся решающим фактором успеха. Поэтому традиционные архитектурные подходы и стили решений на базе замкнутых коммерческих систем поддержки отдельных направлений деятельности не эффективны при реализации сквозных интегрированных бизнес-процессов, которые опираются на функциональные сервисы множества информационных систем компании, ее подразделений, филиалов и внешних контрагентов.
Решение проблемы интеграции ИС в настоящее время является одной из наиболее сложных и востребованных как на уровне отдельной организации, так и на уровне города, региона и страны. Связано это с внедрением новых корпоративных приложений, расширением предоставляемых услуг и реализацией новых деловых процессов.
Интеграцию можно осуществлять на базе различных технологических решений:
- корпоративного документооборота (workflow) – технологии, позволяющей организовать единый документооборот внутри организации;
- корпоративных приложений (Enterprise Applications Integration, EAI) – технологий, ориентированных на интеграцию различных систем, приложений и данных внутри организации;
- технологии Business-to-Business Integration (B2Bi), ориентированной на обеспечение надежного и безопасного информационного обмена между различными организациями и их информационными системами;
- технологии управления бизнес-процессами (Business Process Management, BPM), являющейся результатом эволюции классических систем документооборота и делопроизводства и систем класса EAI и B2Bi;
- Service-Oriented Architecture (SOA) – технологии преобразования монолитной ИТ-инфраструктуры во множество стандартизированных, многократно используемых слабосвязанных компонентов (сервисов), из которых можно собирать необходимые решения;
- Enterprise Services Architecture (ESA) – технологии создания однородного связующего слоя над всеми приложениями.
Интеграция информационных систем и формирование единого информационного пространства на основе промышленных решений позволяет создать единый интерфейс доступа к информации для сотрудников организации. При этом:
- сохраняются ранее сделанные инвестиции в информационные системы;
- новые системы легко интегрируются с уже функционирующими приложениями и накопленными в них данными;
- изменения в бизнес-процессах организации быстро отражаются в информационной инфраструктуре.
Традиционные технологии интеграции корпоративных приложений EAI и межведомственной интеграции B2Bi основаны на брокерах (узлы пересылки, шлюзы) сообщений. Продукты этого класса обеспечивают транспорт гарантированной доставки сообщений между приложениями в территориально распределенной среде.
Эффективному взаимодействию компаний и предприятий на базе подхода EAI мешают его ограничения: специализированность, ограниченная интеграция и недостаток стандартов открытых отраслевых сетей.
Специалисты видят выход в переориентации на управляемую бизнес-требованиями сервис-ориентированную архитектуру SOA (Service-Oriented Architecture) предлагает разработчикам новый подход к многократному использованию кода. Вместо традиционного объектно-ориентированного наследования предполагается создание более сложных сервисов из сервисов низкого уровня. При этом преодолевается основное ограничение наследования – сервисы могут быть распределены в сети и даже принадлежать различным компаниям. При этом нивелируются эффекты специализации, интегрируются элементарные операции в бизнес-функции соответствующего уровня восприятия.
В SOA сервисы рассматриваются как автономные объекты, управление которыми не централизовано. Это позволяет взаимодействующим посредством сервисов информационным системам развиваться в соответствии с потребностями бизнеса, которые потребителям сервисов, как правило, не только не известны. Интерфейс сервиса закрепляется соглашением провайдера и потребителя сервиса.
Классическим визуальным отображением SOA является треугольник: провайдер сервиса, потребитель сервиса и реестр сервисов. Отсутствие любого из этих элементов недопустимо, а добавление других составляющих на практике возможно и неизбежно (всевозможные программные средства промежуточного слоя, контролирующие порядок и контекст взаимодействия, осуществляющие мониторинг и управление сервисами, управление метаданными и другие вспомогательные процессы).
Эта модель не зависит от технологий, использующихся для реализации SOA. Провайдер размещает информацию о своих сервисах в реестре, что дает возможность потребителю в любой момент найти необходимый сервис. SOA характеризуется слабой связанностью, благодаря чему, сервисы обретают мобильность, способность перемещаться с одного сервера на другой, не требуя согласования и координации со всеми потребителями. Позднее связывание позволяет отложить момент конечной сборки связей до времени исполнения, а не времени разработки программы, что характерно для традиционных систем. Можно во время исполнения менять параметры связи (адрес, протокол и канал взаимодействия), что обеспечивает гибкость связи между провайдером и потребителем сервиса. В частности, провайдер и потребитель могут исполняться на физически удаленных инфраструктурах. Каждая из систем может иметь собственные параметры жизненного цикла, любые изменения в них, не затрагивающие интерфейс сервиса, не требуют остановки.
Публикация и обнаружение информации о сервисах в реестре может осуществляться как информационными системами во время исполнения, так и техническими специалистами в рамках проводимых ими работ по развитию SОА. Реестр сервисов актуален для всех стадий их жизненного цикла, в том числе и для обеспечения взаимодействия людей, задействованных в разработке сервисов и управлении ими.
|
|
SOA:
- упрощает процесс интеграции отдельных бизнес-процессов компании;
- позволяет использовать функциональные возможности каждого из компонентов внутри компании и вне ее;
- предоставляет средства разработки гибких бизнес-процессов, соответствующих текущим потребностям бизнеса, путем объединения компонентов-сервисов;
- обеспечивает согласование инвестиций в информационные технологии со стратегическими задачами бизнеса;
- устанавливает взаимосвязи между средой бизнес-приложений и базовой ИТ-инфраструктурой, без которых невозможна поддержка высокой динамики изменений современного бизнеса.
SOA помогает компаниям различных видов деятельности избежать дублирования систем, позволяет многократно использовать уже существующие компоненты продуктов и сохранять инвестиции в уже существующие системы, не выбрасывая имеющиеся решения, а интегрируя их в новые процессы.
Тема 6. Системы искусственного интеллекта
Основные понятия искусственного интеллекта
Термин «интеллект» (intelligence) происходит от латинского слова intellectus, что означает ум, рассудок, разум; мыслительные способности человека.
Искусственный интеллект (ИИ)(artificial intelligence) – область научного знания, объединяющая различные направления, занимающиеся исследованиями принципов и закономерностей мыслительной деятельности и моделированием задач, которые традиционно относят к интеллектуальным.
Искусственный интеллект – свойство автоматизированных систем брать на себя отдельные функции интеллекта человека (например, выбирать и принимать оптимальные решения на основе ранее полученного опыта и рационального анализа внешних воздействий).
Интеллектуальная информационная система (ИИС) (иногда называют системой, основанных на знаниях – СОЗ) – это один из видов автоматизированных информационных систем, которая представляет собой комплекс программных, лингвистических и логико-математических средств для реализации основной задачи: осуществление поддержки деятельности человека и поиска информации в режиме продвинутого диалога на естественном языке.
Такие системы имеют многокомпонентную и многосвязную структуру, ядром которой являются базы знаний (БЗ) и подсистемы извлечения знаний, формирования цели, вывода на знаниях, диалогового общения, обработки внешней и внутренней информации, обучения и самообучения, контроля и диагностики. Пользователь может формировать или корректировать основные и вспомогательные БЗ системы.
Система может функционировать как автономно по заложенному при настройке критерию цели, так и по заданию пользователя. В последнем случае задание формируется в естественной форме (речь, текст, графика), предварительно обрабатывается подсистемой диалогового общения, и взаимодействие с пользователем осуществляется в интерактивном режиме, который предполагает не только ввод задания, но и выдачу подтверждений о понимании задания или запросов на уточнение непонятных моментов. Подсистема диалогового общения использует собственную БЗ, содержащую правила анализа и синтеза естественно-языковой или графической информации из проблемной области, средство преобразования неформализованного задания в формализованное на внутреннем языке системы.
Подсистема формирования цели обрабатывает формализованное задание и определяет возможность или невозможность его выполнения при существующих в данный момент ресурсах системы и состояний ее компонентов. Если система не может выполнить сформулированное задание, то она формирует сообщение с объяснениями отказа и предложением скорректировать задание.
Основная БЗ должна содержать формализованное описание среды, которую должна изменить система, чтобы выполнить задание. Знания о среде формируются подсистемой извлечения знаний, дополнительные знания о проблеме – подсистемой обучения и самообучения. Таким образом, в основной Б3 создается полная модель среды.
Обработка цели, знаний о среде и проблеме осуществляется подсистемой вывода на знаниях (машина логического вывода), которая выполняет поиск решения, для чего использует собственную БЗ, содержащую правила интерпретации знаний. Процесс поиска решения является итерационным, и на каждом шаге осуществляется коррекция модели среды с целью проверки правильности решений.
Подсистемы обработки внешней и внутренней информации выполняют анализ текущих изменений информации, для получения которой могут быть использованы различные устройства, связывающие систему со средой (внешние источники информации), а также определяющие ее состояние (датчики состояний). Их набор определяется проблемной ориентацией системы. Интегрированная информация используется в подсистеме извлечения знаний, контроля и диагностики.
Рассмотренная обобщенная структура интеллектуальной системы является универсальной и предназначена для решения разных проблем. Реализация перечисленных подсистем зависит от методов представления знаний в БЗ и проблемной ориентации системы. Источниками знаний являются описания сущностей, представленные с использованием определенной формальной модели знаний, приемлемой для аппаратно-программных реализаций.
БЗ и БД рассматриваются как разные уровни представления информации. Знания по виду можно разделить на декларативные и процедурные.
Декларативные знания состоят из множества описаний состояний и условий переходов между ними, которые носят синтаксический (символьный) характер и не содержат в явном виде описания исполняющих процедур.
Процедурные знания включают исходные состояния и явные описания процедур, обрабатывающих исходные знания. Это позволяет не хранить все состояния БЗ, требуемые при выводе и принятии решений.
По характеру представления знания могут быть структурными или параметрическими.
Структурное представление знаний характеризует отношения фактов или объектов. Структура знаний может изменяться, за счет чего производится их конкретизация при описании заданной проблемной области.
Параметрическое представление знаний характеризуется фиксированной структурой и изменяемыми параметрами в фактах или объектах. Конкретизация знаний под задачу производится настройкой параметров.
Модель знаний является представлением системы знаний с помощью определенного математического аппарата (формализма) для корректного формального описания и построения процедуры решения задачи.
При построении интеллектуальных систем используются семантическая, фреймовая и формально-логическая модели знаний.
В моделях знаний принятие решений осуществляется путем вывода заключений с использованием определенным образом формализованных знаний о проблемной области.
6.2 Математические методы и модели искусственного интеллекта
Искусственный интеллект реализуется на базе четырех подходов: логического, эволюционного, имитационного и структурного.
Основой логического подхода служит булева алгебра и ее логические операторы, в первую очередь, оператор IF (если). Практически каждая система ИИ, построенная на логическом принципе, представляет собой машину доказательства теорем. При этом исходные данные хранятся в базе данных в виде аксиом, а правила логического вывода – как отношения между ними.
Для большинства логических методов характерна большая трудоемкость, поскольку во время поиска доказательства возможен полный перебор вариантов. Поэтому данный подход требует эффективной реализации вычислительного процесса, и хорошие результаты достигаются при сравнительно небольшом размере базы знаний. Примером практической реализации логических методов являются деревья решений и нечеткая логика. В отличие от традиционной математики, требующей на каждом шаге моделирования точных и однозначных формулировок закономерностей, нечеткая логика предполагает, что функция принадлежности элемента к множеству может принимать любые значения в интервале [0..1], а не только 0 или 1. Этот подход более точно отражает функционирование мышления человека, который редко отвечает на поставленные вопросы только «да» или «нет».
Самоорганизация – процесс самопроизвольного (спонтанного) увеличения порядка, или организации в системе, происходящий под действием внешней среды. Выделяют следующие принципы самоорганизации математических моделей:
неокончательных решений – сохранение достаточной свободы выбора нескольких лучших решений на каждом шаге самоорганизации;
внешнего дополнения позволяет синтезировать истинную модель объекта, скрытую в зашумленных экспериментальных данных, с учетом основанных на новой информации внешних критериях;
массовой селекции позволяет сформировать наиболее целесообразный путь постепенного усложнения самоорганизующейся модели, с тем, чтобы критерий ее качества проходил через свой минимум.
Для возникновения самоорганизации необходимо иметь исходную структуру, механизм случайных ее мутаций и критерии отбора. Мутация оценивается с точки зрения полезности для улучшения качества системы. При построении таких систем ИИ задается только исходная организация, список переменных и критерии качества, формализующие цель оптимизации и правила, по которым модель может изменяться (самоорганизовываться или эволюционировать).
Самоорганизующиеся модели служат, в основном, для прогнозирования поведения и структуры систем различной природы. В процессе построения моделей участие человека сведено к минимуму.
Понятие эволюции связано с возможностью изменения собственной структуры (количества элементов, направленности и интенсивности связей между ними) путем настраивания ее оптимальным образом в каждый конкретный момент времени в зависимости от поставленных задач. В процессе эволюции в условиях сложной и меняющейся среды приобретаются принципиально новые качества, позволяющие переходить на следующую ступень развития.
Эволюционное моделирование представляет собой универсальный способ построения прогнозов состояний системы в условиях задания их предыстории. Общая схема алгоритма эволюции включает:
задание исходной организации системы;
случайные мутации;
отбор для дальнейшего развития той организации, которая является лучшей в рамках некоторого критерия.
Поиск оптимальной структуры происходит в большей степени случайно и нецеленаправленно, что затягивает процесс, но обеспечивает наилучшее приспособление к изменяющимся условиям.
Генетический алгоритм представляет собой мощное поисковое средство, эффективное в различных проблемных областях.
К построению систем ИИ широко используется имитационный подход с базовым понятием «черный ящик» (система, в которой внешнему наблюдателю доступны лишь входные и выходные величины, а структура и внутренние процессы неизвестны).
Под структурным подходом подразумевается построение систем ИИ путем моделирования структуры человеческого мозга. Нейросетевое моделирование применяется в различных областях – бизнесе, медицине, технике, геологии, физике, где нужно решать задачи прогнозирования, классификации или управления. В основе лежит идея построения вычислительного устройства из большого числа параллельно работающих простых элементов – формальных нейронов, которые функционируют независимо друг от друга и связаны между собой однонаправленными каналами передачи информации.
Искусственные нейронные сети (ИНС) – это математические модели и их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей. Ядром нейросетевых представлений является идея о том, что каждый отдельный нейрон можно моделировать простыми функциями, вся сложность мозга, гибкость его функционирования и другие важнейшие качества определяются связями между нейронами. ИНС позволяет воспроизводить сложные, нелинейныепо своей природе, зависимости.
Как правило, искусственная нейронная сеть используется когда неизвестны виды связей между входами и выходами. Для того чтобы сеть можно было применять в дальнейшем, ее надо «натренировать» на полученных ранее данных, для которых известны и значения входных параметров, и правильные ответы на них.
Для моделей, построенных по аналогии с человеческим мозгом, характерны простое распараллеливание алгоритмов и связанная с этим высокая производительность, не слишком высокая выразительность представленных результатов, не способствующая извлечению новых знаний о моделируемой среде. Основное использование этих моделей – прогнозирование.
Дата добавления: 2016-06-24; просмотров: 1328;