Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовой.doc
Скачиваний:
13
Добавлен:
13.04.2015
Размер:
854.53 Кб
Скачать

2 Постановка задачі

Метою курсового проекту є розробка веб проекту соціальної мережі «Моя сім’я» в яку входять такі функції:

- можливість зареєструватися на сайті;

- можливість занесення особистих даних;

- завантаження аватарки;

- пошук людей по їхній інформації про себе;

- пошук музики, відео, груп, каналів;

- можливість додавання людей у друзі ;

- можливість видалення людей з друзів;

- можливість писати та получати повідомлення;

- можливість слухати музику та дивитися завантажене відео та відеоканали;

- можливість створювати галереї з своїх фотографій та зображень;

- можливість створювати відео архіви;

- можливість створювати групи та запрошувати в них людей;

- можливість редагувати данні та аватар групи;

- можливість банити людей у своїй групі;

- можливість коментувати зображення;

- можливість заходити на сторінку друзів;

- можливість бачити хто є твоїм другом, та хто з них зараз на сайті;

- можливість редагування та видалення особистої інформації;

- зрозумілий інтерфейс для користувача;

- можливість грати в ігри.

3 ВИБІР ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ ДЛЯ ВИРІШЕННЯ ЗАДАЧІ

HTML (від англ. HyperText Markup Language - мова розмітки гіпертексту) - стандартний мова розмітки документів у Всесвітній павутині. Більшість веб-сторінок створюються за допомогою мови HTML (або XHTML).Мова HTML інтерпретується браузером і відображається у вигляді документа, в зручній для людини формі. Мова HTML був розроблений британським вченим Тімом Бернерсом-Лі приблизно в 1991-1992 роках у стінах Європейської ради з ядерних досліджень у Женеві (Швейцарія).HTML створювався як мова для обміну науковою і технічною документацією, придатний для використання людьми, які не є фахівцями в області верстки. HTML успішно справлявся з проблемою складності SGML шляхом визначення невеликого набору структурних і семантичних елементів - дескрипторів. Дескриптори також часто називають «тегами». За допомогою HTML можна легко створити відносно простий, але красиво оформлений документ. Крім спрощення структури документа, в HTML внесена підтримка гіпертексту. Мультимедійні можливості були додані пізніше. Спочатку мова HTML був задуманий і створений як засіб структурування та форматування документів і їх прив'язки до засобів відтворення (відображення).В ідеалі, текст з розміткою HTML повинен був без стилістичних та структурних викривлень відтворюватися на обладнанні з різною технічною оснащеністю (кольоровий екран сучасного комп'ютера, монохромний екран органайзера,обмежений за розмірами екран мобільного телефону або пристрою і програми голосового відтворення текстів).Проте сучасне застосування HTML дуже далеко від її початкової задачі. Наприклад, тег <TABLE> , Кілька разів використаний для форматування сторінки, яку ви зараз читаєте, призначений для створення в документах самих звичайних таблиць, але, як можна переконатися, тут немає жодної таблиці. З плином часу, основна ідея платформо незалежна мови HTML була віддана в своєрідну жертву сучасним потребам у мультимедійному і графічному оформленні.

Офіційною специфікації HTML 1.0 не існує. До 1995 року існувало безліч неофіційних стандартів HTML. Щоб стандартна версія відрізнялася від них, їй одразу присвоїли другий номер.

На сучасному етапі можна констатувати зростання популярності браузерів, наступних рекомендацій W3C (це Mozilla Firefox і інші браузери на движку Gecko; Safari,Google Chrome та інші браузери на движку WebKit; Opera з движком Presto). При цьому Internet Explorer поки зберігає лідируючі позиції. [3]

HTML я використовую для розмітки сторінок сайту та елементів таблиць.

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

