Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ответы WEB 2

.0.pdf
Скачиваний:
63
Добавлен:
16.05.2015
Размер:
809.61 Кб
Скачать

длиннее 63 символов. В имени не могут использоваться никакие иные символы, кроме букв английского алфавита обоих регистров, цифр и дефиса, который может использоваться только внутри имени (в связи с последними принятыми соглашениями эти ограничения расширены, но об этом в другой раз). Определенные ограничения могут накладываться администраторами национальных доменов - минимальная или максимальная длина имени, недопустимость регистрации имен, составленных из одних цифр и иные. Исходя из этих ограничений, можно сделать следующий вывод: нет никаких наименований, зарезервированных для использования в названиях доменов. Что из этого следует? То, что такие привычные всем имена, как 'www', 'ftp', 'mail' и иные могут использоваться как имена доменов второго, третьего и далее уровней и обозначать они будут только название соответствующего домена (хоста) и ничего более. Следовательно, доменные имена www.dog.ru, ftp.dog.ru равноценны по своему статусу доменному имени cat.dog.ru и являются доменными именами третьего уровня. А имя www.cat.dog.ru будет обозначать домен четвертого уровня.

Доме́нное имя— символьное имя, служащее для идентификации областей — единиц административной автономии в сети Интернет — в составе вышестоящей по иерархии такой области. Каждая из таких областей называется доме́ном. Общее пространство имён Интернета функционирует благодаряDNS — системе доменных имён. Доменные имена дают возможность адресации интернет-узлов и расположенных на них сетевых ресурсов (веб-сайтов, серверов электронной почты, других служб) в удобной для человека форме.

Полное доменное имя состоит из непосредственного имени домена и далее имён всех доменов, в которые он входит, разделённых точками.

Доме́нная зона— совокупность доменных имён определённого уровня, входящих в конкретный домен. Например, зона wikipedia.org. включает все доменные имена третьего уровня в этом домене. Термин «доменная зона» в основном применяется в технической сфере, при настройке DNS-серверов (поддержание зоны, делегирование зоны, трансфер зоны).

Регистрация (делегирование) домена (доменного имени):

1)Внесение имени и соответствующего ему IP-адреса в базу данных DNS-сервера. Регистрация в доменах верхнего уровня обычно платная. Регистрация доменов нижнего уровня обычно бесплатна и выполняется провайдером.

2)Закрепление определенного доменного имени за физическим или юридическим лицом, путем внесения

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

29. Хостинг-площадки, виды хостинга, особенности, возможности и ограничения. Российский хостинг, зарубежный хостинг.

Хо́стинг (англ. hosting) — услуга по предоставлению вычислительных мощностей для физического размещения информации на сервере, постоянно находящемся в сети (обычно Интернет). Хостингом также называется услуга по размещению оборудования клиента на территории провайдера с обеспечением подключения его к каналам связи с высокой пропускной способностью (колокация, от англ. colocation).

Обычно под понятием услуги хостинга подразумевают как минимум услугу размещения файлов сайта на сервере, на котором запущено ПО, необходимое для обработки запросов к этим файлам (веб-сервер). Как правило, в услугу хостинга уже входит предоставление места для почтовой корреспонденции, баз данных, DNS, файлового хранилища и т. п., а также поддержка функционирования соответствующих сервисов.

Хостинг баз данных, размещение файлов, хостинг электронной почты, услуги DNS могут предоставляться отдельно как самостоятельная услуга, либо входить в понятие услуги.

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

поддержка CGI: Perl, PHP, Python, ASP, Ruby, JSP

поддержка .htaccess/.htpasswd (для Apache)

поддержка баз данных

А также установленные модули и фреймворки для каждой из возможностей.

Хостинг как услугу сравнивают и описывают по количественным ограничениям:

размер дискового пространства

количество месячного трафика

количество сайтов, которые можно разместить в рамках одной учетной записи

количество FTP пользователей

количество E-Mail ящиков и объём места, предназначенного для почты

количество баз данных и количество места под базы данных

количество одновременных процессов на пользователя

количество ОЗУ, и максимальное время исполнения выделяемое каждому процессу пользователя

качественным ограничениям:

свободные ресурсы CPU, оперативной памяти, которые влияют на быстродействие сервера

