Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Разработка сервиса с применением Windows Communication Foundation (курсовая)

Разработка сервиса с применением Windows Communication Foundation (курсовая), страница 3

PDF-файл Разработка сервиса с применением Windows Communication Foundation (курсовая), страница 3 Проектирование программного обеспечения автоматизированных систем (5754): Курсовая работа - 9 семестр (1 семестр магистратуры)Разработка сервиса с применением Windows Communication Foundation (курсовая): Проектирование программного обеспечения автоматизированных систем - PDF2015-08-23СтудИзба

Описание файла

PDF-файл из архива "Разработка сервиса с применением Windows Communication Foundation (курсовая)", который расположен в категории "". Всё это находится в предмете "проектирование программного обеспечения автоматизированных систем" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "проектирование по автоматизированных систем" в общих файлах.

Просмотр PDF-файла онлайн

Текст 3 страницы из PDF

Приложение службыТеперь, когда контракт и его реализация полностью написаны, можно переходить к написанию приложения службы (файл Program.cs). В нашем случае этобудет просто консольное приложение, запуск которого запускает службу по адресу http://localhost:8080/.using System;18usingusingusingusingSystem.Text;System.ServiceModel;CryptService;System.ServiceModel.Description;namespace ConsoleHost{class Program{const string URI = "http://localhost:8080/";static void Main(string[] args){// Тип сервисаType serviceType = typeof(StringCrypt);// URI сервисаUri serviceUri = new Uri(URI);ServiceHost host = new ServiceHost(serviceType, serviceUri);host.Open();Console.ForegroundColor = ConsoleColor.Green;foreach (Uri uri in host.BaseAddresses)Console.WriteLine(uri.ToString());Console.ResetColor();Console.ForegroundColor = ConsoleColor.DarkGray;Console.Write("Нажмите ENTER, чтобы закрыть хост");Console.ReadLine();host.Close();}}}2.5.

Конфигурация службыНаконец, осталось правильно сконфигурировать наш сервис. Напомню, чтопланируется реализация механизма уведомления клиентов. То есть общение клиентов и сервиса должно быть двусторонним, поэтому в качестве типа привязкивозьмём wsDualHttpBinding.Приведём содержимое файла конфигурации нашего сервиса App.config:<?xml version="1.0" encoding="utf-8" ?><configuration>19<system.serviceModel><protocolMapping><add scheme="http" binding="wsDualHttpBinding" /></protocolMapping><behaviors><serviceBehaviors><behavior><serviceMetadata httpGetEnabled="True"/><serviceDebug includeExceptionDetailInFaults="False" /></behavior></serviceBehaviors></behaviors></system.serviceModel></configuration>Рис. 2.5.

Внешний вид приложения для запуска службы.202.6. Получение WSDL сервисаТеперь можно запустить консольное приложение-хост (в противном случае,конечные точки будут недоступны) и перейти к URI службы http://localhost:8080/Вы увидите экран со ссылкой на WSDL сервиса http://localhost:8080/?wsdl.WSDL (англ. Web Services Description Language) – язык описания вебсервисов и доступа к ним, основанный на языке XML. Каждый документ WSDLможно разбить на следующие логические части:1. определение типов данных (types) – определение вида отправляемых и получаемых сервисом XML сообщений;2. элементы данных (message) – сообщения, используемые сервисом;3.

абстрактные операции – список операций, которые могут быть выполненыс сообщениями;4. тип порта (PortType) – именованный набор абстрактных операций и абстрактных сообщений. Оконечная точка службы реализует некий тип порта,группирующий взаимосвязанные операции.5. служба определяет набор взаимосвязанных портов;6. связывание сервисов (binding) – способ, которым сообщение будет доставлено.Поскольку контракты описываются на языке WSDL, а программа обычноработает с типами CLR, возникает необходимость отобразить одну систему типовна другую. В WCF эта задача решается в три этапа. Сначала при написании кодаслужбы вы снабжаете класс определенными в WCF атрибутами [ServiceContract],[OperationContract], [FaultContract], [MessageContract] и [DataContract]. Затем принаписании клиентского кода вы запрашиваете у службы детали контракта.

Этоделается с помощью Visual Studio или утилиты svcutil.exe, которая вызывает инфраструктурную оконечную точку службы, возвращающую метаданные, необходимые для генерации WSDL документа, получая их от атрибутов. Наконец, наэтапе исполнения, когда клиент вызывает какой-то метод, определенный в интерфейсе службы, WCF сериализует типы CLR и вызов метода в формат XML и посылает сообщение в сеть в соответствии с привязкой и схемой кодирования, согласованным посредством WSDL.212.7. Приложение клиентаПерейдём от написания сервиса к написанию приложения клиента.

