Розробка гнучкої системи інтерактивної взаємодії для підтримки спільного навчання на основі платформи Microsoft .NET. Модуль прийому даних

Дослідження інструментальних засобів для створення систем спільного навчання. Створення Windows-додатків на основі Visual C#. Функціональні можливості та програмна реалізація системи інтерактивної взаємодії. Програмна реалізація модулю прийому зображення.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 22.10.2012
Размер файла 4,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Міністерство освіти і науки України

Криворізький інститут

Кременчуцького університету економіки, інформаційних технологій і управління

Кафедра технічної кібернетики

ДИПЛОМНА РОБОТА

зі спеціальності

7.091402 “Гнучкі комп'ютеризовані системи та робототехніка“

ПОЯСНЮВАЛЬНА ЗАПИСКА

«Розробка гнучкої системи інтерактивної взаємодії для підтримки спільного навчання на основі платформи Microsoft .NET. Модуль прийому даних»

Студента групи

ГКС-05

Максименка Віталія Олександровича

Керівник роботи

доц., к.т.н Моня Григорій Михайлович

Кривий Ріг

2010

Міністерство освіти і науки України

Криворізький інститут

Кременчуцького університету економіки, інформаційних технологій і управління

Кафедра технічної кібернетики

Спеціальність 7.091402 “Гнучкі комп'ютеризовані системи та робототехніка“

ЗАТВЕРДЖУЮ

Зав. кафедрою доц., к.т.н. Старіков О.М.

" 1 " листопада 2009 р.

Завдання

на дипломну роботу студента

Максименка Віталія Олександровича

1. Тема роботи: Розробка гнучкої системи інтерактивної взаємодії для підтримки спільного навчання на основі платформи Microsoft .NET. Модуль прийому даних

затверджена наказом по інституту від " 29 " жовтня 2009 р. 73С-01

2. Термін здачі студентом закінченої роботи 25.05.10.

3. Вхідні дані до роботи: Вимоги до кінцевого програмного продукту, вихідні масиви даних, матеріали наукових досліджень, методичні матеріали.

4. Зміст розрахунково-пояснювальної записки (перелік питань, що підлягають розробці): Дослідження інструментальних засобів для створення систем спільного навчання; Створення Windows-додатків на основі Visual C#; Функціональні можливості та програмна реалізація системи. Модуль прийому даних; Економічне обґрунтування доцільності розробки програмного продукту; Охорона праці.

