Fadak.IR Фадак Решения
English Русский العربية فارسی
Статьи Управление Исследования Язык


/ ИКТ / Исследование

Проектирование и разработка системы управления контентом сайта 2015


   Глава I. Концепции
      Проектирование ПО
      Разработка ПО
      управления содержимым
         Система управления веб-содержимым
         Система управления содержимым
         Content Management Framework
      Вики
         Определяющие свойства
         Техническая основа
         Особенности
         MediaWiki
   Глава II.
      CSS3
         Bootstrap
      База данных
         Проблемы определения
         Виды баз данных
         Сверхбольшие базы данных
      Движок базы данных(Database engine)
      Система управления базами данных
         Основные функции СУБД
         Состав СУБД
         Классификации СУБД
         Стратегии работы с внешней памятью
      MySQL
         Технические характеристики
      Серверные скрипты(Server-side scripting)
         PHP
      Клиентский скриптинг(Client-side scripting)
         JavaScript
         Популярные веб-приложения
         Вспомогательные каркасы
         Редактор HTML
     Глава III. (практический)
   Заключение
   Источники

Оглавление

Глава I. Концепции

Проектирование ПО

Проектирование программного обеспечения (англ. Software design) — процесс создания проекта программного обеспечения (ПО), а также дисциплина, изучающая методы проектирования. Проектирование ПО является частным случаем проектирования продуктов и процессов.

Целью проектирования является определение внутренних свойств системы и детализации её внешних (видимых) свойств на основе выданных заказчиком требований к ПО (исходные условия задачи). Эти требования подвергаются анализу.

В зависимости от класса создаваемого ПО, процесс проектирования может обеспечиваться как «ручным» проектированием, так и различными средствами его автоматизации. В процессе проектирования ПО для выражения его характеристик используются различные нотации — блок-схемы, ER-диаграммы, UML-диаграммы, DFD-диаграммы, а также макеты.

Проектированию обычно подлежат:

В российской практике проектирование ведется поэтапно в соответствии со стадиями, регламентированными ГОСТ 2.103-68[1]( ГОСТ 2.103-68. Единая система конструкторской документации. Стадии разработки):

На каждом из этапов формируется свой комплект документов, называемый проектом (проектной документацией).
В зарубежной практике регламентирующими документами, например, являются Software Architecture Document, Software Design Document.

Разработка ПО

Разрабо́тка програ́ммного обеспе́чения (англ. software development) — это род деятельности (профессия) и процесс, направленный на создание и поддержание работоспособности, качества и надежности программного обеспечения, используя технологии, методологию и практики из информатики, управления проектами, математики, инженерии и других областей знания.

Как и другие традиционные инженерные дисциплины, разработка программного обеспечения имеет дело с проблемами качества, стоимости и надёжности. Некоторые программы содержат миллионы строк исходного кода, которые, как ожидается, должны правильно исполняться в изменяющихся условиях.

Шаги процесса(Core activities)

Парадигмы и модели(Paradigms and models)

Методологии и структуры(Methodologies and frameworks)

разработка программного обеспечения может быть разделена на несколько разделов. Это:
1.  Требования к программному обеспечению: извлечение, анализ, спецификация и ратификация требований для программного обеспечения.
2. Проектирование программного обеспечения: проектирование программного обеспечения средствами Автоматизированной Разработки Программного Обеспечения (CASE) и стандарты формата описаний, такие как Унифицированный Язык Моделирования (UML), используя различные подходы: проблемно-ориентированное проектирование и т. д.
3. Инженерия программного обеспечения: создание программного обеспечения с помощью языков программирования.
4. Тестирование программного обеспечения: поиск и исправление ошибок в программе.
5. Сопровождение программного обеспечения: программные системы часто имеют проблемы совместимости и переносимости, а также нуждаются в последующих модификациях в течение долгого времени после того, как закончена их первая версия. Подобласть имеет дело с этими проблемами.
6. Управление конфигурацией программного обеспечения: так как системы программного обеспечения очень сложны и модифицируются в процессе эксплуатации, их конфигурации должны управляться стандартизированным и структурированным методом.
7. Управление разработкой программного обеспечения: управление системами программного обеспечения имеет заимствования из управления проектами, но есть нюансы, не встречающиеся в других дисциплинах управления.
8. Процесс разработки программного обеспечения: процесс построения программного обеспечения горячо обсуждается среди практиков, основными парадигмами считаются agile или waterfall.
9. Инструменты разработки программного обеспечения, см. CASE: методика оценки сложности системы, выбора средств разработки и применения программной системы.
10. Качество программного обеспечения: методика оценки критериев качества программного продукта и требований к надёжности.
11. Локализация программного обеспечения, ветвь языковой промышленности.

 https://developer.joomla.org/cms/development-strategy.html
https://www.joomlapolis.com/news/18410-executive-summary-new-joomla-release-strategy-impact-analysis
https://github.com/dbhurley/joomla-governance/blob/master/policy/0001-joomla-development-strategy.md
http://www.itinfo.am/eng/software-development-methodologies/
      1.2.2  Разделы дисциплины
      1.2.3  Процесс и методология
      1.2.4  Участники процесса разработки ПО
      1.2.5  Проблемы разработки ПО

управления содержимым

Система управления веб-содержимым

