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

1. Оболочки экспертных систем

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

2. Языки программирования высокого уровня

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

3. Среда программирования, поддерживающая несколько парадигм

Средства этой категории включают несколько программных модулей, что позволяет пользователю комбинировать в процессе разработки экспертной системы разные стили программирования. Среди первых проектов такого рода была исследовательская программа LOOP, которая допускала использование двух типов представления знаний: базирующегося на системе правил и объектно-ориентированного. На основе этой архитектуры во второй половине 1980-х годов было разработано несколько коммерческих программных продуктов, из которых наибольшую известность получили KEE, KnowledgeCraft и ART. Эти программы предоставляют в распоряжение квалифицированного пользователя множество опций и для последующих разработок, таких как КАРРА и CLIPS, и стали своего рода стандартом. Однако освоить эти языки программистам далеко не так просто, как языки, отнесенные к предыдущей категории.

4. Дополнительные модули

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

Защита программных продуктов от несанкционированного использования

Структура системы защиты от несанкционированного копирования.

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

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

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

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

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

Блок установки характеристик среды отвечает за получение характеристик, идентифицирующих вычислительную среду.

Блок сравнения характеристик среды устанавливает факт легальности запуска защищаемой программы.

Блок ответной реакции реализует ответные действия системы защиты на попытки несанкционированного исполнения защищаемой программы.

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

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

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

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

Сетевые ресурсы

Основной целью создания компьютерной сети является возможность совместного использования пользователями сети сетевых ресурсов. Под ресурсами ПК понимают любой из следующих элементов:

- логические диски, в том числе накопители CD-ROM, ZIP, DVD и др.

- каталоги и содержащиеся в них файлы

- подключенные к ПК устройства

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

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

Технология «Клиент-Сервер».

Клиент-сервер (англ. Client-server) — сетевая архитектура, в которой устройства являются либо клиентами, либо серверами. Клиентом является запрашивающая машина (обычно ПК пользователя), сервером - машина, которая отвечает на запрос.

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

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

К основным достоинствам технологии клиент-сервер относятся:

  • Более высокая производительность

  • Низкие требования к рабочим станциям

  • Низкие требования к пропускной способности сети

  • Надежность хранения данных

  • Защита от несанкционированного доступа

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

На технологии Клиент-сервер реализованы программные продукты Айтида Retail, Айтида HoReCa, Frontol Win32, Интеллект от ITV. Эту технологию возможно использовать во всех продуктах на платформе 1С:Предприятие (ДАЛИОН, Трактир, Румба 8). Программный продукт Frontol WinCE ограниченно использует эту технологию.

Концентраторы и коммутаторы

Сетевой Концентратор.

По сравнению с коммутаторами и маршрутизаторами, концентраторы – самые дешёвые, самые простые устройства в сети. Все данные, которые поступают в один порт концентратора, отсылаются на все другие порты. Следовательно, все компьютеры, подсоединённые к одному концентратору, «видят» в сети друг друга. Концентратор не обращает никакого внимания на передаваемые данные, он просто посылает их на другие порты. Значение концентратора в том, что он довольно дешёвый и предлагает быстрый и простой способ объединить компьютеры в маленькую сеть.

Сетевой коммутатор.

Работа коммутатора во многом схожа с предназначением концентратора - но он делает это более эффективно. Каждый пакет данных (рамка Ethernet), передаваемый в сети, имеет источник и адрес MAC адресата. Коммутатор имеет способность «запоминать» адрес каждого компьютера, подключённого к его портам и действовать как регулировщик - только передавать данные на компьютер адресата и ни на какие другие. Это может оказать существенный положительный эффект на производительность всей сети, потому устраняются ненужные передачи и освобождается сетевая пропускная способность. Коммутатор можно представить как центральный компонент одной сети. Он используется для связи устройств в сети и доставки рамок уровня 2 (OSI model). Коммутатор отличается от концентратора тем, что он не передаёт повторно рамки на все другие устройства - он создаёт прямое соединение между передающими и принимающими устройствами.

Передача данных по сети. Пакеты

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

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

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

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

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