Материал: Исследование вычислительной эффективности веб-технологий

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Исследование вычислительной эффективности веб-технологий

ВВЕДЕНИЕ


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

На данный момент существует множество технологий для решения различного рода задач. Все их можно условно поделить на настольные, клиент-серверные и веб-технологии.Presentation Foundation (WPF) - технология, представляющая разработчикам обширный API-интерфейс для создания настольных приложений, имеющих насыщенный дизайн и интерактивность и включающий новую модель построения пользовательских приложений основанный на DirectX. Технология включает в себя использование XAML - декларативного языка разметки.

Традиционный (классический) способ создания веб-приложений заключается в добавлении специальных элементов управления, допускающих программное управление (например, скриптов на языках JavaScript) в HTML код. Данная технология - ASP (англ. Active Server Pages - «активные серверные страницы») была предложена компанией Microsoft в 1996 году и разработана для операционных систем из семейства Windows NT, и функционирует под управлением веб-сервера Microsoft IIS. Основным недостатком применения технологии ASP является то, что использовать ее для выполнения больших объемов вычислительной работы на сервере нецелесообразно из-за медленной работы скриптов, поскольку при выполнении активных страниц большая часть времени расходуется на процесс их интерпретации. Однако технология ASP, несмотря на свои очевидные недостатки: относительно медленную работу, линейную модель программирования, невозможность использования всех преимуществ объектно-ориентированного программирования, используется по причине своей простоты, низкого порога вхождения, малой требовательности к ресурсам.это современный язык скриптов с обширными возможностями по применению. Это настоящий объектно-ориентированный язык, сохранивший, тем не менее, качества, присущие языку скриптов.

Однако на смену классическим технологиям приходят современные концепции: разделение кода и разметки, а соответственно, разделение дизайна и бизнес-логики приложения, использование объектно-ориентированного языка C# и т.п, что позволяет автоматизировать и ускорить процесс разработки приложений и оформления проектной документации.

При проектировании и реализации серверной части популярной среди программистов является технология веб - сервисов ASP.NET. Данная технология позволяет сосредоточиться над решением поставленных задач, значительно упрощая работу с транспортировкой и преобразованием данных. С ASP.NET поставляется специальный класс IHttpHandler для .asmx (называемых WebServiceHandler), который обеспечивает набор необходимых функциональных возможностей.

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

1       Постановка задачи

алгоритм вычислительный логический серверный

Цель данной курсовой работы - исследование вычислительной эффективности веб-технологий. В ходе выполнения курсовой необходимо спроектировать и реализовать 3 приложения, каждое из которых считает площадь фигуры методом «Монте-Карло», причем каждое приложение должно быть реализовано с использованием разных технологий программирования.

Вариант №29:

1)      фигура ambd (рисунок 1);

)        настольное приложение на базе WPF/C#;

)        веб-приложение на базе ASP/JScript;

)        веб-приложение на базе WPF/ASMX/C#.

В данной работе рассматривается задача вычисления площади фигуры, представленного на рис. 1, методом Монте-Карло.

Рис. 1. Фигурa ambd внутри прямоугольника

Исходными данными для приложений являются координаты угловых точек треугольника abd, в котором  , как видно из рис. 1.

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

Для каждой точки выполняется проверка, попала ли точка внутрь заданной фигуры. Если из N точек M точек оказалось внутри фигуры, а площадь прямоугольника равна S, то площадь фигуры будет приближенно равна .

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

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

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

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


2.1    Анализ вариантов использования программы


Требуется разработать программу, которая позволяла бы пользователю вычислять площадь фигуры ambd методом Монте-Карло. Программа должна позволять пользователю:

·        ввод координат контрольного примера;

·        ввод координат пользователем;

·        очистка полей ввода координат

·        выполнение расчетов по введенным координатам;

·        завершение работы приложения.

После ввода координат и подтверждения на расчет программа должна автоматически проверить корректность введенных данных. На рис. 2 представлена диаграмма вариантов работы программы.

Рис. 2. Диаграмма вариантов использования приложений

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

.2 Требования к приложениям


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

·        иметь интуитивно понятный интерфейс;

·        вычислять площадь фигуры методом Монте-Карло, рассчитывать погрешность вычисления, а также измерять время расчета для каждого N= 103, 104, 105, 106, 107 количества точек;

·        сообщать пользователю об ошибках;

·        иметь возможность запуска повторного расчета.

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

Настольное приложение на базе WPF/XBAP:

·        интерфейс: WPF;

·        язык реализации: XBAP.

Веб-приложение на базе ASP/JScript:

·        интерфейс: веб-страница;

·        языки реализации: HTML, JScript.

Веб-приложение на базе WPF/ASMX/C#:

·        язык реализации: C#;

·        тип: веб-приложение;

·        клиентская часть: WPF;

·        серверная часть: ASMX;

·        тип веб-сервиса: асинхронный.

3       Анализ алгоритма решения


