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

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

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

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

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

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

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

Контракт о данных описывает структуры данных, используемые службойдля взаимодействия с клиентами. Он описывает все данные, получаемые иотправляемые операциями службы.3. Контракт о сообщениях описывает формат сообщений протокола SOAP,что находит отражение в определениях сообщений на языках WSDL. Контракт о сообщениях позволяет точно контролировать состав заголовков ител SOAP сообщений.8Понятие контракта является ключевым при построении службы WCF. Хотяэто и не обязательно, подавляющее большинство приложений WCF будут начинаться с определения типов интерфейсов .NET, используемых для представлениянабора членов, которые поддерживаются данной службой WCF. В частности, интерфейсы, которые представляют контракт WCF, называются контрактами служб.Классы (или структуры), которые реализуют их, носят название типов служб.Контракты служб WCF оснащаются различными атрибутами, наиболее частоиспользуемыеизкоторыхопределенывпространствеименSystem.ServiceModel.

Когда члены контракта службы (методы в интерфейсе) содержат только простые типы данных (такие как числовые, булевские и строковые), полную службу WCF можно построить, используя одни только атрибуты[ServiceContract] и [OperationContract].Как только контракт (или набор контрактов) определен и реализован внутрибиблиотеки службы, следующий логический шаг состоит в построении агента хостинга для самой службы WCF. Как уже упоминалось, на выбор доступно множество возможных вариантов хостов, и все они должны указывать привязки, используемые удаленными клиентами для получения доступа к функциональности типаслужбы. Выбор из набора привязок – это область, которая отличает разработкуWCF от .NET Remoting и/или разработки веб-служб XML.

На выбор в WCF доступно множество возможных привязок, каждая из которых ориентирована наопределенные потребности. Если ни одна из готовых привязок не удовлетворяетсуществующим требованиям, можно создать собственную привязку, расширивтип CustomBinding. Привязка WCF может описывать следующие характеристики:1. Транспортный уровень, используемый для передачи данных (HTTP, MSMQ,именованные каналы и TCP);2. Каналы, используемые транспортом (однонаправленные, запрос-ответ идуплексные);3.

Механизм кодирования, используемый для работы с данными (XML и двоичный);4. Любые поддерживаемые протоколы веб-служб (если разрешены привязкой), такие как WS-Security, WS-Transactions, WS-Reliability и т.д.9Как только контракты и привязки установлены, финальный элемент мозаики состоит в указании адреса для службы WCF. Это важно, поскольку удаленныеклиенты не смогут взаимодействовать с удаленными типами, если им не удастсянайти их.

Подобно большинству аспектов WCF, адрес может быть жестко закодирован в сборке (с использованием типа System.Uri) или вынесен в файл *.config.В любом случае точный формат адреса WCF отличается в зависимости отвыбранной привязки (на основе HTTP, именованных каналов, TCP или MSMQ).На самом высоком уровне адреса WCF могут указывать перечисленные нижеединицы информации.1. Scheme. Транспортный протокол (HTTP и т.п.).2. MachineName. Полностью квалифицированное доменное имя машины.3.

Port. Во многих случаях не обязательный параметр. Например, привязкаHTTP по умолчанию использует порт 80.4. Path. Путь к службе WCFЭта информация может быть представлена следующим обобщенным шаблоном (значение Port необязательно, поскольку некоторые привязки его не используют):Scheme://<MachineName>[:Port]/Path101.4. АтрибутыВ WCF атрибуты применяются ради упрощения и ускорения процесса написания служб.

При определении контракта пишется класс, который делает нечтополезное, после чего он снабжается атрибутами WCF. Атрибут ServiceContractпомечает класс, как контракт. В терминах языка WSDL ServiceContract определяет тип порта PortType. Атрибут OperationContract определяет методы класса, которые можно вызывать через интерфейс службы. Одновременно он определяет,какие сообщения можно передать этим методам и получить от них.Атрибут ServiceContract.Чтобы интерфейс CLR участвовал в службах, предоставленных WCF, ондолжен быть оснащен атрибутом ServiceContract. Подобно многим другим атрибутам .NET, тип ServiceContractAttribute поддерживает набор свойств для дальнейшего прояснения его назначения.

Два свойства – Name и NameSpace – могутбыть установлены для управления именем типа службы и именем пространстваимен XML, определяющим тип службы. Если используется привязка, специфичная для веб-служб, эти значения применяются для определения элементов <portType> связанного документа WSDL.СвойствоCallbackContractConfigurationNameProtectionLevelSessionModeНазначениеУстанавливает функциональность обратного вызова для двустороннего обмена сообщениями.Это имя используется для нахождения элемента службы вконфигурационном файле приложения.