Система управления веб-содержимым (Web Content Management System или WCMS) — программный комплекс, предоставляющий функции создания, редактирования, контроля и организации веб-страниц. WCMS часто используются для создания блогов, личных страниц и интернет-магазинов и нацелены на пользователей, мало знакомых с программированием.

Предоставляемые возможности

Реализация

Типы генерации

Online (на-лету)
Данный тип систем формирует страницу на основе шаблонов и данных из базы данных или из кэша.

Offline
Данный тип показывает пользователю заранее созданную и сформированную страницу.

Hybrid
Сочетает в себе оба типа.
Конструкторы сайтов

Основная статья: Конструктор сайтов

Конструкторы сайтов являются инструментами, которые позволяют создавать веб-сайты без ручного редактирования кода. Они делятся на две категории: онлайн-конструкторы: SAAS платформы, предоставляющие CMS и хостинг, обычно предназначены для пользователей, которые не имеют специальных знаний в области сайтостроения. И оффлайн-конструкторы: программное обеспечение, которое работает на компьютере, создаёт веб-страницы, которые можно затем опубликовать на любом хостинге. Последние часто считаются «программным обеспечением для веб-дизайна», а не «конструкторами сайтов».

Система управления содержимым

Систе́ма управле́ния содержи́мым (конте́нтом) (англ. Content management system, CMS)[1] — информационная система или компьютерная программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления контентом (то есть содержимым)[2].

Основные функции CMS[3]:

В системе управления содержимым могут находиться самые различные данные: документы, фильмы, фотографии, номера телефонов, научные данные и так далее. Такая система часто используется для хранения, управления, пересмотра и публикации документации. Контроль версий является одним из основных её преимуществ, когда содержимое изменяется группой лиц.

Разновидности

В общем случае системы управления содержимым делятся на:

В силу того, что ECMS имеют глубокую внутреннюю классификацию по предметным областям (HRM, DMS, CRM, ERP и т. д.)[источник не указан 1707 дней], термин CMS заместил собой WCMS, превратившись в синоним системы управления сайтами. Подобные CMS позволяют управлять текстовым и графическим наполнением веб-сайта, предоставляя пользователю интерфейс для работы с содержимым сайта, удобные инструменты хранения и публикации информации, автоматизируя процессы размещения информации в базах данных и её выдачи в HTML.

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

  1. Генерация страниц по запросу. Системы такого типа работают на основе связки «Модуль редактирования → База данных → Модуль представления». Модуль представления генерирует страницу с содержанием при запросе на него, на основе информации из базы данных. Информация в базе данных изменяется с помощью модуля редактирования. Страницы заново создаются сервером при каждом запросе, что в свою очередь создаёт дополнительную нагрузку на системные ресурсы. Нагрузка может быть многократно снижена при использовании средств кэширования, которые имеются в современных веб-серверах.
  2. Генерация страниц при редактировании. Системы этого типа служат для редактирования страниц, которые при внесении изменений в содержание сайта создают набор статических страниц. При таком способе в жертву приносится интерактивность между посетителем и содержимым сайта.
  3. Смешанный тип. Как понятно из названия, сочетает в себе преимущества первых двух. Может быть реализован путём кэширования — модуль представления генерирует страницу один раз, в дальнейшем она в несколько раз быстрее подгружается из кэша. Кэш может обновляться как автоматически, по истечении некоторого срока времени или при внесении изменений в определённые разделы сайта, так и вручную по команде администратора. Другой подход — сохранение определённых информационных блоков на этапе редактирования сайта и сборка страницы из этих блоков при запросе соответствующей страницы пользователем.

Особенности

Система управления — программа, предоставляющая инструменты для добавления, редактирования, удаления информации на сайте.

Большинство современных CMS имеют модульную архитектуру, что позволяет администратору самому выбирать и настраивать те компоненты, которые ему необходимы.

Типичные модули:

Сайты, организованные посредством системы управления контентом, основаны на следующих технологиях: веб-сервер, хранилище данных (зачастую СУБД, например такие как MySQL или PostgreSQL, однако существуют и noSQL CMS), веб-приложение для обеспечения работы самой системы, визуальный (WYSIWYG) редактор страниц, файловый менеджер с веб-интерфейсом для управления файлами сайта, система управления правами пользователей и редакторов сайта.

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

Наиболее распространены следующие технологические платформы, используемые в качестве основы веб-приложения, реализующего работу CMS: PHP, Perl, .NET.

Существует термин контент-менеджер, обозначающий род профессиональной деятельности — редактор сайта или сотрудника, работающего с CMS.

Большая часть современных систем управления содержимым реализуется в виде визуального (WYSIWYG) редактора — программы, которая создаёт HTML-код из специальной упрощённой разметки, позволяющей пользователю проще форматировать текст.

 
      2.2.5 Сравнение  системы управления контентом
      2.2.6 Список систем управления контентом(List of content management systems)

Content Management Framework

Content Management Framework (CMF) — это каркас (фреймворк программной системы) для проектирования систем управления контентом. На их основе создаются системы управления содержимым (CMS), а также веб-приложения.

Преимущества