пропускная способность каналов, которая влияет на загрузку информации.

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

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

Помимо платных хостеров существуют также и бесплатные хостинг компании, поддерживающие большинство описанных веб-технологий. Однако в России они не распространены, поэтому люди пользуются в основном услугами платного хостинга.

Виды хостинга По условиям предоставления хостинг часто разделяется на платный и бесплатный. Обычно компания,

предоставляющая бесплатный хостинг, зарабатывает путем показа рекламы на страницах, размещенных на нем. Бесплатный хостинг, как правило, медленнее платного, предоставляет только базовые услуги и иногда ненадёжен (то есть может закрыться). Частные лица для своих домашних страничек на начальном этапе их развития используют бесплатный хостинг. Общественные организации могут использовать как платный хостинг, так и бесплатный. Коммерческие организации практически всегда пользуются услугами платного хостинга.

Также можно разделить услуги хостинга по типу предоставляемого ресурса:

виртуальный хостинг — предоставляется место на диске для размещения веб-сайтов, среда исполнения вебсервисов единая для многих пользователей, ресурсы распределены между всеми пользователями на одном сервере, где может размещаться от 50 до 1000 пользователей. Небольшие дешевые хостинг-провайдеры часто пренебрегают безопасностью и вообще не разграничивают привилегий пользователей, что позволяет одному пользователю на сервере иметь доступ к сайтам сотен других пользователей. У более крупных и дорогих провайдеров эта проблема как правило решена.

виртуальный частный/выделенный сервер (VPS или VDS) — предоставляется место на диске, часть общей памяти, процессорное время сервера. Выглядит для пользователя так же, как и выделенный сервер, но физически на одном реальном сервере располагается несколько виртуальных серверов. Услуга предназначена для проектов средней тяжести. В связи с тем, что четко разделить все ресурсы сервера невозможно (в частности I/O операции, ресурсы сетевой карты и др.), а многие провайдеры VPS продают ресурсов больше, чем есть на сервере, надеясь на то, что клиент задействует выделенный ему потенциал не полностью (оверселлинг), часто заявленная мощность VPS сервера не соответствует реальной.

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

колокация (Collocation) — предоставление места в датацентре провайдера для оборудования клиента (обычно путем монтажа в стойке) и подключение его к Интернету.

Облачные хранилища - предоставляется возможность собрать сервер по логически нарезанным частям. По примеру Amazon и Nirvanix.

Облачные вычисления - тот случай, когда клиент платит не за использованные аппаратные ресурсы для своих клиентов, а за услугу для своих же сотрудников (SAAS, WAAS, DAAS, IAAS, PAAS, HAAS и т.д.). Как правило на таких хостингах размещаются коллаборационные ресурсы и виртуальные офисы.

В России, с юридической точки зрения, услуга хостинга не относится к телематическим услугам связи в силу различия определения телематических услуг связи (предоставление доступа пользовательского оборудования к сети связи оператора[1]) и сути хостинга (предоставление ресурсов оборудования подключенного к сети связи для размещения и функционирования веб-сайта клиента).

Вслучае, когда оператор связи размещает у себя оборудование пользователя и обеспечивает его подключение

кИнтернету (колокация) — в части оказания услуги по обеспечению доступа к сети связи деятельность оператора подлежит лицензированию. В России лицензии выдаются Федеральной службой по надзору в сфере связи.

Хостинг провайдеры без юридического лица или не зарегистрированные как индивидуальные предприниматели не имеют права работать на территории России. Хостинг в России могут предоставлять только

компании с лицензиями на телематические услуги связи, в противном случае данная деятельность является незаконным предпринимательством.

30. Повышение производительности веб-систем. Nginx, акселераторы: eaccelerator, memcached, APC, настройка СУБД MySQL.

Nginx - небольшой по размерам, очень быстрый, достаточно функциональный веб сервер и почтовый проксисервер. Из-за очень маленького потребления ресурсов системы и скорости работы, а так-же гибкости конфигурирования, веб сервер Nginx часто используется в качестве фронтэнда к более тяжеловесным серверам, такими как Apache, в проектах с высокой нагрузкой. Классическим вариантом является связка, Nginx - Apache - FastCGI. Работая в такой схеме, сервер Nginx, принимает все запросы приходящие по HTTP, и в зависимости от конфигурации и собственно самого запроса, решает, обработать-ли запрос самому и отдать клиенту готовый ответ или отправить запрос на обработку, одному из бакэндов ( Apache или FastCGI ).

