Австралийская компания Miro (http://www.miro.com.au) в 2001 г. разработала CMS под названием Mambo. Она сделала эту систему доступной как программное обеспечение с открытым кодом — для тестирования и обеспечения более широкого распространения. В 2002 г. компания разделила свой продукт Mambo на коммерческую
версию и версию с открытым кодом. Коммерческий вариант был назван Mambo CMS, а версия с открытым кодом называлась Mambo Open Source, или сокращенно — MOS.
К концу 2004 г. все участники пришли к соглашению, что версия MOS должна официально называться Mambo, и с этого момента успешное будущее для самой быстро разрабатываемой CMS было обеспечено.
Статические HTML страницы теперь рассматриваются как дорогие и устаревшие, и подвергаются пересмотру. Они обязаны стать динамическими! После десятилетия напряженной работы разработчиков Linux, Apache, MySQL и РНР были охотно приняты индустрией. Начался поиск профессионально используемых приложений РНР.
К этим приложениям предъявляются следующие требования.
• Простой процесс инсталляции.
• Легкость обслуживания исходного кода.
• Безопасность исходного кода.
• Дружественность к пользователю.
• Простая расширяемость.
Ниже панели меню располагается панель инструментов. Тут представлен пример пунктов в главном меню (mainmenu).
Главное меню в диспетчере пунктов меню
Слева находится имя текущей области редактирования с соответствующей пиктограммой (панели инструментов). Справа от него, в зависимости от конкретного диспетчера, расположены различные неактивные пиктограммы. Если вы наведете курсор мыши на одну из них, вокруг появится рамка, и вы сможете щелкнуть левой кнопкой мыши и реализовать соответствующую функцию.
Существуют глобальные установки, которые касаются всех индивидуальных страниц и вашего сервера. Все эти установки собраны в меню Site (Сайт).
Здесь вы найдете пять пунктов меню:
• Control Panel (Панель управления)
• User Manager (Диспетчер пользователей)
• Media Manager (Диспетчер медиа)
• Configuration (Конфигурация)
• Logout (Выход)
Пункт Control Panel
Первый пункт меню — Control Panel — переносит вас на стартовую страницу административного раздела.
Вы можете использовать Control Panel для перехода к различным разделам администрирования — либо выбором пункта меню, либо щелчком на отображаемых пиктограммах.
В области Media Settings (Настройки медиа) конфигурируются параметры для медиа. Здесь можно указывать расширения файлов, допустимые для загрузки, и пути, по которым эти файлы могут быть сохранены.
Область Media Settings
Помимо расширений файлов вы можете также определить типы MIME (http://ru.wikipedia.org/wiki/MIME). Это помогает контролировать безопасность, проверяя содержимое файлов. Если необходимые для их обработки модули не включены на веб-сервере Apache, вы можете гарантировать, что пользователи интерфейсной части могут лишь загружать изображения, установив переключатель Restrict Uploads (Ограничивать загрузки).
В разделе Global Configuration (Глобальная конфигурация) можно определять настройки, которые действительны для всего веб-сайта. Значения переменных сохраняются в файле configuration.php. В этом файле хранится важнейшая информация, такая как параметры доступа к серверу баз данных, и менее важные параметры, вроде предварительно определенной длины отображаемых списков. Рабочая область делится на три вкладки:
• настройки Site (Сайт)
• настройки System (Система)
• настройки Server (Сервер)
Настройки Site
Раздел настроек Site, в свою очередь, делится на три визуальных области: Site Settings (Настройки сайта), Metadata Settings (Настройки метаданных) и SEO Settings (Настройки SEO).
Вы сразу можете заметить, что веб-сайт примера иллюстрирует массу функциональности, предоставляемой Joomla!, показывает хороший обзор его возможностей.
Для ясности различные области снабжены подписями.
Искусство дизайна теперь состоит в распознавании элементов, которые важны для вашего веб-сайта, пропуске неважных и представлении их пользователю в логичном, понятном и привлекательном формате. Полученный результат всегда представляет собой компромисс между функциональностью и организацией.
По своей конфигурации эта структура напоминает одну из ежедневных газет вроде “Нью-Йорк Таймс” или портал наподобие MSN или Yahoo!.
Теперь, когда вы инсталлировали веб-сайт и хорошенько рассмотрели его, мы можем вместе исследовать результат. На первый взгляд, страницы выглядят несколькозапутано.
В принципе, они делятся на интерфейсную часть (собственно, ваш веб-сайт) и серверную часть (административное представление вашего веб-сайта). Клиенты и веб-серферы видят интерфейсную часть, а серверная часть доступна только сотрудникам и/или администраторам.
.
Чтобы понять работу RPC, рассмотрим сначала выполнение вызова локальной процедуры в обычной машине, которая работает автономно. Пусть это, например, будет системный вызов
count=read (fd,buf,nbytes); где fd - целое число, buf - массив символов, nbytes - целое число.
Чтобы осуществить вызов, что вызывает процедура заталкивает параметры у стек в обратном порядке (рисунок 3.1). После того, как вызов read выполнен, он помещает что поворачивается значения в регистр, перемещает адрес возвращения и возвращает управление процедуре, которая вызывает, что выбирает параметры со стека, возвращая его в исходное состояние.
Рассмотрим вопрос о том, как клиент задает местоположение серверу. Одним из методов решения этой проблемы есть непосредственное использование сетевого адреса серверу в клиентской программе. Недостаток такого подхода - его чрезвычайная негибкость: при перемещении серверу, или при увеличении числа серверов, или при изменению интерфейса во всех этих и многих других случаях необходимо перекомпилировать все программы, которые использовали жесткую задачу адреса серверу. Для того, чтобы избежать всех этих проблем, в некоторых распределенных системах используется так называемое динамическое связывание.
Устройства ввода вывода делятся на два типа: блок-ориентированные устройства и байт-ориентированные устройства. Блок-ориентированные устройства берегут информацию в блоках фиксированного размера, каждый из который имеет свой собственный адрес. Проще всего блок-ориентированное устройство - диск. Байт-ориентированные устройства не адресуемы и не позволяют делать операцию поиска, они генерируют или потребляют последовательность байтов. Примерами являются терминалы, строчные принтеры, сетевые адаптеры.
Базовые параметры одинаковы для всех ссылок меню. Область Parameters – Basic (Параметры — базовые) показанаОбласть Parameters – Basic
• Image (Изображение). Здесь можно специфицировать файл изображения, который должен находиться в корневом каталоге диспетчера медиа (/images/stories/). В зависимости от шаблона, картинка отображается слева, рядом с пунктом меню.
• Image Align (Выравнивание изображения). Здесь можно указать, где должна располагаться картинка — слева или справа.
• Show a Feed Link (Показать ссылку на ленту).
Чтобы сделать это, щелкните на External Link (Внешняя ссылка). После этого вы сможете определить детали и параметры ссылки.
Параметры пункта меню типа внешней ссылки
• Title (Заголовок). Название ссылки, которое появляется в меню (Joomla! Project Website).
• Parent Item (Родительский элемент). Поскольку это — первый элемент, родительских элементов у него нет.
• Alias (Псевдоним). Имя краткого URL (joomlaproject).
• Link (Ссылка). Ссылка на страницу (http://www.joomia.org).
• Display in (Отображать в).
Важным понятием синхронизации процессов есть понятия "критическая секция" программы. Критическая секция - это часть программы, в которой осуществляется доступ к что разделяются данным. Чтобы исключить эффект гонок относительно некоторого ресурса, необходимо обеспечить, чтобы в каждый момент в критической секции, связанной с этим ресурсом, находился максимум один процесс. Этот прием называют взаимным исключением.
Простейшее средство обеспечить взаимное исключение - позволить процессу, который находится в критической секции, запрещать все прерывания.
Операционная система в найбольшей мере определяет образ всей вычислительной системы в целом. Несмотря на это, пользователе, которые активно используют вычислительную технику, чаще всего ощущают затруднение при попытке даты определения операционной системе. Частично это связано с тем, что ОС выполняет две по существу мало связанные функции: обеспечение пользователю-программисту удобств с помощью предоставления для него расширенной машины и повышения эффективности использования компьютера путем рационального управления его ресурсами.
Многозадачные ОС подразделяются на трех типа согласно использованному при их разработке критериями эффективности:
системы пакетного обработки (например, OC EC),
системы деления времени (UNIX, VMS),
системы реального времени (QNX, RT/11).
Системы пакетного обработки назначались для решения задач в основном вычислительного характера, которые не нуждаются в быстром получении результатов. Главной целью и критерием эффективности систем пакетного обработки есть максимальная пропускная способность, то есть решение максимального числа задач в единицу времени.
В этом случае память машины не делится заранее на деления. Сначала вся память свободная. Каждой задачи, которая снова поступает, выделяется необходимая ей память. Если достаточный объем памяти отсутствующих, то задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загруженная другая задача. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (делений) произвольного размера.
Модель клиент-сервер - это еще один подход к структурированию ОС. В широком содержании модель клиент-сервер предполагает наличие программного компонента - потребителя какого-то сервиса - клиента, и программного компонента - поставщика этого сервиса - серверу. Взаимодействие между клиентом и сервером стандартизуется, так что сервер может обслуживать клиентов, реализованных разными средствами и, может быть, разными производителями. При этом главным требованием является то, чтобы они спрашивали услуги серверу понятным ему средством.
Итак, шлюз согласует коммуникационные протоколы одного стека с коммуникационными протоколами другого стека. Программные средства, которые реализуют шлюз, нет смысла устанавливать ни на одном с двух взаимодействующих компьютеров с разными стеками протоколов, намного рациональнее разместить их на некотором компьютере-посреднике. Когда-то, чем обгрунтувати это утверждения, рассмотрим принцип работы шлюза.
Рисунок 3.14 иллюстрирует принцип функционирования шлюза. В показанном примере шлюз, размещенный на компьютере 2, согласовывает протоколы клиентского компьютера 1 сети А с протоколами серверного компьютера 3 сети В.
Поворачиваясь к принципам организации взаимодействия сетей, сравним два основных подхода - мультиплексирование протоколов и трансляцию протоколов (шлюзы).
Встроенные в сетевую ОС средства мультиплексирования протоколов дают все те преимущества, которые присущий встроенным средствам:
Эти средства не нужно отдельно получать;
Нет проблем их совместимости с другими продуктами.
Основным недостатком этого подхода является чрезмерность. Хотя средства мультиплексирования обычно позволяют загружать и выгружать по желанию пользователя разные стеки протоколов, но если нужно одновременно работать с тремя разными сетями, то в каждую рабочую станцию необходимо загрузить все трех стека одновременно.
Другим местом кэширования является ядро. Недостатком этого варианта является то, что во всех случаях нужно выполнять системные вызовы, даже в случае успешного обращения к кэш-памяти (файл оказался в кэше). Но преимуществом является то, что файлы остаются в кэше и после завершения процессов. Например, предположим, что двухпроходный компилятор выполняется, как два процесса. Первый проход записывает промежуточный файл, который читается вторым проходом. На рисунке 3.11,в показаниный, что после завершения процесса первого прохода промежуточный файл, наверное, будет находиться в кэше, так что вызов серверу не потребуется.
Обычно в распределенных системах используются как RPC, так и нити. Потому что нити были введенные как дешевая альтернатива стандартным процессам, то естественно, что исследователи обратили особое внимание в этом контексте на RPC: нельзя или их также сделать облегченными. Было замечено, что в распределенных системах значительное количество RPC обрабатывает на той же машине, на которой они были вызваны (локально), например, вызовы к менеджеру окон. Поэтому была предложена новая схема, которая делает возможным для нити одного процесса вызвать нить другого процесса на этой же машине более эффективно, чем обычным средством.
Распределенные системы часто обеспечивают репликацию (тиражирование) файлов в качестве одной из услуг, предоставленных клиентам. Репликация - это асинхронный перенос изменений данных исходной файловой системы в файловые системы, которые принадлежат разным узлам распределенной файловой системы. Другими словами, система оперирует несколькими копиями файлов, причем каждая копия находится на отдельному файловом сервере. Есть несколько причин для предоставления этого сервиса, главными с который есть:
1.
Как очевидно из названия, данный метод представляет собой комбинацию страничного и сегментного распределения памяти и, вследствие этого, соединит в себе достоинства обеих подходов. Виртуальное пространство процесса делится на сегменты, а каждый сегмент в свою очередь делится на виртуальные страницы, которые нумеруются в пределах сегмента. Оперативная память делится на физические страницы. Загрузка процесса выполняется операционной системой постранично, при этом часть страниц размещаются в оперативной памяти, а часть на диске.
Память является важнейшим ресурсом, который нуждается в тщательном управлении со стороны мультипрограммной операционной системы. Распределения подлежит вся оперативная память, не занятая операционной системой. Обычно ОС располагается в самых младших адресах, однако может занимать и самой старшие адреса. Функциями ОС по управлению памятью есть: отслеживание свободной и занятой памяти, выделение памяти процессам и освобождение памяти при завершении процессов, вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти не достаточные для размещения в ней всех процессов, и возвращение их в оперативную память, когда в ней освобождается место, а также настройка адресов программы на конкретную область физической памяти.
Все перечисленные выше компоненты понадобятся для того, чтобы установить у себя систему Joomla!. ПК, браузер и Интернет-соединение обычно доступны. Но существует много вариантов для веб-сервера, интерпретатора РНР и СУБД.
Вы можете:
• установить систему локально на вашем ПК;
• установить систему на сервере, обслуживающем внутреннюю сеть вашей компании;
• арендовать виртуальный сервер у провайдера;
• арендовать или приобрести физический сервер у провайдера (с административным доступом).
Вы можете также:
• разместить веб-сервер и СУБД на компьютерах, которые физически отделены друг от друга.
Чтобы инсталлировать Joomla! локально, вы должны настроить соответствующую серверную среду, как было описано выше.
Windows
Windows — чрезвычайно дружественная к пользователю и очень популярная система. Более 90% всех ПК работают под управлением этой операционной системы.
Windows ХР и Windows Vista— преобладающие версии. К сожалению, веб-сервер
Apache, СУБД MySQL и РНР не входят в стандартную поставку Windows.
Вы можете инсталлировать каждую из этих программ отдельно или же установить предварительно сконфигурированный пакет (это очень практично и сбережет немало времени).
Joomla! 1.5 содержит слой абстракции, который позволяет запускать Joomla! с разными версиями систем управления базами данных (СУБД). Однако в каждой конкретной инсталляции Joomla! может использоваться только одна из этих СУБД. На данный момент поддерживаются MySQL версий 4.x и 5.x. В будущем будут поддерживаться и другие СУБД.
Система FTP
Слой FTP был добавлен для того, чтобы избежать проблем с правами доступа.
Таким образом, инсталляция новых компонентов и прочие загрузки могут выполняться через загрузку РНР и через FTP.
Нумерация версий Joomla! состоит из трех частей.
• Шаг 1 — старший номер выпуска. Увеличивается при внесении фундаментальных изменений на уровне исходного кода. Версии с более высоким номером иногда не совместимы с более ранними версиями.
• Шаг 2 — младший номер выпуска. Увеличивается при внесении существенных изменений в функциональность. Версия с более высоким номером обычно совместима (с небольшой подгонкой) с более ранними версиями.
• Шаг 3 — номер выпуска сопровождения. Увеличивается при исправлении ошибок и брешей в безопасности.
s#0