Если основная задача универсальных CMS — простота создания сайта без вмешательства программиста, то есть — конструктор сайтов, то CMF — это конструктор CMS (в том числе узкоспециализированных) для программиста. Благодаря такому подходу сайт, созданный с помощью CMF, по сравнению с сайтом на базе CMS, может иметь более простую и безопасную в работе административную панель (в которой отсутствуют функции настройки сайта под любые функции) и быть менее требовательным к ресурсам системы (каждый модуль реализует именно те функции, которые необходимы в работе сайта). При наличии грамотно спроектированной CMF и готовых модулей, программисту остаётся только сборка этих модулей в единое пространство и оформление вывода в соответствии с пожеланиями клиента, то есть разработка сайта на основе CMF вполне сравнима по трудоёмкости с разработкой сайта на универсальной CMS[1].

Сложности могут возникнуть, если программист-пользователь фреймворка столкнётся с программными ошибками в его реализации. Не будучи экспертом в архитектуре фреймворка, он может испытывать затруднение с её локализацией, не может быть уверен, сделал ли он ошибку сам, или столкнулся с ошибкой в CMF. Глубокие знания архитектуры фреймворка могут понадобиться и при его тонкой настройке, если программист желает получить максимальную производительность[2].

Архитектура

Фреймворки веб-приложений обычно обеспечивают механизмы доступа к базе данных, шаблонизации и управление сессиями (англ.)русск.[3].

Большинство современных CMF являются реализацией архитектуры Model-View-Controller. Веб-фреймворк обеспечивает бесшовную интеграцию всех трёх слоёв MVC архитектуры. Фреймворки скрывают от программиста детали подключения к базе данных и формирования веб страниц с помощью шаблонов-представлений, позволяя программисту сконцентрироваться на реализации бизнес-логики[2].

Процесс создания приложения с использованием MVC-фреймворка заключается в написании классов контроллеров, моделей и представлений, каждый из которых является наследником базовых классов для компонентов каждого слоя.

Многие веб-фреймворки обеспечивают полуавтоматическое создание прототипа веб-приложения, выполняющего основные (CRUD) операции с данными путём скаффолдинга.

Важные характеристики фреймворка

Граница между CMF и CMS

Многие современные системы управления содержанием построены вокруг MVC-паттерна. Такой фреймворк может быть специально написан для системы, примерами могут являться: Joomla! (начиная с версии 1.5), Bitrix (начиная с версии 6), MODx Revolution (начиная с версии 2.0), SilverStripe, Contao, Frog CMS/Wolf CMS ведётся постепенный перевод на такую архитектуру TYPO3. Другие системы используют фреймворки, популярные сами по себе. Так, написанная на Python CMS Plone построена на основе Zope (и его расширения — CMF[4]), коммерческая CMS ExpressionEngine использует свободный фреймворк CodeIgniter того же автора. CMS eZ publish основана на фреймворке eZ Components (англ.)русск., изначально того же разработчика (сейчас передан Apache Foundation и переименован в Zeta Components (англ.)русск.). В последнее время появилась тенденция использовать в качестве базиса для построения системы управления содержанием Zend Framework: примерами могут служить вошедшие в финал Packt Open Source Awards — 2010 в категории «самые многообещающие CMS» Pimcore (англ.)русск. и Tomato CMS[5], а также Concrete5, отмеченная в 2011 Open Source CMS Market Share Report, как самая быстрорастущая CMS. Выпущенная в конце 2014 года восьмая версия Drupal также построена вокруг Zend Framework.

Ряд CMS, предоставляющих API для расширения своей функциональности, претендуют на звание CMF, хотя провести чёткую границу между CMS и CMF порой сложно. Основным отличием является то что на CMS можно построить сайт не написав ни одной строчки кода[источник?].

Такая готовая к использованию система управления контентом, как Drupal, одновременно считается и каркасом для построения таких систем[6], что определяется как возможностью расширения функционала за счёт пользовательских модулей[7][8][9], так и богатством механизмов и абстракций для управления контентом, предоставляемым этой системой[10].


      2.3.5 Сравнение каркасов веб-приложений

Вики

Ви́ки (англ. wiki) — веб-сайт, структуру и содержимое которого пользователи могут самостоятельно изменять с помощью инструментов, предоставляемых самим сайтом. Форматирование текста и вставка различных объектов в текст производится с использованием вики-разметки. На базе этой технологии построена Википедия и другие проекты Фонда Викимедиа[1].

Определяющие свойства

Вики характеризуется такими признаками:

Техническая основа

Для создания вики-среды необходимо особое ПО — движок вики. Это частный вид систем управления сайтом, довольно простой в своём устройстве и функциональности, поскольку почти все действия по структурированию и обработке содержимого делаются пользователями вручную.

Работа Википедии и других сайтов Фонда Викимедиа основана на движке MediaWiki.

Фирма Kaltura совместно с фондом Викимедиа разрабатывает расширение, которое позволит пользователям править медиафайлы так же легко, как сейчас правят тексты. Используемую технологию называют «видеовики».[источник не указан 26 дней]

Особенности

Язык вики поддерживает гиперссылки для создания ссылок между вики-страницами и является более наглядным, чем HTML, и более безопасным, поскольку использование JavaScript и каскадных таблиц стилей ограничено.
Вандализм