Не стоит забывать про возможности кэширования данных и работу с memcached. Список основных функциональных возможностей веб сервера Nginx. Функционал сервера Nginx в качестве HTTP сервера

Обработка статического контента, индексные файлы, листинг директорий, кэш дескрипторов открытых файлов;

Акселерированное проксирование с кэширование, распределение нагрузки и отказоустойчивостью; Акселерированная поддержка FastCGI серверов с кэшированием, распределением нагрузки и

отказоустойчивостью;

Модульная структура, поддержка различных фильтров ( SSI, XSLT, GZIP, докачка, chunked ответы ); Поддержка SSL и расширения TLS SNI;

Ip-based или Name-based виртуальные сервера; Работа с KeepAlive и pipelined соединениями;

Возможность конфигурирования любых таймаутов а так-же количества и размеров буферов, на уровне сервера Apache;

Выполнение различных действий в зависимости от адреса клиента; Изменение URI с помощью регулярных выражений;

Специальные страницы ошибок для 4хх и 5хх; Ограничение доступа на основе адреса клиента или по паролю; Настройка форматов лог-файлов, ротация логов; Ограничение скорости ответа клиенту;

Ограничение количества одновременных подключений и запросов; Поддержка методов PUT, DELETE, MKCOL, COPY и MOVE; Изменение настроек и обновление сервера без остановки работы; Встроенный Perl;

Добиться ускорения в работе с Internet можно простым увеличением пропускной способности канала, например перейдя от dial-up-соединения к выделенным линиям, каналам ISDN или DirecPC. Это, пожалуй, самый простой, но и самый дорогой путь решения проблемы, и, как правило, немногие могут позволить себе подобную роскошь.

Другой вариант, чисто аппаратный, подразумевает замену модемов на модели с более высокой производительностью или использование модемного акселератора, например SupraSonic II от Diamond Multimedia (устанавливается на две телефонные линии и теоретически позволяет в два раза увеличить скорость передачи данных). Но подобное решение не всегда приемлемо: замена модема не даст кардинального увеличения производительности на плохом канале, а задействование второй телефонной линии, вообще говоря, не оправдано.

Третьим, самым дешевым вариантом улучшения работы в Internet является применение специального программного обеспечения. Так называемые Web-акселераторы за счет прогрессивных технологий кэширования позволяют ускорить время загрузки страниц на 30--60%.

Как это работает

Все Web-акселераторы в своей работе используют два основных приема: упреждающую загрузку ссылок и "интеллектуальное" кэширование" Web-страниц.

Метод упреждающей загрузки ссылок заключается в следующем: пока вы читаете или рассматриваете содержимое текущей страницы, акселератор начинает загружать страницы, связанные с ней ссылками и расположенные на том же Web-сайте. Это не ускоряет появление первой страницы сайта, но чем дольше вы на ней находитесь, тем большее количество связанных с ней страниц успевает загрузиться. В результате отображение следующей страницы происходит значительно быстрее, но если вы обращаетесь по ссылке, ведущей за пределы сайта, выигрыша в скорости не получится.

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

Настройка mysql

MySQL — свободная система управления базами данных (СУБД). Mysql после установки работоспособна без дополнительных настроек.

Базовые настройки

low-priority-updates — эта опция снижает приоритет операций INSERT/UPDATE по сравнению с SELECT. Актуально, если данные важно быстрее прочитать, чем быстрее записать.

skip-external-locking — опция установлена по умолчанию, начиная с версии 4. Указывает MySQL-серверу не использовать внешние блокировки при работе с базой. Внешние блокировки необходимы в ситуациях, когда несколько серверов работают с одними и теми же файлами данных, т.е. имеют одинаковую datadir, что на практике не используется.

skip-name-resolve — не определять доменные имена для IP-адресов подключающихся клиентов. При этом пользовательские разрешения нужно настраивать не на хосты, а на IP-адреса (за исключением localhost). Если вы соединяетесь с сервером только с локальной машины, то особого значения не имеет. Для внешних соединений ускорит установку соединения.

