При закрытии подписчики были переданы в рассылку "Профессиональное создание сайтов с помощью CMS SiteEdit" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Опять концепция ОСС (продолжение) // выпуск 7Что в выпуске? Структура и сценарий работы каждого базового компонента и приложения отдельно. В конце выпуска дана презентация нового курса рассылки. Приветствую всех! В предыдущих выпусках я давал описания базовых компонент ядра. В этом выпуске помимо повторного описания базовых компонент будут описаны также базовые приложения. Наподобие обычных операционных систем (у которых после установки доступны простые средства создания текстовых домументов, подключения к Интернету, чтения новостей и почты, отправки факсов и печати документов и т.п.) в ОСС будут присутствовать базовые приложения для создания несложного типового сайта. Например, средство публикации статьей, новостная лента,.. в общем все то, что присутствует в стандартной CMS. Итак, начну с компонент ядра.Диспетчер компонентКак уже писал в предыдущих выпусках, один из компонент должен быть ключевым. Его я назвал диспетчером (или менеджером) компонент. Главные функции: регистрация/установка/удаление компонент, первичная обработка запроса (выбор одного из компонент для запуска в зависимости от запроса), пост-обработка выходных XML-данных, обработка исключительных ситуаций (которые не были обработаны в вызываемых компонентах). Также, пока я не определился кто будет обрабатывать всех входящие данные. Я имею ввиду данные пришедшие, к примеру, из полей HTML-форм. В них могут присутствовать небезопасные данные (типа вызова java-скриптов). Возможно этим будет заниматься диспетчер компонент. Диспетчер приложенийГлавные функции: регистрация/установка/удаление приложений, вызов приложений по их ID-номеру, реализация базовых классов и интерфейсов приложений. Учетные записиЭтот компонент состоит из трех взаимосвязанных частей: учетные записи, расширения учетных записей и права доступа. Компонент ведет базу учетных записей пользователей, реализуя следующие основные функции: регистрация/активизация/удаление учетных записей, сопоставление учетной записи спискам прав доступа и спискам расширений (иными словами, по ID учетной записи выдает список прав для этой учетной записи и список всех расширений). Компонент расширений учетных записей занимается созданием новых полей учетной записи, группируя их по каким-либо признакам. Например, приложение Библиотека добавит расширение Читатель с новыми полями: список взятых книг и т.д. Компонент прав доступа занимается лишь ведением списка прав для данной учетной записи. Ограничением доступа занимается уже приложение, которое создает новые виды прав. Компонент трансформации XML-потока в HTML-страницуЭтот компонент не так прост, как кажется. Предполагается, что в XML-потоке будут содержаться элементы, которые трансформируются в визуальные HTML-элементы (с разными добавлениями, например, java-скриптами проверки данных и т.п.). Также предполагается, что имеется список стандартных элементов (текст, параграф, картинка, поле ввода, форма, кнопка и пр.). Они обрабатываются стандартными XSL-шаблонами, которые в совокупностями образуют тему. Темы можно менять, меняя дизайн сразу всех стандартных элементов. Но, будут ситуации, когда какому-либо приложению потребуется ввод нового, нестандартного элемента. В этом случае к текущей теме будет подключаться XSL-шаблон на этот нестандатный элемент. Вот подключением таких добавочных XSL-шаблонов и будет заниматься вышеобозначенный компонент. Итак, главными функциями компонента трансформации выходного XML-потока будут: работа с темами, подключение XSL-шаблонов нестандартных элементов, работа с шаблонами разделов (если не забыли, это те XSL-шаблоны, в которых размечены области вывода). Под работой над шаблонами я понимаю установку и удаление, к примеру, а также подключение для обработки XML-данных. Подключения к базам данныхЭтот компонент ведет список всех подключений к базам данных, а также подключает необходимые драйвера баз данных. Уж не знаю как у других, но у меня этот компонент еще хранит сразу два подключения под одним: для локальной версии сайта и для серверной (опубликованной) версии. Таким образом, когда я протестировав сайт у себя на компьютере и установив на сервер, я просто переключаю специальный параметр Place (место) со значения local на значение server. И подключение для серверной базы данных автоматически становиться активным. В прототипе это уже есть (к сожалению, только на уровне кодов). Журнал событийЭтот компонент регистрирует в своей таблице все события. По-умолчанию, ведутся три журнала (возможно их удалить нельзя): журнал приложений, журнал безопасности и журнал системы. В журнале приложений содержатся данные, относящиеся к работе приложений и служб. Записи этого журнала создаются самими приложениями. События, вносимые в журнал приложений, определяются разработчиками соответствующих приложений. Журнал безопасности содержит записи о таких событиях, как успешные и безуспешные попытки доступа в систему, а также о событиях, относящихся к использованию ресурсов, например о создании, открытии и удалении файлов и других объектов. В журнале системы содержатся события системных компонентов Sultana. Например, в журнале системы регистрируются сбои при загрузке приложения или других системных компонентов при запуске системы. События подразделяются на несколько типов: уведомление, предупреждение, ошибка, фатальная ошибка, аудит успеха, аудит отказа. Уведомление это событие, описывающее удачное завершение действия приложением или службой. Например, после успешной загрузки службы в журнал заносится событие уведомления. Предупреждения это события, которые в момент записи в журнал не были
существенными, но могут привести Ошибки это серьезные трудности, такие как потеря данных или функциональности. Например, если происходит сбой загрузки службы при запуске, в журнал заносится сообщение об ошибке. При фатальной ошибке невозможен вывод ответа на запрос. Например, если сбой при загрузке главного приложения раздела. Аудит успеха это событие, соответствующее успешно завершенному действию, связанному с поддержкой безопасности системы. Например, в случае успешного входа пользователя в систему, в журнал заносится событие с типом «Аудит успехов». Аудит отказа это событие, соответствующее неудачно завершенному действию, связанному с поддержкой безопасности системы. Например, в случае неудачной попытки доступа пользователя к разделу сайта в журнал заносится событие типа «Аудит отказов». Так как, регистрация всех событий может сильно заполонить базу данных избыточной информацией, можно применить исключение повторных событий с помощью md5-ключей. Об этом будет в последующих выпусках.Почтовая службаГлавные функции: отправка всех сообщений с сайта, массовая рассылка, организация шаблонов дизайна писем, ведение собственных почтовых ящиков для пользователей, прием писем с помощью почтовых роботов. В общем, все сообщения от системы, от пользователей, от владельца сайта проходят через эту службу для обертки в дизайн, для создания списка рассылки для последующей рассылки, для создании копии в почтовом ящике пользователей и т.п. Задания по-расписаниюПока не уверен, что это является базовым компонентом. Главную функцию думаю все знают. Естественно, что задания должны устанавливаться как вручную, так и через API приложениями и компонентами системы в автоматическом режиме. В общем это пока все из базовых компонент. Теперь перейдем к краткому списку и описанию базовых приложений. Конвертер Microsoft Word MLЯ уже давно использую такую конвертацию. То есть, пользователь вместо создания документа в HTML-редакторе, написанном на java-скриптах, создает статьи в Word-е, даже с картинками и загружает на сайт. В свойствах документа можно указывать код раздела, куда статью следует разместить. А конвертер преобразует в нужный мне XML-формат. Не знаю как кому, но мне такой способ кажется более удобным. Контрольная панельЭто приложение аналог Проводника в ОС Windows. Главные функции: регистрация приложений (создание меню для доступа к управлению регистрируемым приложением), управление основными функциям (базовыми компонентами ядра). Центр справки и поддержкиГлавные функции: он-лайн справка по системе, связь с разработчиками, прочая справка по сайту как для пользователей, так и для владельца сайта, создание новых разделов и статьей владельцем сайта. Шаблоны данныхАналог организации шаблонов данных как у системы NetCat. Разве что я добавлю несколько улучшений. ШрифтыУ меня уже много идей по использованию PDF-документов на сайте. А для создания таких документов понадобиться библиотека шрифтов. Так что такой компонент должен быть. Функции думаю понятны. ЯзыкиГлавные функции: возможность создания языковых словарей для установленных компонент и приложений. Думаю понятно зачем это нужно. ПубликацииПростейшее приложение, организующее публикацию статей. Использует WordML-конвертер или HTML-редактор по выбору. А теперь презентация: Новый курс рассылкиЯ придумал как буду продолжать повествование о своем двигателе. Расскажу как это будет выглядеть. Я обещал создать следующий прототип на PHP5. Вот и буду его создавать прямо в рассылке. То есть, опишу ход мыслей, план проекта, нарисую плакаты, листинги файлов. Вам даже скачивать его не нужно будет. По ходу повествования весь прототип будет собран у вас на компьютерах. Заодно и PHP5-му обучитесь. А Парсеристы увидят чем отличается PHP5 от Parser3. Хмм... и я в том числе:) Что я добьюсь этим? Вы лучше будете разбираться в коде и концепции моего предложения по двигателю. И вам будет проще потом присоединиться к совместной разработке. А мне будет проще понять как вести групповую разработку программы. К сожалению, я пока детально не вижу как руководить проектом. В общих чертах пока все ясно, но для меня важно видеть детали ключевых моментов. По ходу описания создания прототипа я хочу понять как разбить задачу для нескольких разработчиков. Если у вас будут интересные дополнения или замечания по новому курсу - буду рад выслушать! Особенно конструктивные. Продолжение в выпуске 7.1. В следующем выпуске: начало проектирования прототипа ОСС на языке PHP5.Всего доброго! Адрес для личных сообщений:
khusamov@mail.ru
или
khusamov@yandex.ru
|
В избранное | ||