Некоторые вики позволяют изменять их содержимое всем желающим, а не только зарегистрированным пользователям. Подобно тому, как стены зданий и заборы исписывают непристойными надписями и украшают рисунками граффити, в таких вики иногда портят содержимое или добавляют что-то неуместное. Но, в отличие от стен и заборов, в вики легко вернуть содержимое к ранней версии: исправлять легче, чем портить. Если же кто-либо настойчиво и намеренно стремится навредить пользователям вики-сайта, можно закрыть ему возможность вносить правки.

MediaWiki

MediaWiki (МедиаВики) — движок для вики-проектов. Этот мощный вики-движок был написан специально для Википедии и в настоящее время используется во многих других проектах фонда «Викимедиа», а также частных и государственных организациях. MediaWiki является свободной программой и распространяется на условиях Общественной лицензии GNU.
MediaWiki написан на PHP и для хранения данных использует реляционную базу данных (можно использовать MySQL, PostgreSQL, SQLite и Oracle); поддерживает использование программ memcached и Squid.
MediaWiki предоставляет интерфейс работы с базой страниц, разграничение прав доступа к администрированию системы, возможность обработки текста как в собственном формате вики-текст, так и в форматах HTML и TeX (для формул), возможность загрузки изображений и других файлов, а также другие возможности. Гибкая система расширений позволяет пользователям добавлять собственные новые возможности и программные интерфейсы.
Логотип MediaWiki символизирует применяемый язык разметки, в котором для создания ссылок используются квадратные скобки ([[]]), что гораздо проще традиционного синтаксиса HTML.

Интерфейс прикладного программирования (API)

В MediaWiki предусмотрен специальный интерфейс прикладного программирования, обеспечивающий прямой высокоуровневый доступ к информации из баз данных. Клиентские программы могут использовать API для авторизации, получения данных и отправки изменений. Именно через этот интерфейс работают скрипты на веб-странице при обычной работе с Википедией. Доступ к API может быть получен любым образом, в том числе и через front-end и back-end программы.

В качестве примера таких программ можно назвать библиотеку Pywikipedia для создания wiki-бота на языке Python и программу для внесения полуавтоматических изменений в Википедию AutoWikiBrowser.

Главным удобством API является то, что не имеет никакого значения язык программирования, на котором будет написано клиентское приложение, поскольку все запросы обрабатываются по протоколу HTTP, а ответ получается в удобном для разработчика формате: XML, сериализованном[6] PHP, YAML или JSON. Так, к примеру, сделав запрос по адресу http://ru.wikipedia.org/w/api.php?action=query&list=recentchanges, клиентский интерфейс получит список последних 10 правок с дополнительной информацией в формате XML.

Глава II.

   3.1 Тег (языки разметки)
       3.1.1   Синтаксис тегов
   3.2 Canvas (HTML)
       3.2.1   История
       3.2.2   Поддержка
       3.2.3   Возможности
       3.2.4   API
       3.2.5   Особенности
       3.2.6   Примеры или паттерны оптимизации
       3.2.7   Критика
       3.2.8   Преимущества
       3.2.9   Использование
       3.2.10 Примеры
       3.2.11 Библиотеки

  3.3  HTML5
       3.3.1   История
       3.3.2   Свойства
       3.3.3   Логотип HTML5
       3.3.4   Пример веб-страницы HTML5
  3.4  Семантическая вёрстка
  3.5  Сравнение браузерных движков
       3.5.1   Общая информация
       3.5.2   История выпуска
       3.5.3   Поддержка операционных систем

CSS3

CSS (англ. Cascading Style Sheets — каскадные таблицы стилей) — формальный язык описания внешнего вида документа, написанного с использованием языка разметки.

Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML, но может также применяться к любым XML-документам, например, к SVG или XUL.

Bootstrap

Bootstrap (также известен как Twitter Bootstrap[3][4][5]) — свободный набор инструментов для создания сайтов и веб-приложений. Включает в себя HTML и CSS шаблоны оформления для типографики, веб-форм, кнопок, меток, блоков навигации и прочих компонентов веб-интерфейса, включая JavaScript-расширения.

Bootstrap использует самые современные наработки в области CSS и HTML, поэтому необходимо быть внимательным при поддержке старых браузеров[6].

Основные преимущества

Основные преимущества Bootstrap 3[12]:

Основные инструменты

Основные инструменты Bootstrap:
    Сетки — заранее заданные размеры колонок, которые можно сразу же использовать, например ширина колонки 140px относится к классу .span2 (.col-md-2 в третьей версии фреймворка), который можно использовать в CSS описании документа.
    Шаблоны — Фиксированный или резиновый шаблон документа.
    Типографика — Описания шрифтов, определение некоторых классов для шрифтов, таких как код, цитаты и т. п.
    Медиа — Представляет некоторое управление изображениями и Видео.
    Таблицы — Средства оформления таблиц, вплоть до добавления функциональности сортировки.
    Формы — Классы для оформления форм и некоторых событий происходящих с ними.
    Навигация — Классы оформления для Табов, Вкладок, Страничности, Меню и Тулбара.
    Алерты — Оформление диалоговых окон, Подсказок и Всплывающих окон.

База данных

Ба́за да́нных — представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ).[1]
Нажмите для увеличения

Многие специалисты указывают на распространённую ошибку, состоящую в некорректном использовании термина «база данных» вместо термина «система управления базами данных», и указывают на необходимость различения этих понятий.[2]

