Программная система сканирования и трехмерного моделирования локальной сети на базе unity 3d

Автор работы: Пользователь скрыл имя, 29 Августа 2013 в 18:25, дипломная работа

Краткое описание

Разработка системы построения топологии сети и ее диагностики, а также кроссплатформенную реализацию приложения потребовала изучения и применения нижеприведенных информационных технологий.
К настоящему моменту наиболее популярными объектно-ориентированными языками программирования являются C#, Java, C++ и Objective-C. Учитывая преимущества и недостатки каждого из них, был сделан выбор в пользу языка C# и платформы Microsoft .NET Framework.

Прикрепленные файлы: 1 файл

диплом_глава_1.docx

— 32.50 Кб (Скачать документ)
  1. ОБЗОР ЛИТЕРАТУРЫ

 

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

К настоящему моменту наиболее популярными  объектно-ориентированными  языками  программирования являются C#, Java, C++ и Objective-C. Учитывая преимущества и недостатки каждого из них, был сделан выбор в пользу языка C# и платформы Microsoft .NET Framework.

Microsoft .NET Framework – программная технология, предназначенная для создания  как обычных программ, так и  веб-приложений. Фактически представляет  собой операционную систему внутри  операционной системы, высокопроизводительную, основанную на стандартах, многоязыковую  среду, которая позволяет интегрировать  существующие приложения с приложениями  и сервисами следующего поколения,  а также решать задачи развертывания  и использования интернет-приложений. .NET Framework состоит из трех основных  частей - общеязыковой среды выполнения (common language runtime), иерархического множества  унифицированных библиотек классов  и компонентную версию ASP, называемую ASP.NET.. Основой платформы является виртуальная машина Common Language Runtime (CLR), способная выполнять как обычные настольные программы, так и веб-приложения.  Одной из основных идей Microsoft .NET является совместимость различных служб, написанных на разных языках. Например, служба, написанная на C++ для Microsoft .NET, может обратиться к методу класса из библиотеки, написанной на Delphi; на C# можно написать класс, наследованный от класса, написанного на Visual Basic .NET, а исключение, созданное методом, написанным на C#, может быть перехвачено и обработано в Delphi. Каждая библиотека (сборка) в .NET имеет сведения о своей версии, что позволяет устранить возможные конфликты между разными версиями сборок. Так же как и технология Java, среда разработки .NET создаёт байт-код, предназначенный для исполнения виртуальной машиной. Входной язык этой машины в .NET называется MSIL (Microsoft Intermediate Language), или CIL (Common Intermediate Language, более поздний вариант), или просто IL. Применение байт-кода позволяет получить кроссплатформенность на уровне скомпилированного проекта (в терминах .NET – сборка), а не только на уровне исходного текста, как, например, в С. Перед запуском сборки в среде исполнения CLR, байт-код преобразуется встроенным в среду JIT-компилятором («just in time» – компиляция на лету, англ.) в машинные коды целевого процессора. Также существует возможность скомпилировать сборку в родной код для выбранной платформы.

Описание базовых принципов  функционирования платформы .NET, системы  типов .NET и различных инструментальных средств разработки, используемых при  создании приложений, базовые возможности  языка программирования С#, включая  новые синтаксические конструкции, появившиеся с выходом .NET 4.0, а также синтаксис и семантика языка CIL подробно описаны в [1]. Также там рассматривается формат сборок .NET, библиотеки базовых классов .NET файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET. Там описаны основные объекты модели ADO.NET и рассказано как сохранять, искать, фильтровать и сортировать данные с использованием этих объектов. Книга была очень полезна, так как организована как справочное пособие и позволяет быстро найти ответы на интересующие вопросы. Здесь рассматриваются как подсоединенные, так и отсоединенные объекты, в том числе DataAdapter.DataSet, Connection, Command, Transaction, DataReader и др. Отдельный раздел книги посвящен созданию эффективных Windows- и Web-приложений для доступа к БД с использованием ADO.NET.

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

Более детальная информация с рекомендациями по использованию конкретных классов  приведена в [2]. В ней рассматривается подробное описание внутреннего устройства и функционирования общеязыковой исполняющей среды (CLR) Microsoft .NET Framework версии 2.0, система типов .NET Framework и разъяснены способы управления ими. Представлены концепции программирования с широким использованием библиотеки FCI, относящиеся ко всем языкам, ориентированным на работу с .NET Framework. Особое внимание уделено обобщениям, управлению асинхронными операциями и синхронизации потоков.

В процессе написания любого программного продукта приходится неоднократно сталкиваться с вопросами использования тех  или иных функций. В этом случае незаменима электронная документация к .NET Framework [3], предлагаемая разработчиками компании Microsoft и входящая в пакет Visual Studio. Здесь приведены сведения об использовании классов системных библиотек и поведении конкретных методов.

