- •1 Завдання
- •1.1 Постановка задачі
- •2.1 Static Maps api v2 Керівництво розробника
- •2.2.1 Широти та довжини
- •2.2.2 Рівні збільшення
- •2.2.3 Формат зображення
- •2.2.4 Типи карт
- •3 Визначення служби windows
- •3.1 Служба Windows
- •3.2 Життєвий цикл служби
- •4 Особливості реалізації сервісу
- •4.2Діаграма класів застосування :
- •Висновки
- •Перелік посилань
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ІМЕНІ ТАРАСА ШЕВЧЕНКА
Кафедра комп’ютерної інженерії
ПОЯСНЮВАЛЬНА ЗАПИСКА
до курсової роботи з дисципліни
"СИСТЕМНЕ ПРОГРАМУВАННЯ"
Тема "Розробка Windows-служб "
Виконав студент III курсу групи КІ
радіофізичного факультету
Хижняк Андрій Андрійович
Керівник
Загороднюк Сергій Петрович
КИЇВ 2011
Робота демонструє можливості створення Windows-служб за допомогою мови програмування C#.
Загальний обсяг роботи складає 21 сторінку. Для ілюстрації програм використовується 6 рисунків, вказано 3 літературних джерела та міститься 1 додаток. Робота складається з двох частин: описової та практичної.
У першій частині розглянуто основні функціональні можливості FtpWebRequest, та WebRequest.
Також розглядаються основні принципи побудови Windows-служби та наведений короткий опис структури служби, що була використана при реалізації задач.
Друга частина реалізовує функціональність, що вказана у завданні.
Ключові слова: WINDOWS SERVICE, FTP, FtpWebRequest, C#, .NET
ЗМІСТ
Вступ 4
1 Завдання 5
1.1 Постановка задачі 5
2 FtpWebRequest 7
2.1 Огляд Протокол Ftp 7
2.1.1 Активний та пасивний режими 7
2.1.2 Анонімний вхід 7
2.1.3 Основні команди 8
2.2.4 FtpWebRequest 8
3 Хеш-функція 9
3.MD4. 10
3.2 SHA1. 10
3 Визначення служби WINDOWS 11
3.1 Служба WINDOWS 11
3.2 Життєвий цикл служби 11
4 Особливості реалізація сервісу 13
4.1 Вхідні дані 13
Висновки 14
Перелік посилань 15
Додатки 16
ВСТУП
Служби Windows - програми, що автоматично запускаються системою при запуску Windows і виконуються незалежно від статусу користувача. Мають спільні риси з концепцією демонів в Unix. Ці служби не містять елементів користувальницького інтерфейсу, можуть бути зупинені і запущені повторно і здатні автоматично запускатися при завантаженні комп'ютера. Ці особливості роблять служби ідеальним засобом для використання на сервері, а також у ситуаціях, коли необхідна довготривала робоча функціональність, що не заважає роботі користувачів на тому ж комп'ютері. Крім того, служби можуть запускатися в контексті безпеки певного облікового запису Windows, що відрізняється від поточного користувача або облікового запису комп'ютера за замовчуванням.
У більшості випадків службам заборонена взаємодія з консоллю або робочим столом користувачів (як локальних, так і віддалених), однак для деяких сервісів можливе виключення - взаємодія з консоллю (сесією з номером 0, в якій зареєстрований користувач локально або при запуску служби mstsc з ключем / console). Windows-Service створюється, як проект Microsoft Visual Studio, в проект поміщається код, що визначає, які команди можуть бути надіслані службі, і дії, які повинні бути виконані у відповідь на ці команди. Службі можуть бути послані команди запуску, зупинки, припинення та поновлення виконання.
Мета роботи полягає у вивченні технології створення служб Windows та створення демонстраційних функціональних програм з її використанням.
1 Завдання
1.1 Постановка задачі
Розробити Windows-службу “Google Maps Client”, яка за фактом розміщеної заявки отримує з сайту Google Maps за допомогою його API карту або супутникову фотографію потрібної місцевості і зберігає її в локальний каталог у вигляді BMP-файлу. На супутниковій фотографії не повинно бути ніяких позначень. Наявність або відсутність коректної заявки на завантаження карти залежить від параметра реєстру типу Multi-String:
HKLM/Software/Google_Maps_Client/Claim
Якщо цей параметр відсутній або має порожнє значення, це означає, що заявка відсутня, а отже повинен бути доданий наступний запис в журнал
C:\Windows\Logs\Google_Maps_Client_18-11-2011.log :
-----------------------------------------<Дата/час>------------------------------------------------------
Заявка відсутня
Коректна заявка означає наявність параметра Claim з чотирма строками відповідного формату. Масштаб 1 - найдрібніший. Масштаб 30 - найбільший, але в залежності від Google API числове значення масштабу можна змінити з 30 на інше.
Якщо параметр Claim має коректне значення, то повинен бути доданий наступний запис в журнал
C:\Windows\Logs\Google_Maps_Client_18-11-2011.log :
-----------------------------------------<Дата/час>------------------------------------------------------
ЗАЯВКА ПРИЙНЯТА!
Карта збережена під ім’ям 18-11-2011_21-45.bmp
Час завантаження 6 секунд
Після запису в журнал повинен бути вилучений параметр
HKLM/Software/Google_Maps_Client/Claim
Нарешті, якщо параметр Claim має непорожнє некоректне значення, що не відповідає наведеному вище формату, то повинен бути доданий наступний запис в журнал:
C:\Windows\Logs\Google_Maps_Client_18-11-2011.log :
-----------------------------------------<Дата/час>------------------------------------------------------
Заявка некоректна. Виправте або скасуйте заявку!
Кожен день повинен бути створений новий файл C:\Windows\Logs\Google_Maps_Client_18-11-2011.log . Журнали які створені більше ніж N місяців тому, повинні бути вилучені. N встановлюється в реєстрі в параметрі типу DWORD:
HKLM/Software/Google_Maps_Client/Log_Age
-
Google API
2.1 Static Maps api v2 Керівництво розробника
Google Static Maps API дозволяє вбудовувати зображення карт на веб-сторінки без використання JavaScript або динамічного завантаження сторінки. Служба Google Static Map створює карту, побудовану на URL параметрах, які передаються через стандартний запит HTTP і повертає карту у вигляді зображення, яке можна зберегти або відобразити на веб-сторінці.
2.2 Огляд Google Static Maps API повертає зображення (GIF, PNG або JPEG) у відповідь на запит HTTP через URL. Для кожного запиту, ви можете вказати місце розташування на карті, розмір зображення, масштаб, тип карти, а також розміщення додаткових маркерів в місцях розташування на карті.
2.2.1 Широти та довжини
Широта та довгота визначаються за допомогою цифр в HTTP запиті,які розділені комаю,і мають точність до 6 знаків після коми. Наприклад, "40.714728, -73,998672".
Значення довготи залежить від відстані до нульового меридіана.
Широти і довжини повинні відповідати дійсним значенням на землі. Широти можуть приймати будь-яке значення від -90 до 90, в той час, як довжини можуть приймати будь-які значення від -180 до 180. Якщо ви вкажете недійсні значення широт і довжин, ваша заявка буде відхилена як неправильний запит.