Проблемы определения

В литературе предлагается множество определений понятия «база данных», отражающих скорее субъективное мнение тех или иных авторов, однако общепризнанная единая формулировка отсутствует.

В определениях наиболее часто (явно или неявно) присутствуют следующие отличительные признаки[8]:

  1. БД хранится и обрабатывается в вычислительной системе.
    Таким образом, любые внекомпьютерные хранилища информации (архивы, библиотеки, картотеки и т. п.) базами данных не являются.
  2. Данные в БД логически структурированы (систематизированы) с целью обеспечения возможности их эффективного поиска и обработки в вычислительной системе.
    Структурированность подразумевает явное выделение составных частей (элементов), связей между ними, а также типизацию элементов и связей, при которой с типом элемента (связи) соотносится определённая семантика и допустимые операции.[9]
  3. БД включает схему, или метаданные, описывающие логическую структуру БД в формальном виде (в соответствии с некоторой метамоделью).
    В соответствии с ГОСТ Р ИСО МЭК ТО 10032-2007, «постоянные данные в среде базы данных включают в себя схему и базу данных. Схема включает в себя описания содержания, структуры и ограничений целостности, используемые для создания и поддержки базы данных. База данных включает в себя набор постоянных данных, определённых с помощью схемы. Система управления данными использует определения данных в схеме для обеспечения доступа и управления доступом к данным в базе данных».[3]

Виды баз данных

Существует огромное количество разновидностей баз данных, отличающихся по различным критериям. Например, в «Энциклопедии технологий баз данных»,[5] по материалам которой написан данный раздел, определяются свыше 50 видов БД.

Основные классификации приведены ниже.

Классификация по модели данных

Примеры:

Классификация по среде постоянного хранения

    Во вторичной памяти, или традиционная (англ. conventional database): средой постоянного хранения является периферийная энергонезависимая память (вторичная память) — как правило жёсткий диск.
    В оперативную память СУБД помещает лишь кеш и данные для текущей обработки.
    В оперативной памяти (англ. in-memory database, memory-resident database, main memory database): все данные на стадии исполнения находятся в оперативной памяти.
    В третичной памяти (англ. tertiary database): средой постоянного хранения является отсоединяемое от сервера устройство массового хранения (третичная память), как правило на основе магнитных лент или оптических дисков.
    Во вторичной памяти сервера хранится лишь каталог данных третичной памяти, файловый кеш и данные для текущей обработки; загрузка же самих данных требует специальной процедуры.

Классификация по содержимому

Примеры:

Классификация по степени распределённости

    Централизованная, или сосредоточенная (англ. centralized database): БД, полностью поддерживаемая на одном компьютере.
    Распределённая (англ. distributed database): БД, составные части которой размещаются в различных узлах компьютерной сети в соответствии с каким-либо критерием.
        Неоднородная (англ. heterogeneous distributed database): фрагменты распределённой БД в разных узлах сети поддерживаются средствами более одной СУБД
        Однородная (англ. homogeneous distributed database): фрагменты распределённой БД в разных узлах сети поддерживаются средствами одной и той же СУБД.
        Фрагментированная, или секционированная (англ. partitioned database): методом распределения данных является фрагментирование (партиционирование, секционирование), вертикальное или горизонтальное.
        Тиражированная (англ. replicated database): методом распределения данных является тиражирование (репликация).

Другие виды БД

    Пространственная (англ. spatial database): БД, в которой поддерживаются пространственные свойства сущностей предметной области. Такие БД широко используются в геоинформационных системах.
    Временная, или темпоральная (англ. temporal database): БД, в которой поддерживается какой-либо аспект времени, не считая времени, определяемого пользователем.
    Пространственно-временная (англ. spatial-temporal database) БД: БД, в которой одновременно поддерживается одно или более измерений в аспектах как пространства, так и времени.
    Циклическая (англ. round-robin database): БД, объём хранимых данных которой не меняется со временем, поскольку в процессе сохранения новых данных они заменяют более старые данные. Одни и те же ячейки для данных используются циклически.

Сверхбольшие базы данных

Сверхбольшая база данных (англ. Very Large Database, VLDB) — это база данных, которая занимает чрезвычайно большой объём на устройстве физического хранения. Термин подразумевает максимально возможные объёмы БД, которые определяются последними достижениями в технологиях физического хранения данных и в технологиях программного оперирования данными.

Количественное определение понятия «чрезвычайно большой объём» меняется во времени; в настоящее время считается, что это объём, измеряемый по меньшей мере петабайтами. Для сравнения, в 2005 г. самыми крупными в мире считались базы данных с объёмом хранилища порядка 100 терабайт.[12]

Специалисты отмечают необходимость особых подходов к проектированию сверхбольших БД. Для их создания нередко выполняются специальные проекты с целью поиска таких системотехнических решений, которые позволили бы хоть как-то работать с такими большими объёмами данных. Как правило, необходимы специальные решения для дисковой подсистемы, специальные версии операционной среды и специальные механизмы обращения СУБД к данным.

