Репетиторские услуги и помощь студентам!
Помощь в написании студенческих учебных работ любого уровня сложности

Тема: Защита информации2

  • Вид работы:
    Дипломная (ВКР) по теме: Защита информации2
  • Предмет:
    Другое
  • Когда добавили:
    27.03.2012 12:14:46
  • Тип файлов:
    MS WORD
  • Проверка на вирусы:
    Проверено - Антивирус Касперского

  • Полный текст:

    ОГЛАВЛЕНИЕ


    Введение ……………………………………………………………………….. 3

    1.1. Понятие электронного документооборота ……………………………… 3

    1.2. Понятие защиты информации …………………………………………… 6

    1.3. Обзор и сравнительная характеристика программного обеспечения,

    используемого при создании СУБД …………………………………………...9

    1.4. Особенности построения СУБД Oracle …………………………………. 16

    2. Исследовательская часть

    2.1. Общие понятия

    2.2. Обзор существующих работ, посвященных проблемам защиты информации в электронном документообороте

    2.3. Разработка модуля защиты информации

    3. Конструкторская часть …………………………………………………….. 35

    3.1. Классы задач

    3.2. Основная концепция создания ПО

    3.3. Программное обеспечение для создания ПО

    4.    Технологическая часть ………………………………………………….. 50

    4.1.    Выбор языка реализации

    4.2.    Формат хранения данных в оперативной памяти

    4.3.    Оптимизация вычислений

    5.    Организационно-экономическая часть ………………………………… 76

    5.1.    Введение

    5.2.    Разбивка работы на экономико-функциональные блоки

    5.3.    Построение сетевого графика и диаграммы Гантта

    5.4.    Определение затрат на НИР

    5.5.    Выводы

    6.    Организационно-правое обеспечение информационной безопасности. 86

    7.    Заключение ………………………………………………………………. 106

    Литература …………………………………………………………………… 108





    Введение


    1. Понятие электронного документооборота


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

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

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

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

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

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

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

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

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


    1. 2. Понятие защиты информации

    Концентрация информации в компьютерах — аналогично концентрации наличных денег в банках — заставляет все более усиливать контроль в целях защиты информации. Юридические вопросы, частная тайна, национальная безопасность — все эти соображения требуют усиления внутреннего контроля в коммерческих и правительственных организациях. Работы в этом направлении привели к появлению новой дисциплины: безопасность информации. Специалист в области безопасности информации отвечает за разработку, реализацию и эксплуатацию системы обеспечения информационной безопасности, направленной на поддержание целостности, пригодности и конфиденциальности накопленной в организации информации. В его функции входит обеспечение физической (технические средства, линии связи и удаленные компьютеры) и логической (данные, прикладные программы, операционная система) защиты информационных ресурсов.

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

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

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

    В статье рассматриваются некоторые возможности обеспечения безопасности в системах — шифрование информации при передаче по каналам связи и использование надежных (достоверных, доверительных) (Trusted) систем — на примере СУБД ORACLE, а так же система защиты от несанкционированого доступа к сети Kerberos.

    Безопасность в среде баз данных

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

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

    Определение потребности в защите информации

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

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

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

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

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

    Финансовые службы компаний (прежде всего в США) представляют важную и большую пользовательскую базу и часто специфические требования предъявляются к алгоритму, используемому в процессе шифрования. Опубликованные алгоритмы, например DES (См. ниже), являются обязательными. В то же время, рынок коммерческих систем не всегда требует такой строгой защиты, как правительственные или оборонные ведомства, поэтому возможно применение продуктов и другого типа, например PGP (Pretty Good Privacy).

    1.3. Обзор и сравнительная характеристика программного обеспечения, используемого при создании СУБД.

    Современные СУБД в основном являются приложениями Windows, так как данная среда позволяет более полно использовать возможности персональной ЭВМ, нежели среда DOS. Снижение стоимости высокопроизводительных ПК обусловил не только широкий переход к среде Windows, где разработчик программного обеспечения может в меньше степени заботиться о распределении ресурсов, но также сделал программное обеспечение ПК в целом и СУБД в частности менее критичными к аппаратным ресурсам ЭВМ.

    Среди наиболее ярких представителей систем управления базами данных можно отметить: Lotus Approach, Microsoft Access, Borland dBase, Borland Paradox, Microsoft Visual FoxPro, Microsoft Visual Basic, а также баз данных Microsoft SQL Server и Oracle, используемые в приложениях, построенных по технологии “клиент-сервер”. Фактически, у любой современной СУБД существует аналог, выпускаемый другой компанией, имеющий аналогичную область применения и возможности, любое приложение способно работать со многими форматами представления данных, осуществлять экспорт и импорт данных благодаря наличию большого числа конвертеров. Общепринятыми, также, являются технологи, позволяющие использовать возможности других приложений, например, текстовых процессоров, пакетов построения графиков и т.п., и встроенные версии языков высокого уровня (чаще – диалекты SQL и/или VBA) и средства визуального программирования интерфейсов разрабатываемых приложений. Поэтому уже не имеет существенного значения на каком языке и на основе какого пакета написано конкретное приложение, и какой формат данных в нем используется. Более того, стандартом “де-факто” стала “быстрая разработка приложений” или RAD (от английского Rapid Application Development), основанная на широко декларируемом в литературе “открытом подходе”, то есть необходимость и возможность использования различных прикладных программ и технологий для разработки более гибких и мощных систем обработки данных. Поэтому в одном ряду с “классическими” СУБД все чаще упоминаются языки программирования Visual Basic 4.0 и Visual C++, которые позволяют быстро создавать необходимые компоненты приложений, критичные по скорости работы, которые трудно, а иногда невозможно разработать средствами “классических” СУБД. Современный подход к управлению базами данных подразумевает также широкое использование технологии “клиент-сервер”.

    Таким образом, на сегодняшний день разработчик не связан рамками какого-либо конкретного пакета, а в зависимости от поставленной задачи может использовать самые разные приложения. Поэтому, более важным представляется общее направление развития СУБД и других средств разработки приложений в настоящее время.

    Рассмотрим более подробно программные продукты компании Microsoft, а именно Visual FoxPro 3.0, Visual Basic 4.0, Visual С++, Access 7.0, SQL Server 6.5. Наиболее интересной чертой этих пакетов являются их большие возможности интеграции, совместной работы и использования данных, так как данные пакеты являются продуктами одного производителя, а также используют сходные технологии обмена данными.

    Visual FoxPro отличается высокой скоростью, имеет встроенный объектно-ориентированный язык программирования с использованием xBase и SQL, диалекты которых встроены во многие СУБД. Имеет высокий уровень объектной модели. При использовании в вычислительных сетях обеспечивает как монопольный, так и раздельный доступ пользователей к данным. Применяется для приложений масштаба предприятия для работы на различных платформах: Windows 3.x, Windows 95, Macintosh... Минимальные ресурсы ПК: для Visual FoxPro версии 3.0 – процессор 468DX, Windows 3.1, 95, NT, объем оперативной памяти 8 (12) Мб, занимаемый объем на ЖМД 15-80 Мб, а для Visual FoxPro версии 5.0 (выпущена в 1997 году) – Windows 95 или NT, 486 с тактовой частотой 50 МГц, 10 Мб ОЗУ, от 15 до 240 Мб на ЖМД.

    Access входит в состав самого популярного пакета Microsoft Office. Основные преимущества: знаком многим конечным пользователям и обладает высокой устойчивостью данных, прост в освоении, может использоваться непрофессиональным программистом, позволяет готовить отчеты из баз данных различных форматов. Предназначен для создания отчетов произвольной формы на основании различных данных и разработки некоммерческих приложений. Минимальные ресурсы ПК: процессор 468DX, Windows 3.1, 95, NT, объем оперативной памяти 12 (16) Мб, занимаемый объем на ЖМД 10-40 Мб.

    Visual Basic – это универсальный объектно-ориентированный язык программирования, диалекты которого встроены в Access, Visual FoxPro. Преимущества: универсальность, возможность создания компонентов OLE, невысокие требования к аппаратным ресурсам ЭВМ. Применяется для создания приложений средней мощности, не связанных с большой интенсивностью обработки данных, разработки компонентов OLE, интеграция компонентов Microsoft Office. Минимальные ресурсы ПК: процессор 368DX, Windows 3.1, 95, NT, объем оперативной памяти 6 (16) Мб, занимаемый объем на ЖМД 8-36 Мб.

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

    SQL Server – сервер баз данных, реализует подход “клиент-сервер” и взаимодействует с указанными пакетами. Главные достоинства: высоая степень защиты данных, мощные средства для обработки данных, высокая производительность. Область применения: хранение больших объемов данных, хранение высокоценных данных или данных, требующих соблюдения режима секретности. Минимальные ресурсы ПК: процессор 468DX-33МГц, Windows NT, объем оперативной памяти 16 (32) Мб, занимаемый объем на ЖМД 80 Мб.

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

    Современные СУБД являются объектно-ориентированными и реляционными. Основной единицей является объект, имеющий свойства, и связи между объектами. СУБД используют несколько моделей данных: иерархическую и сетевую (с 60-х годов) и реляционную (с 70-х). Основное различие данных моделей в представлении взаимосвязей между объектами.

    Иерархическая модель данных строится по принципу иерархии объектов, то есть один тип объекта является главным, все нижележащие – подчиненными. Устанавливается связь “один ко многим”, то есть для некоторого главного типа существует несколько подчиненных типов объектов. Иначе, главный тип именуется исходным типом, а подчиненные – порожденными. У подчиненных типов могут быть в свою очередь подчиненные типы. Наивысший в иерархии узел (совокупность атрибутов) называют корневым.

    Сетевая модель данных строится по принципу “главный и подчиненный тип одновременно”, то есть любой тип данных одновременно может одновременно порождать несколько подчиненных типов (быть владельцем набора) и быть подчиненным для нескольких главных (быть членом набора).

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

    Объект (Сущность) – элемент какой-либо системы, информация о котором сохраняется. Объект может быть как реальным (например, человек), так и абстрактным (например, событие – поступление человека в стационар).

    Атрибут – информационное отображение свойств объекта. Каждый объект характеризуется набором атрибутов.

    Таблица – упорядоченная структура, состоящая из конечного набора однотипных записей.

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

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

    Современные технологии, используемые в работе с данными.

    Технология “Клиент-сервер” – технология, разделяющая приложение- СУБД на две части: клиентскую (интерактивный графический интерфейс, расположенный на компьютере пользователя) и сервер, собственно осуществляющий управление данными, разделение информации, администрирование и безопасность, находящийся на выделенном компьютере. Взаимодействие “клиент-сервер” осуществляется следующим образом: клиентская часть приложения формирует запрос к серверу баз данных, на котором выполняются все команды, а результат исполнения запроса отправляется клиенту для просмотра и использования. Данная технология применяется, когда размеры баз данных велики, когда велики размеры вычислительной сети, и производительность при обработке данных, хранящихся не на компьютере пользователя (в крупном учреждении обычно имеет место именно такая ситуация). Если технология “клиент-сервер” на применяется, то для обработки даже нескольких записей весь файл копируется на компьютер пользователя, а только затем обрабатывается. При этом резко возрастает загрузка сети, и снижается производительность труда многих сотрудников.

    Microsoft Access, Microsoft Visual FoxPro, Microsoft Visual Basic обеспечивают средства для создания клиентских частей в приложениях “клиент-сервер”, которые сочетают в себе средства просмотра, графический интерфейс и средства построения запросов, а Microsoft SQL Server является на сегодняшний день одним из самых мощных серверов баз данных.

    OLE 2.0 (Object Linking and Embedding – связывание и внедрение объектов) – стандарт, описывающий правила интеграции прикладных программ. Применяется для использования возможностей других приложений. OLE 2.0 используется для определения и совместного использования объектов несколькими приложениями, которые поддерживают данную технологию. Например, использование в среде Access таблиц Excel и его мощных средств построения диаграмм или использование данных, подготовленных Access, в отчетах составленных в редакторе текстов Word (связывание или включение объекта).

    OLE Automation (Автоматизация OLE) – компонент OLE, позволяющий программным путем устанавливать свойства и задавать команды для объектов другого приложения. Позволяет без необходимости выхода или перехода в другое окно использовать возможности нужного приложения. Приложение, позволяющее другим прикладным программам использовать свои объекты называется OLE сервером. Приложение, которое может управлять объектами OLE серверов называется OLE контроллер или OLE клиент. Из рассмотренных программных средств в качестве OLE серверов могут выступать Microsoft Access, а также Microsoft Excel, Word и Graph... Microsoft Visual FoxPro 3.0 и 5.0 может выступать только в виде OLE клиента.

    RAD (Rapid Application Development – Быстрая разработка приложений) – подход к разработке приложений, предусматривающий широкое использование готовых компонентов и/или приложений и пакетов (в том числе от разных производителей).

    ODBC (Open Database Connectivity – открытый доступ к базам данных) – технология, позволяющая использовать базы данных, созданные другим приложением при помощи SQL.

    SQL (Structured Query Language – язык структурированных запросов) – универсальный язык, предназначенный для создания и выполнения запросов, обработки данных как в собственной базе данных приложения, так и с базами данных, созданных другими приложениями, поддерживающими SQL. Также SQL применяется для управления реляционными базами данных.

    VBA (Visual Basic for Applications – Visual Basic для Приложений) – разновидность (диалект) объектно-ориентированного языка программирования Visual Basic, встраиваемая в программные пакеты.



    1.4. Особенности построения СУБД Oracle

    Компания Oracle проникла на российский рынок более десяти лет назад, и продукция этой фирмы хорошо известна. В 1979 г. небольшая компания Silicon Valley разработала Oracle - первую коммерческую реляционную базу данных с языком доступа к данным SQL. Первой СУБД клиент/сервер стал выпущенный в 1985 г. Oracle5. До недавнего времени, Oracle7 была последней версией сервера базы данных Oracle, появившейся в 1992 г.

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

    СУБД Oracle Database 10g, предназначенная для предприятий любых размеров, предлагает уникальные функции автонастройки и самодиагностики, поднимающие мощность и надежность корпоративных систем на новую высоту.Благодаря доступной цене, Oracle Database 10g является идеальным выбором, как для небольших, так и для самых крупных организаций. Только решения Oracle позволяют реализовать преимущества кластерных технологий для обеспечения высокой доступности и масштабирования по запросу с использованием передовой технологии Real Application Clusters.

    Oracle Database 10g – это первое в отрасли решение, предназначенное для организации сетей распределенных вычислений (Grid-конфигураций). Grid-технологии позволяют существенно сократить затраты на ИТ-инфраструктуру путем кластеризации серверов, которая обеспечивает слияние их вычислительных мощностей и динамическое распределение ресурсов между приложениями.Вот только некоторые ключевые возможности Oracle Database 10g:- Real Application Cluster (RAC) обеспечивает работу одного экземпляра базы данных на нескольких узлах grid, позволяя управлять нагрузкой и гибко масштабировать систему в случае необходимости. - Automatic Storage Management (ASM) позволяет автоматически распределять данные между имеющимися ресурсами систем хранения данных, что повышает отказоустойчивость системы и снижает общую стоимость владения (TCO). - Производительность.

    Oracle Database 10g позволяет автоматически управлять уровнями сервиса и тиражировать эталонные конфигурации в рамках всей сети. - Простые средства разработки. Новый инструмент разработки приложений HTML DB позволит простым пользователям создавать эффективные приложения для работы с базами данных в короткие сроки. - Самоуправление. Специальные механизмы Oracle Database 10g позволяют самостоятельно перераспределять нагрузку на систему, оптимизировать и корректировать SQL-запросы, выявлять и прогно зировать ошибки. –

    Большие базы данных. Теперь максимальный размер экземпляра базы данных Oracle может достигать 8 экзабайт. - Недорогие серверные системы. Oracle Database 10g может использовать недорогие однопроцессорные компьютеры или модульные системы из «серверов-лезвий». - В новой версии базы данных реализована поддержка переносимых табличных пространств, система управления потоками данных Oracle Streams и модель распределенных SQL-запросов. Для переноса существующих баз данных в среду Grid в них не потребуется вносить изменений, что позволяет быстро начать использовать все преимущества Oracle Database 10g.

    Еще в 2001 г. около 55% рабочего времени DBA уходило на текущие операции по поддержке базы данных. Сегодня его роль в компании связывается с решением задач информационного обеспечения основного бизнеса, а не выполнением рутинных операций, которые уже давно следовало бы автоматизировать. Собственно, этим и занимается Oracle, вводя в 10g средства "самоуправления" и называя ее selfhealing -- самовосстанавливающейся. Это одно из самых перспективных направлений развития СУБД Oracle.

    Второй релиз получил Oracle Backup -- новую подсистему резервного копирования, переносящую базы данных и файловые системы на магнитные ленты. Она интегрирована с Recovery Manager (RMAN) и Enterprise Manager.Интеллектуальная инфраструктура Oracle включает системы автоматической балансировки рабочей нагрузки, поддержки решаемых задач, генерации предупреждений и анализа неисправностей. Данный модуль, Oracle Automatic Database Diagnostic Monitor (ADDM), позиционируется как "эксперт по производительности" и выполняет, в том числе, анализ и настройку SQL с выдачей соответствующих объяснений и рекомендаций.

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

    Еще один продукт, предназначенный для хранения данных и работы с ними, -- Oracle Warehouse Builder 10g Release 2 "Paris". Это самый серьезный релиз Warehouse Builder за все время его существования. Его можно назвать краеугольным камнем Oracle Business Intelligence. Имея более десятка значительных усовершенствований, он теперь объединяет технологии ETL, OLAP, Data Mining и другие, причем они могут применяться комплексно для преобразования "сырых" данных.

    Oracle Application Server 10g R2432 усовершенствования этого продукта по сравнению с первым релизом являются результатом работы, занявшей 1820 человеко-лет. Здесь все более важным становится использование Business Process Execution Language (BPEL). Не так давно приобретенный пакет стал основой Oracle BPEL Process Manager, который обеспечивает стандартное описание потоков работ (workflows) обычным методом dragand-drop.Второй релиз получил новый Discoverer "Drake" с интегрированными средствами аналитики и существенно расширенным ассортиментом форм и отчетов. К его особенностям относятся также шлюз для управления Web-сервисами, расширенные возможности взаимодействия с Microsoft .NET и в полтора раза более производительный Java Authentication and Authorization Service (JA­AS). Продукт станет доступен к концу текущего года. Одновременно будет предлагаться Oracle Application Server 10g Standard Edition One для малого и среднего бизнеса.Средство разработки приложений Oracle JDeveloper 10g Release 2 является 4GL-средой, совместимой с J2EE 1.4, что позволяет в полной мере использовать преимущества архитектуры, ориентированной на сервисы (ServiceOriented Architecture, SOA). К его новым возможностям относится, например, визуальное построение диаграмм в редакторе схем XML, повышенная производительность средств генерации кода, а также наличие J2EE Application Development Framework (Oracle ADF).

    Oracle EBusiness Suite 11i R10Это ПО долгое время обеспечивало проведение отдельных операций, а давно ожидаемые возможности по выполнению всей сделки так и оставались обещаниями. В Oracle оправдываются, что они старались угодить клиентам, большинство из которых до сих пор думают о продуктах или департаментах, а не о стратегических целях всего своего бизнеса.Но теперь компания твердо придерживается направления на создание complete business process solutions -- решений для полного осуществления бизнес-процессов, считая, что в конечном итоге это принесет заказчикам больше пользы -- пусть для освоения новых методов и придется затратить какое-то время и ресурсы.

    Вице-президент Oracle по приложениям Рон Воль (Ron Wohl), выступление которого было одним из ключевых на форуме, дал слушателям два совета: использовать Oracle E-Business Suite 11i.10, где две трети модулей являются новыми, и переходить на Linux, так как под ее управлением сегодня работают 31% проданных систем этого типа.Малые и средние предприятия тоже не остались без "подарков": для них предназначена E-Business Suite Special Edition. Типичный срок внедрения данной системы составляет всего 30 дней, и ее уже используют более сотни компаний во всем мире. Поставляемый набор, как правило, включает необходимое серверное, аппаратное и программное обеспечение и заранее настроенные модули из состава E-Business Sui­te 11i.

    Oracle Collaboration Suite 10gЭтот пакет с самого начала его существования был призван обеспечить прежде всего мобильность. Он поддерживает push e-mail, причем пользователи смогут выбирать, какой именно почтовый ящик будет доступен с их мобильных устройств. Они также получат возможность синхронизировать свои календари "по воздуху", без необходимости использовать крэдл, связанный с их десктопом. Соответствующий сервис Mobile Data Synch поддерживает стандарт SynchML для универсальной синхронизации данных между устройствами.Однако возможности данного продукта, как бы хороши они ни были, еще не означают, что клиенты получат пользу от него. Именно об этом говорил в своем выступлении Джеми Ранкурт (Jamie Rancourt), главный архитектор продукта, отметив, что технологии -- это всего 20% общего успеха, который в большей степени определяется желанием и усилиями предприятий изменить свои бизнес-процессы (60%) и стиль руководства (20%).Вместе с тем важное значение придается не только традиционным методам реинжиниринга, но и этим 20% технических новшеств. Часто оказывается, что благодаря только их применению можно существенно улучшить те или иные деловые процессы. Например, перемещение информации с многочисленных файл-серверов типичной компании в единую систему Oracle Fi­les позволяет в среднем втрое уменьшить количество файлов только за счет ликвидации их копий.

    Oracle Business Intelligence 10gРазработчики приложили немало усилий для того, чтобы 10g стала как можно более "интеллектуальной", и сегодня основной вопрос заключается не в том, где взять те или иные инструменты для анализа данных -- они встроены в СУБД, а в том, чтобы научиться правильно применять их. По словам представителей Oracle, это совсем несложно: программирование не требуется, а результаты выводятся на приборную панель, создаваемую в Oracle Por­tal. Объединяя реляционные и OLAP-средства, Oracle обеспечивает единую рабочую среду для обеих технологий, создавая, по сути, selfservice business intelligence -- средства анализа данных как службу самопомощи.

    Новый компонент Oracle Application Server 10.1.2, получивший название Oracle Edge Server, позволяет создавать своеобразный мост между физическим и цифровым миром, работая с RFID и системами датчиков. Вместе с тем только сейчас выясняются применения, где RFID будет выгодным. Например, это дает существенную экономию при оптовых отгрузках и отслеживании партий товаров, но пока оказывается чрезмерно дорогим при автоматизации розничной торговли.

    В области CRM новый подход Oracle связан с тем, что работа систем должна быть направлена непосредственно на получение дохода, а не на предоставление обширной и часто бесполезной информации о заказчике.Среди новых возможностей продуктов Oracle -- средства управления территориями, что, в частности, позволит превратить сервисные центры в подразделения, приносящие прибыль. Для удаленного маркетинга предназначен модуль Oracle TeleService, а Oracle Service Contracts помогает своевременно продлевать контракты на обслуживание клиентов, уменьшая их утечку.

    2. Конструкторская часть

    Система управления базой данных программы фирмы «ИНФИН» построена на технологии клиент-сервер. При этом программа может работать как с локальной, так и с сетевой базой данных. Заметим, что при отсутствии доступа к сетевой базе, программа автоматически переключается на локальную базу, не выдавая при этом никаких предупреждений и сообщений. Еще несколько лет назад, среди СУБД наибольшей популярностью пользовались СУБД dBase, Paradox, Rbase, получившие общее название Xbase (созданных на технологии файл-сервер), а в качестве инструментальных средств самыми распространенными были Clipper и FoxPro. Сейчас на рынке этих СУБД распространенны Access, FoxPro, Paradox, dBase. При технологии файл-сервер БД хранится на сервере, а СУБД - на клиентской станции, поэтому клиентская станция должна быть достаточно мощной для обработки полученных данных с сервера и проведения необходимых манипуляций с данными. При обращении к одной записи базы данных считываются целиком все необходимые для этого таблицы, что повышает трафик сети, увеличивает время обработки. В результате получается, что работа ведется с локальной базой данных. Но самый главный недостаток таких СУБД, это то, что только данная конкретная программа способна правильно производить изменения в БД, сохраняя их целостность. Любое стороннее вмешательство в базу данных может привести к полному разрушению данных и потере всей информации.

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

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

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



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

    Программа «Книга покупок» фирмы «ИНФИН» поставляется с ограниченным количеством копий. Но при этом возможности переноса программы на другую машину нет. Все это еще более негативно отражается на отношении пользователей к программе.

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

    2.2 Выбор платформы и программных средств

    Сейчас на российском рынке сетевых операционных систем наиболее популярны такие, как Microsoft Windows NT, Novell NetWare, IBM OS/2 Warp и различные версии UNIX. Приведем основные сравнительные характеристики операционных систем Novell NetWare 4.1, Microsoft Windows NT Server 4.0 и Unix. Не будут отражены некоторые известные продукты, такие как IBM OS/2 Warp Server и Banyan VINES. Очень возможно, что это добротные операционные системы, однако если поддержку и сопровождение даже Windows NT и NetWare в России можно назвать весьма слабой, то для OS/2 и VINES она, по существу, отсутствует. А серьезные заказчики никогда не будут приобретать продукты, в поддержке которых они не уверены. Все ведущие поставщики Unix-систем поставляют в качестве дополнительных модулей, а порой и интегрировано в базовом комплекте, такие службы, как NFS (Network File System - сетевая файловая система), NIS (Network Information Service - сетевая информационная служба), X Window System и множество других. Именно они делают Unix полноценной сетевой операционной системой, по функциональности мало, чем уступающей другим. Все приводимые характеристики полностью соответствуют широко распространенным версиям Unix (SCO OpenServer и UnixWare, SunSoft Solaris и Interactive Unix, Hewlett-Packard HP-UX, IBM AIX, Digital Unix, SGI IRIX и др.).

    Компания Novell была одной из первых компаний, которые начали создавать ЛВС. Она производила как аппаратные средства, так и программные, однако в последнее время фирма сконцентрировала усилия на программных средствах ЛВС. Операционная система NetWare способна поддерживать рабочие станции, управляемые DOS, OS/2, UNIX, Windows NT и Windows’95, Mac System 7 и другими ОС. Она может надежно работать с большим количеством различных типов сетевых адаптеров и протоколов. Фирма Novell имеет контракты о поддержке NetWare с наиболее крупными и мощными из независимых организаций, таких как Bell Atlantic, DEC, Hewlett-Packard, Intel, Prime, Unisys и Xerox.

    Версия ОС NetWare 2.2 может работать на компьютере 80286 (или более поздних моделях), используемом в качестве файлового сервера. Версии NetWare 3.12 и 4.0 ориентированы на 32 разрядные шинные архитектуры и процессоры 80386, 80486 и выше. Существуют версии NetWare, предназначенные для работы под управлением многозадачных, многопользовательских операционных систем OS/2 и UNIX. NetWare 3.12 имеет возможность поддержки до 250 пользователей, а версия 4.0 – до 1000 пользователей. Все версии хорошо совместимы между собой, поэтому в одной и той же компьютерной сети могут находиться файловые серверы с разными версиями ОС NetWare.

    Операционная система Advanced NetWare 2.0 была выпущена в 1986 году. Одной из выдающихся особенностей Advanced NetWare 2.0 была способность соединять до четырех различных сетей с одним файловым сервером.

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

    NetWare 2.15 и NetWare для Macintosh дебютировали в 1988 году. Существенным недостатком этих версий было очень большое время инсталляции - оно включало в себя время тестирования жесткого диска и могло продолжаться день или даже два.

    32-разрядная сетевая ОС NetWare 386 была выпущена в сентябре 1989 года. В ней была значительно улучшена система защиты данных, производительность и гибкость.

    В NetWare 2.2 фирма Novell собрала все лучшее из ранних версий NetWare. Все варианты версии 2.2 имеют одинаковые возможности и одинаковый уровень отказоустойчивости. Улучшен процесс инсталляции, имеется поддержка VAP (Value Added Processes) – отдельных программных модулей, стыкуемых с ОС NetWare и позволяющих файловому серверу выполнять некоторые дополнительные функции.

    NetWare 3.12 использует преимущества процессоров 80386, 80486 или Pentium. Она предоставляет возможности присоединение к одному серверу до 250 пользователей, объем дисковой памяти до 32 терабайт, размер файла до 4Г, один файл может располагаться на нескольких накопителях, одновременно могут быть открыты до 100 тыс. файлов. NetWare 3.12 имеет улучшенную систему защиты данных. Также новой является концепция NLM (NetWare Laudable Module) загружаемых (выгружаемых) в процессе работы. В сервере могут храниться файлы для рабочих станций с разными операционными системами (DOS, Macintosh, OS/2, UNIX). Недостатком операционной системы NetWare 3.12 является система помощи и подсказок, где самым слабым местом является пользовательский интерфейс. Еще одна особенность этой версии – новый интерфейс транспортного уровня (TLI - Transport Layer Interface), основанный на ODI. Этот интерфейс предоставляет широкий диапазон возможностей для организации связей, включая IPX/SPX, NetBIOS, LU 6.2 (APPC), именованные каналы связи для рабочих станций, управляемых DOS и OS/2, TCP/IP, интерфейс Berkley 4.3 Sockets и UNIX System V Stream/TLI.

    NetWare 4.0 полностью совместима с предыдущими версиями, и пользователь может даже не заметить разницы. Наиболее значительной особенностью NetWare 4.0 является система NDS (NetWare Directory Service), представляющая собой иерархически организованную базу данных. Использована также новая система именованных директорий, что позволяет пользователям присоединяться к серверам за одну операцию, при этом доступ возможен к 54 тыс. файловым серверам (раньше эта цифра была равна 8). Новинками версии являются: система кэширования предполагаемого чтения, компрессия данных и компоновка блоков данных, улучшенная система защиты данных и ресурсов.

    Операционные системы Microsoft Windows NT и Windows NT Advanced Server появились в продаже в июле 1993 года. Тогда их использовали лишь энтузиасты и крупные компании. Во многом это было связано с довольно высокими требованиями системы к аппаратуре. С выходом версии 3.5, заметно снизившей уровень этих требований и включившей в себя ряд новых функций, начался стремительный рост популярности Windows NT. Сегодня она широко применяется самыми разными организациями, банками, промышленностью и индивидуальными пользователями. Все больше становится поклонников этой удобной и надежной системы и в России. Версия 4.0 – это следующий шаг в распространении Windows NT: новый интерфейс и масса новых полезных свойств, привели к широкому внедрению этой системы на персональных рабочих местах. Сейчас еще рано что-либо говорить о Windows NT 5.0, поскольку только недавно вышла бета-версия операционной системы.

    Microsoft не публикует данные об инсталлированной базе Windows NT, однако утверждает, что более 40 компаний собираются использовать Windows NT Workstation в качестве операционной системы более чем на 10 тыс. ПК. К тому же, по данным нескольких консалтинговых фирм, в месяц продаётся более 30 тыс. копий ОС Windows NT Server. Фирмы Compaq, Dell и Getaway готовят NT - серверы на базе микропроцессоров Pentium Pro компании Intel. Ожидается, что Windows NT станет ведущей операционной системой для процессоров Pentium Pro, поскольку Windows’95 содержит 16-ти разрядный код и работает на Pentium Pro не так быстро, как полностью 32-ух разрядная NT.

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

    Операционная система UNIX создавалась за несколько этапов. Все началось в 1965-69 гг. в Bell Labs концерна AT&T в рамках проекта MULTICS (Multi-user Timesharing Interactive Computing System) для большой машины General Electric GE-645. В 1969 г. Bell Labs решает выйти из проекта MULTICS, чтобы сосредоточить усилия на создании мобильной операционной среды под условным названием UNIX.

    Первоначально UNIX была написана на ассемблере для DEC PDP-7. Затем, в 1973 г., Денис Ритчи, который в то время уже разработал язык В, предложил переписать основную часть UNIX на В. В процессе осуществления этой идеи, язык В настолько усовершенствовался, что преобразился в С. Так было достигнуто невиданное тогда качество – мобильность. В отличие от всех операционных систем, на 100 процентов написанных на ассемблере для определенной машины, UNIX имела только 10 процентов (1000 строк) кода на ассемблере. Для того чтобы работать на произвольной машине, новая ОС нуждалась единственно в написании нескольких страничек на ассемблере и компиляторе языка С. Уже в 1976 г. в первый раз UNIX была перенесена на другую машину - Interdata 8/32.

    В 1971 г. торговая марка UNIX была запатентована Bell Labs для серии машин DEC PDP-11/20, наиболее тогда распространенных в университетской среде. За несколько лет UNIX претерпела в Bell несколько изданий, из которых наиболее популярны были шестое (1976 г.) и седьмое (1979 г.).

    Нарастающая популярность UNIX заставила Калифорнийский университет в Беркли предложить свой вариант UNIX - BSD (Berkeley Software Distribution), на базе которого по заказу DARPA (Агентство перспективных проектов военного ведомства США) компания BBN реализовала в системе BSD 4.1 протоколы TCP/IP. Так возникла сеть Интернет.

    Необходимо вспомнить и разработанную в Массачусетском технологически институте систему X-Window (1984 г.). Основанная на TCP/IP, она обеспечивает мобильный графический интерфейс, к которому прилагается, концепция клиент-сервер, наиболее революционная для своего времени. Сегодня UNIX и X-Window почти неразделимы.

    В это же время начались попытки стандартизации. Известный американский институт инженеров по электротехнике и электронике (IEEE), создал рабочую группу 1003, которая разработала стандарт переносимой системы (Portable Operating System). Имя этого стандарта - POSIX, который, конечно же, прежде всего, относится к UNIX. В 1990 г. документ POSIX 1003.1 с редакционными изменениями был принят в качестве стандарта ISO.

    Другим опытом стандартизации UNIX является документ Х/Open Portability Guide. Популярно третье издание - XPG3 (1989 г.), которое основано на POSIX 1003.1, но содержит и ряд новых элементов, рассматривающих не только ОС, но и потребительский интерфейс, базы данных, коммуникации.

    Шагом к стандартизации UNIX является и появление в 1989 г. ANSI стандарта для языка С (16 лет спустя после его рождения).

    Долгим и тернистым был также и путь UNIX на рынок программных средств. Считается, что только с 1 января 1984 г. дочерняя компания AT&T Bell Labs (позднее переименованная в USL - UNIX System Laboratories) вышла на рынок с UNIX в качестве торгового продукта. Под благовидным предлогом стандартизации UNIX, Компания AT&T ввела SVID (System V Interface Definition), и этим ходом вновь отождествила UNIX со своей System V (1983 г.).

    Другим важным событием в 1987 г. стало соглашение АТ&Т с ведущими UNIX производителями Sun и Microsoft, о так называемой унификации UNIX. Проект предусматривал создание четвертого издания System V (SVR4), которая объединяла характеристики XENIX Microsoft (другое на звание UNIX для микрокомпьютеров, основанной на седьмом издании и испытавшей сильное влияние System V), SunOS (система UNIX фирмы Sun Microsystems, основанной на BSD) и System V 3.2. В 1987 г. AT&T в первый раз лицензировала имя UNIX.

    В мае следующего года несколько ведущих компаний, между которых были Apollo, Bull, HP, IBM и Siemens, учредили Фонд открытых систем OSF (Open Software Foundation) - организацию с целью разработки и распространении открытых программных систем. Она финансировала разработки программного обеспечения в соответствии с наиболее современными требованиями к открытым системам, специфицированными в соответствующих стандартах для разработки: системный интерфейс OSF/AES, графический потребительский интерфейс OSF/Motif, распределенные системы OSF/DCE и т. д. Основой проекта являлся выбор UNIX-технологии. После внимательного изучения выбрали ядро Mach, разработанное в университете Карнеги-Меллон (100 тыс. строк исходного кода; код первой UNIX был на порядок скромнее), а все остальное (OSF-1 имеет, в общем, около 800 тыс. строк кода) предлагалось взять из IBM AIX третьей версии.

    Выбор AIX не понравился AT&T. Концерну было предложено принять членство OSF, но он поставил неприемлемое условие заменить AIX на SVR4. В результате AT&T, Sun, UNISYS, XEROX и др. создали в марте 1989 г. организацию UNIX International (UI), которая дала широкую дорогу USL. Разработка и лицензирование софтвера оставалась привилегией USL, но общий контроль был сохранен за AT&T. Взаимные столкновения и несовместимость продуктов OSF и UI явились кульминационным пунктом в так называемых UNIX-войнах.

    Между тем уже в наши дни появился Windows NT, который в отличие от своих предшественников DOS и Windows располагает арсеналом средств настоящей ОС. Этот факт заодно с безграничным доверием и поддержкой миллионов клиентов Microsoft всерьез стал угрожать UNIX-производителям. В июне 1992 г. OSF и UI объявили о совместном проекте Destiny, который положил конец UNIX-войнам.

    Вдобавок основной конкурент Microsoft в мире персональных компьютеров фирма Novell сделала ряд вполне понятных шагов навстречу UNIX. Компания стала собственником USL (декабрь 1992 г.) и благородным жестом передала торговую марку UNIX в руки Комитета X/Open. X/Open создал XPG4, с которым примирил SVID и AES. Была разработана и серия тестов для отбора в кандидаты открытых систем.

    Событием большого значения для будущего открытых систем является проект COSE, созданный ведущими производителями программного обеспечения. Сейчас в этом направлении сделан первый шаг (Common Open Desktop), унифицированный графический потребительский интерфейс. Кроме того, мир открытых систем, безусловно, будет обогащен и развитием объектно-ориентированных технологий.

    Базовые Характеристики. Все три представляемые ОС являются многозадачными. Однако в NetWare многозадачность кооперативная, и к тому же процессы на сервере выполняются в режиме ядра системы (отсутствует защита памяти процессов). Это делает применение данной системы потенциально опасным в качестве сервера приложений, поскольку любое некорректно написанное приложение может легко "повесить" сервер. Вместе с тем именно такая функциональная особенность ОС обуславливает исключительно высокую производительность, поскольку минимальны накладные расходы, связанные с переключениями между процессами, а также при переходах из пользовательского режима в режим ядра ОС и наоборот. При всех прочих одинаковых условиях NetWare имеет по определению более высокую, чем Windows NT или Unix, производительность.

    Все три ОС поддерживают симметричную многопроцессорную обработку (SMP), но, исходя из специфики этой системы, ценность ее для NetWare 4.1 довольно сомнительна, да и используется она только для узкого круга сертифицированных серверов. Для многопроцессорной обработки лучше применять Windows NT или Unix, причем Windows NT и многие версии Unix прекрасно работают на серверах с несколькими десятками процессоров.

    Хорошо себя зарекомендовали и кластерные системы на основе Unix, но, разумеется, далеко не всякий Unix для этого годится. Для Windows NT разработка кластерных технологий полностью еще не закончена.

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

    В версиях 2.2, 3.12, 4.0 и 4.10 NetWare применена технология SFT (System Fault Tolerant- система защиты при отказах оборудования). Система защиты при отказах оборудования означает бесперебойную работу файлового сервера при различного рода отказах аппаратных средств. Во всех версиях NetWare имеются средства минимизации потерь данных в случае физических повреждений поверхности накопителей. Система SFT пошла дальше в этом отношении, предложив методы зеркального отображения дисков и дублирования дисков. В ОС NetWare имеется возможность контроля сигналов источника бесперебойного питания.

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


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

    Благодаря модульному построению системы обеспечивается расширяемость Windows NT, что позволяет гибко осуществлять добавление новых модулей на различные уровни операционной системы. Основными модулями Windows NT являются уровень аппаратных абстракций HAL (Hardware Abstraction Layer), ядро (Kernel), исполняющая система (Executive), защищенные подсистемы (protected subsystems) и подсистемы среды (environment subsystems).

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

    Ядро является основой модульного строения системы и координирует выполнение большинства базовых операций Windows NT. Этот компонент специальным образом оптимизирован по занимаемому объёму и эффективности функционирования. Ядро отвечает за планирование выполнения потоков, синхронизацию работы нескольких процессоров, обработку аппаратных прерываний и исключительных ситуаций.

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

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

    Безопасность. Система защиты Novell NetWare включает в себя защиту от несанкционированного доступа, а также ограничения на доступ (пользователей с определенными именами в определенное время дня). NetWare 4.1 соответствует требованиям класса безопасности C2, предъявляемым к сетевым конфигурациям ("Красная книга").

    Windows NT обеспечивает защиту с помощью встроенной системы безопасности и усовершенствованных методов управления памятью. Система безопасности удовлетворяет спецификациям правительства США и соответствует стандарту безопасности С2. В корпоративной среде критическим приложениям обеспечивается полностью изолированное окружение.

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

    Многопользовательский Интерфейс. Преимуществом Unix является поддержка многопользовательского интерфейса, которая отсутствует у NetWare и Windows NT.

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

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

    Хотя X (сокращенное обозначение X Window System) разрабатывался независимой от конкретной ОС, его реализации могут довольно сильно отличаться в различных операционных системах. X прекрасно адаптирован для Unix, причем имеется множество расширений, значительно увеличивающих возможности стандартной поставки.

    Как известно, Microsoft при разработке Windows NT не стала делать графический интерфейс сетевым. Не поставляет она и продукты, реализующие X Window System в этой ОС. Тем не менее, ряд независимых компаний предлагает такие программы.

    Для NetWare 4.1 поддержка X вообще отсутствует (кроме простой программы X-console).

    Логическая Организация Сетевых Ресурсов. В NetWare 4.1 имеется прекрасное средство организации сетевой инфраструктуры - служба каталогов NetWare (NDS). Она позволяет строить иерархию сетевых ресурсов на глобальном уровне. При этом пользователю для доступа к любому ресурсу довольно один раз зарегистрироваться в сети. Недостатком NDS является недостаточное количество прикладных программ для этой отличной службы.

    Что касается реализации NDS на других платформах, то уже сейчас SCO UnixWare (которая раньше принадлежала Novell) поддерживает NDS. Кроме того, фирма Novell заключила соглашение с Hewlett-Packard и SCO о переносе NDS в среду Unix этих фирм.

    В Windows NT Server 3.51 и 4.0 сеть строится на основе доменов, что даже по признанию Microsoft менее привлекательно для корпоративных клиентов, чем служба каталогов. В Windows NT 5.0 Microsoft ввела новую службу каталогов NT Directory Service или, как ее еще называют – Active Directory. Она обеспечивает глобальное управление каталогами в сетевой среде масштаба предприятия и сравнима по своим функциям со службой Novell Directory Services (NDS).

    Для Unix использование сетевой информационной службы NIS, разработанной фирмой Sun, дело обычное. Эта служба позволяет организовывать сетевые ресурсы на основе доменов, однако, в отличие от Windows NT, она не помогает устанавливать между доменами доверительные отношения. Управление NIS довольно сложная задача: редактировать многочисленные текстовые файлы приходится "врукопашную".

    В настоящее время некоторые производители Unix разрабатывают свои службы каталогов, обычно на основе стандарта X.500. Однако представляется гораздо более перспективным для них использование службы каталогов либо фирмы Novell, либо Microsoft.

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

    Службы Файлов и Печати. Судя по тестам, самой производительной сетевой файловой системой обладает NetWare 4.1. Очень близко к ней находится Windows NT, но все-таки при большом количестве клиентов и при подключении сервера к высокопроизводительному сетевому каналу архитектурные особенности NetWare дают ей некоторые преимущества.

    Файловый сервер в NetWare является обычным ПК, сетевая ОС которого осуществляет управление работой ЛВС. Функции управления включают координацию рабочих станций и регулирование процесса разделения файлов и принтеров. Сетевые файлы всех рабочих станций хранятся на жестком диске файлового сервера, а не на дисках рабочих станций.

    Кроме возможности выполнения приложений, написанных для других операционных систем, в Windows NT поддерживаются и различные типы файловых систем. Можно использовать жесткий диск, отформатированный в одной из трех систем: FAT, HPFS и NTFS (разработанной специально для Windows NT). Очень надежная, файловая система NTFS позволяет применять длинные имена файлов и контролировать доступ к определенным файлам. В 4 версии файловая система HPFS больше не поддерживается, так как не предлагает никаких преимуществ по сравнению с двумя другими.

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

    NFS отличается низкой производительностью, ограниченными средствами управления правами и недостаточной защищенностью от несанкционированного доступа. К тому же многие системы Unix имеют ограничения в 2 Гбайт (что слишком мало для современных программ) на максимальный размер файла.

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

    Поддержка Аппаратных Платформ. NetWare 4.1 может быть установлена только на компьютерах с процессорами Intel x86. Одно время Novell собиралась перенести эту ОС на PowerPC, но, похоже, она отказалась от своих намерений.

    ОС Unix имеется, кажется, на всех мыслимых платформах. Но значит ли это, что если вы работаете в SCO OpenServer, то знаете IBM AIX? Конечно же, нет! Более того, многие программы требуют серьезной переработки в исходных текстах для переноса из одной системы Unix в другую. Каждая версия Unix предназначена обычно лишь для одной аппаратной платформы. Единственным, пожалуй, приятным исключением является ОС Solaris, которая реализована для процессоров SPARC, x86 и PowerPC. Однако найти необходимую программу для Solaris x86 или PowerPC - дело явно неблагодарное (слишком их мало).

    Windows NT можно установить на самых различных типах компьютеров, список которых продолжает расти. Сегодня поддерживаются Intel-компьютеры с процессорами 386, 486, Pentium и Pentium Pro, а также три типа RISC-процессоров: PowerPC, MIPS R4000 и DEC Alpha. По количеству поддерживаемых платформ она не намного обошла Solaris. Что касается прикладных программ для "неродных" аппаратных платформ, то здесь ситуация полностью аналогична Solaris - программ адаптированных для Windows NT не Intel платформ практически существует.

    Все три системы неплохо подходят в качестве сервера удаленного доступа, но лучше для этого использовать не обычный компьютер, а специализированные серверы типа AccessBuilder фирмы 3Com или LanRover/E фирмы Shiva.

    В качестве платформы для сервера групповой обработки информации, сервера электронной почты и факс-сервера могут применяться все три ОС, но обычно такие программы для Unix стоят дороже (кроме SMTP, поставляемой бесплатно), а управлять ими сложнее.

    Web-серверы существуют на всех трех ОС. Однако чаще всего в качестве платформы Web-серверов используют Unix, в особенности Solaris. Думается все же, что в России главенствующую роль будет играть Windows NT Server 4.0 со своим Internet Information Server, поскольку это приложение поставляется с самой системой бесплатно, а такого рода доводы обычно сильнее всех остальных. Тем не менее, Internet до сих пор остается вотчиной Unix-серверов. Они поддерживают максимальное количество протоколов и приложений TCP/IP. Поэтому, если планируется серьезное использование Internet, стоит обратить пристальное внимание на Unix.

    При подключении локальных сетей к Internet особую и важную роль играют брандмауэры. Практически все они реализованы на основе той или иной версии Unix.

    Сервер Баз Данных. Из-за отсутствия вытесняющей многозадачности и защиты памяти NetWare вряд ли можно назвать подходящей платформой для сервера БД. Windows NT и Unix-машины хорошо зарекомендовали себя в качестве сервера БД, но, благодаря большей масштабируемости и наличию кластерных технологий, Unix лучше подходит в качестве мощного сервера БД для распределенных сетей.

    Сервер Прикладных Программ. По совершенно не понятной причине, когда говорят о сервере приложений, часто под этим термином подразумевают сервер БД. Никто не спорит, сервер БД очень важен, но это только одно из возможных приложений. Зачем же подменять понятие сервера приложений понятием сервера БД (а еще краше SQL-сервером).

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

    Допустим, для каких-либо дорогих и очень ресурсоемких программ (серьезных САПР или, скажем, программ расчета и отображения динамических процессов в ядерном реакторе) понадобилось приобрести мощную вычислительную технику категории "Number Crashing" ("перемалыватель чисел"), допустим 12-процессорный Alpha-Server. Конечно же, на него поставят Unix (или OpenVMS) с тем, чтобы его вычислительной мощью могли пользоваться одновременно несколько пользователей. Для этого обычно задействуют различного типа терминалы, рабочие станции или эмуляторы терминалов на ПК. Из-за отсутствия встроенной поддержки многопользовательского интерфейса Windows NT не очень хорошо подходит для такого сервиса (а о NetWare лучше даже и не заикаться).

    Правда в последнее время растет нужда в системах, способных исполнять основное – "тяжелое" – приложение на мощном высокопроизводительном сервере, а результаты деятельности по запросам передавать на маломощные клиентские станции, реализуя модель клиент-сервер. Переход с больших мэйнфреймов на современные системы на базе ПК средней и большой мощности как раз и требует такого решения. Windows NT, изначально построенная по схеме клиент-сервер, отлично приспособлена для работы в системах клиент-сервер в качестве сервера приложений. В первую очередь такими приложениями являются системы управления базами данных, системы информационного обмена, системы управления. Именно поэтому в Microsoft BackOffice входят Microsoft SQL Server – сервер баз данных, Microsoft System Management Server – сервер управления системой, Microsoft Exchange – сервер информационного обмена, SNA Server – сервер связи с мейнфреймами и Internet Information Server – сервер Internet.

    Кроме приложений корпорации Microsoft, существует более 2000 разработок других фирм: серверы баз данных (Informix, Oracle, IBM и т.д.), системы управления сетями (HP, DEC), управления производством (SAP), документооборота (Lotus, Saros), финансовые (Platinum) и многие другие системы для бизнеса.

    У Windows NT есть поддержка Network OLE. Аналогичные спецификации для Unix пока только в стадии разработки, и еще не понятно, как они будут стыковаться с клиентскими местами на основе Windows.

    Администрирование. Простота администрирования зависит не только от продуманности пользовательского интерфейса административных утилит, но и от возможностей самой ОС.

    Хотя NetWare 4.1 имеет неплохой набор довольно удобных утилит, все-таки Windows NT Server 4.0 - вне конкуренции. Хорошо продуманный интерфейс плюс богатые возможности утилит делают ее простой в администрировании, и это, не говоря о скрытой мощи.

    Тем не менее, в базовом комплекте данных ОС отсутствует много важных утилит (в частности хорошего командного процессора наподобие shell в Unix).

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

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

    Поддержка Клиентов. Благодаря тому, что NetWare и Windows NT разрабатывались для обслуживания сетей ПК, они обеспечивают хорошую поддержку основных клиентских операционных систем: MS-DOS, Windows 3.х, Windows 95, Windows NT Workstation, OS/2, Macintosh System 7.5. Поддерживаются в качестве клиентов и некоторые версии Unix, но далеко не все и не всегда гладко. Эталоном здесь может служить SCO UnixWare, имеющая прозрачную интеграцию с NetWare 4.1.

    Для сетей на основе Unix до недавнего времени проблема поддержки клиентских ОС стояла более серьезно (если не считать клиентов на основе Unix). Но сейчас почти все Unix имеют те или иные средства интеграции клиентов DOS/Windows. Кроме того, Windows’95 и Windows NT Workstation уже поставляются с приложениями ftp, telnet, ping, Internet Explorer и др. Правда, этот набор слишком невелик, да к тому же возможности некоторых из них, мягко говоря, небольшие.

    На рынке, однако, имеется очень много программных продуктов различных фирм, реализующих практически весь спектр услуг Unix (и не только Unix) для операционных систем на ПК. Так, Novell поставляет пакет LAN WorkPlace, в который входят: ftp-клиент и ftp-сервер для DOS и Windows; NFS-клиент; telnet для DOS и Windows; TN3270 для Windows; Web-браузер; сервер и клиент X Window System; и др. При этом все приложения данного пакета прекрасно интегрируются с NetWare.

    Windows NT имеет встроенные в систему сетевые возможности, что также позволяет обеспечить связь с различными типами host-компьютеров (благодаря поддержке разнообразных транспортных протоколов) и использованию средств клиент-сервер высокого уровня (включая именованные каналы, вызовы удалённых процедур).


    Наименование

    NetWare 4.1

    Windows NT Server 4.0

    Unix

    Многозадачность

    кооперативная

    вытесняющая

    вытесняющая

    Защита памяти отдельного процесса

    нет

    Есть

    есть

    Многопоточность

    есть

    Есть

    есть

    Поддержка SMP

    есть

    Есть

    есть

    Кластеры

    нет

    Есть

    есть

    Избыточная отказоустойчивость

    SFT III

    Нет

    есть для некоторых версий

    Сертификация по C2

    сеть

    Есть

    разные варианты для различных версий

    Поддержка алфавитно-цифровых терминалов

    нет

    Нет

    есть

    Сетевой графический интерфейс

    нет

    у сторонних фирм

    есть

    Логическая организация ресурсов

    служба каталогов

    Домены

    (AD в NT 5.0)

    домены (NIS)

    Быстродействие сетевой файловой системы

    отличное

    Очень хорошее

    низкое (NFS)


    К сожалению, нет в мире совершенства. Ни одна сетевая операционная система не может удовлетворить всем требованиям, предъявляемым при создании корпоративной гетерогенной сети: каждая из них имеет свои плюсы и свои минусы. В гетерогенной среде, где помимо ПК присутствуют Unix-машины, наиболее разумным подходом будет комбинированное использование сетевых ОС (Unix+Windows NT Server 4.0). Тем не менее в сети, где нет Unix-машин, использование Unix-серверов не имеет большого смысла.

    Еще один фактор, несомненно влияющий на выбор операционной системы сервера, это операционная система клиентских машин. На сегодняшний день распространение Windows’95 и Windows NT настолько велико, что практически на всех компьютерах установлена одни из версий. Багатый выбор офисных продуктов, удобный и теперь уже привычный интерфейс пользователя, легкость и гибкость настройки и многое другое несомненно привлекает в этих операционных системах.

    Выбор СУБД для реализации довольно сложен, хотя после выбора операционной системы сервера достаточно очевиден. Прозрачный и не отегощенный не нужными функциями, Microsoft SQL Server является оптимальным решением. По всем международним тестам он находится среди лидеров реляционных СУБД. Пиковая производительность систем и их стоимость в пересчете на одну транзакцию продолжают быстро улучшаться. В настоящее время лидерство по отношению стоимость/производительность принадлежит комбинации продуктов Compaq/Windows NT/Microsoft SQL .

    Выбор языка программирования. Delphi - это потомок Турбо Паскаля, который был выпущен для операционной системы CP/M в 1983 году. В феврале 1994 года Турбо Паскаль был перенесен на операционную систему MS-DOS.

    На раннем этапе развития компьютеров IBM PC, Турбо Паскаль являлся одним из наиболее популярных языков разработки программного обеспечения - главным образом потому, что это было вполне серьезный компилятор, который, включая компилятор, редактор и все остальное, стоил всего $19.95 и работал на машине с 64 Kb оперативной памяти.

    Под Windows - Турбо Паскаль был перенесен фирмой Borland в 1990 году. А самая последняя версия Borland Pascal 7.0 (имеющая теперь такое название), не считая Delphi, вышла в свет в 1992 году. Разработка Delphi началась в 1993 году. После проведения beta-тестирования Delphi показали на "Software Development '95". И 14 февраля 1995 года официально объявили о ее продаже в США. В торговлю Delphi попала спустя 14 дней, 28 февраля 1995 года.

    Delphi обладает рядом отличительных особенностей. Многократно используемые и расширяемые компоненты. Delphi устраняет необходимость программировать такие компоненты Windows общего назначения, как метки, пиктограммы и даже диалоговые панели и множество других многократно используемых компонентов, которые позволяют экономить время и программные усилия при разработках для Windows. В Delphi также имеются предварительно определенные визуальные и не визуальные объекты, включая кнопки, объекты с данными, меню и уже построенные диалоговые панели. С помощью этих объектов можно обеспечить вывод данных просто несколькими нажатиями кнопок мыши, не прибегая к программированию. Предоставляемый Delphi внушительный список объектов ставит эту систему во главе сред разработки, предоставляющих архитектуру повторно используемых компонентов.

    Поддержка стандарта VBX(Visual Basic Extensions). Delphi дает возможность интегрировать VBX-объекты непосредственно в Палитру компонентов (Component Palette) для облегчения доступа к этим объектам и инструментам.

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

    Настрой на среды разработки. Палитра компонентов, редактор кода, шаблоны приложений и форм – примеры областей, где Delphi может быть полностью настроена в соответствии с пожеланиями программиста.

    Компилируемые программы. Утверждается, что другие известные визуальные средства разработки приложений Windows также «компилируют» программы. Однако это не совсем верно, в действительности происходит компиляция только части программы и последующая компоновка программы-интерпретатора и Р-кода в исполняемый модуль. Так работали раньше, хотя многие программисты сталкивались с ограничением производительности при использовании этого подхода. Delphi не использует ни интерпретатор, ни Р-код и создает действительно откомпилированные программы, готовые для исполнения. Поэтому программы Delphi столь же быстры, как и программы, написанные на языках третьего поколения. Delphi является самым быстрым в мире инструментом разработки баз данных. Простые программы Delphi могут поставляться в виде единственного исполняемого модуля без дополнительных библиотек DLL, необходимых при использовании иных сред разработки.

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

    "Библиотека времени выполнения" (run-time library) стандартных функций для всех программ VB хранится в файле VBRUN300.DLL. Каждая программа VB, попавшая к конечному пользователю, должна включать этот файл, либо приходится рассчитывать, что такой файл у пользователя уже есть. Дистрибутивный комплект программы должен также содержать файлы VBX для каждого управляющего средства VB, не включенного в VBRUN300.DLL. Программы Delphi включают необходимую часть библиотеки времени выполнения Delphi, а также используемые компоненты. В результате EXE-файл Delphi обычно больше по объему, чем эквивалентный EXE-файл VB, но он не зависит ни от каких внешних файлов.

    Широкие возможности доступа к данным. В Delphi встроен BDE – механизм работы с базами данных (Borland Database Engine). BDE является тщательно продуманной системой, результатом развития ODAPI и IDAPI. BDE в настоящее время является стандартным промежуточным слоем, используемым для доступа ко всем популярным форматам современных баз данных. BDE также используется в системах «клиент/сервер» и обеспечивает доступ к таким продуктам этого типа, как Sybase SQL Server, Microsoft SQL Server, Oracle и Borland Interbase. Можно утверждать, что BDE просто блистает на фоне ODBC – продукта Microsoft, обеспечивая существенный выигрыш в производительности за счет более тесной связи с форматами баз данных.

    5. Технологическая часть

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

    Во-первых, база данных должна хранить информацию о клиентах фирмы, о государственных налогах (налог на добавочную стоимость, акцизный налог). В связи с тем, что значения налогов могут изменяться, заводить эту информацию в программу нельзя. Анализируя структуру базы данных фирмы «ИНФИН», можно заметить, что неразумно разносить отдельно информацию по выданным и полуученым счетам фактуры. Разумнее объединить ее в одну таблицу, добавив еще один признак счета-фактуры – полученный или выданный. Информацию о суммах счета-фактуры хранить не обязательно – ее можно вычислить и таблицы товаров.

    Таблица Клиенты является справочником, в котором хранится вся информация по клиентам фирмы. Идентификатор клиента является первичным (уникальным) ключом для таблицы. Альтернативным ключом является поле ИНН. По любому и этих ключей можно однозначно определить клиента. Второй справочной таблицей является таблица налогов "Налоги". Поле Идентификатор налога является ее первичным ключом. В этой таблице хранится информация, как по НДС, так и по Акцизному налогу.

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

    Связи:

    Клиенты – Журнал счетов. Эта связь не обязательная со стороны Клиентов и обязательная со стороны Журнала счетов. Это значит, что может существовать клиент, на которого еще не заведено ни одного счета-фактуры. С другой стороны не может существовать счета-фактуры, у которого нет ссылки на клиента или такой ссылки нет. При изменении записей в таблице Клиенты, автоматически изменяются Идентификаторы клиента в Журнале счетов. Удаление клиента, у которого уже существует счет-фактуры невозможно.

    Налоги – Товары (НДС и Акциз). Эта связь не обязательная со стороны Налогов и необязательная со стороны Товаров. Это значит, что может существовать еще нигде не использованный налог, и может существовать товар, не облагаемый налогом. При изменении значений в таблице Налоги, автоматически изменяется значение в таблице Товаров. С другой стороны удаление какого-нибудь налога не ведет к удалению товара. Ссылка на налог устанавливается в значение NULL.

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

    2.4 Перенос данных в новую базу данных


    Как уже отмечалось структура базы данных старой программы фирмы «ИНФИН» отличается древовидной структурой базы данных, а точнее расположением файлов базы данных. Приблизительная структура показана на рисунке.


    Как легко заметить, новая структура базы данных намного легче в понимании и обращении с ней. Ветвистость директорий в базе данных «ИНФИН» никому не нужна. Но, к сожалению, данные из старой базы данных надо переносить. Перенос данных придется осуществлять последовательным перебором всех поддиректорий и выгрузкой данных в SQL сервер.

    К сожалению, экспорт информации в Microsoft SQL Server из DBF файлов проводится, не может. Однако существует утилита командной строки DOS позволяющая осуществлять экспорт данных из текстового файла, сформированного определенным образом. Поэтому следует проводить экспорт данных из DBF формата в SQL базу данных через промежуточный текстовый файл.


    Под форматирование подразумевается приведение таблицы по типу, названию и расположению полей к формату SQL таблицы



    Экспорт данных в ТХТ формат














    Файл формата таблицы создается единожды для данной таблицы.

    Формат DBF файлов осуществлялся при помощи утилиты для работы с файлами DBF формата – DBU.EXE. В основном, это ручное форматирование структуры файла, перенос данных, отчистка от пустых строк и т.д. Экспорт файла осуществлялся при помощи программы Excel. В Excel осуществлялся вторичный контроль над данными, заполнение незаполненных, но обязательных для заполнения в SQL, полей. Далее данные экспортировались в ТХТ файл с разделителями «;».

    При помощи утилиты командной строки bcp.exe создавался fmt файл с форматом SQL таблицы. Это необходимо для дальнейшего экспорта данных. Файл формата таблицы создается единожды для данной таблицы.

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

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

    2.5 Разработка программы

    При запуске программы, первым делом, должна проводится авторизация пользователя. Для этого выводится стандартное диалоговое окно, в котором пользователя просят ввести имя пользователя (Login Name) и пароль. Введенная информация посылается через ODBC-драйвер в Систему Управления Базами Данных, а точнее в службу доступа СУБД, которая проверяет введенные данные и выдает либо положительный, либо отрицательный результат. При отрицательном результате пользователю предлагается повторить попытку регистрации в системе. Если пользователь отказывается от авторизации, выбрав кнопку отмены, программа завершает свою работу, выдав сообщение о невозможности продолжать работу из-за отсутствия возможности получить данные.

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

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

    Главное окно разделено на две логически зависимые части. В верхней, главной, находится непосредственно журнал регистрации счетов. Он получается из базы данных при помощи вспомогательной виртуальной таблицы (представления) V_Facture. Это представление собирает из разных таблиц информацию по документу, в том числе краткое наименовании клиента и суммы документа с налогом и без него. В нижней вспомогательной части окна находится информация о товарах, содержащихся в выбранном документе. При изменении положения курсора в верхнем окне, содержимое нижнего окна соответственно изменяется. Информация о товарах тоже берется из вспомогательной виртуальной таблицы V_Articles. Это представление содержит в себе кроме информации о товаре, также информацию о процентных ставках товара, и о суммах налогов, чистой сумме, сумме с акцизным налогом и общую сумму товара. Также главное окно имеет меню и панель инструментов, функции которого дублируют некоторые функции главного меню. Также верхняя (главная) часть окна имеет контекстное меню, функции которого дублируют некоторые функции панели инструментов.

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

    Вызов справочника, как налогов, так и клиентов предприятия из главной программы осуществляется при помощи выбора в главном меню «Файл» - «Справочники» и далее интересующий справочник. При выборе справочника программа пытается считать из файла настроек параметры соответствующего окна. При отсутствии данных подставляются параметры, зашитые в программу. Каждый справочник представляет собой окно просмотра информации и панели кнопок, с правой стороны, для редактирования, удаления и добавления информации, а также для выхода из справочника. Функции модификации могут быть вызваны также из всплывающего меню. Для удобства понимания и представления информации, в справочнике налогов выводится процентный эквивалент налога. При удалении записи в справочнике, пользователь должен подтвердить свое желание удалить запись. Запрос на удаление записи посылается на SQL сервер, и если, в справочнике клиентов, клиент участвует в каком-нибудь документе, SQL сервер вернет отказ в удалении клиента, при этом выдав соответствующее сообщение на экран о невозможности удаления записи из-за наличия записи в журнале регистраций, связанной с данной записью. При модификации (добавлении или редактировании) информации, пользователю на экран выводится форма (при редактировании уже заполненная данными) и предлагается ее заполнить. При неправильном заполнении или пропуске обязательных к заполнению полей и попытке записать введенную информацию, программа выдает сообщение об ошибке и курсор автоматически позиционируется на место ошибки. При правильном заполнении, программа подготавливает данные и посылает запрос к SQL серверу. После получения подтверждения от сервера о выполнении запроса программа закрывает окно ввода информации и позиционирует курсор на введенную или измененную запись в справочнике. После любой модификации данных программа производит обновление экрана просмотра информации и пере инициализацию кнопок и пунктов меню.

    Модификация данных в главном окне зависит от того, было ли выбрано удаление или добавление и редактирование. Удаление записи в журнале регистрации происходит только после подтверждения пользователем. При модификации записи программа раскрывает окно для ввода информации, при этом если было выбрано редактирование, то в поля записывается соответствующая информация. Форма ввода информации разделена на две части: ввод информации по счету и ввод информации по товарам этого счета. Из формы редактирования можно попасть в формы просмотра и редактирования справочников, при этом в формах справочников появляется дополнительная возможность отменить вызов формы, а  справочнике налогов также появляется возможность очистить соответствующее поле  в форме ввода счета. В форме ввода счета можно вводить товары, включенные в счет, при этом возможна модификация введенной информации, такая как удаление, добавление и обновление введенной информации. Данная часть формы ввода счета содержит в себе окно просмотра введенной информации и форму ввода информации. При изменении позиции курсора в окне просмотра введенной информации по товарам, форма ввода автоматически заменяет свое содержимое. При добавлении и обновлении товаров, в программе предусмотрена проверка на правильность заполнения полей ввода. При ошибке, пользователю выдается сообщение об ошибке и автоматически позиционируется курсор на место ошибки. Если выбран режим добавления счета-фактуры, то ставка НДС по умолчанию устанавливается в 20%. При правильном заполнении всех полей программа подготавливает данные для ввода в базы данных и вводит их при помощи хранимой процедуры SP_ADD_FACT. Эта процедура имеет в параметрах все реквизиты документа и реквизиты одного товара. Остальные товары добавляются в базу данных циклически.

    Печать документа вызывается из главного окна при помощи выбора соответствующей кнопки на панели инструментов или при выборе пункта в главном меню. При выборе печати из главного меню выводится стандартное окно выбора принтера и дальнейшей печати. Бланк документа зашит в программу и был спроектирован при помощи встроенного в Delphi дизайнера отчетов QuickReport. В документе выбран кириллический шрифт true type, размер и особенности шрифта (такие как наклон, толщина и т.д.) заданы при создании отчета, и не могут быть в дальнейшем изменены пользователем. Часть данных в форму документа передается через результат запроса (перечень товаров счета), а другая при непосредственной записи в соответствующие поля. В зависимости от типа документа (выданый или полученный) поля в документе меняются местами. Данные о предприятии пользователя считываются из файла настроек.

    Печать или просмотр журнала регистрации вызывается из главного окна при помощи выбора соответствующей кнопки на панели инструментов или при выборе пункта в главном меню. При выборе печати из главного меню выводится стандартное окно выбора принтера и дальнейшей печати. Бланки отчетов (книга выданных или книга полученных) зашит в программу и был спроектирован при помощи встроенного в Delphi дизайнера отчетов QuickReport. В документе выбран кириллический шрифт true type, размер и особенности шрифта (такие как наклон, толщина и т.д.) заданы при создании отчета, и не могут быть в дальнейшем изменены пользователем. При вызове просмотра или печати журнала регистрации на экран выводится диалоговое окно, в котором пользователю предлагается ввести временной интервал, за который он хочет просмотреть или распечатать журнал регистрации. При этом если данные в главном меню уже отфильтрованы по дате, то программа подставляет этот временной интервал, если же данные небыли отфильтрованы, то подставляется текущий месяц целиком. После модификации пользователем временного интервала, интервал, вместе с типом счета, посылается с запросом в базу данных. При помощи хранимой процедуры SP_MAKE_BOOK, SQL сервер возвращает сформированные данные в программу. При отсутствии данных, пользователю выводится сообщение об отсутствии данных и предлагается ввести другой интервал. Пользователь может в любой момент отказаться от печати журнала регистрации. Если SQL сервер возвращает данные, то они подставляются, в зависимости от типа документа, в соответствующую форму.

    Фильтрацию данных можно разделить на три части: фильтрация по типу документа, фильтрация по дате документа и расширенная фильтрация.

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

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

    Вызов расширенного фильтра выводит окно, в котором пользователю предлагается ввести выражения для фильтрации данных. Это выражение должно быль написано на языке Transact-SQL, и программа подставляет его в запрос к базе данных после ключевого слова WHERE и фильтров по типу  и дате документа. После этого расширенного фильтра, программа посылает запрос к базе данных и СУБД сама проводит синтаксический анализ введенного выражения. Если СУБД обнаружит ошибку, то пользователю сообщается об этом и предлагается исправить введенное выражение. При инициализации окна расширенного фильтра, программа считывает предыдущий расширенный фильтр и подставляет его в поле для ввода выражения - тем самым можно, очистив поле, очистить расширенный фильтр.

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

    3. Отладка

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



    Модуль справочников и модуль отчетов являются вспомогательными.

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

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

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

    Первый тест на правильность отражения информации. Программа должна отражать именно ту информацию, которая находится в базе данных. Для проверки правильности функционирования необходимо проводить визуальное сравнение данных на экране и содержимого базы данных. Содержимое базы данных выводится на экран при помощи стандартного SQL запроса (SELECT * FROM <имя таблицы>). Расхождение информации на экране и в базе данных свидетельствует об ошибке в программе при формировании запроса к базе данных или при выводе данных на экран.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Сетевое тесторование программы может выявить ошибки совместного изменения данных. Ошибки могут возникнуть, например, при удалении записи одним пользователем и обращении к ней другим. Устранение подобных ошибок берет на себя SQL Server, которых при записи быдаст сообщение об ошибке.

    5. Экономическая часть

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

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

    Следует отметить основные достоинства сетевого планирования:

    четкая увязка всех работ по времени;

    выявление критической (в смысле сроков выполнения) цепочки работ от начала и до конца разработки и сосредоточение внимания руководителей на этих работах;

    возможность оперативной корректировки разработанных планов с помо­щью ЭВМ;

    тесная организационная связь всего коллектива специалистов, участвую­щих в разработке;

    централизованное управление разработкой.

    В связи с этим в данном разделе дипломного проекта рассмотрена эффективность применения методов сетевого планирования при разработке ПО.

    Определение структуры (этапов) работ

    Планирование длительности этапов и содержания работ осуществляется в соответствии с ЕСПД ГОСТ 19.102-77 и предполагает распределение работ по следующим стадиям и этапам (при этом допускается объединять, исключать этапы работ, а также вводить другие этапы работ по согласованию с заказчиком).

    Техническое задание

    Обоснование необходимости разработки программы

    Научно-исследовательские работы

    Разработка и утверждение технического задания

    Эскизный проект

    Разработка эскизного проекта

    Утверждение эскизного проекта

    Технический проект

    Разработка технического проекта

    Утверждение технического проекта

    Рабочий проект

    Разработка программы

    Разработка программной документации

    Испытания программы

    Внедрение

    Подготовка и передача программы.


    Распределим работы по этапам на основании определённых ГОСТом.

    Формулирование требований

    Разработка алгоритмов

    Разработка программных модулей

    Тестирование и отладка

    Разработка документации.

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

    (6.1),

    где Tmax и Tmin – максимальная и минимальная продолжительность работы. Они назначаются в соответствии с экспертными оценками, а ожидаемая продолжительность работы рассчитывается как математическое ожидание для b - распределения.

    Полный перечень работ с разделением их по этапам сведём в таблицу.

    Таблица 5

    Этап

    № работы

    Содержание работы

    Tmin, чел/дни

    Tmax, чел/дни

    Ожидаемая продолжительность работы, чел/дни

    1. Формулирование требований

    1

    Составление и утверждение технического задания

    2

    4

    3

    2

    Анализ предметной области

    12

    16

    14

    3

    Разработка общей структуры ПО

    2

    4

    3

    2. Разработка алгоритмов

    4

    Разработка алгоритма построения обратного автомата

    4

    6

    5

    5

    Разработка пользовательского интерфейса

    4

    6

    5

    3. Разработка программных модулей

    6

    Реализация алгоритма построения обратного автомата

    12

    16

    14

    7

    Реализация пользовательского интерфейса

    9

    11

    10

    4. Тестирование и отладка

    8

    Тестирование и отладка

    6

    9

    7

    5. Разработка документации.

    9

    Разработка документации.

    2

    4

    3


    Итого

    64


    Построение сетевого графика

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

    По результатам расчетов строим таблицу

    Таблица 6 – Основные события и работы проекта

    № события

    Код работы

    Ожидаемая продолжительность работы

    Ранний срок

    Поздний срок

    Резерв

    i-j

    T

    То

    Тн

    То

    Rij

    Rcij

    1

    1 – 2

    3

    0

    3

    0

    3

    0

    0

    2

    2 – 3

    14

    3

    17

    3

    17

    0

    0

    3

    3 – 4

    3

    17

    20

    17

    20

    0

    0

    4

    4 – 5

    5

    20

    25

    20

    25

    0

    0

    5

    4 – 6

    5

    20

    25

    20

    29

    4

    0

    6

    5 – 7

    14

    25

    39

    25

    39

    0

    0

    7

    6 – 7

    10

    25

    39

    29

    39

    4

    4

    8

    7 – 8

    7

    39

    46

    39

    46

    0

    0

    9

    8 – 9

    3

    46

    49

    46

    49

    0

    0


    Сетевой график приведен ниже на рисунке.

    Рисунок 18 – Сетевой график



    Для данного случая критический путь проходит через вершины 1-2-3-4-5-7-8-9 и имеет длину Tкр=49 рабочих дней.

    Построение диаграммы Гантта

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

    Диаграмма Гантта показана ниже на рисунке.

    Рисунок 19—Диаграмма Гантта


    Анализ структуры затрат проекта

    Калькуляция затрат проекта осуществляется по следующим статьям:

    1. Основная заработная плата персонала. Определяется на основе данных по окладам и графику занятости:

    (6.10),

    где  – дневной оклад исполнителя,  – число дней, отработанных исполнителем.

    При 8-и часовом рабочем дне дневной оклад рассчитывается по соотношению:

    (6.11),

    где  - месячный оклад,  - месячный фонд рабочего времени.

    С учетом налога на доходы физических лиц размер месячного оклада увеличивается:

    (6.12),

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

    Расчет заработной платы представлен в таблице ниже.

    Таблица 7 - Расчет основной заработной платы исполнителей

    № п/п

    Наименование должности

    Оклад, руб

    Дневной оклад

    Человеко-дни

    Всего сумма зарплаты, руб.

    1

    Системный аналитик

    24000

    1142,86

    20

    22857,14

    2

    Алгоритмист 1

    18000

    857,14

    5

    4285,71

    3

    Алгоритмист 2

    15000

    714,29

    5

    3571,43

    4

    Программист 1

    15000

    714,29

    14

    10000,00

    5

    Программист 2

    11000

    523,81

    10

    5238,10

    6

    Инженер по тестированию

    13000

    619,05

    7

    4333,33

    7

    Технический писатель

    9000

    428,57

    3

    1285,71


    Итого:

    51571,42


    2. Дополнительная заработная плата. Учитываются все выплаты непосредст­венным исполнителям за время, не проработанное на производстве, в том числе: оплата очередных отпусков, компенсации за недоиспользованный отпуск и др. Эти выплаты составляют 20% от основной заработной платы:

     (руб.)

    Примечание. В нашей разработке командировки не предусматриваются.

    2. Отчисления в пенсионный фонд, фонд социального страхования, занятости, на страховую медицину. Суммарный процент составит 35.8% от основной и дополнительной заработной платы:

     (руб.)

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

    Таблица 8 -- Расчет затрат на расходные материалы и комплектующие изделия

    № п/п

    Наименование материала

    Единица измерения

    Кол-во

    Цена за ед., руб.

    Всего сумма, руб.

    1

    Дискеты

    Шт.

    2

    10

    20

    2

    Бумага ф.A4

    П.

    1

    90

    90

    3

    Картридж для принтера

    Шт.

    1

    500

    500

    Всего:


    610

    Ктр = 0.04

    24

    Итого:


    634


    4. Накладные расходы. Состоят из расходов на производство, управление, техническое обслуживание и прочее. Мы стремимся минимизировать затраты, поэтому в данном случае накладные расходы составляют 60% от основной заработной платы:

     (руб.)

    6. Спецоборудование. Для данного проекта необходимо следующее оборудования:

    1. Рабочая станция на базе Pentium III – 2 шт.;

    2. Принтер – 1 шт.;

    Рассчитаем стоимость аренды данного оборудования:

    Таблица 9 – Расчёт затрат на аренду оборудования

    № п/п

    Наименование оборудования

    Кол-во, шт.

    Стоимость аренды, руб/мес

    Длительность аренды, мес

    Сумма всего, руб.

    1

    Рабочая станция

    1

    3750,00

    3

    11250,00

    2

    Рабочая станция

    1

    3750,00

    1

    3750,00

    3

    Принтер

    1

    1500,00

    3

    4500,00


    19500,00


    5. Аренда помещений. Расчет затрат, связанных с организацией рабочих мест для исполнителей проекта следует провести ориентируясь на требования СНИПа (санитарные нормы и правила) и на стоимость годичной аренды помещения требуемого уровня сервиса.

    В соответствии с санитарными нормами расстояние между рабочими столами с видеомониторами должно быть не менее 2 м, а между боковыми поверхностями видеомониторов - не менее 1,2 м.. Площадь на одно рабочее место с терминалом или ПК должна составлять не менее 6 кв.м., а объем - не менее 20 куб.м. Площадь, предусмотренная для размещения одного принтера, соответствует 0,5 площади рабочего места исполнителя. Расположение рабочих мест в подвальных помещениях не допускается. Помещения должны быть оборудованы системами отопления, кондиционирования воздуха или эффективной приточно-вытяжной вентиляцией.

    Таким образом, для размещения двух сотрудников и принтера необходимо помещение (комната) площадью 6+6+3=15 кв. м.

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

    (6.13),

    где Скв.м - стоимость аренды одного кв. метра площади за год; S - арендуемая площадь рабочего помещения. Тар - срок аренды (мес).


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

    Таблица 10 – Суммарные затраты

    № п/п

    Наименование статьи расхода

    Затраты, руб.

    1

    Основная заработная плата

    51571,42

    2

    Отчисления в фонды

    22155,08

    3

    Материалы, комплектующие изделия

    634,00

    4

    Накладные расходы

    30942,85

    5

    Специальное оборудование

    19500,00

    6

    Дополнительная заработная плата

    10314,28

    7

    Затраты на аренду помещения

    1964,29

    Суммарные затраты

    137081,92


    Рисунок 20 – Структура себестоимости проекта

    Выводы

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

    Общее значение трудозатрат для выполнения проекта составляет 64 чел/дня или 512 чел/часов. Затраты на разработку составляют 66811,42 рублей.

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

    6. Организационно-правое обеспечение информационной безопасности

    Дипломный проект относиться к некоторой форме интеллектуальной собственности (вид технического творчества), следовательно, охраняется законами РФ. Существуют два пути защиты интеллектуальной собственности:

    Защита интеллектуальной собственности, как государственной тайны

    Защита интеллектуальной собственности используя понятия авторского права и патентования

    ГОСУДАРСТВЕННАЯ ТАЙНА

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

    Защита государственной тайны проводиться в соответсвии с законом о государственной тайне, а наказание и меры ответственности в соответствии с законом «Ответственность за нарушение законодательства Российской Федерации о государственной тайне».

    Данная дипломная работа представляет разработку некоторого алгоритма, позволяющего анализировать свойства булевых функции. Булевы функции широко применяются в современной криптографии. Учитывая это, данная разработка может попасть под закон о “Государственной тайне”, как метод или средство анализа шифровальных средств. Или если говорить конкретно, то попадает в следующий перечень сведений, относящихся к государственной тайне:

    1.       сведения в военной области

    2.       сведения в области экономики, науки и техники

    3.       сведения в области внешней политики и экономики

    4.       сведения в области разведывательной, контрразведывательной и оперативно-розыскной деятельности:

    ·        …

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

    ·        ….

    Таким образом, если, например, на данную разработку будет наложен гриф секретности, то граждани нарушившие закон о государственной тайне попадают под статью 26 закона об «Ответственность за нарушение законодательства Российской Федерации о государственной тайне». В которой указано, что должностные лица и граждане, виновные в нарушении законодательства РФ о гостайне, несут уголовную, административную, гражданско-правовую или дисциплинарную ответственность в соответствии с действующим законодательством.

    Коммерческая тайна

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

    Перечень сведений, относящихся к коммерческой тайне, определяет само предприятие.

    Существует несколько основных методов защиты коммерческой тайны: патенты, авторское право.

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

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

    Авторские права на разработанное ПО

    Авторское право на программы для ЭВМ

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

    В нашей стране программные продукты стали отно­ситься к числу объектов интеллектуальной собственнос­ти с момента принятия в 1991 г. Основ граждан­ского законодательства Союза ССР и союзных республик. В полном объеме их юридическая защита была введена За­коном РФ от 23 сентября 1992 г. "О правовой охране программ для электронных вычислительных машин и баз данных" (далее — Закон о правовой охране программ для ЭВМ), который вступил в силу с 20 октября 1992 г. С этого момента в Российской Федерации охраняются как программы, соз­данные после этой даты, так и со­зданные ранее, но использование которых про­должается после ее наступления. Спустя год был принят Закон РФ от 9 июля 1993 г. "Об авторском праве и смежных пра­вах" (далее — Закон об авторском праве и смежных пра­вах), который применительно к программам для ЭВМ повторил ос­новные положения упомянутого закона, в некоторых случаях внеся определенные уточнения.

    К числу объектов авторского права присоединились программы для ЭВМ, под которыми понимается объек­тивная форма представления совокупности данных и ко­манд, предназначенных для функционирования ЭВМ и других компьютерных устройств для получения опреде­ленного результата (ст. 1 Закона о правовой охране про­грамм для ЭВМ, ст. 4 Закона об авторском праве и смежных правах). Данный термин включает также подго­товительные материалы, полученные в ходе разра­ботки программы и порождаемые ею аудиовизуальные отобра­жения.

    Россия присоединилась к двум международным дого­ворам, действие кото­рых распространяется на авторов и иных правообладателей программ для ЭВМ: Бернской конвенции об охране литературных и художественных про­изведений и Всемирной конвенции об авторском праве. Эти конвенции регулируют вопросы защиты програм­мных продуктов в странах, где по национальному законо­датель­ству они защищаются авторским правом. Согласно указанным конвенциям ино­странным гражданам госу­дарств — их участников гарантируется такой же объем прав, который признается за авторами — гражданами соответствующего государ­ства. В настоящее время Рос­сия готовится к вступлению во Всемирную торговую ор­ганизацию (ВТО), одним из условий членства в которой является соблюдение положений, содержащихся в Соглашении по торговым аспектам прав интеллекту­альной соб­ственности (ТРИПС). Это Соглашение обязывает участ­вующие в нем государства создать эффективные нацио­нальные механизмы охраны объектов ав­торского права.

    Авторское право распространяется на произведения нау­ки, литературы и ис­кусства, являющиеся результатом твор­ческой деятельности, независимо от назна­чения и досто­инства произведения, а также от способа его выражения [9]. Причем программы для ЭВМ и в России, и в других странах, охраняются как произведения литературы со всеми вытекающими отсюда правовыми последствиями. Тако­вы международные рекомендации, сформулированные, в частности, в Директиве Со­вета Европейского Сообщества о правовой охране программ для ЭВМ от 14 мая 1991 г.

    Правда, в настоящее время вносятся предложения об изменении российского законодательства, противореча­щие указанным рекомендациям и другим докумен­там меж­дународного права. Так, в опубликованном проекте тре­тьей части Граж­данского кодекса РФ в числе объектов интеллектуальной собственности про­граммы для ЭВМ указаны как самостоятельный объект, отдельно от про­изведений литературы. В случае принятия такого пред­ложения программные продукты рос­сийских правообладателей могут оказаться вне международно-правовой охраны.

    В действующем законодательстве (ст. 7 Закона об ав­торском праве и смеж­ных правах) записано, что объек­том авторского права являются "литературные произведе­ния (включая программы для ЭВМ)" [3]. Разумеется, ком­пьютерные про­граммы имеют мало общего с произведе­ниями литературы. Они лишь охраняются как литератур­ные произведения с помощью средств авторского права —одной из отраслей законодательства, связанных с вопросами интеллектуальной собственно­сти.

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

    Почему же для защиты программ для ЭВМ избраны средства авторского права? Это объясняется тем, что авторско-правовая охрана является более опера­тивной и дешевой по сравнению с охраной по нормам патентного законодательства (как это было бы в случае отнесения программ к изобретениям). Так, например, не возникает необходимости проведения экспертизы на новизну и дру­гих этапов дли­тельной процедуры патентования. Автор­ское право на произведение появляется в силу факта его создания (ст. 9 Закона об авторском праве и смежных правах). Не надо дожидаться обнародования произведе­ния, авторское право существует уже с того момента, когда автор придал ему объективную форму (ст. 6 упомя­нутого закона). Произведение считается выраженным в объективной форме и получает охрану, когда иные лица, кроме автора, могут с ним ознакомиться. При этом не­важно, может ли такая объективная форма восприни­маться непосредственно орга­нами чувств или с помощью технических средств.

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

    Автор программы для оповещения о своих правах может поместить знак ох­раны авторских прав (свое имя, латин­ская буква "с" в окружности и год первого опубликования) на оригинале произведения. Но даже если автор этого не сделал — не имеет значения. Нужно лишь, чтобы программа являлась результатом творче­ской дея­тельности, о чем, в частности, свидетельствует ее объек­тивная новизна. При этом творческий характер произве­дения презюмируется.

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

    У авторско-правовой охраны есть и ограничения — она распространяется прежде всего на форму произведений, но не на их содержание. Вот почему предос­тавляемая авторским правом защита не распространяется на идеи и принципы, лежащие в основе программы для ЭВМ или какого-либо их элемента и, в частно­сти, на идеи и прин­ципы организации интерфейса и алгоритма, а также языки программирования. В качестве объекта охраны признается не идея, заложенная в алгоритм, а лишь кон­кретная реализация этого алгоритма в виде символической записи конкретной последовательности операторов и действий над ними. По аналогичным соображениям не охраняются авторским правом идеи и принципы органи­зации интерфейса.

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

    Наиболее эффективным способом охраны названия программы для ЭВМ, ее символики, оригинального изо­бражения на упаковке является их регистрация в качест­ве товарного знака, которая будет препятствовать кому-либо другому использовать их в аналогичных целях. Под товарными знаками понимаются обозначения, способ­ные отличать товары одних юридических или физических лиц от однородных товаров других лиц (ст. 1 Закона РФ "О товарных знаках, знаках обслуживания и наименова­ниях мест происхождения товаров"). Их использование третьими лицами возможно лишь с согласия правообладателя.

    Сфера действия настоящего Закона:

    Авторское право на программу для ЭВМ и базы данных, впервые выпущенные в свет на территории Российской Федерации, либо не выпущенные в свет, но находящиеся на ее территории в какой-либо объективной форме, действует на территории Российской Федерации. Оно признается за автором, его наследниками или иными правопреемниками автора независимо от гражданства.

    Авторское право признается также за гражданами Российской Федерации, программа для ЭВМ и база данных которых выпущена в свет или находятся в какой-либо объективной форме на территории иностранного государства, или за их правопреемниками.

    За другими лицами авторское право на программу для ЭВМ или базу данных, впервые выпущенные в свет или находящиеся в какой-либо объективной форме на территории иностранного государства, признается в соответствии с международными договорами Российской Федерации.

    Права автора

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

    признаваться автором произведения;

    использовать или разрешать использовать произведение под подлинным именем автора, псевдонимом либо без обозначения имени, т. е. анонимно;

    обнародовать или разрешать обнародовать произведение в любой форме, включая право на отзыв;

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

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

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

    Срок действия авторского права:

    Авторское право действует с момента создания программы для ЭВМ или базы данных в течение всей жизни автора и 50 лет после его смерти, считая с 1 января года, следующего за годом смерти автора.

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

    Авторское право на программу для ЭВМ или базу данных, выпущенные анонимно или под псевдонимом, действует с момента их выпуска в свет в течение 50 лет. Если автор программы для ЭВМ или базы данных, выпущенных в свет анонимно или под псевдонимом, раскроет свою личность в течение указанного срока или принятый автором псевдоним не оставляет сомнений в его личности, то применяется срок охраны, предусмотренный пунктом 1 данной статьи.

    Право на регистрацию:

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

    2. Заявка на официальную регистрацию программы для ЭВМ или базы данных (далее - заявка на регистрацию) должна относиться к одной программе для ЭВМ или одной базе данных.

    Заявка на регистрацию должна содержать:

    заявление на официальную регистрацию программы для ЭВМ или базы данных с указанием правообладателя, а также автора, если он не отказался быть упомянутым в качестве такового, и их местонахождения (местожительства);

    депонируемые материалы, идентифицирующие программу для ЭВМ или базу данных, включая реферат;

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

    Правила оформления заявки на регистрацию определяет Агентство.

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

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

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

    5. Договор о полной уступке всех имущественных прав на зарегистрированную программу для ЭВМ или базу данных подлежит регистрации в Агентстве.

    Договоры о передаче имущественных прав на программу для ЭВМ или базу данных могут быть зарегистрированы в Агентстве по соглашению сторон.

    6. Сведения, внесенные в Реестр программ для ЭВМ или Реестр баз данных, считаются достоверными до тех пор, пока не доказано обратное.

    Ответственность за достоверность указанных сведений несет заявитель.

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

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

    Защита прав на программу для ЭВМ и базу данных:

    1. Автор программы для ЭВМ или базы данных и иные правообладатели вправе требовать:

    ·        признания прав;

    ·        восстановления положения, существовавшего до нарушения права, и прекращения действий, нарушающих право или создающих угрозу его нарушения;

    ·        возмещения причиненных убытков, в размер которых включается сумма доходов, неправомерно полученных нарушителем;

    ·        выплаты нарушителем компенсации в определяемой по усмотрению суда, арбитражного или третейского суда сумме от 5000-кратного до 50000-кратного установленного Законом размера минимальной месячной оплаты труда, в случаях нарушения с целью извлечения прибыли, вместо возмещения убытков;

    ·        помимо возмещения убытков или выплаты компенсации, по усмотрению суда или арбитражного суда может быть взыскан штраф в размере десяти процентов от суммы, присужденной судом или арбитражным судом в пользу истца, в доход республиканского бюджета Российской Федерации;

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

    2. За защитой своего права правообладатели могут обратиться в суд, арбитражный или третейский суд.

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

    Права работодателя

    Правовой режим служебных произведений по российскому законодательству (ст. 14 Закона об авторском праве и смежных правах) имеет некоторые отличия от ряда зарубежных стран. В США, например, весь объем авторских прав на программу для ЭВМ, созданную по заданию работодателя, принадлежит последнему. В России создатель произведения считается автором и сохраняет за собой личные неимущественные права. Правда, пользуясь правом на имя, он может разрешить использование своего произведения без указания имени. Во многих компаниях сложилась практика, согласно которой в заключаемых с работодателем контрактах автор-сотрудник данной компании отказывается от указания своего имени на программных продуктах, разработанных в порядке выполнения служебного задания. Однако и тогда, когда автор указывает свое имя, работодатель в любом случае при использовании служебного произведения вправе указывать его (работодателя) наименование.

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

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

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

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

    Однако из этого правила сделаны некоторые исключения. Без согласия автора и без выплаты авторского вознаграждения допускается воспроизведение произведения в личных целях (ст. 18 Закона об авторском праве и смежных правах). Это исключение сделано только для физических лиц — пользователей (но не юридических лиц).

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

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

    Права пользователя

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

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

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

    Под "декомпилированием программы для ЭВМ" по­нимается технический прием, включающий преобразова­ние объектного кода в исходный текст, в целях изучения структуры и кодирования программы для ЭВМ. Вопрос о декомпилиро­вании решен в законе следующим образом.

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

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

    указанные действия осуществляются в отношении только тех частей де­компилируемой программы для ЭВМ, которые необходимы для достижения способности к вза­имодействию;

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

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

    Выводы

    Таким образом, в соответствии существующим законодательством правами на разработанное ПО, автор программы (Казачков А. В.) имеет право:

    признаваться автором ПО;

    использовать или разрешать использовать ПО под подлинным именем ав­тора, псевдонимом либо без обозначения имени, т. е. анонимно;

    на защиту ПО, включая его название, от всякого искажения или иного пося­гательства, спо­собного нанести ущерб чести и достоинству автора.

    Кафедра «Информационная безопасность» МГТУ им Н. Э. Баумана, в соот­ветствии с заданием которой было разработано ПО имеет право:

    осуществлять или разрешать воспроизведение ПО в любой форме

    адаптировать, модифицировать и декомпилировать ПО.

    Особенности применения закона «О правовой охране программ для ЭВМ и баз данных»

    Настоящий Закон необходимо рассматривать в непосредственной взаимосвязи c Законом РФ "Об авторском праве и смежных правах" от 9 июля 1993 года, т.к. целый ряд норм этого закона непосредственно затрагивает вопросы правовой охраны программ для ЭВМ и баз данных.

    В соответствии со ст. 2 Закона РФ "Об авторском праве и смежных правах" Закон РФ "О правовой охране программ для ЭВМ и баз данных" входит в законодательство Российской Федерации об авторском праве и смежных правах..

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

    Возможно следующее соотношение норм этих двух законов:

    - в случае, когда положения Закона РФ "О правовой охране программ для ЭВМ и баз данных" изменены Законом РФ "Об авторском праве и смежных правах" и противоречат ему, применятся правило, установленное последним законом;

    - в случае, когда нормы Закона РФ "О правовой охране программ для ЭВМ и баз данных" не включены в Закон РФ "Об авторском праве и смежных правах" и не противоречат ему, положения, установленные Законом РФ "О правовой охране программ для ЭВМ и баз данных" продолжают действовать;

    - в случае, когда нормы введены Законом РФ "Об авторском праве и смежных правах", их действие распространяется и на объекты, которым предоставляется правовая охрана Законом РФ "О правовой охране программ для ЭВМ и баз данных", т.е. на программы для ЭВМ и базы данных.

    Использование разработанного ПО и Российское законодательство в области средств защиты информации

    В соответствии с Указом № 334 Президента Российской Федерации от 3 апреля 1995 года "О мерах по соблюдению законности в области разработки, производства, реализации и эксплуатации шифровальных средств, а также предоставления услуг в области шифрования информации", любая деятельность по разработке и производству шифровальных средств подлежит обязательному лицензированию в ФАПСИ. В интересах информационной безопасности Российской Федерации и усиления борьбы с организованной преступностью запретить деятельность юридических и физических лиц, связанную с разработкой, производством, реализацией и эксплуатацией шифровальных средств, а также защищенных технических средств хранения, обработки и передачи информации, предоставлением услуг в области шифрования информации, без лицензий, выданных Федеральным агентством правительственной связи и информации при Президенте Российской Федерации в соответствии с Законом Российской Федерации "О федеральных органах правительственной связи и информации."

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

    Порядок лицензирования отражен в Положении о государственном лицензировании деятельности в области защиты информации от 27 апреля 1994 г.

    Для получения лицензии требуется предоставить:

    заявление;

    представление органа государственной власти Российской Федерации;

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

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

    Отказ в выдаче лицензии может быть произведен, если:

    отсутствуют необходимые условия для проведения работ по заявленному виду деятельности;

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

    в представленных для получения лицензии документах указаны недостоверные сведения;

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

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

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

    Кроме того, весьма вероятно, что подобное положение наносит как политический, так и экономический ущерб РФ, причем как на внутреннем, так и на международном рынке.

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

    Заключение

    Итак, дипломная работа – это вид технического творчества. Её правовая защита возможна с использованием законов РФ. Согласно конституции Российской Федерации возможны следующие пути защиты:

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

    Защита данной работы используя механизмы авторского права. Как пояснительная записка, так и вспомогательное ПО, могут быть отнесены к форме интеллектуальной собственности, в следствие этого, их правовая защита может основываться на законе об “Об авторском праве и смежных правах ”.

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

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

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

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

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

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


    Литература

    Сумароков С.Н. Запреты двоичных функций. Обозрение прикладной и промышленной математики, т.1, вып.1, с.33-55

    Жуков А.Е., Чистяков В.П. Матричный подход к исследованию прообразов выходной последовательности конечного автомата. Обозрение прикладной и промышленной математики, т.1, вып.1, с.108-117

    Михайлов В.Г. Ассимптотическая нормальность логарифма числа прообразов выходной последовательности конечного автомата. Обозрение прикладной и промышленной математики т.1, вып.1, с.126-135

    Huffman D. A. Canonical forms for informations-lossless finitestate logical machines. – IRE Trans. Circuit Theory, 1959, v. 6, spec. Suppl., p. 41-59.

    X. Lai and J. L. Messey. “Some Connections between Scramblers and Invertible Automata” Proc. 1988 Beijing Int. Workshop on Info. Theory. Beijing, China, July 4-7, 1988, pp. DI-5.1 – DI-5.5.

    А. Гилл Введение в теорию конечных автоматов. Издательство «Наука», главная редакция физико-математической литературы Москва 1966 г.

    Варфоломеев А.А., Жуков А.Е., Пудовкина М.А. Поточные криптосистемы. Основные свойства и методы анализа стойкости. М: ПАИМС, 2000

    Практикум по организации и планированию машиностроительного производства: Учебное пособие для машиностроительных специальностей Вузов / Грачева К.А., Некрасов Л.А., Ипатов М.И. и др. Под ред. Скворцова Ю.В. и Некрасова Л.А.. – М.: Высшая школа, 1990.

    Закона об авторском праве и смежных правах

    Программы для ЭВМ: правовая охрана / Л.С.Симкин – М.: издательство "Городец", 1998.

    Указ № 334 Президента Российской Федерации от 3 апреля 1995 года.

    Организационно-экономическая часть дипломных проектов, направленных на разработку программного обеспечения. Учебное пособие / М. Ф. Меняев

    ZongDuo Dai, Ding Feng Ye and Kwok Yan Lam. “Weak Invertibility of Finite Automata and Cryptanalysis on FAPKC”. ASIACRYPT’98, LNCS 1514, pp. 227-241, 1998.

    Трельсен Э. Модель COM и применение ATL 3.0, Пер. с англ. – СПб.: БХВ-Петербург, 2001. – 928 с.

    Schneier В. Applied Cryptogrdphy, John Wiley & Sons. 1995

    Rueppel R.A. Analysis and Design of Stream Ciphers. Springer-Veilag. 1986.

    Tao R.C. and Chen S.H., A Finite Automaton Public Key Cryptosystem and Digital Signatures, Chinese J. of Computer, 1985(8), pp.401-409.

    Tao R.J. and Chen S.H., Two Varieties of Finite Automaton Public Key Cryptosystem and Digital Signatures, J. of Compt. Sci. and Tech., 1986(1), No.1, pp.9-18.

    Tao R.J. and Chen S.H. and Chen X.M., FAPKC3: a new finite automaton public key cryptosystem, Laboratory for Computer Science, Institute of Software, Chinese Academy of Sciences, Beijing 100080, China, June, 1995. ISCAS–LCS–95–07.

    Приложения

    Приложения

    1.1.   Приложение 1. Оценка быстродействия генерируемого машинного кода.

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

    1. Код на C++

    #define STRICT

    #define WIN32_LEAN_AND_MEAN

    #include <windows.h>

    #include <stdio.h>

    #include <stdlib.h>

    #include <tchar.h>


    const long c_nCount=10000000L;


    __inline int BinLog(long tValue)

    {

             if(!tValue)

                       return -1;

             for( int i=0; i < sizeof(long)*8 ; ++i)

             {

                       long x=tValue >> i;

                       if((x & 1)==1 && x!=1)

                                return -1;

                       if(x==1)

                                return i;

             };

             return -1;

    };


    int _tmain(int argc, _TCHAR* argv[])

    {

             _tprintf(_T("Making %d iterations took "), c_nCount);

             int t1=GetTickCount();  

            

             long x=0, y=0;

             for(int i=1; i <= c_nCount; ++i)

             {

                       x=((x+1) ^ 0xAFE65903) << 24;

                       y+=BinLog(i);

             };

            

             int t2=GetTickCount();

             int dt=t2-t1;

             _tprintf(_T("%lf s (%lf ms per iteration)\n"), double(dt)/1000.0, double(dt)/double(c_nCount));

             _tprintf(_T("%d\n"), x);

             _gettchar(); 

    }


    2. Код на Delphi

    program Project1;


    {$APPTYPE CONSOLE}


    uses

      SysUtils, windows;


    function BinLog(value:Cardinal) : Integer;

    var i:Integer;

    var x:Cardinal;

    begin

            if(value = 0) then

            begin

                    BinLog:=-1;

                    exit;

            end;

            For i:=0 To 31 do

            begin

                    x:=value shr i;

                    if((x<>1) and ((x and 1) = 1)) then

                    begin

                            BinLog:=-1;

                            exit;

                    end;

                    if(x=1) then

                    begin

                            BinLog:=1;

                            exit;

                    end;

            end;

            BinLog:=-1;

    end;



    procedure main;

       const c_nCount: Integer = 10000000;

       var x, y, dt, i:Integer;

       var t1, t2: Cardinal;

    begin

            write('Making ', c_nCount, ' iterations took ');

            x:=0;

            y:=0;

            t1:=GetTickCount();

            for i:=1 to c_nCount do

            begin

                    y:=y+BinLog(i);

                    y:=((y+1) xor $AFE65903) shl 24;

            end;

            t2:=GetTickCount();

            dt := t2-t1;

            writeln(dt/1000.0, ' s ', dt/c_nCount, ' ms per iteration');

            writeln(x);

    end;



    begin

            main;

            readln;

    end.


    Код на C#

    using System;


    namespace ConsoleApplication1

    {

             /// <summary>

             /// Summary description for Class1.

             /// </summary>

             class Class1

             {

                       unsafe static int BinLog(long tValue)

                       {

                                if(tValue == 0)

                                          return -1;

                                for( int i=0; i < sizeof(long)*8 ; ++i)

                                {

                                          long x=tValue >> i;

                                          if((x & 1)==1 && x!=1)

                                                   return -1;

                                          if(x==1)

                                                   return i;

                                };

                                return -1;

                       }


                       /// <summary>

                       /// The main entry point for the application.

                       /// </summary>

                       [STAThread]

                       static void Main(string[] args)

                       {                         

                                const int c_nCount=10000000;


                                System.Console.Write("Making ");

                                System.Console.Write(c_nCount);

                                System.Console.Write(" iterations took ");


                                int t1=Environment.TickCount;


                                long x=0, y=0;

                                for(int i=1; i <= c_nCount; ++i)

                                {

                                          x=((x+1) ^ 0xAFE65903) << 24;

                                          y+=BinLog(i);

                                };

                                int t2=Environment.TickCount;

                                int dt=t2-t1;

                                System.Console.Write(((double)dt)/1000.0);

                                System.Console.Write(" s (");

                                System.Console.Write(((double)dt)/c_nCount);

                                System.Console.WriteLine(" ms per iteration)");

                                System.Console.ReadLine();

                                System.Console.WriteLine(x);

                       }

             }

    }


    Были получены следующие результаты

    Среда разработки

    Среднее время выполнения теста в секундах

    Microsoft Visual C++

    0.7

    Borland Delphi

    1.5

    Microsoft Visual C#

    2.2


    Наибольшую скорость имеет код, написанный на C++ и скомпилированный с помощью Microsoft Visual C++.

    Приложение 2. Руководство пользователя

    1.1.1. Введение

    Программа «Delay» предназначена для построения конечных автоматов, обратных (с задержкой) к заданному НФВП, а также для вычисления максимальной задержки обратимости для заданного НФВП. Кроме того, программа позволяет осуществлять моделирование работы НФВП и обратного ему автомата.

    1.1.2. Требования к системе

    Для работы ПО требуется одна из перечисленных ниже операционных систем:

    ·   Microsoftв Windows 98™,

    ·   Microsoftв Windows Me™,

    ·   Microsoftв Windows NT 4.0™,

    ·   Microsoftв Windows 2000™,

    ·   Microsoftв Windows XP™.

    Кроме того, необходим процессор не ниже Intel Pentium II 233 Мгц и не менее 64 Мб оперативной памяти (при работе под Windows 2000/XP не менее 128 Мб).

    1.1.3. Работа с программой

    В программе реализован так называемый «многооконный пользовательский интерфейс» – программа имеет несколько равноправных окон верхнего уровня – такой интерфейс наиболее близко соответствует функциональности данного ПО.

    1.1.3.1. Главное окно приложения

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

    Главное окно предоставляет пользовательский интерфейс для вычисления задержки данного НФВП и построения обратного автомата.

     

    Рисунок 21 – Ввод данных

    Первое окно мастера предназначено для ввода данных. Окно содержит следующие элементы управления:

    1. редактируемое поле, предназначенное для ввода пользователем вектора значений выходной функции НФВП, пользователь может ввести сюда строку, состоящую из символов «0» и «1», ввод прочих символов блокируется;

    2. текстовое поле, отображающий количество аргументов функции, вектор значений которой содержится в поле 1, количество аргументов вычисляется автоматически, при изменении поля 1, исходя из длины введённого вектора значений функции; данное поле предназначено для контроля правильности ввода пользователем вектора значений функции: если длина вектора не равна степени двойки, то в данном поле появится описание ошибки, а кнопка «Далее» станет недоступной; причём сумма числа аргументов функции и удвоенного значения верхней границы диапазона поиска задержки (4) не должна превышать 64;

    3. переключатель, определяющий порядок нумерации аргументов для вектора значений функции, нумерация может иметь порядок xn‑1,xn‑2,…,x1,x0 или x0,x1,…,xn‑2,xn‑1;

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

    5. кнопка «Далее», предназначенная для перехода к следующему окну мастера.


    При нажатии на кнопку «Далее» осуществляется переход ко второму окну мастера. Второе окно мастера предназначено для отображения хода расчётов, а также для отображения результатов расчётов.

    Рисунок 22 – Отображение хода расчётов

    Окно содержит следующие элементы управления:

    1. прогресс-индикатор, отображающий ход расчётов;

    2. Текстовое поле, содержащее информацию о проценте выполнения расчётов и о приблизительном оставшемся времени расчёта;

    3. Кнопка «Назад» - путём нажатия на данную кнопку, пользователь может прервать вычисления и вернуться к вводу данных.


    После завершения расчётов в окне отображаются следующие элементы управления:

    Рисунок 23 – Результаты расчёта

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

    2. кнопка «Отчёт», при нажатии на эту кнопку отображается окно с полной информацией о результатах расчётов.

    1.1.3.2. Результаты выполнения расчётов

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

    Рисунок 24 – Окно отчёта

    Окно отчёта (см. рисунок выше) содержит следующие элементы управления: главное меню (1), инструментальную панель (2), область просмотра (3) и строку состояния (4).

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






    Таблица 11

    Пункт главного меню

    Команда

    Изображение

    Описание

    Файл

    Сохранить как…

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

    Новое окно


    Открывает ещё одно окно отчёта.

    Параметры страницы…


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

    Просмотр…

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

    Печать…

    При выборе данной команды выдаётся диалоговое окно, в котором пользователь может изменить настройки печати (выбрать и настроить принтер), а затем начать или отменить печать.

    Выход


    Закрытие окна отчёта.

    Правка

    Копировать

    Копирует выделенный фрагмент в буфер обмена.

    Вид

    Инструментальная панель


    Включает или выключает режим отображения инструментальной панели.

    Строка состояния


    Включает или выключает режим отображения строки состояния.

    Справка

    О программе…

    При выборе данной команды выдаётся с краткой информацией о программе, её версии и авторских правах.


    В случае успешного выполнения расчётов, в отчёт выдаётся следующая информация:

    1. Общая длительность вычислений, в мс

    2. Вычисленное значение задержки

    3. Обобщённая схема класса обратных автоматов.

    4. Вектор значений функции γ класса обратных автоматов. Вектор содержит символы «0», «1» и «?» (не полностью определённая функция).

    5. Исходные данные

    §  схема исходного НФВП;

    §  функция выхода НФВП;

    §  начальное значение задержки.


    Если вычислить задержку не удалось, то в отчёт выводится пара векторов , не прошедшая тест Месси (2.5.2.2).

    1.1.3.3. Окно моделирования работы НФВП

    Программа позволяет осуществлять моделирование работы НФВП. Доступ к диалоговому окну моделирования работы НФВП осуществляется через системное меню любого из окон верхнего уровня программы.

    Рисунок 25 - Окно моделирования работы НФВП

    Диалоговое окно моделирования работы НФВП содержит четыре редактируемых поля (пользователь может ввести них только строки, состоящие из символов «0» и «1», ввод прочих символов блокируется):

    1. редактируемое поле, предназначенное для ввода пользователем вектора значений выходной функции НФВП;

    2. редактируемое поле, предназначенное для ввода пользователем начального состояния регистра НФВП;

    3. редактируемое поле, предназначенное для ввода пользователем входной последовательности, самый левый символ является первым символом последовательности;

    4. поле, содержащее выходную последовательность НФВП, данное поля заново заполняется программой при каждом изменении любого из всех прочих полей, причём пользователь имеет возможность скопировать содержимое данного поля в буфер обмена Windows; если содержимое прочих полей противоречиво (например, вектор значений выходной функции НФВП имеет длину не равную степени двойки или начальное состояние имеет количество разрядов не равное количеству аргументов выходной функции НФВП минус один), данное поле содержит сообщение об ошибке.


    1.1.3.4. Окно моделирования работы обратного автомата

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

    Рисунок 26 – Окно моделирования работы обратного автомата

    Как и окно моделирования НФВП, данное диалоговое окно содержит четыре редактируемых поля:

    1. редактируемое поле, предназначенное для ввода функции γ обратного автомата, так как эта функция, вообще говоря, определена не полностью (программа строит класс обратных автоматов), пользователь может вводить сюда строки, состоящие из символов «1», «0» и «?».

    2. данное редактируемое поле содержит начальное состояние НФВП, соответствующего данному обратному автомату, допустимы символы «0» и «1»;

    3. редактируемое поле, содержащее выходную последовательность НФВП, для обратного автомата эта последовательность является входной; тоже допустимы только символы «0» и «1»;

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



Если Вас интересует помощь в НАПИСАНИИ ИМЕННО ВАШЕЙ РАБОТЫ, по индивидуальным требованиям - возможно заказать помощь в разработке по представленной теме - Защита информации2 ... либо схожей. На наши услуги уже будут распространяться бесплатные доработки и сопровождение до защиты в ВУЗе. И само собой разумеется, ваша работа в обязательном порядке будет проверятся на плагиат и гарантированно раннее не публиковаться. Для заказа или оценки стоимости индивидуальной работы пройдите по ссылке и оформите бланк заказа.