5. Перелік графічного матеріалу (з точними вказівками обов'язкових креслень)

1. Загальна схема взаємодії комп'ютерів P2P-мережі

2. Схема розподілу інформації в P2P - мережах

3. Розподіл ключів ресурсів по вузлах мережі. Пошук ресурсу

4. Головне вікно середовища розробки

5. Схема інформаційних потоків системи

6. Основне вікно системи

7. Головне меню системи

8. Вікно з зображенням, одержуваним з камери

6. Консультанти з роботи, з вказівками розділів роботи, що належать до них

Розділ

Консультант

Підпис, дата

Завдання видав

Завдання прийняв

Спеціальна частина

Лукашенко Й.М.

Програмна частина

Вдовиченко І.Н.

Економічна частина

Тимко Є.В.

Охорона праці

Климович Г.Б.

7. Дата видачі завдання 01.11.09 р.

Керівник ____________________

Завдання прийняв до виконання ____________________

Календарний план

№ п/п

Найменування етапів дипломної роботи

Термін виконання етапів роботи

Примітки

·

Отримання завдання на дипломну роботу

01.11.09

·

Огляд існуючих рішень

20.02.10

Теоретичне дослідження інструментальних засобів реалізації проекту

13.03.10

Програмна частина (постановка задачі, створення програмного забезпечення, опис алгоритму рішення задачі, проектування та опис інтерфейсу користувача, опис програми)

28.04.10

Оформлення пояснювальної записки

06.05.10

Оформлення графічної документації

14.05.10

Оформлення електронних додатків до диплому

20.05.10

Представлення дипломної роботи до захисту

25.05.10

Студент-дипломник _________________

Керівник роботи _________________

Анотація

Метою дипломній роботі було дослідження та представлення моделі інтерактивного засобу навчання, заснованого на платформі Microsoft .NET і технології ConferenceXP. А також розробити програмне середовище, яке може дозволити багатьом студентам одержати всесторонній досвід в навчанні і збільшити залучення викладацького складу в процес навчання.

Розділів 6, схем та рисунків 51, таблиць 1, бібліографічних посилань 30, загальний обсяг - 103.

Аннотация

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

Разделов 6, схем и рисунков 51, таблиц 1, библиографических ссылок 30, общий объем - 103.

The summary

The purpose of degree work was to study and present a model of interactive learning method based on the platform of Microsoft. NET technologies and ConferenceXP. And develop a software environment that can allow many students to get a comprehensive experience in education and increase faculty involvement in the learning process.

Sections 6, circuits and figures 51, tables 1, bibliographic references 30, total amount - 103.

Зміст

Вступ

  • 1. Постановка завдання
    • 1.1 Найменування та галузь використання
    • 1.2 Підстава для створення
    • 1.3 Характеристика розробленого програмного забезпечення
    • 1.4 Мета й призначення
    • 1.5 Загальні вимоги до розробки
    • 1.6 Джерела розробки
  • 2. Дослідження інструментальних засобів для створення систем спільного навчання
    • 2.1 ConferenceXP як платформа для побудови систем обміну інформацією в рамках учбового процесу
    • 2.2 Загальна характеристика технології побудови розподіленої мережі Peer-to-Peer
    • 2.3 Протоколи обміну даними та особливості організації P2P мереж
    • 2.4 Концепція побудови інтерактивного інтерфейсу користувача
  • 3. Створення Windows-додатків на основі Visual C#
    • 3.1 Основи роботи з Visual Studio .NET
    • 3.2 Форми
    • 3.3 Вікно «Провідник проекту»
    • 3.4 Вікно Class View
    • 3.5 Вікно Properties Window
    • 3.6 Вікно панелі інструментів
    • 3.7 Режими дизайну і коду
    • 3.8 Властивості проекту
    • 3.9 Компіляція програми
  • 4. Функціональні можливості та програмна реалізація системи. Модуль прийому даних
    • 4.1 Функціональне призначення та технологічні особливості розробки
    • 4.2 Розробка схеми інформаційних потоків системи
    • 4.3 Інтерфейс взаємодії користувачів та програмного комплексу
    • 4.4 Програмна реалізація модулю прийому зображення
  • 5 Економічне обґрунтування доцільності розробки програмного продукту
  • 6. Охорона праці
    • 6.1 Аналіз небезпечних і шкідливих факторів
    • 6.2 Заходи щодо нормалізації шкідливих і небезпечних факторів
    • 6.3 Пожежна безпека
  • Висновки

Список літератури

Вступ

Будь-яке більш-менш серйозне завдання людської діяльності в сучасному світі навряд чи може бути повністю вирішене однією людиною. Проте, не дивлячись на це, в вищих навчальних закладах не учать студентів техніці спільної роботи. Тому вони виявляються не пристосованими до реальних сценаріїв роботи, в яких для того, щоб досягти результату, доводиться інтенсивно спілкуватися і співробітничати з колегами.

Вражаючі досягнення в розвитку технологій бездротових мереж, Інтернету і мобільних пристроїв за останні роки зробили можливим створення учбових класів і закладів з можливістю широкого застосування комп'ютерних пристроїв для інтерактивного навчання. Дані досліджень свідчать, що учасники процесу навчання здатні набагато краще засвоювати інформацію за умови, що вони працюють в невеликих групах. Великі можливості для спільної роботи, що надаються комп'ютерними системами, сприяють швидшому навчанню, більш довгостроковому запам'ятовуванню інформації, підвищенню рівня зацікавленості і мотивації.

Тому особливо важливими для багатьох видів людської діяльності, у тому числі і навчання, є функції спільної діяльності і інтерактивність в режимі реального часу. Проте, ці функції рідко реалізуються в сучасних інформаційних системах через відсутність можливості застосовувати дороге устаткування і бездротові мережі, а також складне і дороге програмне забезпечення в умовах середньостатистичного учбового класу.

Запропонована система написана на мові програмування C# для платформи Microsoft .NET і використовує Microsoft Research ConferenceXP в якості платформи для розробки функцій спільної роботи і передачі мультимедійного вмісту в реальному режимі часу.

Архітектура, побудована на основі ConferenceXP, призначена для роботи в широкополосних мережах, надає розширювану інфраструктуру з широкими можливостями для спільної роботи і міжособової взаємодії. Так, відомі приклади впровадження ConferenceXP для навчання комп'ютерним наукам в університеті шт. Вашингтон, США і інших університетах США з використанням експериментальної мережевої інфраструктури наступного покоління Internet2. Разом з розробкою технології ConferenceXP, проект Microsoft Research університету шт. Вашингтон, відомий як Learning Experience Project, ставив собі мету досліджувати можливості дистанційного сумісного навчання, а також зробити його реальною і повноцінною альтернативою звичайному навчанню, за умови наявності доступу до технологій, які лише починають з'являтися на ринку, таким як: мережі високої пропускної спроможності, бездротові пристрої, планшетні комп'ютери і новітні можливості операційних систем Microsoft. ConferenceXP дозволяє університетам і дослідницьким організаціям витратити мінімум зусиль на створення необхідної інфраструктури і архітектури програмної системи і концентруватися на дослідженнях і розробці прототипів систем для спільної роботи, які б поліпшили процес навчання, як в рамках класної аудиторії, так і за її межами.

1. Постановка завдання

1.1 Найменування та галузь використання

Найменування розробки: гнучка система інтерактивної взаємодії для підтримки спільного навчання. Система може бути використана в будь-яких навчальних закладах, як при проведенні занять в комп'ютерних класах, так і при дистанційному навчанні, при вивченні дисциплін, пов'язаних з комп'ютерною технікою. Використання системи може дозволити багатьом студентам одержати всебічний досвід в навчанні і збільшити залучення викладацького складу в процес навчання.

1.2 Підстава для створення

Підставою для розробки є наказ № 73С-01 від 29 жовтня 2009 р. по Криворізькому інституту КУЕІТУ.

Початок робіт: 01.11.09. Закінчення робіт: 25.05.10.

1.3 Характеристика розробленого програмного забезпечення

Розроблена система написана на мові програмування C# для платформи Microsoft .NET і використовує Microsoft Research ConferenceXP в якості платформи для розробки функцій спільної роботи і передачі мультимедійного вмісту в реальному режимі часу.

Склад розробленої системи:

· Conference System.exe - виконуваний файл розробленої системи;

· DShowNET.dll - модуль для роботи з Direct Show;

· Voice.dll - модуль P2P голосового чату.

1.4 Мета й призначення

Метою дипломної роботи є розробка гнучкої системи інтерактивної взаємодії для підтримки спільного навчання.

Розроблена система надає наступні можливості:

1. захоплення і передача зображення з відеокамери;

2. можливість голосового спілкування;

3. можливість обміну текстовими повідомленнями;

4. захоплення і передача зображення області робочого столу.

1.5 Загальні вимоги до розробки

Вимоги до програмного забезпечення:

· Робота в середовищі операційних систем Windows

· Microsoft. NET Framework 2.0 і вище;

· Відсутність додаткових вимог до розміщення здійснимих файлів;

· Простота і зрозумілість інтерфейсу.

Мінімальні вимоги до апаратного забезпечення:

· IBM-сумісний комп'ютер, не нижче Pentium IІI 500 MHz, RAM-128Mb, SVGA-800 * 600 * 16bit;

· Наявність підключення до локальної мережі або мережі Інтернет;

· Вільний простір на жорсткому диску не менше 10 Мб.

1.6 Джерела розробки

Джерелами розробки дипломної роботи є:

загальний опис технології процесу;

довідкова література;

наукова література;

технічна література;

програмна документація.

2. Дослідження інструментальних засобів для створення систем спільного навчання

2.1 ConferenceXP як платформа для побудови систем обміну інформацією в рамках учбового процесу

Проект ConferenceXP створений Microsoft Research і орієнтований на сферу освіти. Базовою складовою його є P2P-платформа, на основі якої розробники можуть створювати спеціалізовані рішення по обміну інформацією в рамках учбового процесу. ConferenceXP передбачає багаторівневу архітектуру, засновану на сучасних технологіях.

ConferenceXP Client версії 3.5 - це розвинена програма, що призначена для проведення презентацій і забезпечує відображення видалений Робочий столу, сумісний Web-серфінг і аналог «класної дошки». Природно, особливий акцент зроблений на підтримці технологій Microsoft, зокрема за рахунок інтеграції з Windows Media Player 10 і Microsoft OneNote. Обмін інформацією здійснюється в рамках класів (venues), список яких зберігається відповідною Web-службою - в системі необхідно вказати її точну адресу або вибрати одну з публічних.

Окремої уваги заслуговують технічні особливості реалізації. Архітектурно ConferenceXP складається з чотирьох рівнів - від нижнього, такого, що відповідає за передачу даних, до вищого - власне призначеної для користувача програми. Дані передаються по P2P-протоколу RTP (Real-time Transport Protocol) - реалізації транспортного протоколу IETF для передачі аудио- і відеоданих. Для управління ходом конференцій використовується RTDocuments API - інтерфейс, за допомогою якого розповсюджуються документи і надається можливість здійснювати їх видалене редагування. При цьому ConferenceXP оптимізована для роботи в середовищах з низькими пропускною спроможністю і надійністю каналів зв'язку, наприклад в бездротових мережах або Інтернеті.

В цілому ConferenceXP представляється достатньо привабливим вибором, коли йдеться про впровадження P2P-подхода в учбовому процесі в середовищі, заснованому на технологіях Microsoft. Початковий код проекту відкритий і може вільно застосуються в некомерційних цілях, а спеціалізація платформи у сфері освіти привернула увагу багатьох прогресивних західних вузів, які вже щосили використовують ConferenceXP для проведення конференцій, організації дистанційного навчання і т.д.

ConferenceXP надає розширювану основу для розробки систем для спільної роботи і проведення конференцій. За допомогою ConferenceXP користувачі можуть взаємодіяти один з одним усередині віртуального простору для спільної роботи, так званого VENUE. Збагачуючи традиційну методику навчання, технологія ConferenceXP полегшує створення розподілених застосувань для спільної роботи за допомогою ряду властивостей. У даній роботі були використані наступні:

ConferenceXP є застосуванням типу peer-to-peer, тобто дані пересилаються між клієнтами безпосередньо, а центральний сервер не використовується;

для підтримки багатьох користувачів і мінімізації мережевого трафіку ConferenceXP використовує технологію багатоадресного віщання (multicast);

ConferenceXP підтримує традиційне одноадресне віщання в режимі точка-точка в мережах, які не підтримують багатоадресне віщання.

2.2 Загальна характеристика технології побудови розподіленої мережі Peer-to-Peer

Peer-to-peer (або P2P) -- це технологія, в якій кожен вузол може одночасно виступати як в ролі одержувача, так і постачальника інформації.

Використання комп'ютерних технологій починалося з часу, коли ЕОМ займала цілу будівлю і можна сказати, що користувач входив в машину в буквальному розумінні. Не виключено, що через якийсь час чіпи ЕОМ вбудовуватимуться в організм людини. Але впродовж достатньо тривалого часу доступ до ресурсів машини здійснювався через видалений термінальний пристрій. Саме ця схема породила алгоритм взаємодії сервера та клієнта. Пізніше, коли термінальним пристроєм стала персональна ЕОМ, клієнт і сервер стали часом мінятися місцями, але суть взаємодії зберігалася колишньою. Алгоритм сервер клієнта припускає взаємодію по схемі „точка” - „точка”.

Перші локальні мережі (Ethernet), не дивлячись на однорідність топології, логічно функціонували згідно алгоритму клієнт-сервер. У міру розвитку мережевих технологій число серверів в мережі росло, з'явилася функціональна диференціація (DB, DNS, mail і т.д.), але і на цьому рівні взаємодія у будь-який момент часу будувалася за схемою клієнт-сервер.

Інтернет відкрив можливість рівноправної взаємодії для мільйонів користувачів мережі, але навіть це в перші роки алгоритмічно мало що поміняло. Це може показатися парадоксальним, Інтернет, який побудований по неієрархічній схемі, до недавнього часу на прикладному рівні використовував ієрархічну схему обміну.

На початку 90-х років почали широко використовуватися технології мультикастинга, зокрема MBONE. Техніка мультикастинга в поєднанні з відповідними протоколами маршрутизації (наприклад, PIM) і засобами забезпечення якості обслуговування (RSVP-TE і MPLS-TE) ідеально підходить для транспортування мультимедіа і зокрема для цифрового телебачення через Інтернет.

На початку 90-х стали полягати пірінгові (peer-peer) угоди між провайдерами сервісу, але і це було лише новим підходом в політиці маршрутизації. Мережі ICQ, наприклад, як і раніше будуються за схемою клієнт-сервер, хоча в деяких режимах реалізується схема взаємодії точка-мультиточка.

Вперше термін «peer-to-peer» була використаний в 1984 році компанією IBM в розробці мережевої архітектури для побудови динамічної маршрутизації через комп'ютерні мережі з довільною топологією - «Advanced Peer to Peer Networking».

Рис. 2.1 Загальна схема взаємодії комп'ютерів P2P-мережі

У основі технології лежить принцип децентралізації, тобто всі вузли в мережі P2P - рівноправні (рис 2.1). Цей принцип, забезпечив такі переваги технології P2P перед клієнт-серверним підходом, як відмовостійкість до втрати зв'язку з вузлами мережі, збільшення швидкості копіювання за рахунок копіювання відразу з декількох джерел, можливість розділення ресурсів без прив'язки до конкретних IP-адрес, величезна потужність мережі в цілому та ін.

Створювані системи на початку ставили вузьку мету - прискорення отримання копії файлу, іноді за рахунок скорочення смуги і мережевих можливостей конкуруючих процесів і користувачів. У цих системах використовувалася особливість протоколу ТСР, розподіляючого смугу пропускання порівну між конкуруючими процесами. Якщо один з користувачів запустив 10 обмінних процесів, а конкурент - тільки 1, останній одержить в 10 разів меншу смугу пропускання. Може здатися, що схема, показана на рис. 2.2 не є в чистому вигляді P2P, оскільки в ній реалізований принцип - декілька серверів обслуговують одного клієнта. Мережеві об'єкти тут не є рівноправними. Але завдяки тому, що клієнтом в наступний момент може стати будь-який інший вузол мережі або навіть група вузлів, цю схему можна вважати класичним випадком реалізації алгоритму Р2Р. Більш того, цей тип мережі є на даний момент найбільш масовим.

Рис. 2.2 Схема розподілу інформації в P2P - мережах

Відмовостійкість, властива алгоритмам Р2Р, може стати причиною впровадження цієї технології для управління технологічно небезпечними виробництвами, наприклад, атомними електростанціями. Тут важливо, щоб вузли Р2Р не розташовувалися в одному і тому ж приміщенні і не були підключені до загальних каналів живлення. Вихід з ладу частини машин, що управляють, може зменшити функціональність, але не керованість системи.

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

Для підтримки надійності обміну можуть використовуватися самі різні технології, зокрема, протокол FEC (Forward Error Correction) або MDC (Multi Description Coding) у разі транспортування мультимедійних даних, коли повторна передача пакетів неможлива або украй небажана.

Незамінними можуть виявитися системи Р2Р в банківському бізнесі, де важливе збереження даних і висока надійність розрахунків. Методики дублювання в банківських системи використовуються вже достатньо давно.

Широко використовувані зараз розподілені обчислювальні системи типу GRID є окремим випадком реалізації технології Р2Р.

Так, за деякими даними, в даний час в мережі Internet більше половини всього трафіку доводиться на трафік файлообмінних P2P мереж, а розміри найбільших з них перевалили відмітку в мільйон одночасно працюючих вузлів, що розділяють петабайты (1015 байт) інформації. Загальна кількість зареєстрованих учасників файлообмінних мереж P2P у всьому світі складає більше ніж сто мільйонів.

Хоча в першу чергу P2P-сети використовуються зараз для розділення файлів, існує ще багато інших областей, де дана технологія також успішно застосовується. Це телебачення і аудіо трансляції, паралельне програмування, розподілене кешування ресурсів для розвантаження серверів, розсилка повідомлень і статей, підтримка системи доменних імен, індексування розподілених ресурсів і їх пошук, резервне копіювання і створення стійких розподілених сховищ даних, обмін повідомленнями, створення систем-серверів стійких до атак типу «відмова в обслуговуванні», розповсюдження програмних модулів. Є величезна кількість клієнтських програм для роботи з P2P-сетями, як комерційних, так і з відкритим кодом. Постійно йде робота по удосконаленню протоколів і збільшенню функціональності систем, і, судячи з усього, недалекий той момент, коли клієнтське програмне забезпечення для P2P буде інтегровано з операційними системами. Так, вже зараз крупні компанії виявляють цікавість, або впритул займаються Р2Р, наприклад, компанія Sun розробляє протокол, що підтримує доступ до основних P2P-сетям для кишенькових комп'ютерів і смартфонов, компанія Microsoft створила реалізацію протоколів P2P Scribe і Pastry.

2.3 Протоколи обміну даними та особливості організації P2P мереж

Протоколами забезпечується рівномірний розподіл ключів ресурсів разом з ідентифікаторами вузлів, що опублікували даний ресурс, по всіх вузлах (або по деяких виділених вузлах та/або серверах), зареєстрованих в мережі. Завдання пошуку ресурсу зводиться до знаходження ID вузла, на якому зберігається ключ ресурсу.

Рис. 2.3 Розподіл ключів ресурсів по вузлах мережі. Пошук ресурсу

На рис. 2.3 приведений приклад чистої P2P мережі, створеної по протоколу DHT Kademlia. На рисунку до мережі, здатної підтримувати максимум 16 вузлів і 16 ресурсів, під'єдналися 7 вузлів (чорні кухлі), що розділяють 12 ресурсів (номери в білих прямокутниках). Вузлам привласнені відповідні ID, ресурсам привласнені ключі. Ключі разом з адресами вузлів (адреси на малюнку не показані), що опублікували їх, рівномірно розподілені між вузлами мережі. На рисунку зображено, які ключі зберігаються і на яких вузлах.

Вузол з ID 0 хоче знайти ресурс, відповідний ключу 14, для цього посилає запит на пошук. Запит проходить певний маршрут і досягає вузла, на якому знаходиться ключ 14. Далі вузол ID 14 пересилає вузлу ID 0, адреси всіх вузлів, що володіють ресурсом, відповідним ключу 14.

Причинами великого зростання популярності мереж P2P є привабливі ідеї даної технології: децентралізація, розподіленість і самоорганізація мережі. Ці принципи забезпечують такі переваги мережі, як простота і дешевизна впровадження і підтримка, відмовостійка, масштабованість, збільшення швидкості копіювання, колосальна потужність мережі в цілому.

Багато адміністраторів прагнуть заблокувати або відфільтрувати інформаційні потоки файлообменных мереж, наприклад, BitTorrent. Це достатньо легко зробити. Першим байтом в поле даних ТСР-сегменту є код 19 (=0х13), за яким слідує 19 байтів даних BitTorrent. Використовуючи цю сигнатуру, можна блокувати такий потік даних або привласнити йому потрібний пріоритет.

Для ініціалізації вузла, наприклад, в клієнтська програма звертається до сервера, що надає інформацію про файли доступних для копіювання, а також статистичну і маршрутну інформацію про вузли мережі. Сервер і після ініціалізації допомагає вузлам взаємодіяти один з одним.

Якщо вузол хоче опублікувати файл, то програма розділяє файл на частини і створює файл метаданих з інформацією про частини файлу, місцезнаходження, і, опціонально, місцезнаходження сервера, який підтримуватиме розповсюдження цього файлу. Перший вузол, що опублікував файл, називається розповсюджувачем. Вузол, охочий скопіювати файл, сам стає розповсюджувачем, за принципом «скільки копіюю я, стільки дозволяю скопіювати у мене». Вузли, що скопіювали весь файл стають розповсюджувачами для цього файлу, і, разом з вузлами, що не повністю скопіювали, дають можливість іншим вузлам одержувати частини файлу з декількох джерел, що прискорює копіювання.

Існують модифікації протоколів, які дозволяють працювати з файлами метаданих, не прив'язаними до серверів.

Одна з перших пірінгових мереж, Gnutella, була створена в 2000 році. Мережа функціонує дотепер, хоча із-за серйозних недоліків алгоритму користувачі зараз віддають перевагу мережі Gnutella2. Клієнт, що підключився, одержує від вузла, з яким йому вдалося з'єднатися, список з 5 активних вузлів, посилає їм запит на пошук ресурсу по ключовому слову. Вузли шукають у себе відповідні запиту ресурси і, якщо не знаходять, пересилають запит своїм активним вузлам вгору по дереву, поки не знайдеться ресурс або не буде перевищене максимальне число кроків. Такий пошук називається розмноженням запитів. За допомогою протоколу також відстежується, щоб топологія створюваної мережі вузлів мала деревовидну структуру графа.

Зрозуміло, що подібний алгоритм веде до експоненціального зростання числа запитів і, відповідно, на верхніх рівнях може привести до відмови в обслуговуванні, що і спостерігалося на практиці неодноразово. Розробниками були проведені роботи по поліпшенню алгоритму, введені правила, відповідно до яких запити можуть пересилати вгору по дереву тільки певні вузли - так звані виділені вузли, решта вузлів може лише посилати їм запити.

Недоліки протоколу Gnutella ініціювали розробки принципово нових алгоритмів пошуку маршрутів і ресурсів, і привели до створення групи протоколів DHT (Distributed Hash Tables), зокрема протоколу Kademlia, який зараз широко використовується в найбільш крупних мережах.

Запити в мережі Gnutella пересилаються по tcp або udp, копіювання файлів відбувається за допомогою протоколу http. Останнім часом з'явилися розширення для клієнтських програм, що дозволяють копіювати файли по udp, робити xml-запити метаінформації про файли.

У 2003 році з'явився принципово новий протокол Gnutella2. Відповідно до даного протоколу, деякі вузли стають концентраторами, інші є звичайними вузлами. Кожен звичайний вузол має з'єднання з одним-двома концентраторами. У концентратора є зв'язок з сотнями звичайних вузлів і десятки з'єднань з іншими концентраторами. Кожен вузол періодично пересилає концентратору список ідентифікаторів ключових слів, по яких можуть бути знайдені публіковані даним вузлом ресурси. Ідентифікатори зберігаються в загальній таблиці на концентраторі. Коли вузол хоче знайти ресурс, він посилає запит по ключовому слову своєму концентратору, який або знаходить ресурс в своїй таблиці і повертає ID-вузла, що володіє ресурсом, або повертає список інших концентраторів, які вузол знов запрошує по черзі, випадковим чином. Такий пошук називається пошуком за допомогою методу блукань.

Для поліпшення якості пошуку використовуються метадані файлів - інформація про зміст, рейтинг. Примітною особливістю даної мережі є можливість розмноження інформації про файл в мережі без копіювання самого файлу, що дуже корисно для відстежування вірусів.

Для пакетів в Gnutella2, що передаються, розроблений власний формат, схожий на xml, що гнучко реалізовує можливість нарощування функціональності мережі, шляхом додавання додаткової службової інформації. Запити і списки ID ключових слів пересилаються по udp.

Мережа EDonkey2000 з'явилася в 2000 році. Інформація про наявність файлів публікується клієнтом на численних серверах у вигляді ed2k посилань, що використовують унікальний ID ресурсу. Серверне ПО доступно для установки будь-яким користувачем. Сервер забезпечує пошук вузлів і інформації. Зараз в мережі є від 100 до 200 серверів, обслуговуючих одночасно близько мільйона користувачів, що використовують близько мільярда різних файлів. Загальна кількість зареєстрованих користувачів складає близько 10 мільйонів. Коли клієнт копіює бажаний ресурс, він копіює його одночасно з декількох джерел за допомогою MFTP (Multisource File Transfer Protocol).

В даний час інформацію про доступні файли можна одержувати не тільки з серверів eDonkey. З 2004 року до складу мережі EDonkey2000 інтегрована мережа Overnet - повністю децентралізована мережа, що дозволяє здійснювати взаємодію між вузлами без прив'язки до серверів, для чого використовується DHT протокол Kademlia.

Клієнт EDonkey має дуже цікаве розширення, що дозволяє копіювати метафайли, які користуються великою довірою користувачів, а також використовувати інформацію, верифікації, з метафайлів для роботи з файлами власної мережі.

Така інтеграція можливостей різних мереж і додаткова верифікація сприяли розвитку EDonkey2000, у яку почали переходити користувачі інших мереж, наприклад, мережі FastTreсk, що базується на протоколі FastTreсk, а найбільш популярним клієнтом є Kazaa.

Провайдери мережевих послуг, наприклад, провайдери домашніх мереж, а також адміністратори компаній, до недавнього часу прагнули блокувати на своїх файерволах порти, через які спілкуються клієнти мереж Bittorrent eDonkey2000, Gnutella, Fasttreck.

Тому користувачам залишилася тільки можливість використовувати локальні пірінгові мережі. Найбільш зручною для цього виявилася мережа Direct Connect (DC).

Клієнти підключаються до одному або декількох серверів для пошуку файлів. Сервери не зв'язані між собою. Інформація про файли, доступ до яких вузол хоче відкрити, відсилається на сервер. Копіювання файлів відбувається безпосередньо між вузлами, як і в класичній P2P мережі.

У клієнті вбудовані можливості для спілкування учасників мережі, список файлів кожного користувача можна одержувати у вигляді деревовидної структури тек, є простий механізм пошуку інформації, існує можливість копіювання цілих каталогів. Перераховані можливості зробили мережу DC ідеальним рішенням для локальної файлообмінної мережі P2P.

2.4 Концепція побудови інтерактивного інтерфейсу користувача

На перших етапах розвитку обчислювальної техніки інтерфейс користувача розглядався як засіб спілкування людини з операційною системою і був досить примітивним. В основному він дозволяв запустити завдання на виконання, зв'язати з ним конкретні дані і виконати деякі процедури обслуговування обчислювальної установки.

З часом мірі вдосконалення апаратних засобів з'явилася можливість створення інтерактивного програмного забезпечення, що використовує спеціальні інтерфейси користувача. В даний час основною проблемою є розробка інтерактивних інтерфейсів до складних програмних продуктів, розрахованим використання непрофесійними користувачами. В останні роки були сформульовані основні концепції побудови таких інтерфейсів користувача і запропоновано декілька методик їх створення.

Інтерфейс користувача являє собою сукупність програмних і апаратних засобів, що забезпечують взаємодію користувача з комп'ютером. Основу такої взаємодії складають діалоги. Під діалогом в даному випадку розуміють регламентований обмін інформацією між людиною і комп'ютером, спрямований на вирішення конкретної задачі.

Обмін інформацією здійснюється передачею повідомлень і керуючих сигналів. Повідомлення - порція інформації, яка бере участь у діалоговому обміні. За направленням передачі інформації розрізняють:

- Вхідні повідомлення, які генеруються людиною за допомогою засобів вводу (клавіатури, миші і т.п.);

- Вихідні повідомлення, які генеруються комп'ютером у вигляді текстів, звукових сигналів і / або зображень і виводяться користувачеві на екран монітора, або інші пристрої виведення інформації.

В основному користувач генерує повідомлення наступних типів: запит інформації, запит допомоги, запит операції або функції, введення або зміна інформації і т.д. У відповідь він отримує: підказки чи довідки, інформаційні повідомлення, які не потребують відповіді, накази, які вимагають втручання, повідомлення про помилки, які потребують діях у відповідь, і т.д.

За аналогією з процедурним і об'єктним підходом до програмування розрізняють процедурно-орієнтована і об'єктно-орієнтована підходи до розробки інтерфейсів.

Процедурно-орієнтовані інтерфейси надають користувачеві можливість виконання деякого набору дій, для яких можуть вводитися відповідні вихідні дані. Вся робота з програмою зводиться до вибору дії, яку треба виконати (якщо такий вибір надається), введення даних (при необхідності) і обробці отриманих результатів.

Об'єктно-орієнтовані інтерфейси використовують дещо іншу модель взаємодії з користувачем, орієнтовану на маніпулювання об'єктами предметної області.

Процедурно-орієнтовані інтерфейси, в свою чергу, можна розділити на кілька підтипів: консольні, меню і з вільною навігацією.

Консольним називають інтерфейс, який організовує взаємодію з користувачем на основі послідовного введення і виведення інформації у текстовому режимі за принципом «питання-відповідь». Зазвичай такий інтерфейс реалізує конкретний сценарій роботи, наприклад: введення даних - рішення задачі - висновок результату.

Рис. 2.4 Приклади алгоритмів програми з консольним інтерфейсом

Інтерфейс-меню, на відміну від консольного інтерфейсу, дозволяє користувачеві вибирати необхідні операції зі спеціального списку, що виводиться йому програмою. У цьому типі інтерфейсів послідовність дій вибирається самим користувачем. Розрізняють однорівневі і ієрархічні меню. Перші використовують для порівняно простих випадків, коли варіантів небагато (не більше 5-7), і вони включають операції одного типу, наприклад, Створити, Відкрити, Закрити і т.п. Другі застосовуються при великій кількості варіантів, або їх очевидних відмінностях, наприклад, операції з файлами та операції з даними, що зберігаються в цих файлах.

Рис. 2.5 Структура програми с інтерфейсом-меню

Алгоритм програми з багаторівневим меню зазвичай будується за рівнями, причому вибір команди на кожному рівні здійснюється так само, як для однорівневого меню.

На відміну від інтерфейсу-меню, інтерфейс з вільною навігацією забезпечує можливість здійснення будь-яких допустимих в конкретному стані операцій, доступ до яких можливий через різні інтерфейсні компоненти. На даний момент сформувався стандартний набір компонентів для користувача інтерфейсу, які широко застосовуються в самих різноманітних програмах і підтримуються багатьма операційними системами та бібліотеками. Оскільки навіть різні реалізації цих компонент підкоряються деяким загальним принципам управління, інтерфейси, побудовані на їх основі, звичні і зрозумілі будь-якому користувачеві. Це є безперечною гідністю інтерфейсів з вільною навігацією.

3. Створення Windows-додатків на основі Visual C#

3.1 Основи роботи з Visual Studio .NET

Існує величезна кількість версій продукту Visual Studio, причому до появи цієї нової версії видавалося, що в Microsoft забули про підтримку ентузіастів, які власне і зробили продукти для розробників найпопулярнішими. Не має сенсу говорити про те, що відчували користувачі, коли Microsoft намагалася зрушити їх від Visual Basic 6.0 до .NET-версії продукту, досить сказати, що деякі просто відмовлялися розуміти, що все змінилося.

У квітні 2008 року Microsoft випустила попередню версію Visual Studio, перероблену Visual Studio .NET 2008. Цей продукт був прив'язаний до випуску Windows 2008 і вважався невеликим оновленням. Випуск Visual Studio .NET 2008 мав на увазі глибоку інтеграцію з широкими новими можливостями Windows Server 2008, наприклад, UDDI, Web-службами і .NET Framework. Windows Server 2003 була першою версією Windows, що поставлялася з інтегрованою середою .NET Framework.

В даний час Visual Studio 2008 є високоефективною середою професійного розробника, яка вільно сполучає декілька технологій, що надають розробникам безпрецедентні можливості для створення додатків Windows, Web-служб, Web-додатків, сайтів і так далі. Звичайно, це зажадало від Microsoft набагато більше часу, чим планувалося для розробки даного комплекту продуктів. На думку фахівців Microsoft, це обумовлено тим, що рівень інтеграції, який вони пропонують у всіх продуктах Visual Studio і SQL Server, має особливий характер. Ось що сказав Девід Кемпбелл, генеральний менеджер SQL Server в Microsoft:

"Ми починали інтеграцію, не маючи уявлення про те, як це робиться. Розробка зайняла дуже багато часу, і ми самі багато що взнали в процесі роботи".

У Visual Studio 2008 на самому нижньому рівні знаходяться нові Express-версії (Express Edition) для Visual Basic, Visual C#, Visual C і Visual J, а також новий продукт, званий Visual Web Developer, який коштуватиме дуже дешево. Цей продукт призначається для ентузіастів, незалежних розробників і студентів.

На верхньому сегменті ринку в Microsoft тепер є три нові версії Visual Studio: Team Edition for Software Architects, Team Edition for Software Developers і Team Edition for Software Testers - відповідно, версії для команд архітекторів, розробників і випробувачів програмного забезпечення. Додатково до цього розроблена версія Team Foundation Server - це серверний продукт, який надає засоби для контролю, тестування і автоматизації процесів.

Нові ж версії Express надають унікальну можливість навчання розробці програмного забезпечення або Web-сторінок. Ці продукти призначені для початкуючих користувачів, студентів і для представників малого бізнесу. Вони містять доступніші і стислі версії основних продуктів Visual Studio і відрізняються від повних комплектів продуктів. По суті, продукту Visual Studio 2008 Express Edition немає. Ви просто вибираєте комплекти Express Edition з Visual Basic, Visual C#, Visual C і Visual J . Plus і, додатково, новий Visual Web Developer, про яке я раніше згадував, і вільну версію SQL Server 2008, яка називається SQL Server 2008 Express Edition.

Кожен з цих продуктів включає декілька наборів для початківців - Starter Kit. Вони є заздалегідь побудованими додатками, які можуть вивчати початкуючі розробники. Проте додатки Start Kit служать не лише для демонстрації: вони повністю працездатні і надзвичайно корисні як реальні застосування. У Microsoft передбачають, що скоро з'явиться широкий спектр пропозицій безкоштовного і умовно безкоштовного програмного забезпечення, яке буде побудовано за допомогою Starter Kit. Наприклад, Visual Basic 2008 Express Edition і Visual C# 2008 Express Edition включають в Starter Kit приклади для побудови охоронця екрану і створення додатка для монтажу фільмів.

Кожна Express-редакція включає набір підручників, документацію для початківців і посилання на загальнодоступні ресурси, на зразок тематичних конференцій і форумів. Під час установки можна по вибору завантажити і встановити MSDN 2008 Express Edition Library, яка включає повний набір документації по кожному продукту серії Express. Вона призначається в основному для навчання розробників, це не зовсім традиційна документація MSDN Library. Частина цієї документації навіть посилається на відеоматеріали і презентації на сайті MSDN, що вельми коштовно.

Продукт Visual Web Developer 2008 Express Edition особливо хороший. Visual Web Developer 2008 Express має дві істотні переваги перед Frontpage: перше - можна відкривати і приховувати сегменти кодів, залишаючи відкритими лише ті частини коду, які потрібні для роботи; друге - для створення локального Web-сайта не потрібний Web-сервер Microsoft IIS. Так, Visual Web Developer 2008 Express Edition працює з сайтами IIS, FTP і Windows Sharepoint Services, але також можна створити повнофункціональний Web-сайт з порожньої Web-папки.

Обмеження існують в Express версіях: відсутній доступ до видалених даних; ці версії використовують лише локально встановлене джерело даних (включаючи безкоштовний продукт SQL Server 2008 Express Edition). Розробляти додатки для мобільних пристроїв в VB Express, Visual C# Express або Visual C Express не можна; необхідно буде відновити їх до Visual Studio 2008 Standard Edition, щоб дістати такі можливості. Звичайно, відсутні всі професійні можливості версій Visual Studio Team System, наприклад, моделювання додатків і кодів, перевірка модулів, статичний аналіз коду і т.д.

Продукти Express Edition уроздріб коштують всього 49 дол. за редакцію. Це вигідно для будь-якого розробника-початківця. Microsoft не чекає величезної прямої прибули від цих продуктів, добиваючись того, щоб вони стали відкритими для ширшої аудиторії. Ерік Раддер, віце-президент Microsoft, пояснив: "Це дійсно веде до розширення бази користувачів. Ми намагаємося розширити комерційну екосистему Microsoft. Дешеві і доступні продукти допоможуть початківцям і студентам підвищити свою кваліфікацію в простому і зручному середовищі".

Microsoft Visual Studio .NET - це інтегроване середовище розробки (Integrated Development Environment (IDE)) для створення, документування, запуску і відладки програм, написаних на мовах .NET. Це могутній інструмент професійної розробки складних додатків. Набір його функцій надзвичайно великий, розглянемо його основні елементи.

Коли ми запускаємо Visual Studio .NET, то бачимо наступне вікно:

Рис. 3.1 Головне вікно середовища розробки

Початкова сторінка (Start Page) містить наступні вкладки: Projects, Online Resources і My Profile. За умовчанням ми знаходимося на вкладці Projects, на якій розташований список недавніх проектів. Ми можемо перейти по гіперпосиланню від назви проекту і відразу продовжити роботу над ним. На цій же вкладці розташовані кнопки New Project і Open Project, по натисненню на які ми запустимо діалогові вікна створення нового або відкриття існуючого документа відповідно.

На вкладці Online Resources відображаються групи новин, заголовки і посилання ресурсів розробників. Ця опція доступна, коли комп'ютер підключений до Інтернету.

Вкладка My Profile дозволяє налаштувати інтерфейс Visual Studio .NET по своєму смаку. Якщо є досвід роботи з іншими пакетам розробки, то можна вибрати звичну розкладку клавіатури, розташування вікон в цій категорії. Тут же можна задати дію при запуску, наприклад, відкриття діалогового вікна створення проекту.

Рис. 3.2 Визначення дії при запуску програми

Панелі, що ховаються, розташовані з боків вікна, -- такі як зображені на рис. 3.1 Server Explorer або Toolbox, -- можна висунути, просто клацнувши на них. Ми можемо закріпити їх на екрані, натиснувши на значок, або зовсім прибрати з екрану, а потім знову відобразити, використовуючи відповідний пункт меню View (або еквівалентне поєднання клавіш).

Головне вікно Visual Studio.NET, подібно до інших додатків Windows, містить рядок меню, що включає наступні категорії (коли ми знаходимося на Start Page, частина категорій не видно - вона з'явиться пізніше, коли буде створений проект):

Рис. 3.3 Рядок меню Visual Studio .NET

У цих категоріях розташовані наступні команди:

File -- відкриття, створення, додавання, закривання, друк і інш.

Edit -- стандартні команди правки: копіювання, вставка, вирізування і інш.

View -- команди для утаєння і відображення всіх вікон і панелей інструментів.

Project -- команди для роботи з проектом: додавання елементів, форм, посилань і інш.

Build -- команди компіляції програми.

Debug -- команди для відладки програми.

Data -- команди для роботи з даними.

Format -- команди форматування елементів, що розташовуються (вирівнювання, інтервал і інш.).

Tools -- команди додаткових інструментів і настройки Visual Studio .NET.

Window -- управління розташуванням вікон.

Help -- довідка.

3.2 Форми

Всякий раз, коли ми працюємо з якою-небудь програмою, ми бачимо на екрані прямокутне вікно. У цьому вікні і розташовується вся інформація, яка нам потрібна. Форми можуть мати стандартний вигляд, такий, наприклад, як у програми Microsoft Word. Отже, форма -- це екранний об'єкт, що забезпечує функціональність програми.

Запускаємо Visual Studio .NET, вибираємо File/New/Project -- з'являється діалогове вікно (Ctrl+Shift+N приводить до того ж результату), в якому вибираємо Visual C# Project і Windows Application.

У полі Name задаємо ім'я проекту -- FirstForm і зберігаємо його в теку, визначувану полем Location. Одержану теку ви зможете згодом перемістити на інший комп'ютер і продовжити роботу -- в ній знаходитимуться всі створювані нами файли цього проекту. На екрані з'явилася порожня Windows-форма.

Після того, як ми створили новий проект, можна побачити основні частини середовища розробки.

Рис. 3.4 Створення нового проекту

Рис. 3.5 Головне вікно програми в режимі розробки

3.3 Вікно «Провідник проекту»

Вікно Solution Explorer (провідник проекту, View --> Solution Explorer, або поєднання клавіш Ctrl+Alt +L) містить компоненти, що входять до складу проекту. Пункти контекстного меню цього вікна (що викликається натисненням правої кнопки миші) дозволяють змінювати вміст проекту, а також додавати нові компоненти.

Рис. 3.6 Контекстне меню вікна Solution Explorer

При створенні нового проекту Solution Explorer містить компоненти, створені шаблоном . Каталог References містить посилання на класи, використовувані в проекті за умовчанням.

Рис. 3.7 Компоненти, що входять до складу нового додатку

Подвійне клацання миші на підкаталогах References запускає вікно Object Browser (провідник об'єктів, View --> Object Browser, або поєднання клавіш Ctrl+Alt+J). Вікно Object Browser, у свою чергу, є вичерпним засобом отримання інформації про властивості об'єктів. Так абстрактний клас brush успадковується від класу System.MarshalByRefObject і містить методи Clone, Dispose(bool), Dispose і Finalize. visual програмний інтерактивний модуль

Рис. 3.8 Вікно Object Browser

Можна одержувати короткий опис будь-якого методу, класу або властивості, просто клацнувши на ньому, -- на інформаційній панелі негайно відобразиться коротка довідка. Для досвідченого розробника Object Browser -- незамінний помічник в роботі, набагато зручніший, ніж довідка.

Файл App.ico містить зображення іконки, яке на формі розташоване у верхньому лівому кутку. Файл AssemblyInfo.cs містить інформацію про наш додаток. При створенні дистрибутива в цей файл поміщається інформація програми, використовувана в технічних цілях, а також цифровий ключ.

3.4 Вікно Class View

Вікно Class View -- (огляд класів, View --> Class View, або поєднання клавіш Ctrl+Shift+C), дозволяє переміщатися в коді по вибраному об'єкту; містить методи, класи, дані всього лістингу проекту. Для переходу, наприклад, в метод Main клацаємо на відповідній назві у вікні Class View.

Рис. 3.9 Вікно Class View. Дозволяє швидко переміщатися за кодом всього проекту

3.5 Вікно Properties Window

Вікно властивостей Properties -- основний інструмент настройки форми і її компонентів. Вміст цього вікна є всім списком властивостей вибраного в даний момент компоненту або форми. Викликається це вікно декількома способами -- в меню View вибираємо пункт Properties Window (або використовуємо клавішу F4), на вибраному об'єкті клацаємо правою кнопкою миші і в контекстному меню пункт Properties вибираємо об'єкт і натискаємо F4 або просто вибираємо об'єкт і переходимо у вікно Properties. Коли ми тільки створили проект, у вікні Properties відображаються властивості самої форми.

Рис. 3.10 Вікно властивостей Properties

3.6 Вікно панелі інструментів

Вікно Toolbox (панель інструментів, View --> Toolbox, або поєднання клавіш Ctrl+Alt+X) містить компоненти Windows-форм, звані також елементами управління, які розміщуються на формі. Воно складається з декількох закладок: My User Controls, Components, Data, Windows Forms і General:

Рис. 3.11 Вікно Toolbox

Закладкою, що найбільш часто вживається, є Windows Forms. Для розміщення потрібного елементу управління досить просто клацнути на ньому у вікні Toolbox або, схопивши, перетягнути його на форму. Перемикання виду значків дозволяє розмістити їх без смуги прокрутки.

Рис. 3.12 Представлення елементів у вигляді списку

Рис. 3.13 Представлення елементів у вигляді значків

У вікні Toolbox доступно відображення всіх закладок.

Рис. 3.14 Встановлюємо галочку "Показати всі закладки"

Рис. 3.15 Повний список закладок

Закладка My User Controls дозволяє зберігати власні списки елементів управління:

Рис. 3.16 Додавання закладки

Рис. 3.17 Власна закладка "Моя закладка для First Form"

Рис. 3.18 Відновлення значень за умовчанням

Створені таким чином закладки можна перейменувати або видалити, вибравши в контекстному меню пункти Rename Tab і Delete Tab відповідно.

Якщо в результаті всіх експериментів ми побачимо, що поточний вид вікна Toolbox сильно відрізняється від первинного, для відновлення значень за умовчанням виберіть в контекстному меню будь-якої закладки пункт Add/Remove Items. У вікні, що з'явилося, натисніть на кнопку Reset. З'являється вікно попередження -- "Настройки Toolbox будуть відновлені. Всі призначені для користувача закладки будуть видалені. Продовжувати?" Погодившись з попередженням, ви побачите вид Toolbox за умовчанням.


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.