Исследования в области хранения и обработки сверхбольших баз данных VLDB всегда находятся на острие теории и практики баз данных. В частности, с 1975 года проходит ежегодная конференция International Conference on Very Large Data Bases («Международная конференция по сверхбольшим базам данных»). Большинство исследований проводится под эгидой некоммерческой организации VLDB Endowment (Фонд целевого капитала «VLDB»), которая обеспечивает продвижение научных работ и обмен информацией в области сверхбольших БД и смежных областях.

Движок базы данных(Database engine)

Database engine, storage engine (движок базы данных, подсистема хранения данных) — компонент СУБД, управляющий базами данных, или библиотека, подключаемая к программам и дающая им функции СУБД.

СУБД использует движок для хранения данных в файлах и организации сетевого интерфейса, позволяющего клиентам СУБД работать по клиент-серверной модели. Обычно СУБД позволяют манипулировать данными и структурами БД с помощью языка SQL, при этом интерпретатор языка SQL обычно является компонентом СУБД, а не движка БД.

Библиотека позволяет программе использовать определённый формат файлов баз данных для манипулирования данными. В более сложном случае, она позволяет нескольким программам работать с общими файлами БД одновременно, используя те или иные механизмы блокировок.

Некоторые СУБД позволяют одновременно использовать несколько систем хранения данных (для разных БД). Например, MySQL позволяет использовать системы хранения данных: InnoDB, MyISAM, NDB и др.

Система управления базами данных

Систе́ма управле́ния ба́зами да́нных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных[1].

Основные функции СУБД

Состав СУБД

Обычно современная СУБД содержит следующие компоненты:

Классификации СУБД

По модели данных

Примеры:

По степени распределённости

По способу доступа к БД

    Файл-серверные

В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. СУБД располагается на каждом клиентском компьютере (рабочей станции). Доступ СУБД к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок.

Преимуществом этой архитектуры является низкая нагрузка на процессор файлового сервера.

Недостатки: потенциально высокая загрузка локальной сети; затруднённость или невозможность централизованного управления; затруднённость или невозможность обеспечения таких важных характеристик, как высокая надёжность, высокая доступность и высокая безопасность. Применяются чаще всего в локальных приложениях, которые используют функции управления БД; в системах с низкой интенсивностью обработки данных и низкими пиковыми нагрузками на БД.

На данный момент файл-серверная технология считается устаревшей, а её использование в крупных информационных системах — недостатком[2].

Примеры: Microsoft Access, Paradox, dBase, FoxPro, Visual FoxPro.

    Клиент-серверные

Клиент-серверная СУБД располагается на сервере вместе с БД и осуществляет доступ к БД непосредственно, в монопольном режиме. Все клиентские запросы на обработку данных обрабатываются клиент-серверной СУБД централизованно.

Недостаток клиент-серверных СУБД состоит в повышенных требованиях к серверу.

Достоинства: потенциально более низкая загрузка локальной сети; удобство централизованного управления; удобство обеспечения таких важных характеристик, как высокая надёжность, высокая доступность и высокая безопасность.

Примеры: Oracle, Firebird, Interbase, IBM DB2, Informix, MS SQL Server, Sybase Adaptive Server Enterprise, PostgreSQL, MySQL, Caché, ЛИНТЕР.

    Встраиваемые

Встраиваемая СУБД — СУБД, которая может поставляться как составная часть некоторого программного продукта, не требуя процедуры самостоятельной установки. Встраиваемая СУБД предназначена для локального хранения данных своего приложения и не рассчитана на коллективное использование в сети. Физически встраиваемая СУБД чаще всего реализована в виде подключаемой библиотеки. Доступ к данным со стороны приложения может происходить через SQL либо через специальные программные интерфейсы.

Примеры: OpenEdge, SQLite, BerkeleyDB, Firebird Embedded, Microsoft SQL Server Compact, ЛИНТЕР.

Стратегии работы с внешней памятью

СУБД с непосредственной записью — это СУБД, в которых все измененные блоки данных незамедлительно записываются во внешнюю память при поступлении сигнала подтверждения любой транзакции. Такая стратегия используется только при высокой эффективности внешней памяти.

СУБД с отложенной записью — это СУБД, в которых изменения аккумулируются в буферах внешней памяти до наступления любого из следующих событий:

Такая стратегия позволяет избежать частого обмена с внешней памятью и значительно увеличить эффективность работы СУБД.

MySQL

MySQL (МФА: [maɪ ˌɛskjuːˈɛl])[3] — свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP, VertrigoServ. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

26 февраля 2008 года Sun Microsystems приобрела MySQL AB за 1 млрд долларов[4], 27 января 2010 года Oracle приобрела Sun Microsystems за 7,4 млрд долларов[5] и включила MySQL в свою линейку СУБД[6].

Сообществом разработчиков MySQL созданы различные ответвления кода, такие как Drizzle (англ.), OurDelta, Percona Server и MariaDB. Все эти ответвления уже существовали на момент поглощения компании Sun корпорацией Oracle.

Технические характеристики

Максимальный размер таблиц в MySQL 3.22 до 4 гигабайт, в последующих версиях максимальный размер ограничивается максимальным размером файла используемой операционной системы.

Размер таблицы ограничен её типом. В общем случае тип MyISAM ограничен предельным размером файла в файловой системе операционной системы. Например, в NTFS этот размер теоретически может быть до 32 эксабайт. В случае InnoDB одна таблица может храниться в нескольких файлах, представляющих единое табличное пространство. Размер последнего может достигать 64 терабайт.