skip-networking — не использовать сеть, т.е. вообще не обрабатывать TCP/IP соединения. Общение с сервером при этом будет происходить исключительно через сокет. Рекомендуется, если у вас нет ПО, которое использует только TCP/IP для связи с сервером.

Ограничения

bind-address — интерфейс, который будет слушать сервер. В целях безопасности рекомендуется установить здесь 127.0.0.1, если вы не используете внешние соединения с сервером.

max_allowed_packet — максимальный размер данных, которые могут быть переданы за один запрос. Следует увеличить, если столкнетесь с ошибкой «Packet too large».

max_connections — максимальное количество параллельных соединений к серверу. Увеличьте его, если сталкиваетесь с проблемой «Too many connections».

max_join_size — запрещает SELECT операторы, которые предположительно будут анализировать более указанного числа строк или больше указанного числа поисков по диску. Используется для защиты от кривых запросов, которые пытаются считать миллионы строк. Значение по умолчанию более 4 миллиардов, поэтому вы скорее всего захотите его значительно уменьшить.

max_sort_length — указывает, сколько байт из начала полей типа BLOB или TEXT использовать при сортировке. Значение по умолчанию 1024, если вы опасаетесь некорректно спроектированных таблиц или запросов, то следует его уменьшить.

31.Системы управления контентом, их виды, способы классификации.

Система управления контентом – это программное обеспечение, которое позволяет публиковать и изменять опубликованную на сайте информацию, без привлечения разработчиков сайта. При этом подразумевается, что от пользователей такой системы не требуется специальных знаний технологий, отличающихся от обычно используемых в офисных процессах (текстовый редактор, интернет и т.п.). При этом не следует считать, что такая система не требует обучения персонала, но это обучение касается порядка работы в системе, а не изучение новых технологий.

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

Работа сайта на базе CMS

Как правило, в системе присутствует два хранилища. В первом (обычно реляционная СУБД) хранятся все данные, которые публикуются на сайте. Во втором (обычно файловая система) хранятся элементы представления – шаблоны, графические изображения и т.д. Кроме внешнего представления сайта, каким его видят все пользователи, есть как минимум два специализированных рабочих места. Первое рабочее место – для разработчиков сайта. С его помощью они задают структуру сайта, структуру контента, определяют внешний вид сайта, настраивают шаблоны представления информации. Этот инструментарий обычно не полностью автоматизирован. Для настройки сайта разработчики частично работают через средства CMS, часть информации размещается напрямую. Второе рабочее место – для владельцев сайта. Оно позволяет сотрудникам компании самостоятельно размещать информацию на сайте, без участия разработчиков. Менеджеры заказчика работают только через специализированное рабочее место.

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

таких приложений:

1.Системы крупных производителей

2.Системы с открытым исходным кодом

3.Российские разработки

Существует определенное количество приложений от крупных производителей в основном предназначенных для крупных (enterprise) предприятий и организаций. Наиболее известными приложениями такого класса являются Microsoft Content Management Server, Documentum, Plumtree Portal, IBM WebSphere Portal и т.д.

Стоимость внедрения проектов на базе данных решений составляет от 50 000 euro. Поэтому сфера их применения очень узкая и ограничивается в основном созданием интранет-решений для крупных предприятий.

Другим достаточно большим классом являются open source системы. Преимуществами таких систем является доступность, наличие исходного кода, возможность локализации. Однако их использование связано с определенного рода проблемами:

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

2.Узкая сфера применения – чаще всего продукт явился побочным результатом решения одной из собственных задач. Например, разработчики создали сайт-сообщество (community) для общения между собой. И далее решение, на котором работает этот сайт, предлагается как CMS. Очевидно, что подобное решение может хорошо решать задачи создания такого же рода сайтов, но может быть совершенно неприспособленно для решения задач другого плана (электронная коммерция, b2b и т.д.). Наиболее известными примерами таких систем являются

OpenCMS, PhpNuke, PostNuke, Portal Starter Kit и т.д. Более подробно ознакомиться с существующими open source системами вы можете на сайте opensourceCMS.com. Сравнение некоторых open source систем вы можете найти в документе на сайте TechRepublic5.

