Автор: Пользователь скрыл имя, 09 Апреля 2013 в 05:23, курсовая работа
Важко знайти в комп'ютерному світі людини, яка хоча б на інтуїтивному рівні не розуміла, що таке бази даних і навіщо вони потрібні. На відміну від традиційних реляційних СУБД, концепція OLAP не так широко відома, хоча загадковий термін «OLAP» чули, напевно, майже всі. Що ж таке OnLine Analytical Processing, де він мешкає, і з чим його їдять, ми і спробуємо розібратися.
2.3 Загальні відомості про Drupal
Створення сайту - процес непростий. Звичайно, сайт-візитку можна спорудити за півгодини, але, якщо мова йде про більш серйозному ресурсі, завдання ускладнюється. Сучасний сайт - це не просто набір інформаційних матеріалів у статичному інтерфейсі, а повноцінна програмна система, яка забезпечує управління вмістом сайту, ведення бази даних користувачів, пошукові функції, завантаження зображень і т. д.
Drupal - це одна з найбільш відомих і надійних систем управління сайтом (CMS), розроблена голландськими IT-спеціалістами.
Проект розпочато у 2000 році, програмістом Драйесом Байтаертом. Назва «Drupal» походить від голландського слова «druppel», що значить «крапля» (логотип продукції в повній мірі відображає цю назву). Система управління сайтом Drupal написана на мові PHP, а всі дані зберігаються в спеціальній реляційної бази даних (наприклад, MySQL, PostgreSQL та інших). Дана CMS є безкоштовним програмним забезпеченням, яке має ліцензію GNU GPL і з ентузіазмом підтримується фахівцями багатьох країн. Функціональні та технічні характеристики Drupal дозволяють застосовувати його для створення таких типів сайтів як інформаційні та новинні ресурси, блоги і форуми, Інтернет - магазини та розважальні портали. Інтуїтивний інтерфейс допомагає керувати інформаційним і структурним контентом сайту на Drupal навіть користувачам без знань HTML, веб - верстки і мов програмування.
Високу функціональність CMS Drupal отримує завдяки набору модулів, які можна додавати, прибирати та налаштовувати на розсуд веб - розробника. Як правило, комплект таких модулів складається із стрічки новин, блогів, форумів, коментарів, файлових менеджерів, збирача новин, систем пошуку і голосування. Додаткові модулі завжди можна скачати з офіційного сайту drupal.org. Структура сайту на Drupal задається за допомогою таксономії - особливої методики для створення чіткої ієрархії у побудові сайту. Цей механізм дозволяє створювати будь-яку кількість структурних розділів і поєднувати їх з інформаційними модулями. Дизайн інтернет-сторінок, створених на базі Drupal, залежить від змінних тем оформлення. Єдиної схеми для створення дизайну сайту не існує, при цьому використовуються різні види тем, що містять окремі шаблони для редагування (наприклад, шаблони XML в движках xtemplate і Smarty або шаблони на HTML з вбудованим PHP в движку phptemplate).
Система адміністрування сайту на Drupal піклується про інтернаціоналізації та локалізації інтерфейсу для різних мов, у тому числі і для української мови. У власній базі даних механізму локалізації зберігаються всі переклади і значення мовних одиниць. Переклади сайтів імпортуються та експортуються в стандартній бібліотеці gettext у вигляді ро-файлів. Повноцінна локалізація контенту підтримується додатковими модулями, які не є частиною стандартної поставки цього програмного забезпечення, але можуть бути Завантажено з офіційного сайту розробників даної CMS. Всі документи сайту, створеного на Drupal, отримують унікальний ID, щоб посилання на дані сторінки залишалися незмінними. Використання перманентних посилань значно спрощує роботу з вмістом сайту. Крім того, Drupal володіє можливістю застосування псевдонімів і коротких URL, що помітно покращує ставлення пошукових систем до цілого сайту.
Сайти, створені на основі системи адміністрування Drupal, можуть управлятися великою кількістю користувачів (громадська модерація). Тому використання даної CMS підходить для розробки великих корпоративних мереж та Інтернет - спільнот, де здійснюється реєстрація користувачів і їх подальшу участь в управлінні вмістом сайту, наприклад, розміщення і видалення матеріалів, голосування, коментування або редагування інформації.
Система Drupal може використовуватися не тільки в якості движка для створення сайтів, але також служити середовищем для розробки різних веб- додатків. Завдяки даній системі управління контентом можна будувати сайти і додатки абсолютно різної складності і спрямованості. Drupal має власний унікальний API, що дозволяє IT-програмістам знаходити нестандартні рішення при створенні додатків.
Крім того, веб-сайти, побудовані на основі Drupal, легко піддаються просуванню в пошукових системах, оскільки володіють оптимізованим набором функцій і зручною методикою розподілу контенту.
Всі ці завдання вирішуються за допомогою програмних комплексів класу «система управління контентом» (Content Management System, CMS). Як правило, CMS надають цілий ряд готових рішень стандартних завдань: стрічки новин, гостьові книги, форуми, опитування, фотогалереї і т. д. Їх досить багато як комерційних, так і безкоштовних, наприклад Drupal, яка розглядається в цій курсовій.
Drupal іноді класифікують не як CMS, а як CMF (Content Management Framework, «фреймворк» або «каркас» для сайту). В Drupal вдало поєднуються переваги CMS (велика кількість модулів, що розширюють функціонал системи) і CMF (потужний, детально документований інтерфейс, API, що дозволяє без утруднень написати новий або доопрацювати існуючий модуль для цієї системи). У результаті розробники можуть створювати на єдиній основі Web-комплекси, адаптовані для вирішення самих різних прикладних задач.
ActiveModa використовує Drupal при розробці Інтернет - спільнот: ком'юніті, новинні і форумні проекти, блоги та Інтернет - сервіси, коли основне завдання - не загубитися в масі регулярно надходять матеріалів, мати можливість їх структурувати і архівувати для легкого доступу в майбутньому. Функціонал нарощується додатковими модулями, які можна впроваджувати у міру необхідності.
Таксономія (taxonomy) - оригінальна концепція для завдання структури сайту, відокремлює структуру від уявлення. За допомогою таксономії можна визначити довільне число рубрик, в яких будуть надалі поміщатися матеріали сайту. Ці рубрики можуть бути представлені як плоскі списки або ієрархічні структури довільної вкладеності (як деревовидні, коли елемент має тільки одного батька в ієрархії, так і довільні, коли елемент може мати відразу декількох батьків). В результаті отримуємо таку схему: документи (nodes) різних типів (node types) асоціюються з рубриками (terms), рубрики в свою чергу розбиваються на приналежність до словників (vocabularies). Така схема дозволяє вибудовувати на сайті декілька незалежних структур, асоціюючи одні й ті ж документи (як би листя на структурному «дереві» сайту) з різними структурами.
Шаблони - як у будь-якій системі гордо іменує себе CMS, вміст сайту в Drupal відокремлено від дизайну. За допомогою змінних шаблонів можна дуже значно змінювати дизайн не чіпаючи при цьому вміст і структуру сайту. Drupal не прив'язаний до якогось одного «єдино вірному» механізму реалізації тим, розробник сайту може вибирати найбільш зручні йому способи формування дизайну сайту. Але Drupal пропонує ряд готових рішень у вигляді движків тим (theme engines), таких як наприклад xtemplate (теми з шаблонами в XML) або phptemplate (теми з шаблонами на PHP). Проте значних змін дизайну можна деколи добитися маніпуляцією стилями.
Коментарі - будь-який документ сайту відвідувачі можуть коментувати. Звичайно, якщо в настройках їм дозволена ця можливість - можна обмежувати можливість коментарів для окремих документів або цілком для типів документів, а також налаштовувати їх подання (Стек гілок або плоске, рейтинг і фільтрація по ньому і т.п.). Для анонімних відвідувачів передбачені поля для їх ідентифікації (ім'я, email, адреса сайту), але цю можливість також можна вимкнути.
Щоденники (blogs) - популярне в Інтернеті розвага, відоме як «блоги» доступно в Drupal «з коробки». Ведення щоденників, можливість коментувати їх іншим користувачам, а також підтримка через XML-RPC зовнішніх програм-клієнтів для приміщення заміток в щоденники.
Книга сайту (collaborative book) - ідея в чомусь схожа на Wiki, коли кожен користувач може вносити свої доповнення та виправлення до тексту. У реалізації Drupal документи можуть проходити через чергу модерації. Більшість документів сайту можуть бути включені як сторінки книги. Це можна використовувати наприклад для архівації обговорень форумів, коли з найцікавіших обговорень можна скласти книгу-архів. При цьому включені в книгу матеріали по колишньому залишаються доступними в своїх розділах (тобто форумні обговорення буде видно на форумі, але також буде сторінкою книги сайту).
Форум - є вбудований движок форуму, який вдало вписується в структуру всього сайту. Оскільки структура форумів будується на таксономії, можливе створення категорій та форумів довільної вкладеності. Включені основні форумні функції, проте відсутні засоби масової модерації, тому в разі побудови активних форумних сайтів, що містять сотні тисяч або мільйони повідомлень форум Drupal не буде зручний - краще в цьому випадку подивитися у бік спеціалізованих форумних движків (phpbb наприклад).
Новини в офф лайн (content syndication) - Drupal експортує більшість матеріалів у форматі RDF / RSS, Atom і деяких інших, зручних для перегляду в офф лайн за допомогою зовнішніх програм, або для автоматизованої публікації на інших сайтах.
Збір новин - новини надаються в RDF / RSS з інших сайтів можуть збиратися Drupal і відображатися на сайті.
Розмежування прав доступу - засноване на присвоєння одній або декількох ролей користувачам, безпосередньо права доступу до різних функцій сайту закріплюються за ролями. Модулі самі визначають, до яких зі своїх функцій дати доступ певним ролям. Зрозуміла і логічна схема, що входить в стандартну поставку Drupal, достатня для більшості завдань. Для випадків, коли подібної схеми недостатньо, Drupal надає більш потужний механізм, заснований на присвоєння прав (на перегляд, створення, зміна та видалення) кожним окремим документом. Але інтерфейс для управління цим механізмом в поточній версії CMS відсутній, для його використання пропонуються додаткові модулі.
Вбудовуванні скрипти - в Drupal можливе включення PHP-скриптів в будь-яких документах сайту (зрозуміло це обмежено в цілях безпеки і доступно не всім користувачам). У скриптах можна звертатися до функцій API Drupal - це дозволяє оперативно створювати динамічні сторіночки з функціональністю не передбаченої движком, не вдаючись до написання окремих модулів.
Інтернаціоналізація - Drupal надає різні механізми для інтернаціоналізації та локалізації інтерфейсу (не вмісту) сайту. У тому числі можливість редагування перекладів «на льоту» через веб - інтерфейс (для перекладів зберігаються в БД). Також вдалою особливістю архітектури Drupal є повсюдне використання в ньому Unicode - всі тексти зберігаються в UTF-8, в цій же кодуванні віддаються новини і поштові повідомлення. Така уніфікація дозволяє публікувати на сайті матеріали на різних мовах не вимагаючи перемикання кодувань в браузері - на одній сторіночці мирно уживуться тексти російською, німецькою та китайською. Слід зазначити, що для отримання повної багатомовності (синхронне ведення вмісту сайту, а не тільки інтерфейсних написів на багатьох мовах) вбудованого рішення немає (але пропонується доп. Модуль i18n, або для сайтів що не вимагають синхронізації різномовного вмісту можна використовувати можливості мульти сайтинга Drupal).
Ергономіка, персоналізація - Drupal дозволяє користувачам налаштовувати представлення сайту за власним смаком. Це включає вибір тим і набір інформаційних блоків, які користувач бажає бачити на сайті.
Перманентні посилання (permalinks) - кожен документ (node), створений на сайті, отримує на весь час свого існування унікальний ID, посилання на сторінку для перегляду цього документа завжди буде залишатися незмінною, до якої-б категорії чи типу цей документ не ставився. Наприклад, переміщення обговорення з одного форуму в інший не призведе до зміни посилання на це обговорення.
Короткі URL (friendly URL's) - Drupal використовує механізм mod_rewrite сервера Apache для отримання естетично виглядають іменувань сторінок сайту, дозволяючи уникнути використання параметрів в рядку URL. Це також значно покращує ставлення багатьох пошукових систем до сайту, оскільки не всі пошукові системи люблять возитися зі сторінками які містять '?', '&' Та інші спец символи в рядку URL.
Псевдоніми (URL aliasing) - можна привласнювати альтернативні імена сторінкам, наприклад щоб дати їм більше запам'ятовуються назви: www.example.com/node/view/31 -> www.example.com / about.
Управління версіями (revisions) - при зміні будь-якого документа сайту можна створити нову версію документа, при цьому зберігається історія версій, і при необхідності можна відкотитися до старих правкам документа.
Громадська модерація - може бути зручна для деяких типів сайтів, наприклад для сайтів різних співтовариств, де в наповненні сайту матеріалами бере участь велика кількість користувачів. Така модерація являє собою механізм схвалення матеріалів сайту самими його відвідувачами (або окремими їх групами). Кожен матеріал має свій рейтинг і користувачі можуть підвищувати його або знижувати - в результаті популярні і корисні документи можуть бути опубліковані, переміщені на головну сторінку сайту, викликають невдоволення користувачів - видалені зі списку опублікованих. Цей механізм можна налаштовувати для різних ролей користувачів.
Відстежування оновлень (tracker) - всі оновлені документи сайту або матеріали, до яких з'явилися нові коментарі, групуються на загальній сторінці, посилання на якій присутній в меню користувача. Особливо корисно для сайтів мають складну структуру і велику кількість розділів.
Масштабованість, модульність - до невеликого ядра Drupal можна додавати нові можливості за допомогою модулів. Існує велика кількість готових модулів для різних застосувань - від фільтрів csv і галерей зображень, до ведення проектів і ecommerce.
Кілька прикладів додаткових модулів до Drupal:
weblink - каталог веб посилань для сайту;
mailhandler - інтеграція сайту з
e-commerce - підтримка електронного магазину або платіжних систем;
image - галерея зображень на сайті;
postcard - розсилання електронних
htmlarea - адаптація WYSIWYG редактора HTMLArea до Drupal;
foaf - перенесення облікових даних
користувачів між різними сайта
spam - учень (побудований на байєсовському алгоритмі) фільтр спаму для сайту.
Кешування сторінок - сторінки, переглянуті користувачами, кешуються в базі і анонімні користувачі отримують сторінки з кеша без повторної генерації кожного інформаційного блоку відображуваного на сторінці. Це дозволяє значно знизити число запитів до бази даних і збільшити швидкість віддачі сторінок.
Багато платформенність - Drupal підтримує Apache і MS IIS, СУБД MySQL, PostgreSQL і MS SQL (не складе складності переклад на будь-яку іншу СУБД, що підтримує ANSI SQL). Найкращим чином відпрацьована традиційна для хостингів зв'язка Apache на unix (Linux, * BSD та інще) + MySQL, на ній як правило спочатку з'являються нові можливості і модулі Drupal, потім вже адаптовані до решти платформ.