В отличие от MyISAM, в InnoDB имеется значительное ограничение на количество столбцов, которое можно добавить в одну таблицу. Размер страницы памяти по умолчанию составляет 16 килобайт, из которых под данные отведено 8123 байта. Размер указателя на динамические поля составляет 20 байт. Таким образом, в случае использования динамического формата строки (ROW_FORMAT=DYNAMIC), одна таблица может вместить максимум 409 столбцов типа blob или text.

Серверные скрипты(Server-side scripting)

PHP

PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools[6] — «Инструменты для создания персональных веб-страниц»; произносится пи-эйч-пи) — скриптовый язык[7] общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов[8].

Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом[9]. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.

Область применения

В области веб-программирования, в частности серверной части, PHP — один из популярных сценарных языков (наряду с JSP, Perl и языками, используемыми в ASP.NET).

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений[10]. Основные из них:

    автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
    взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);

В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в сентябре 2015 года PHP находился на 6 месте среди языков программирования[8]. К крупнейшим сайтам, использующим PHP, относятся Facebook, Wikipedia и др.

Входит в LAMP — распространённый набор программного обеспечения для создания и хостинга веб-сайтов (Linux, Apache, MySQL, PHP).

Создание GUI-приложений

Хотя PHP и не слишком распространён в данной области, его можно использовать и для создания GUI-приложений.

Для создания кроссплатформенных приложений служат пакеты PHP-GTK и PHP-Qt, представляющие собой обёртки для соответствующих популярных библиотек виджетов.

Для создания графических приложений для Windows существуют свободный пакет WinBinder (написан на Си, фактически — обёртка для WinAPI).

Также существует реализация PHP для .NET/Mono — Phalanger и для JVM — JPHP, результатом компиляции PHP-кода в Phalanger может быть любое .NET-приложение, в то же время JPHP поддерживает расширение Swing, почти полностью портированное из среды Java.

Фреймворки и системы управления содержимым

Самые современные и наиболее популярные:

    Phalcon
    Symfony
    Laravel
    Kohana
    Yii
    Codeigniter
    Zend Framework
    CakePHP
    FuelPHP
    Drupal
    WordPress
    Joomla
    MODX
    Fat Free Framework

Востребованность на рынке

Согласно исследованиям одного из крупных российских порталов трудоустройства[47]:


        5.1.5   Особенности интерпретатора
        5.1.6   Лицензирование
        5.1.7   Приложения PHP
        5.1.8   Интегрированные среды разработки для PHP
        5.1.9   Критика

PHP Data Objects

PHP Data Objects (PDO) — расширение для PHP, предоставляющее разработчику простой и универсальный интерфейс для доступа к различным базам данных.

PDO предлагает единые методы для работы с различными базами данных, хотя текст запросов может немного отличаться. Так как многие СУБД реализуют свой диалект SQL, который в той или иной мере поддерживает стандарты ANSI и ISO, то при использовании простых запросов можно добиться совместимости между различными языками. На практике это означает, что можно достаточно легко перейти на другую СУБД, при этом не меняя или частично изменяя код программы.

Скорость работы и масштабируемость: PDO не использует абстрактных слоёв для подключения к БД, наподобие ODBC, а использует для разных БД их «родные» драйверы, что позволяет добиться высокой производительности. В настоящее время для PDO существуют драйверы практически ко всем общеизвестным СУБД и интерфейсам. Так же позволяет работать сразу с несколькими базами данных одновременно.

Защита: Из методов борьбы с sql-иньекциями появилось prepared. Prepared statement — это заранее скомпилированное SQL-выражение, которое может быть многократно выполнено путем отправки серверу лишь различных наборов данных. Дополнительным преимуществом является невозможность провести SQL-инъекцию через данные, используемые в placeholder’ах.

Обновления библиотеки прекращены.

Клиентский скриптинг(Client-side scripting)

JavaScript

JavaScript (/ˈdʒɑːvɑːˌskrɪpt/; аббр. JS) — прототипно-ориентированный сценарный язык программирования. Является реализацией языка ECMAScript (стандарт ECMA-262[6]).

JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.

На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке[~ 1][7].

Название «JavaScript» является зарегистрированным товарным знаком компании Oracle Corporation[8].

Возможности языка

JavaScript является объектно-ориентированным языком, но используемое в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными класс-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания — что придаёт языку дополнительную гибкость.

Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:

В языке отсутствуют такие полезные вещи[33], как:

 

Область применения

Веб-приложения

JavaScript используется в клиентской части веб-приложений: клиент-серверных программ, в котором клиентом является браузер, а сервером — веб-сервер, имеющих распределённую между сервером и клиентом логику. Обмен информацией в веб-приложениях происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются кроссплатформенными сервисами.

AJAX

b:     AJAX в Викиучебнике?
commons:     JavaScript на Викискладе?
n:     JavaScript в Викиновостях?

JavaScript используется в AJAX, популярном подходе к построению интерактивных пользовательских интерфейсов веб-приложений, заключающемся в «фоновом» асинхронном обмене данными браузера с веб-сервером. В результате, при обновлении данных веб-страница не перезагружается полностью и интерфейс веб-приложения становится быстрее, чем это происходит при традиционном подходе (без применения AJAX).