Российские разработки созданы в основном различными web-студиями, имеющими большой опыт в реализации сайтов разных типов. Практически все решения являются коммерческими, но с достаточно низкой стоимостью (100-

3000$) и могут быть использованы для создания сайтов разных типов. Наиболее популярными решениями этого класса являются Optimizer, QPublisher, Saitistika, Bitrix и другие.

По способу реализации системы можно разделить на следующие классы:

Система публикации HTML-страниц.

Система с фиксированной структурой.

Система с гибко настраиваемой структурой документов.

1) Система публикации HTML-страниц

Разработчик позволяет через web-интерфейс осуществлять публикацию одного типа документа – страница. Под страницей обычно понимается тип документа, содержащий название (заголовок страницы) и собственно текст страницы. Текст страницы может быть изменен пользователем с помощью встроенного WYSIWYG-редактора. В данных системах все атрибуты находятся внутри HTML. Разделения данных и их представления не производится. Описанные выше задачи не решаются. Такие системы можно рассматривать как системы для управления очень небольшими простыми сайтами. Однако, в таком случае лучше взять более продвинутые в этом отношении промышленные средства, такие как Microsoft FrontPage, MacroMedia Contribute и т.д. С их помощью аналогичная задача решается более удобно.

2) Системы с фиксированной структурой.

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

Первый – использование стандартного типа «HTML-страница», как в системах 1-го типа. При этом эти для этих данных принципы структуризации и разделения данных и представления действовать не будут.

Второй – разработчик специально для проекта вносит изменения в систему и добавляет необходимые типы документов.

При принятии решения об использовании систем такого класса надо четко описать все типы документов, которые будут публиковаться на сайте.

3) Системы с гибко настраиваемой структурой.

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

32. Системы управления контентом. Возможности управления документооборотом, поисковые возможности.

Функционал для поддержки совместной работы операторов при публикации информации, можно разбить на следующие блоки:

Документооборот

Разграничение прав

Поддержка одновременной работы

1) Документооборот

Под документооборотом понимается наличие возможности реализовать определенный процесс публикации документов на сайте. Обычно он реализовываться в одном из следующих вариантов:

Возможность скрыть часть документов от пользователя.

Поддержка процесса утверждения документа. Возможность создания цепочек прохождения документа.

Поддержка процесса согласования документа. Система позволяет задавать произвольные стадии, которые

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

2) Разграничение прав

Под разграничением прав понимается возможность регулировать, кто имеет право выполнять какие операции. Система может строиться по разным принципам:

По типам информации – одни сотрудники занимаются публикацией новостей, другие занимаются обработкой заказов и т.д.

По разделам – раздел «Политика» ведется одними, раздел «Экономика» другими. Сотрудник осуществляет полное администрирование раздела, независимо от типа информации.

Комбинация этих вариантов.

3) Поддержка одновременной работы

Чтобы в единый момент времени более одного человека не правили один документ система должна поддерживать как минимум операции – «взять на редактирование», «завершить редактирование». Чтобы дать возможность откатить изменения, необходимо, чтобы система хранила все версии документов.

Поисковые возможности.

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

1.Поиск по сайту

2.Поиск по информации сайта

Поиск по сайту

Для организации такого варианта поиска используется внешняя поисковая система. Внешняя поисковая система состоит из двух модулей:

Crawler – (обходчик, «паук») – программа, которая периодически сканирует сайт, т.е. проходит по всем доступным ему страницам сайта, скачивает их.

Indexer – (индексатор) – программа, которая извлекает и индексирует тексты страниц.

Что получается в результатах поиска?

Результатом поиска является страница сайта, т.е. находится информация, как она выглядит на сайте. Например, заголовок новости содержит слово «Выборы». При этом, в результатах поиска мы найдем не только саму страницу новости, но и страницы со списком новостей. Ведь на тех страницах было название этой новости, поэтому они тоже найдутся в результатах поиска. Кроме всего прочего может найтись еще и страница, на которой в момент обхода в текстовом баннере содержалась данная строка. Чтобы избежать индексации ненужного содержимого, например, текстовых баннеров, можно обрамлять текст специальными инструкциями (NOINDEX), которые поддерживаются большинством поисковых систем. Однако корректное их использование – на совести разработчика.

Как происходит обновление индекса?

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

Какие есть ограничения на формирование ссылок?