3.1    Метод Монте-Карло


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

По условию курсового проекта все приложения должны находить площадь геометрической фигуры методом Монте-Карло.

Имеем некоторую фигуру (T) на плоскости, площадь которой требуется найти. Для этого необходимо ограничить её другой наименьшей фигурой (P), площадь которой легко вычислить аналитически. Пусть про любую точку K можно быстро узнать принадлежит ли она фигуре T. Имея общее количество точек N, считаем, сколько точек (L) попало в фигуру T. Зная площадь Sp фигуры (P), рассчитываем площадь ST фигуры T по следующей формуле:

.

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

,

где  - площадь фигуры, вычисленная по геометрическим формулам,  - площадь фигуры, вычисленная по методу Монте-Карло.

3.2    Определение попадания точки внутрь фигуры


Имеем фигуру ambd и произвольную точку P, лежащие в одной плоскости. Требуется определить, принадлежит ли точка P фигуре ambd, если известны координаты вершин треугольника abd и координаты точки.

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

Проверка попадания точки внутрь окружности

Имеем случайно выбранную точку P(xp,yp) и имеем полуокружность с центром в точке O(x0,y0) и радиусом R. Тогда условие попадания точки в полуокружность будет иметь следующий вид:

Если

 

то точка P(xp,yp) лежит внутри окружности.

Данный алгоритм прост и не требует большого количества вычислений.

Проверка попадания точки внутрь прямоугольника

Чтобы определить попала ли точка в треугольник, необходимо найти уравнения прямых ad и bd, ограничивающих треугольник снизу и сверху соответственно, а затем проверить условие попадания yad<yp<ybd , где yр - ордината сгенерированной точки, у - ордината соответствующей точки прямой ad, ybd - ордината соответствующие точки прямой bd

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

Уравнение прямой bd находится по формуле:

 ,

где  .

Следовательно, для попадания между прямыми ad и bd ордината точки должна удовлетворять неравенству:



4       Настольное приложение на базе WPF/XBAP


4.1    Программные средства разработки приложения


Для создания настольного приложения была выбрана интегрированная среда разработки Microsoft Visual Studio 2013. Так как это новейшая IDE от Microsoft поддерживающая разработку клиентских приложений на языке C#. Visual Studio - включает интегрированную среду разработки программного обеспечения и ряд других инструментальных средств, обеспечивающих в совокупности высокое качество кода на протяжении всего цикла жизни ПО, от проектирования до внедрения. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft.

XBAP (англ. XAML Browser Application - браузерное приложение XAML) - это WPF-приложение, которые выполняется внутри браузера Web-страниц.

Приложение ХВАР является полноценным приложениям WPF, имеющим некоторые основные отличия:

ХВАР-приложение выполняется внутри окна браузера и может занимать всю область Web-страницы или только часть. (В HTML размечается с помощью дескриптора <iframe>.)

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

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

ХВАР-приложение не требует инсталляции (специальной установки на компьютер пользователя).

При запуске приложения ХВАР оно загружается и помещается в кэш браузера, но не устанавливается в системе. Это дает Web-модель мгновенного обновления - при каждом обращении пользователя к данному приложению загружается новая версия (если оно отсутствует в кэше и было обновлено).

В отличие от программной модели, используемой в технологиях ActiveX и Silverlight, где апплеты действительно загружаются внутри процесса браузера, XBAP-приложения только отображают своё содержимое в окне браузера, но при этом, как любое WPF-приложение, запускаются в виде отдельного процесса управляемого средой CLR.

Одно из преимуществ приложений ХВАР - возможность работать с ними без лишних подсказок и приглашений: пользователь может открыть приложение ХВАР в браузере и начать работать с ним точно так же, как с Java-апплетом, Flash-анимацией или оснащенной кодом JavaScript Web-страницей. Никакого приглашения выполнить инсталляцию и предупреждения по поводу безопасности не появляется. Windows Presentation Foundation (WPF) - это платформа пользовательского интерфейса, которая позволяет создавать многофункциональные интерактивные клиентские приложения. Платформа разработки WPF поддерживает широкий набор возможностей разработки приложений, включая модель приложения, ресурсы, элементы управления, графику, макет, привязки данных, документы и безопасность. Это подмножество платформы .NET Framework, поэтому пользователям, которые ранее выполняли построение приложений в платформе .NET Framework, используя ASP.NET или Windows Forms, будут знакомы принципы программирования. WPF использует язык XAML для обеспечения декларативной модели для программирования приложений.- это декларативный язык разметки. С точки зрения модели программирования .NET Framework язык XAML упрощает создание пользовательского интерфейса для приложения .NET Framework. Можно создать видимые элементы пользовательского интерфейса в декларативной разметке XAML, а затем отделить определение пользовательского интерфейса от логики времени выполнения, используя файлы кода программной части, присоединенные к разметке с помощью определений разделяемых классов. При представлении в виде текста файлы XAML являются XML-файлами.