Автореферат по теме магистерской работы

Магистр ДонНТУ Морозов Дмитрий Сергеевич

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

Научный руководитель: доцент кафедры компьютерной инженерии, кандидат технических наук Теплинский Сергей Васильевич



Введение

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

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

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

Для предотвращения таких ситуаций и повышения производительности труда работников и коллектива в целом, я в сотрудничестве с ИТЦ Сименс Украина разрабатываю систему моделирования схем производства и совместной работы с документами.

Основными целями проекта являются:

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

По большому счету, разрабатываемая система является ERP-системой, так как она предназначена для автоматизации учета и управления. [1] Поиск существующих аналогичных решений не внушает оптимизма: с одной стороны, на рынке присутствуют минимум 5 вендоров профессиональных ERP-систем: SAP, Oracle Applications, The Sage Group, Microsoft Dynamics, SSA Global Technologies. [2] Однако ИТЦ не нуждается в таком большом спектре программ, входящих в пакеты предложений этих корпораций, причем, такое ПО имеет довольно широкую область применения. С другой стороны, одиночные пакеты, подходящие по ряду критериев для проекта: Microsoft Office, Microsoft SharePoint, Microsoft Visio и аналоги других производителей, не походят для целостного применения в рамках одной проектной разработки и встречают сложности для разъяснения тонкостей работы программ для обычного инженера.

Таким образом, актуальность данной темы налицо — именно в такой системе нуждается ИТЦ Сименс Украина. Насчет новизны решения определенно сказать невозможно: дорогих общеплановых ERP-систем достаточно много, но они покрывают слишком широкий спектр вопросов, решение которых в данном проекте не требуется; функционала более дешевых (а иногда и бесплатных) пакетов, даже нескольких вместе, не хватает для решения узкоспециализированных вопросов.

Далее я раскрою несколько важных моментов своей работы.

Структура проекта

Структура проекта изображена в анимации 1.


Структура проекта

Анимация 1. Структура проекта. 7 кадров по 1 секунде, 25 кБ


Проект состоит из главного модуля, написанного на ASP.NET 4 (это единая платформа для Web разработки, которая включает сервисы, необходимые для построения Web приложений корпоративного класса с минимальным написанием кода [3]), включающий реализацию безопасности приложения, навигации, мастер-страницы и т.д. (об этом подробнее будет рассказано ниже); а также трех приложений, реализующих свою часть функционала, необходимого для нужд проекта. Главный модуль (или «хаб» трех сопутствующих приложений) через ADO.NET запрашивает данные из БД Microsoft SQL Server. ADO.NET — это технология, позволяющая получить доступ к источникам данных, таких как Microsoft SQL Server [4]. Далее я расскажу о каждом компоненте системы подобнее.


«Хаб» приложений

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

Важнейшей функцией, реализуемой ядром, является безопасность. Безопасность — важнейшая часть Web-приложения, и она должна приниматься во внимание с первой стадии процесса разработки. По сути, безопасность — это всё, что касается защиты… И для ее обеспечения используется несколько механизмов, включая идентификацию пользователей, выдачу или отъем прав доступа к важным ресурсам, а также защиту информации, хранящейся на сервере и передающейся по проводам.

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

С появлением версии ASP.NET 2.0 инфраструктура безопасности была существенно расширена за счет высокоуровневой модели управления пользователями и ролями, воплощённой как программно, так и встроенными инструментами администрирования.[5]

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

В основном для большей части Web-приложений основные задачи для реализации защиты всегда одни и те же.

  • Аутентификация.
  • Авторизация.
  • Конфиденциальность.
  • Целостность.

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

  • Шифрование всего трафика приложения с помощью SSL (SSL — это протокол безопасности, используемый Web-обозревателями для безопасного подключения к Web-серверам [6])
  • Шифрование записей в базах данных.
  • Перемешивание символов в строке адреса браузера.

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

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


Приложение для рисования схем

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

Первым делом передо мной стала задача выбора технологии, на которой я буду основывать свой движок для рисования. Прочтя [7], моей первой мыслью было использовать плагин Microsoft Silverlight. В поддержку этого варианта есть множество существенных доводов:

  1. Позволяет использовать мультимедийный контент и высокую интерактивность.
  2. Silverlight построен на .NET Framework, что влечет за собой все плюсы использования этого каркаса.
  3. Silverlight идеально вписывается в инфраструктуру ASP.NET.[8]

Единственным недостатком такого решения было отсутствие возможности доступа к интерфейсам ADO.NET, которые позволяют работать с базами данных через уровни соединения или запросов. К счастью, на момент начала проектирования данного приложения Microsoft озвучила планы относительно Silverlight 4, одной из новых функций которой стала использование WCF RIA Services, который упрощает традиционные многоуровневые приложения [9]. Имея на вооружении эту технологию, можно при помощи WCF «подружить» ADO.NET и Silverlight. Также одним из новшеств этой версии стали поддержка технологии drag-n-drop, обработка щелчка правой кнопки мыши, прямые сокетные подключения и работа вне браузера. [10] Поэтому я начал проектирование приложения для рисования схем именно на Silverlight 4.