Собственно на способ формирования ссылок ограничений нет. Ссылка может иметь произвольный вид.

Поиск по информации сайта.

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

материалы. При таком подходе индексации подвергается собственно сама информация, а не ее представление.

Что мы получаем в результатах поиска?

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

Как происходит обновление индекса?

База данных самостоятельно отслеживает все изменения информации и автоматически обновляет индексы. Обновление происходит по мере внесения изменений.

Какие есть ограничения на формирование ссылок?

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

Можно ли одновременно искать по контексту и атрибутам?

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

Как происходит индексация разделов с ограниченным доступом?

Точно так, как и для всей остальной информации. Система индексирует все данные, а какие из них кому показывать – определяется на этапе отображения.

33.Разработка системы управления контентом, варианты архитектуры, способы реализации.

Подходы к реализации динамических типов данных.

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

Сравним некоторые варианты реализации этих возможностей с точки зрения хранения информации. И посмотрим, как подходы к реализации влияют на предоставляемые

пользователям возможности.

Наиболее известны следующие подходы к созданию динамических типов:

1. Пары ключ/значение

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

Entity – справочник типов документов

Attributes – описания атрибутов, которые есть у документов данных типов.

Object – собственно документы данных типов

ObjectAttributes – хранение значения атрибутов для всех объектов.

Названия таблиц, полей и т.д., могут отличаться в разных реализациях, но суть подхода остается той же. Основным является то, что все значения всех атрибутов хранятся в одной таблице в виде пар – атрибут/значение.

Данная реализация является наиболее простой в реализации и поэтому популярной, однако имеет ряд существенных недостатков.

1) Большое количество таблиц, участвующих в выборках. Допустим, Вам необходимо выбрать всю информацию по одному товару. При этом товар имеет 10 атрибутов. В этой выборке будет участвовать, как минимум, 11 таблиц. Одна таблица Object и 10 таблиц ObjectAttributes. Это при условии, что информация по описаниям атрибутов уже выбрана заранее и закэширована. Иначе придется включать еще и 10 таблиц Attributes. Итого – 21 таблица в выборке для получения данных.

2) Значительный рост количества записей и объем таблицы с данными (ObjectAttributes). Если у нас товар имеет 10 атрибутов, то для 100 тыс. Записей товаров, в таблице значений атрибутов будет уже миллион записей. В итоге мы получаем, что таблица со значениями атрибутов документов растет очень быстро и в каждой выборке эта таблица включается столько же раз, сколько атрибутов необходимо получить. С ростом количества записей это ведет к катастрофической потере производительности. В результате такой подход хорошо работает только в системах с небольшим объемом информации.

2 Использование BLOB для хранения информации

Другой популярный подход заключается в использовании больших текстовых полей (BLOB), в которых все атрибуты объекта хранятся в структурированном виде (чаще всего в XML). Приложение сохраняет все свойства объекта в виде XML документа и записывает в текстовое поле в таблице. Далее, при необходимости получения значения отдельных атрибутов, выбирается текстовое поле, разбирается XML-документ и получаются значения.

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

1)Постоянные дополнительные преобразования XML-документов приводят к лишнему расходованию ресурсов. Это может не быть критичным при работе с одиночными документами, но приводит к замедлению работы при выборке сразу большого количества записей.

2)Базовое программное обеспечение не знает ничего о внутренней структуре документов. Внутренняя структура известна только самому приложению. Это означает сложность или невозможность использования

встроенных средств, таких, как, например, индексирования для осуществления быстрого поиска, контроля целостности и т.д.

3. Использование фиксированного списка полей

В таблице, где хранятся значения объектов, создано заранее определенное количество полей. Обычно типа «строка» с ограничением по длине, либо типа sql_variant, если подобные типы поддерживаются базовым программным обеспечением. А в таблице описаний атрибутов содержится информация, что в поле с номером такимто хранится атрибут с таким-то названием и такого-то типа. Вариацией данного подхода является хранение определенного количества параметров каждого типа, например, 20 строковых параметров, 5 числовых, 5 дат и т.д. Такой подход позволяет полностью избежать необходимости включения большого количества таблиц в выборку, а также избежать значительного роста записей. Но также имеет свои недостатки.

При использовании для значения параметров полей строкового типа, мы получаем проблемы с