Comet

Comet — широкое понятие, описывающее механизм работы веб-приложений, использующих постоянные HTTP-соединения, что позволяет веб-серверу отправлять данные браузеру без дополнительного запроса со стороны браузера. Для таких приложений используются технологии, непосредственно поддерживаемые браузерами. В частности, в них широко используется JavaScript.

Браузерные операционные системы

Пример сеанса eyeOS

JavaScript широко используется в браузерных операционных системах. Так, например, исходный код IndraDesktop WebOS на 75 % состоит из JavaScript[50], код браузерной операционной системы IntOS — на 70 %[51]. Доля JavaScript в исходном коде eyeOS — 5 %[52], однако и в рамках этой операционной системы JavaScript играет важную роль, участвуя в визуализации на клиенте и являясь необходимым механизмом для коммуницирования клиента и сервера[53].

Букмарклеты

JavaScript используется для создания небольших программ, размещаемых в закладки браузера. При этом используются URL-адреса со спецификатором javascript:[54].

Пользовательские скрипты в браузере

Пользовательские скрипты в браузере — это программы, написанные на JavaScript, выполняемые в браузере пользователя при загрузке страницы. Они позволяют автоматически заполнять формы, переформатировать страницы, скрывать нежелательное содержимое и встраивать желательное для отображения содержимое, изменять поведение клиентской части веб-приложений, добавлять элементы управления на страницу и т. д.

Для управления пользовательскими скриптами в Mozilla Firefox используется расширение Greasemonkey; Opera[55][56][57] и Google Chrome[58] предоставляют средства поддержки пользовательских скриптов и возможности для выполнения ряда скриптов Greasemonkey.
Серверные приложения

Приложения, написанные на JavaScript, могут исполняться на серверах, использующих Java 6 и более поздних версий[59]. Это обстоятельство используется для построения серверных приложений, позволяющих обрабатывать JavaScript на стороне сервера.

Помимо Java 6, существует ряд платформ, использующих существующие движки (интерпретаторы) JavaScript для исполнения серверных приложений. (Как правило, речь идёт о повторном использовании движков, ранее созданных для исполнения кода JavaScript в браузерах WWW.)

 

 

Популярные веб-приложения

С использованием PHP разработано множество приложений, которые широко используются на различных сайтах, форумах и блогах.

Вспомогательные каркасы

Для быстрой разработки приложений на PHP было создано множество фреймворков, наиболее популярными из которых являются Zend Framework, CakePHP, Symfony, CodeIgniter, Kohana и Yii[40]. Основные преимущества такой разработки — это предоставление возможности строить проект при помощи паттерна MVC.

 

 


        6.1.6   Библиотеки JavaScript
        6.1.7   Отладка
        6.1.8   Средства тестирования
        6.1.9   Связь с другими языками
        6.1.10 Поддержка браузерами

Редактор HTML

Реда́ктор HTML или HTML-реда́ктор — программа, позволяющая создавать и изменять HTML-страницы.

Несмотря на то, что HTML-код может быть написан в простом текстовом редакторе (например, в Блокноте), специальные редакторы для написания кода HTML предлагают больше удобств и функциональности, могут содержать дополнительные шаблоны и ресурсы для создания и редактирования страниц.

Делятся на:

 

WYSIWYG (произносится [ˈwɪziwɪɡ], является аббревиатурой от англ. What You See Is What You Get, «что видишь, то и получишь») — свойство прикладных программ или веб-интерфейсов, в которых содержание отображается в процессе редактирования и выглядит максимально близко похожим на конечную продукцию, которая может быть печатным документом, веб-страницей или презентацией. В настоящее время для подобных программ также широко используется понятие «визуальный редактор».


Основанные на JavaScript (встраиваемые в веб-страницу)

  Глава III. (практический)

1   Ядро (CMS Kernel)
2   Менеджмент Языки (Проблемы в письменной форме например, справо налево)
3  Связаться с ним(Отношения между страницами по языку)
4  динамическое меню(меню навигации и друг)
5  Статьи Рейтинг и статистика посещений
6  Управление пользователями
7  Управление контентом - редактор на основе веб
8  Управление Загрузок
9  Визуальный редактор
10  Расширение Управление(Extension Manager)
11 Безопасность

Заключение

Источники

Источники текстов и изображения, авторы и лицензии
Текст
Изображения
Лицензия


Статьи
Цифровые медиа
Русский язык
Религия
Другый предмет
Продукты и Услуги
Про Фадак
О Веб-сайт
Управление
Журнал современного менеджмента
Управленческие стихи
Цитаты о фотографии
Фото написано
Банк исследователей управления
Тема статей по менеджменту
Образовательные ресурсы (семинары и университеты)
Исследования
Обсерватория - деятели
Обсерватория - Культурные
Обсерватория - Академическая
Обсерватория - СМИ
Обсерватория - научные мероприятия
Язык
Словарь
Тест по русскому языку
Русская пословица
Английская пословица
Четыре языковых предложения
logo-samandehi
О | Свяжитесь с нами | Политика конфиденциальности | Условия | Политика в отношении файлов cookie |
Версия (пре-альфа) 2000-2022 CMS Fadak. ||| Version : 5.2 ||| By: Fadak Solutions Старая версия