Сначаланеобходимо создать прокси-класс, который будет находиться между нашим клиентом и службой. Один из способов создания прокси-класса – воспользоватьсягенератором прокси svcutil.exe. Для этого необходимо ввести в командной строкеVisual Studio следующую команду, находясь в папке расположения «Client»:> svcutil http://localhost:8080/ /o:ServiceProxy.cs /config:App.Config /n:*,ClientЭта команда сгенерирует два файла: прокси службы и файл конфигурацииприложения, которые необходимо включить в проект.Когда мы запустили svcutil.exe мы передали ему в качестве первого аргумента место расположения нашей службы, как указано в хосте.

Это и есть базовый адрес. Вторым аргументом является прокси. Третий аргумент указывает, чтомы также хотим обновить конфигурацию приложения, а если она не доступна, создать её. Последний аргумент – пространство имён для прокси.Сам код приложения клиента довольно прост:usingusingusingusingusingusingusingusingSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;System.ServiceModel;namespace Client{public partial class{const int MD5const int SHA1const int SHA256const int SHA512ClientForm : Form====0;1;2;3;StringCryptClient client;22public class CallbackHandler : IStringCryptCallback{ClientForm form;public CallbackHandler(ClientForm form) {this.form = form;}public void count(int count) {form.infoLabel.Text = "Общее число клиентов " + count;}}public ClientForm() {InitializeComponent();algComboBox.SelectedIndex = MD5;try {InstanceContext instanceContext =new InstanceContext(new CallbackHandler(this));client = new StringCryptClient(instanceContext);client.join();}catch (Exception e) {MessageBox.Show(e.Message); return;}}private void hashRefresh(){const string defaultText = "";string str = strTextBox.Text;if (string.IsNullOrEmpty(str)) {hashTextBox.Text = defaultText; return;}string hash;try {switch (algComboBox.SelectedIndex) {case MD5: hash = client.md5(str); break;case SHA1: hash = client.sha1(str); break;23case SHA256: hash = client.sha256(str); break;case SHA512: hash = client.sha512(str); break;default: hashTextBox.Text = defaultText; return;}}catch (Exception e) {MessageBox.Show(e.Message);hashTextBox.Text = defaultText;return;}hashTextBox.Text = hash;}private void strTextBox_TextChanged(object sender, EventArgs e) {hashRefresh();}private void algComboBox_SelectedIndexChanged(object sender, EventArgs e) {hashRefresh();}private void ClientForm_FormClosed(object sender, FormClosedEventArgs e) {client.leave();client.Close();}}}24Рис.

2.6. Внешний вид приложения WCF клиента.25ЗАКЛЮЧЕНИЕВ данной работе мною были разработаны клиент и сервис WindowsCommunication Foundation. Не смотря на то, что создание простых web-служб спомощью WCF не представляет особого труда, WCF унифицирует модель создания служб и предоставляет программисту одинаковые механизмы по созданиюслужб, передающих сообщения в формате SOAP через HTTP, или служб, взаимодействующих по бинарному протоколу. Более того, WCF активно использует всепередовые решения, которые накапливались с 2001 года, когда появилась перваяреализация .NET Framework, а соответственно и web-служб.

Так, за последние 5лет появилось множество концепций и реализаций, решающих различные проблемы, которые возникали при передаче данных, связанных с безопасностью илипротоколами. Теперь все эти реализации были собраны вместе и стали доступныдля программиста максимально удобным способом.26БИБЛИОГРАФИЧЕСКИЙ СПИСОК1.

Герберт Шилдт. C# 4.0: полное руководство – М.: «Вильямс», 2010. – 1056 с.2. Дж. Лёве. Создание служб Windows Communication Foundation. – Спб.: Питер,2008. – 592 с.: ил.3. Пабло Сибраро, Курт Клайс, Фабио Коccолино, Йохан Грабнер WCF 4: Windows Communication Foundation и .NET 4 для профессионалов – М.:«Диалектика», 2011. – 464 с.4. Слинкина А.

А. Основы Windows Communication Foundation для .NETFramework 3.5: Пер. с англ. – М.: ДМК Пресс, 2008. – 480 с.: ил.27СОДЕРЖАНИЕВВЕДЕНИЕ ............................................................................................................ 21. АРХИТЕКТУРА ПРИЛОЖЕНИЙ WCF ......................................................... 51.1. Основы WCF ............................................................................................... 51.2. Конечные точки .......................................................................................... 61.3. Контракты ................................................................................................... 71.4. Атрибуты...................................................................................................

102. РАЗРАБОТКА WCF ПРИЛОЖЕНИЯ........................................................... 122.1. Создание проекта ..................................................................................... 122.2. Создание контракта.................................................................................. 142.3. Реализация службы .................................................................................. 152.4. Приложение службы ................................................................................ 172.5.

Конфигурация службы ............................................................................ 182.6. Получение WSDL сервиса....................................................................... 202.7. Приложение клиента................................................................................ 21ЗАКЛЮЧЕНИЕ ................................................................................................... 25БИБЛИОГРАФИЧЕСКИЙ СПИСОК ............................................................... 26.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее