3. Розробка системи керування та актуалізації інформації web-сайту національного оператора Енергоринка
3.1 Вибір інструментарію для створення web-сайту та системи керування
Перед тим, як безпосередньо перейти до створення Web-сайту Національного оператору енергоринку необхідно вирішити за допомогою якого інструментарію будуть виконуватись поставленні перед нею завдання. Для повномасштабної реалізації функцій даної частини системи необхідно використовувати засоби, що забезпечать динаміку роботи сайту. Для цього існують так звані мови описів сценаріїв. Отже необхідно здійснити вибір як мови опису сценаріїв, так і варіант самого ВЕБ-сереверу. Оцінивши їх разом ми зможемо говорити про об’єктивність зробленого вибору.
3.1.1 Критерії вибору інструментарію
Визначимо основні критерії, за якими ми будемо обирати ту чи іншу систему, мову:
ВЕБ-сервер повинен без додаткових втручань переноситись з однієї платформи на іншу, тим самим забезпечивши гнучкість у плані вибору операційної системи;
Мова описів сценаріїв повинна добре зістиковуватись із ВЕБ-сервером, на який вона встановлюється.
3.1.2 Порівняння опрецаійних систем та мов опису скриптів
Досить часто доводиться зустрічати порівняльні характеристики тих чи інших платформ, мов, середовищ, але частіше за все даний аналіз є необ’єктивним, так як передбачає їх порівняння у окремих випадках. Серед платформ можна обирати лінійки Windows та Unix, так як в основному у мережі Інтернет використовуються саме ці операційні системи для створення ВЕБ-серверів. Окрім них можна згадувати і інші системи, але вони не є настільки розповсюдженими і не настільки часто використовуються. Щодо ВЕБ-серверів, то серед них у порівнянні приймали участь: Apache,IIS, вбудовані ВЕБ-сервера, інтерпретатори мов на стороні сервера, PHP, Perl, ASP/VBScript, Java.
Розглядаючи Unix-системи спробуємо віднайти загальний для усіх них варіант ВЕБ-серверного рішення. Для цього розглянемо системи Solaris 2.6, Linux 2.2.x, RedHat 6.x. Для кожної з них існує достатня кількість потрібних нам серверних рішень. Але для узагальнення налагодження та спроби знайти оптимальне рішення ВЕБ-сервер - мова описів сценаріїв ми зупинимося на варіанті Apache та інтерпретаторі PHP. Цей вибір пояснюється тим, що ВЕБ-сервер Apache з самого початку був створений для Unix-платформ, окрім цього він встановлюється на більшість з платформ цього типу. Крім цього на сьогоднішній день існує варіант даного сервера для Windows - платформ, що найкращим чином обумовлює перехід з однієї платформи на іншу. Щодо інтерпретатора PHP, то деякий час він навіть був вбудований у ВЕБ-сервер Apache, що каже про максимальну сумісність цих двох продуктів. Як і ВЕБ-сервер Apache, інтерпретатор PHP також існує у варіанті, що встановлюється на платформу Windows.
З лінійки Windows - систем розглянемо системи Windows 9x і вище. Настільки широкий вибір дозволить встановити ВЕБ-сервер на довільному персональному комп’ютері з операційною системою Windows. В даному випадку систему можна буде використовувати як для прямого використанні в Інтернеті, так і локально в організації, у мережі Інтранет. Для систем Windows NT та вище існують ВЕБ-серверні рішення IIS, але вони не поширюються на більш старі системи, такі як Windows 9x, для яких існує адаптований варіант ВЕБ-серверу, так званий Persona Web Server. Але загального рішення для усієї лінійки немає, що обумовлює додаткове втручання у налагодження роботи серверу. Тим більше, що даний варіант ВЕБ-серверу не переноситься на інші платформи. Що ж стосується варіанту ВЕБ-серверу Apache, адаптованому під цю платформу, то він досить просто встановлюється та потребує мінімального втручання у налагодження. Крім цього досягається однотипність налагодження для усіх систем даного типу.
HTTP сервер Apache дозволяє:
- підтримка согласування кодировок клієнта та сервера, як при видачі документів так при і безпосередній обробці користувацького вводу при цьому підтримується як GET данні так і POST, як широко будуть використовуватись у нашому додатку.
- видача коректних Content-type:...;charset=...;
- видача при необхідності заголовку Expires: для Proxy серверів;
- видача коректних заголовків Vary: та ETag, в результаті є можливість коректного кеєшування Документів (якщо proxy-cache з підтримкою HTTP/1.1 );
- автоматичне пере направлення клієнтів на URL у вірній кодировці.
У сервері використовується декілька методів согласування кодування клієнту та серверу:
- через заголовки клієнта Accept-Charset: або Accept: text/x-cyrillic... якщо сервер знає що charset, котрий запитує клієнт, то ці заголовки мають більший пріоритет для сервера, невраховаючи налаштування на native charset;
- через пошук імені сервера у назвах однієї з кодованих сторінок;
- через пошук в префіксі запрошеного URI назви однієї з закодованих сторінок;
- через явне вказання відповідності «номер порту - кодування»;
- через кофігурування кодових сторінок по замовченню для різних типів клієнских програм у випадку коли сервер може розпізнати додаток;
- для різних (віртуальних) серверів, або дерикторій окремо.
З виконаного порівняння випливає, що найкращим рішенням є використання ВЕБ-серверу Apache 2.0.55 (Win32) та мови описів сценаріїв PHP 5.1.2 в режимі CGI.
3.1.3 Вибір мови програмування
Головним чинником при проектуванні та вибору мови РНР є практичність. РНР повинен надати програмісту засоби для швидкого і ефективного вирішення поставлених завдань. Практичний характер РНР обумовлений п'ятьма важливими характеристиками:
традиційністю;
простотою;
ефективністю;
безпекою;
гнучкістю.
Існує ще одна «характеристика», яка робить РНР особливо привабливим: він розповсюджується безкоштовно!
PHP - це мова інтерпретації, код якої вбудовується безпосередньо у HTML- сторінки. При запиті користувача ВЕБ - сервер, орієнтуючись по розширенню файлу, запит на який прийшов до нього, встановлює, що даний файл потрібно віддати на аналіз інтерпретатору PHP, який в свою чергу виконує відповідні інструкції та генерує остаточну HTML - сторінку, яку і передає назад ВЕБ - серверу, задача якого - повернути цю сторінку користувачу, щ робив запит. При цьому статична частина документу, що написана на HTML, фактично є шаблоном, інтерпретатор лише змінює ту частину, яка є безпосередньо PHP - інструкцією. Для віддаленого користувача дані сторінки нічим не будуть відрізнятися від звичайних статичних HTML - сторінок, хіба що розширення файлу у рядку адреси може бути не html, а, наприклад php3 чи phtml, але це не обов’язково.