Функции, предусмотренные в приложении для рисования схем:

  • Создание схем перетаскиванием на холст примитивов, рисованием стрелок различной формы, цвета и толщины.
  • Редактирование схемы путем операций с буфером обмена над элементами.
  • Группировка элементов схемы.
  • Перетаскивание элементов и групп элементов внутри холста.
  • Задание размера исходного контейнера в пикселях и миллиметрах с пересчётом в реальные физические размеры.
  • Изменение масштаба отдельных элементов и всей схемы в целом.
  • Полноэкранные режимы редактирования и предварительного просмотра.
  • Экспорт схемы в графические файлы и XML-структуры.
  • Печать схемы.
  • Поддержка логики “Undo” — “Redo” (как показано в [11]).

Приложение для совместной обработки документов

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

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

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

Приложение состоит из нескольких частей:

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

Функционал, предоставляемый данным приложением, включает в себя:

  • Выгрузку документов в текущий каталог проекта (при наличии соответствующих прав).
  • Редактирование, копирование, удаление, перемещение файлов.
  • Экспорт списка файлов в Microsoft Excel.
  • Поиск файлов проекта по множеству категорий поиска.

Также рассматривается возможность интеграции приложения с Microsoft SharePoint.


Слайд шоу

Данное приложение носит характер дополнения к двум основным — созданию схем и обработке документов. Здесь будет возможность просмотра фотогалереи завода, цеха или предприятия в целом для визуальной оценки определенных параметров. Несмотря на то, что приложение имеет дело в мультимедийным контентом, было принято решение о написании его кода на ASP.NET. На данный момент приложение может пролистывать фотографии из выбранной директории (в зависимости от прав доступа к директориям) с показом превью следующих и предыдущих фото галереи снизу. Функционал приложения также позволяет сохранять изображения на локальный диск пользователя и добавлять новые изображения в галерею.

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


Проект базы данных

Неотъемлемой частью веб-приложения, необходимого ИТЦ Сименс Украина, является централизованный репозитарий хранения записей об учетных записях сотрудников центра, данные их профилей, ролей, а также таблиц записей, соответствующих определенным проектам, разрабатываемых и спроектированных в стенах ИТЦ. Это именно то место, откуда мое приложение будет получать данные через механизмы ADO.NET. Сама база данных написана специалистами ИТЦ с использованием Microsoft SQL Server и была предоставлена мне в начале моего присоединения к проекту.

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


Заключение

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


Литература

  1. ERP [Электронный ресурс] - Режим доступа: http://ru.wikipedia.org/wiki/ERP
  2. List of ERP vendors [Электронный ресурс] - Режим доступа: http://en.wikipedia.org/wiki/List_of_ERP_vendors
  3. ASP.NET Overview [Электронный ресурс] - Режим доступа: http://msdn.microsoft.com/en-us/library/4w3ex9c2.aspx
  4. Overview of ADO.NET [Электронный ресурс] - Режим доступа: http://msdn.microsoft.com/en-us/library/h43ks021(VS.71).aspx
  5. Мак-Дональд, Мэтью, Шпушта, Марио. Microsoft ASP.NET 3.5 с примерами на C# 2008 и Silverlight 2 для профессионалов, 3-е изд.: Пер. с англ. - М.: ООО "И.Д.Вильямс", 2009. - 1408 с.: ил. - Парал. тит. англ.
  6. Фергюсон, Нильс, Шнайер, Брюс. Практическая криптография.: Пер. с анг. - М.: Издательский дом "Вильямс", 2005. - 424 с.: ил. - Парал. тит. англ. [c. 394]
  7. Может ли Silverlight быть основой для построения Enterprise Web UI? [Электронный ресурс] / Яков Галкин - Режим доступа: http://www.gotdotnet.ru/blogs/fulcrumweb/6629/
  8. Silverlight Architecture [Электронный ресурс] - Режим доступа: http://msdn.microsoft.com/en-us/library/bb404713(VS.95).aspx
  9. WCF RIA Services [Электронный ресурс] - Режим доступа: http://www.silverlight.net/getstarted/riaservices/
  10. Microsoft Silverlight [Электронный ресурс] - Режим доступа: http://en.wikipedia.org/wiki/Silverlight#Silverlight_4
  11. New CodePlex project: a simple Undo/Redo framework [Электронный ресурс] / Kirill Osenkov - Режим доступа: http://blogs.msdn.com/b/kirillosenkov/archive/2009/06/29/new-codeplex-project-a-simple-undo-redo-framework.aspx