JavaScript - мова підготовки сценаріїв, що дозволяє зробити Web-сторінки більш інтерактивними і функціональними. Після його вивчення ви зможете займатися розробкою Web-додатків на якісно новому рівні. Для написання сценаріїв JavaScript обов'язково потрібне знання мови HTML. Придивіться до сайтів, які ви відвідуєте. На кожній сторінці міститься текст і деяку кількість картинок. Бути може, є годинник, що показує час, або "що біжить текст у рядку стану браузера. Можливо, на сайті є форма, яку потрібно заповнити. Якщо пропустити яку-небудь графу анкети, то з'явиться повідомлення про помилку. На деяких сторінках зустрічаються рухаються по екрану зображення або текст, що змінюється при клацанні миші. Таким чином, ви можете спостерігати JavaScript в дії, а створити подібні ефекти може будь-яка людина, що знає цю мову. Рекомендація Слід поспостерігати за тим, що створюють за допомогою JavaScript інші розробники. Це відмінний спосіб знайти свіже рішення. Корисно вивчити JavaScript хоча б через його широкого розповсюдження в мережі. Величезна кількість Web-сторінок зроблено з використанням сценаріїв (по самих різних причинах), і сайти без них здаються бляклими й нудними. Яким би цікавим не був зміст сайту, деякі відвідувачі відразу захочуть піти. Звичайно, немає сенсу заперечувати важливість текстового змісту для будь-який Web-сторінки, однак використання JavaScript не тільки поліпшить подачу матеріалу, але й зробить вашу сторінку більш запам'ятовується. [4]

JavaScript використовую для асинхронного спілкування з БД та візуальних ефектів на стороні клієнта.

PHP (Hypertext Preprocessor - Препроцесор Гіпертексту) - це широко використовувана мова сценаріїв загального призначення з відкритим вихідним кодом. PHP - мова програмування, спеціально розроблений для написання web-додатків (скриптів, сценаріїв), що виконуються на Web-сервері. Синтаксис мови багато в чому грунтується на синтаксисі C, Java і Perl.Він дуже схожий на С і на Perl, тому для професійного програміста не складе праці його вивчити. З іншого боку, мова PHP простіше, ніж C, і його може освоїти веб-майстер, який не знає поки інших мов програмування. Величезним плюсом PHP, на відміну від, наприклад, JavaScript, є те, що PHP-скрипти виконуються на стороні сервера. PHP не залежить від швидкості комп'ютера користувача або його браузера, він повністю працює на сервері. Користувач навіть може не знати, чи отримує він звичайний HTML-файл або результат виконання скрипта.

Сценарії на мові PHP можуть виконуватися на сервері у вигляді окремих файлів, а можуть інтегруватися в html сторінки. PHP здатний генерувати і перетворювати не тільки HTML документи, але й зображення різних форматів - JPEG, GIF, PNG, файли PDF і FLASH. PHP здатний формувати дані в будь-якому текстовому форматі, включаючи XHTML і XML. PHP - кроссплатформенная технологія. Дистрибутив PHP доступний для більшості операційних систем, включаючи Linux, багато модифікації Unix, Microsoft Windows, Mac OS і багатьох інших. PHP підтримується на більшості веб-сервер, таких, як Apache, Microsoft Internet Information Server (IIS), Microsoft Personal Web Server і інших. Для більшості серверів PHP поставляється в 2-х варіантах - як модуль і як CGI препроцесора. PHP підтримує роботу з ODBC і велику кількість баз даних: MySQL, MSQL, Oracle, PostgreSQL, SQLite і ін. Мова програмування PHP, особливо в зв'язці з популярною базою даних MySQL - оптимальний варіант для створення інтернет-сайтів різної складності. Мова PHP постійно удосконалюється, і йому, напевно забезпечено довге домінування в області мов web-програмування. Нове розширення PHP 5 MySQLi (MySQL Improved) призначена для роботи з MySQL-сервером версій 4.1.2 і вище, реалізовуючи не тільки процедурний, але і об'єктно-орієнтований інтерфейс до MySQL. Додаткові можливості цього модуля включають - SSL, контроль транзакцій, підтримка реплікації і ін. Розширення SQLite дозволяє будувати програми, що зберігають дані у звичайних файлах, з можливістю використання до них інтерфейсу SQL. Головна перевага SQLite - виняткова простота використання. SQLite поряд з процедурними має також потужні об'єктно-орієнтовані можливості для роботи з даними. Інші відмінні особливості SQLite - висока швидкість, відсутність складних механізмів адміністрування, легка переносимість і пр. [5]

Мову PHP я використовую для роботи с даними та базою данних.

