
- •Введение
- •Постановка задачи
- •Анализ задачи проектирования
- •Анализ вариантов использования программы
- •Требования к приложениям
- •Определение попадания точки в четырехугольник
- •Настольное приложение на базе erlang
- •Создание приложения в среде ErlyBird
- •Реализация приложения
- •Реализация приложения
- •Создание Web –сервиса
- •Создание клиентского приложения WebForm
- •Создание прокси-класса
- •Системные требования
- •Руководство системного программиста
- •Заключение
- •Список литературы
- •Приложение Файл monte.Erl(настольное приложение)
- •Файл print.Erl
- •Файл monte_carlo.Html(web приложение на базе скриптов)
- •Файл service.Cs(web сервис)
- •Файл Service.Asmx
- •Файл Default.Aspx(клиентская часть приложения WebForm)
- •Файл Default.Aspx.Cs
Создание Web –сервиса
Создадим веб-сервис, осуществляющий расчет площади трапеции методом Монте-Карло, по заданным входным данным. Сервис будет возвращать структуру, содержащую площадь, погрешность работы и время вычисления на сервере. Диаграмма классов веб-сервиса представлена на рис.9.
Рис. 9 Диаграмма классов веб-сервиса и прокси класса
Методы класса monte_karlo:
public double[] montecarlo(double ax, double ay, double bx, double by, double cx, double cy, double dx, double dy, int N) – принимает на вход координаты соответствующих точек, количество точек, участвующих в эксперименте; возвращает массив double[] экспериментальных данных: реальную площадь, площадь по методу Монте-Карло, погрешность (в %) и время выполнения (в мс). Метод имеет идентификатор [Web method], что позволяет использовать её как на клиентской стороне, так и для интерактивного тестирования.
public double square_pr(double ax, double ay, double bx, double by, double cx, double cy, double dx, double dy) – принимает на вход координаты соответствующих точек, возвращает площадь прямоугольника, описывающего трапецию.
public double square_tr(double ax, double ay, double bx, double by, double cx, double cy, double dx, double dy) – принимает на вход координаты соответствующих точек, возвращает площадь трапеции.
Создание клиентского приложения WebForm
Для начала нам необходимо создать виртуальный каталог в IIS содержащий наш веб-сервис, для этого необходимо запустить менеджер управления IIS и на веб-каталоге по умолчанию щелкнуть правой кнопкой мыши, выбрать пункт «Создать», далее «Виртуальный каталог», далее нам необходимо указать путь к папке содержащей наш веб-сервис, и нажать кнопку «Готово», также необходимо разрешить для этого каталога выполнение сценариев.
Создаем приложение WebForm, которое будет обращаться к вышеописанному веб-сервису. Для этого добавим в решение новый проект – Web Site. При этом создадим веб-ссылку на прокси класс и подключим пространство имен System.Web.Services и Windows.localhost. Для этого щелкним на проекте в окне Solution Explorer правой кнопкой мыши и выберем пункт «Add Web Reference», далее выбираем сервис на данной машине, ищем в полученном списке наш веб-сервис и нажимаем кнопку «Add Reference».
На этапе логического проектирования клиента WebForm для клиент-серверного приложения на базе сервисов ASP.NET нами была введена следующая логическая структура - класс _Default. Диаграмма классов клиентского приложения представлена на рис. 10.
Рис. 10 Диаграмма классов клиентского приложения
Еще одной особенностью данного приложения является то, что не само приложение вычисляет площадь и дополнительные параметры. Оно лишь осуществляет запрос к веб-сервису, который по заданным координатам рассчитывает площадь. Непосредственно перед запросом необходимо создать прокси-класс:
Service Service = new Service();
Затем после создания класса можно осуществлять запрос. Пусть сервис поддерживает метод method, тогда запрос в синхронном режиме будет выглядеть следующим образом:
protected void Button1_Click(object sender, EventArgs e)
{Mas = Service.method();}
Как мы видим на рис. 10, класс _Default создан на базе класса Page, который необходимо унаследовать, если нужно создать страницу веб-формы использую метод фонового кода. Класс _Default содержит поля label, используемые вывода результатов, так же в нем присутствуют поля типа TextBox, используемые для ввода результатов.
Класс _Default содержит следующие методы:
protected void RadioButton1_CheckedChanged(object sender, EventArgs e) – кнопка для ввода пользовательских координат.
protected void RadioButton2_CheckedChanged(object sender, EventArgs e) – кнопка для ввода случайных координат.
protected void RadioButton3_CheckedChanged(object sender, EventArgs e) – кнопка для ввода контрольных координат.
protected void Button1_Click(object sender, EventArgs e) – кнопка для проверки и отправки введенных координат на сервер.