Ограничением по длине. Если поля 255 символов, а потребовалось сохранить поле длиной 256, то это уже становится невозможным. Либо приходится использовать два поля и автоматически соединять их значения.

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

Сложности при использовании индексов. Все таки результат сравнения чисел 9 и 10 и строк «9» и «10» отличаются.

Если у нас параметры разных типов, то может оказаться, что для какого то типа нужно 6 числовых атрибутов,

абазовая система поддерживает не более 5. И т.д.

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

4. Динамически изменяемая структура базы данных

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

В таблице Entity хранится описание новых сущностей, которые создает пользователей. В дополнительной таблице (Properties) хранятся мета-описания атрибутов. Та информация, которая нужна системе для работы. Для хранения конкретных экземпляров объектов есть две фиксированные таблицы – Object, хранящая базовые параметры документа и ObjectLinks, в которой хранятся множественные связи. Когда пользователь создает новую сущность, например, SampleType1, то автоматически создается таблица с аналогичным именем. При добавлении нового свойства автоматически создается новое поле в соответствующей таблице. При этом поле создается именно того типа, который нужен пользователю. Т.е. используются все возможности базового ПО по работе и поддержке типов, индексации, оптимизации выборок и т.д.. Когда создается связь один-ко-многим, то создается колонка в таблице, и связь с соответствующей таблицей. При создании связей многие-ко-многим, значения связей хранятся в общей таблице (можно было бы и создавать отдельную, как бы сделал разработчик вручную, но это было одно из упрощений системы). Такой подход значительно более сложен в реализации, поскольку при разработке надо решить много задач:

Полностью формализовать деятельность программиста и подменить ее

Выполнить самостоятельно все проверки на типы/ограничения базы данных и т.д.

Избежать возможных конфликтов имен

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

34. Пример систем управления контентом, различия, особенности.

Каковы плюсы и минусы создания сайта при помощи CMS? Плюсы:

1)Создание сайта при помощи CMS не требует никаких специальных знаний и навыков.

2)Сделать сайт на CMS можно быстро, что экономит время.

3)CMS несёт в себе достаточно большую функциональность, что позволяет не тратить лишнее время на поиск

или написание отдельных скриптов.

4) Если вы выбираете популярную CMS, то к ней обычно можно найти большое число разнообразных шаблонов и дополнительных модулей, ещё больше расширяющих функциональность, а также получить советы по настройке, установке и решению тех или иных проблем от сообщества разработчиков и пользователей этой CMS.

Минусы:

1) На то, чтобы разобраться с каждой конкретной CMS, освоить работу с ней, всё равно требуется какое-то

время.

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

3)Иногда функциональность CMS оказывается недостаточной, либо немножко не такой, как вам нужно, и тогда вам придётся долго ломать голову над решением, в общем-то, пустяковых проблем.

4)Для простых сайтов функицональность CMS, как правило, оказывается чрезмерной, отсюда - сайты на CMS работают медленнее, занимают больше места на хостинге, в большей мере подвержены сбоям.

5)У многих распространённых CMS, увы, до сих пор не редкость проблемы с безопасностью, из-за чего ваш сайт могут взломать хакеры.

Бесплатные CMS.

Вордпресс (wordpress)

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

Вордпресс хорошо русифицирован, для него написано множество дополонительных модулей и сделано множество шаблонов. Можно внести изменения в дизайн.

Минусы Вордпресса типичны для популярных CMS - не слишком быстрая работа сайта, возможность сбоев при высокой посещаемости. Вордпресс требует для работы php и MySQL.

Джумла (Joomla)

Несколько сложнее в освоении, чем Вордпресс, но имеет и большую сферу применения. Для Джумлы разработано огромное число модулей, включая форумы, чаты, блоги, интернет-магазины и т. д., поэтому на ней можно смело пытаться делать сложный многофункциональный сайт. Вообще, на Джумле можно делать самые различные сайты, как простые, так и сложные, это универсальная CMS. Также для Джумлы существует огромное число шаблонов, и в возможности создания или выбора дизайна для сайта вебмастер практически не ограничен.

Увы, так же, как и Вордпресс, Джумлу не обошли стороной проблемы с глюками, дырами и торможением сайта при большой посещаемости.

Друпал (Drupal)

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

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

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