CSS (англ.Cascading Style Sheets - каскадні таблиці стилів) - технологія опису зовнішнього вигляду документа, написаного мовою розмітки. Переважно використовується як засіб оформлення веб-сторінок у форматі HTML і XHTML, але може застосовуватися з будь-якими видами документів у форматі XML, включаючи SVG і XUL. CSS використовується авторами та відвідувачами веб-сторінок для завдання кольорів, шрифтів, розташування та інших аспектів представлення документа. Основною метою розробки CSS було розділення вмісту (написаного на HTML або іншій мові розмітки) і представлення документа (написаного на CSS).Таке розділення може покращити сприйняття та доступність контенту, забезпечити більшу гнучкість та контроль за його поданням, а також зменшити складність і повторюваність в структурному вмісті. Крім того, CSS дозволяє представляти один і той самий документ у різних стилях або методи виведення, таких як екранне уявлення, друк, читання голосом (спеціальним голосовим браузером або програмою читання з екрану), або при виведенні пристроями, що використовують шрифт Брайля.

CSS для відображення сторінки можуть бути взята з різних джерел (порядок ієрархії від сильного до слабкого):

Авторські стилі (інформація стилів,надана автором сторінки):

Inline-стилів,коли в HTML-документі інформація стилю для одного елемента вказується в його атрибуті style.

Вбудованих стилів - блоків CSS всередині самого HTML-документа.

Зовнішніх таблиць стилів, тобто окремого файлу. Css, на який робиться посилання в документі.

Користувацькі стилі

Локальний CSS-файл, вказаний користувачем в настройках браузера, переопределяющий авторські стилі, і вживаний до всіх документів.

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

Декілька дизайнів сторінки для різних пристроїв перегляду. Наприклад, на екрані дизайн буде розрахований на велику ширину, під час друку меню не буде виводитися, а на КПК і стільниковому телефоні меню буде слідувати за вмістом. [6]

CSS використовую для візуальних ефектів и графічних інтерфейсів для користувача.

JSON (англ.JavaScript Object Notation) - текстовий формат обміну даними, заснований на JavaScript і часто використовується саме з цією мовою. Як і багато інших текстові формати, JSON легко читається людьми. Незважаючи на походження від JavaScript (точніше, від підмножини мови стандарту ECMA-262 1999 року), формат вважається мовно незалежного і може використовуватися практично з будь-якою мовою програмування. Для багатьох мов існує готовий код для створення та обробки даних у форматі JSON. За рахунок своєї лаконічності в порівнянні з XML, формат JSON може бути більш підходящим для серіалізациі складних структур. Якщо говорити про веб-додатках, в такому ключі він доречний в задачах обміну даними як між браузером і сервером (AJAX), так і між самими серверами (програмні HTTP-інтерфейси).Формат JSON так само добре підходить для зберігання складних динамічних структур в реляційних базах даних або файловому кеші. Оскільки формат JSON є підмножиною синтаксису мови JavaScript, то він може бути швидко десеріалізовать убудованою функцією eval ().Крім того можлива вставка цілком працездатних JavaScript-функцій. У PHP починаючи з версії 5.2.0 підтримка JSON включена в ядро у вигляді функцій json_decode () і json_encode (), які самі перетворює типи даних JSON у відповідні типи PHP і навпаки.

JSON будується на двох структурах: Набір пар ім'я / значення. У різних мовах це реалізовано як об'єкт, запис, структура, словник, хеш-таблиця, список з ключем або асоціативний масив. Пронумерований набір значень. У багатьох мовах це реалізовано як масив, вектор, список або послідовність. Це - універсальні структури даних. Теоретично, всі сучасні мови програмування підтримують їх у тій або іншій формі. Так як JSON використовується для обміну даними між різними мовами програмування, то має сенс будувати його на цих структурах. Оскільки JSON представляється синтаксично правильним фрагментом коду JavaScript, найпростішим способом розбору JSON-даних в JavaScript-програмі є використання вбудованою в JavaScript функції eval (), яка призначена для виконання JavaScript-виразів. При цьому підході відпадає необхідність у використанні додаткових парсерів. [6]

JSON – це строкове представлення даних, його я використовую для реалізації передачі даних між JavaScript та РНР.

MySQL - це популярна система управління базами даних (СКБД), дуже часто застосовується в поєднанні з PHP. База даних являє собою структуровану сукупність даних. Ці дані можуть бути будь-якими - від простого списку майбутніх покупок до переліку експонатів картинної галереї або величезної кількості інформації в корпоративній мережі. Для запису, вибірки й обробки даних, що зберігаються в комп'ютерній базі даних, необхідна система управління базою даних, якою і є ВО MySQL. Оскільки комп'ютери чудово справляються з обробкою великих обсягів даних, управління базами даних відіграє центральну роль в обчисленнях. Реалізовано таке управління може бути по-різному - як у вигляді окремих утиліт, так і у вигляді коду, що входить до складу інших додатків. MySQL - це система управління реляційними базами даних. У реляційній базі даних дані зберігаються не все скопом, а в окремих таблицях, завдяки чому досягається виграш у швидкості й гнучкості. Таблиці зв'язуються між собою за допомогою відносин, завдяки чому забезпечується можливість поєднувати при виконанні запиту дані з декількох таблиць. SQL як частина системи MySQL можна охарактеризувати як мова структурованих запитів плюс найбільш поширений стандартний мова, яка використовується для доступу до баз даних.