По умолчанию представляет собой имя класса, реализующего службу.Позволяет указать степень, до которой привязка контрактатребует шифрования, цифровых подписей или того и другогодля конечных точек, представленных контрактом.Используется для установки разрешения сеанса, запрета сеанса или обязательности сеанса для данного контракта службы.Таблица 1.1. Назначения свойств атрибута ServiceContract.11Атрибут OperationContract.Методы, которые планируется использовать внутри WCF, должны бытьоснащены атрибутом OperationContract, который также может быть сконфигурирован с помощью различных именованных свойств.СвойствоНазначениеAsyncPatternУказывает, реализована ли операция асинхронно с использованием пары методов Begin/End службы. Это позволяет службе передавать обработку другому потоку серверной стороны.IsInitiatingУказывает, может ли операция быть начальной операциейсеансаIsOneWayУказывает, состоит ли операция только из одного входногосообщения (без какого-либо ассоциированного вывода)IsTerminatingУказывает, должна ли исполняющая среда WCF пытаться завершить текущий сеанс после выполнения операцииТаблица 1.2.

Назначения свойств атрибута OperationContract.122. РАЗРАБОТКА WCF ПРИЛОЖЕНИЯВ данной работе предложена реализация сервиса хеширования по различным алгоритмам (MD5, SHA-1, SHA-256, SHA-512) с применением WCF иMicrosoft Visual Studio 2010. Для демонстрации работы механизма передачи событий сервиса на клиент реализовано уведомление клиентов в режиме реального времени об общем числе клиентов, использующих сервис.2.1. Создание проектаСоздадим библиотеку классов «CryptService», в которой определим самуслужбу, консольное приложение «ConsoleHost», которое будем использовать вкачестве хоста, и приложение-клиент Windows Forms «Client».Рис.

2.1. Создание библиотеки классов CryptService.dll.13Рис. 2.2. Добавление консольного приложения ConsoleHost.Рис. 2.3. Добавление приложения клиента Client.142.2. Создание контрактаДобавим в проект файл IStringCrypt.cs, в котором определим два интерфейса IStringCrypt и IClientCallback, образующие в совокупности контракт будущегоWCF сервиса:using System.ServiceModel;namespace CryptService{[ServiceContract(SessionMode = SessionMode.Required,CallbackContract = typeof(IClientCallback))]public interface IStringCrypt{[OperationContract]string md5(string str);[OperationContract]string sha1(string str);[OperationContract]string sha256(string str);[OperationContract]string sha512(string str);[OperationContract(IsOneWay = true)]void join();[OperationContract(IsOneWay = true)]void leave();}public interface IClientCallback{[OperationContract(IsOneWay = true)]void count(int count);}}Необходимо сообщить WCF, что это наш контракт. Делаем это путем добавления атрибутов (ServiceContract и OperationContract).

Кроме того, нужно добавить ссылку на System.ServiceModel.15Рис. 2.4. Добавление ссылки на System.ServiceModel.2.3. Реализация службыДобавим файл StringCrypt.cs и напишем в нём реализацию созданных ранееинтерфейсов:usingusingusingusingusingSystem;System.Text;System.Security.Cryptography;System.ServiceModel;System.Collections.Generic;namespace CryptService{[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]public class StringCrypt : IStringCrypt{public static int count = 0;private static List<User> users = new List<User>();private User user;class User16{public IClientCallback callback;public User(IClientCallback callback){this.callback = callback;}}public string md5(string str){MD5 md5Hasher = MD5.Create();byte[] buffer = Encoding.Default.GetBytes(str);byte[] data = md5Hasher.ComputeHash(buffer);return bytes2string(data);}public string sha1(string str){SHA1 sha1Hasher = SHA1.Create();byte[] buffer = Encoding.Default.GetBytes(str);byte[] data = sha1Hasher.ComputeHash(buffer);return bytes2string(data);}public string sha256(string str){SHA256 sha256Hasher = SHA256.Create();byte[] buffer = Encoding.Default.GetBytes(str);byte[] data = sha256Hasher.ComputeHash(buffer);return bytes2string(data);}public string sha512(string str){SHA512 sha512Hasher = SHA512.Create();byte[] buffer = Encoding.Default.GetBytes(str);byte[] data = sha512Hasher.ComputeHash(buffer);return bytes2string(data);}17public void join(){count++;IClientCallback callback = OperationContext.Current.GetCallbackChannel<IClientCallback>();User u = new User(callback);users.Add(u);user = u;foreach (User x in users)x.callback.count(count);}public void leave(){count--;users.Remove(user);foreach (User x in users)x.callback.count(count);}private string bytes2string(byte[] data){StringBuilder sBuilder = new StringBuilder();for (int i = 0; i < data.Length; i++)sBuilder.Append(data[i].ToString("x2"));return sBuilder.ToString();}}}2.4.

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