Наравне с документацией [3], использовалась спецификация языка программирования C# [4], которая по праву считается первоисточником для изучения языка С# и платформы .NET Framework.

Так как для разрабатываемого программного обеспечения важна кроссплатформенность, мой выбор остановился на платформе  Mono. Это проект по созданию полноценного воплощения системы .Net на базе свободного программного обеспечения. За подробным описанием проекта можно обратится на официальный сайт [5]. В основе проекта лежат спецификации на С# и CLI, переданные Microsoft в организации по стандартизации.  Плюс его в том, что почти вся документация и литература, написанная под .Net Framework, прекрасно подходит для изучения этой платформы, в этом можно удостоверится здесь [6].  Проект Mono разрабатывается довольно долгое время — с 2001 года, но до сих пор окончательно не ясен правовой статус этого программного продукта. В 2003 г. корпорация Microsoft получила патент США 20030028685, фактически охватывающий весь каркас .NET Framework. И с тех пор ситуация с патентами на С# и CLI остается неоднозначной. Эта причина сдерживает широкое и повсеместное использование платформы. Но в последнее время она обретает популярность и все больше разработчиков свободного программного обеспечения выбирают именно эту платформу. В [6] можно прочитать о том, что вместо использования виртуальной машины, среда исполнения может быть интегрирована в приложение с целью создания встраиваемой системы, не требующей установки Mono для запуска и обладающей высоким быстродействием. При этом, в приложение включаются только необходимые компоненты среды исполнения. В документации [7] к Mono Touch (платформа для iOs), описана реализация Ahead-Of-Time (AOT) компилятора промежуточного языка. Цель этого компилятора в том, чтобы уменьшить время запуска программы и оптимизировать ее код, путем компиляции промежуточного языка CLI в машинный код. Аналогом в Microsoft .NET Framework является утилита Ngen. Этот метод компиляции будет использован мною для сборки проекта для операционной системы iOs.

Для визуализации топологии сети было рассмотрено множество конкурирующих  между собой 3D движков. Но мой выбор был сделан в пользу Unity3D. В [8] подробно описаны возможности данного продукта. Среди факторов, повлиявших на мой выбор, была поддержка сети, кроссплатформенность, быстрая работа на мобильных устройствах, возможность использования C# и Mono библиотек, а также удобство работы в редакторе сцен.

Также я обратил внимание на информацию из [8], в которой говорится о языках программирования, которые использует Unity3D. Платформа  поддерживает три языка скриптования: JavaScript, C# и диалект Python'а под названием Boo. Все три одинаково быстры и взаимно совместимы. Все три могут использовать лежащие в основе .NET библиотеки, которые поддерживают базы данных, регулярные выражения, XML, доступ к файлам и работу с сетью.  О скриптах часто думают, как о чем то ограниченном и медленном. А в Unity скрипты компилируются в машинный код и работают почти так же быстро, как C++. И в итоге мы получаем быстрое время интеграции и простоту использования.

Современные мобильные устройства предоставляют пользователю совершенно разные способы ввода данных и  методы управления: некоторые из них  имеют собственную клавиатуру, некоторые  – небольшое количество управляющих  клавиш и сенсорный экран, взаимодействие с которым происходит при помощи стилуса. Но самые современные представители  дают пользователю возможность управлять  мобильным устройством посредством  сенсорного экрана без использования  клавиш либо стилуса – этот способ управления позволяет пользователю быстро и легко производить достаточно сложные операции. Так же, у многих мобильных устройств имеются  встроенные фотокамеры, которые позволяют  получать достаточно четкие и насыщенные изображения. Именно поэтому, для реализации клиентской части системы поиска изображений по содержимому была выбрана платформа iOS. Источник [9] позволил ознакомиться с основными возможностями мобильного устройства iPhone/iPad.

В iPhone используется multi-touch дисплей, что означает поддержку одновременно нескольких нажатий. Например, для того, чтобы увеличить или уменьшить  фотографию, веб-сайт, карту местности  или что-то еще, достаточно положить два пальца на дисплей, после чего приблизить или удалить их. В iPhone внедрены революционные технологии, что обеспечивает очень большую  точность нажатия. Кроме этого, при  печати текста на виртуальной клавиатуре происходит автоматическая коррекция  ошибок-промахов, которые могут случаться  довольно часто из-того, что палец  покрывает сразу несколько виртуальных  кнопок. Данное мобильное устройство поддерживает стандарты GSM 850, 900, 1800, 1900, а так же Bluetooth 2.0 EDR, Wi-Fi и EDGE. Это  позволяет иметь доступ интернет как при помощи мобильного оператора, так и при помощи Wi-Fi точки доступа.

Во время работы над  интерфейсом приложения для получения  достоверных данных использовалась литература, предоставленная создателями  платформы iPhone OS. Большая ее часть  еще не переведена на русский язык, но это не помешало получению нужной информации. Наличие такой документации в сети интернет весьма упростило ознакомление с платформой. Распространение такой литературы выгодно как разработчикам, так и создателям данной платформы: это снижает уровень сложности вхождения в разработку программных средств и увеличивает популярность платформы как среди программистов, так и среди пользователей, т.к. с увеличением количества программистов, использующих эту платформу в качестве рабочего инструмента, увеличивается и количество приложений, которые могут пользоваться спросом среди пользователей. Исключительная особенность данной платформы заключается в том, что все манипуляции с интерфейсом приложений происходят с использованием технологии Multi-Touch, разработка которой началась в 1982 году в Торонтском университете.

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

Так же, во время подготовки к работе мною активно изучалось  руководство по проектированию интерфейса и логики приложений, ориентированных  на работу в Internet в iOS [10]. Это руководство является незаменимым источником информации по данному вопросу. Из него были получены основы и правила построения интернет-приложений для платформы iPhone, которые имеют ряд отличительных признаков и параметров.

Во время изучения языка Objective-C большое количество информации было получено из [11]. Там было найдено большое количество примеров и советов, которые позволили легко и быстро разобраться в основах использования среды разработки, синтаксисе языка и его специфических свойствах. Т.к. в языке Objective-C используются парадигмы объектно-ориентированного программирование, ознакомление с ним не заняло большого количества времени. Синтаксис языка С-подобный, что упростило его изучение, т.к. полученные в университете знания включают в себя как парадигмы объектно-ориентированного программирования, так и знание языка С.

При проектировании архитектуры многие шаблоны были подчерпнуты из [12]. Основным паттерном является Model-view-controller (MVC, «Модель-представление-поведение», «Модель-представление-контроллер») — схема использования нескольких шаблонов проектирования, с помощью которых модель данных приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента так, что модификация одного из компонентов оказывает минимальное воздействие на остальные. Данная схема проектирования часто используется для построения архитектурного каркаса, когда переходят от теории к реализации в конкретной предметной области. Основная цель применения этой концепции состоит в разделении бизнес-логики (модели) от ее визуализации (представления, вида). За счет такого разделения повышается возможность повторного использования. Наиболее полезно применение данной концепции в тех случаях, когда пользователь должен видеть те же самые данные одновременно в различных контекстах и/или с различных точек зрения. Для реализации схемы Model-View-Controller используется достаточно большое число шаблонов проектирования (в зависимости от сложности архитектурного решения), основные из которых Наблюдатель, Стратегия, Компоновщик, Фабрика, о которых подробно написано в [12].

На момент проектирования необходимо было получить знания о базовых методах  диагностики сети. В [16] подробно описывается эффективная стратегия `снизу вверх`, основанная на изоляции проблем внутри каждого из семи уровней модели OSI. Проанализировав применение сетевых анализаторов для измерения пропускной способности и задержек, выявления `узких мест`, а также исследования времени отклика серверов и клиентов, были сформированы основные требования к подходу диагностики. Кроме того, были получены полезные советы, диаграммы, примеры и файлы отслеживания работы сети, иллюстрирующие наиболее важные концепции и методы анализа сетей. В [16] представлено описание: кабельных сетей и методов их тестирования; технологий кодирования пересылаемых данных; влияния различных типов широковещательного трафика; работы и методов анализа коммутаторов; методов анализа сетей Ethernet и Token Ring; датаграмм и маршрутизации; особенностей протокола IP, включая адресацию, выделение подсетей и использование пакетов ICMP; методов анализа протокола IPX; методов анализа протоколов UDP, TCP, SPX и SPX II; способов поиска ресурсов с помощью NetBIOS, SAP и DNS; регистрации пользователей через различные стеки протоколов; принципов работы протоколов DHCP, SMB, NCP, FTP, HTTP и MS Browse; методов измерения пропускной способности и задержки, включая `клин` запаздывания.

Эндрю Таненбаум в [17] подробно и на примерах описал основные принципы работы современных компьютерных сетей и технологий. Он последовательно изложил основные концепции, определяющие современное состояние и тенденции развития компьютерных сетей. Автор подробнейшим образом объясняет устройство и принципы работы аппаратного и программного обеспечения, рассматривает все аспекты и уровни организации сетей - от физического до уровня прикладных программ. Изложение теоретических принципов дополняется яркими, показательными примерами функционирования Интернета и компьютерных сетей различного типа.

 

 


Информация о работе Программная система сканирования и трехмерного моделирования локальной сети на базе unity 3d