MySQL є дуже швидким, надійним і легким у використанні. Якщо вам потрібні саме ці якості, спробуйте попрацювати з даним сервером. MySQL володіє також рядом зручних можливостей, розроблених у тісному контакті з користувачами. Спочатку сервер MySQL розроблявся для керування великими базами даних з метою забезпечити більш високу швидкість роботи в порівнянні з існуючими на той момент аналогами. І ось вже протягом декількох років даний сервер успішно використовується в умовах промислової експлуатації з високими вимогами. Незважаючи на те що MySQL постійно вдосконалюється, він уже сьогодні забезпечує широкий спектр корисних функцій. Завдяки своїй доступності, швидкості та безпеки MySQL дуже добре підходить для доступу до баз даних по Internet. Технічні можливості СУБД MySQL MySQL є системою клієнт-сервер, яка містить багато-поточний SQL-сервер, що забезпечує підтримку різних обчислювальних машин баз даних, а також кілька різних клієнтських програм і бібліотек,засоби адміністрування і широкий спектр програмних інтерфейсів (API).Ми також постачаємо сервер MySQL у вигляді многопоточной бібліотеки, яку можна підключити до призначеного для користувача програми і отримати компактний, більш швидкий і легкий в управлінні продукт. Доступно також велику кількість програмного забезпечення для MySQL, в більшій частині - безкоштовного. [6]

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

Apache HTTP-сервер (скорочення від англ. A patchy server) - веб-сервер. Apache є кросплатформним ПЗ, підтримує операційні системи Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS. Основними достоїнствами Apache вважаються надійність і гнучкість конфігурації. Він дозволяє підключати зовнішні модулі для надання даних, використовувати СУБД для аутентифікації користувачів, модифікувати повідомлення про помилки і т. д. Підтримує IPv6. Сервер був написаний на початку 1995 року і вважається, що його ім'я перегукується з жартівливою назвою «a patchy» (англ. «латочку»), так як він усував помилки популярного тоді сервера Всесвітньої павутини NCSA HTTPd 1.3. Надалі, з версії 2.х сервер був переписаний заново і тепер не містить коду NCSA, але ім'я залишилося. На даний момент розробка ведеться в гілці 2.2, а у версіях 1.3 та 2.0 виробляються лише виправлення помилок безпеки. Веб-сервер Apache розробляється і підтримується відкритим співтовариством розроблювачів під егідою Apache Software Foundation і включений в багато програмні продукти, серед яких СУБД Oracle і IBM WebSphere. З квітня 1996 і до теперішнього часу є найпопулярнішим HTTP-сервером в Інтернеті. За статистикою Netcraft, у серпні 2007 року він працював на 51% усіх веб-серверів, в травні 2009 року - на 46%.

Ядро Apache включає в себе основні функціональні можливості, такі як обробка конфігураційних файлів, протокол HTTP і система завантаження модулів. Ядро (на відміну від модулів) повністю розробляється Apache Software Foundation, без участі сторонніх програмістів. Теоретично, ядро apache може функціонувати в чистому вигляді, без використання модулів. Однак, функціональність такого рішення вкрай обмежена. Ядро Apache повністю написана на мові програмування C. Apache має вбудований механізм віртуальних хостів. Він дозволяє повноцінно обслуговувати на одному IP-адресу безліч сайтів (доменних імен), відображаючи для кожного з них власне вміст. Для кожного віртуального хоста можна вказати власні налаштування ядра і модулів, обмежити доступ до всього сайту або окремих файлів. Деякі MPM, наприклад Apache-ITK дозволяють запускати процес httpd для кожного віртуального хоста з окремими ідентифікаторами uid та gid.

Для реалізації шифрування даних, що передаються між клієнтом і сервером використовується механізм SSL, реалізований через бібліотеку OpenSSL. Для підтвердження автентичності веб-сервера використовуються сертифікати X.509. [6]

Apache HTTP-сервер використовую для робото здібності РНР скріптов.