Объектный дизайн web-порталов

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

1. Определить поведение системы при различных ее параметрах и параметрах объектов, а также определить оптимальные их значения.

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

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

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

5. Образно представить функционирование системы, что позволяет задействовать правое полушарие мозга проектировщика, отвечающее за творческую деятельность и образное мышление[6].

6. Определить цели следующих этапов проектирования, области исследования.

Литература

1. Никляев И.Ю. Инструментарий исследования команд интеллектуальных агентов // Известия

Волгоградского государственного технического университета. — 2009. — Том 12. — № 7. — С. 86-88.

2. Каляев И. А., Капустин С. Г., Усачев Л. Ж. Основы построения распределенных систем управления коллективами роботов // Электронное научно-техническое издание “Наука и образование”. — 2005. Эл№ ФС 77 - 30569. — №1. [Электронный ресурс]. Режим доступа: http://technomag.edu.ru/mdocs/nio/red.html

3. Брайен М. В. Общественные насекомые: Экология и поведение Social Insects: Ecology and

Behavioural Biology / Под ред. Г. М. Длусского. — М.: Мир, 1986. — 400 с. — 5 800 экз.

4. Захаров А. А. Муравей, семья, колония / Под ред. К. В. Арнольди. — М.: Наука, 1978. — 144 с.

— (Человек и окружающая среда).

5. Иванов Д.Я. Информационный обмен в больших группах роботов // Научно-теоретический

журнал “Искусственный интеллект”, 2010. № 4. C. 513—521.

6. Ильясов Ф. Н. Информационная специализация и функциональная асимметрия мозга // Психологический журнал. — 1987. — Том 8. — № 6. — С. 44-47.

УДК 681.3.06

объектный дизайн web-порталов

Неудачин Илья Георгиевич, к.ф.-м.н., доцент, Уральский федеральный университет имени первого Президента России Б.Н.Ельцина, Россия, Екатеринбург, nigs@sky.ru

Введение

В данной статье исследуется курсовая работа студентов специальности "Информатика и вычислительная техника" по разработке Web-порталов в инфраструктуре Zope [1, 2]. Zope - это среда формирования и Web-публикации объектов, поставляемая бесплатно, с открытыми исходными кодами [3]. Объектно-ориентированная технология позволяет конструировать сложные порталы из готовых элементов. Найдены решения некоторых проблем, связанных с локализацией такой технологии в России. Предлагаемая разработка представляет интерес для обучения студентов, разработчиков, дизайнеров порталов и сайтов.

63

1. План работы

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

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

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

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

Реализован шаблон портала "Школа ZooPython", который предоставляет набор объектов - сервисов для разработчиков. Этот пример в дальнейшем иллюстрирует наше исследование.

2. Структура проекта портала

Строя Web-приложение в Zope, мы конструируем Web-приложение из объектов. Объекты Zope играют одну из трех ролей: контент, презентация, логика:

1. Контент. Объекты Zope, например, документы, изображения и файлы, содержат различные виды текстовых и двоичных данных. В дополнение к внутренним объектам, Zope может работать с контентом, хранящимся вне нее, к примеру, в реляционной базе данных. Папки являются стандартными блоками Zope. Единственная цель папки проста: содержать другие объекты. Папки могут содержать любой вид объектов Zope, включая другие папки. Можно вложить папки друг в друга, чтобы сформировать дерево папок. Этот вид "папки в папке" задаёт структуру портала. Хорошая структура очень важна, поскольку безопасность и презентация зависят от структуры папок сайта. Кроме того, структура из папок знакома студентам, которые постоянно работают с файлами и папками на своём компьютере, используя файловые менеджеры.

2. Презентация. Можно управлять видом и стилем портала через объекты Zope, которые действуют как "шаблоны" Web-страниц. Zope поставляется с двумя средствами обслуживания презентаций: язык разметки шаблона документа (Document Template Markup Language - DTML) и шаблоны страниц Zope (Zope Page Templates -ZPT). Различие между DTML и ZPT заключается в том, что DTML позволяет смешивать презентацию и логику, а ZPT не позволяет. Шаблон index_html по умолчанию задает внешнее представление папки при ее просмотре в окне браузера.

3. Логика. Zope имеет средства обработки деловой логики. Эта среда позволяет описывать поведение объектов, используя три средства: язык разметки шаблона документа (DTML), скриптовые языки Python и Perl (Perl доступен только как дополнение). "Логика" - это любой вид программирования, которое не включают презентацию, а скорее включают выполнение таких задач как изменение объектов, посылка сообщений, проверка условий и отклики объектов на события.

В портале "Школа ZooPython" разместим следующие папки - сервисы (рисунок 1):

1. Книга посетителей ZooPython.

2. Магазин ZooPython.

3. Библиотека Файлов ZooPython.

4. План автоматической навигации.

5. Карта портала ZooPython.

6. Форум ZooPython.

7. Школьный буфет ZooPython.

3. Реинжиниринг и рефакторинг портала

Хорошо организованное рабочее место дизайнера содержит все необходимые операции редактирования структуры: Rename, Cut, Copy, Paste, Delete, Import/Export, Select All.

64

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

производителей, установка новых типов объектов-продуктов. Портал в Zope является динамическим Web-приложением, и все изменения структуры автоматически отображаются во внешних представлениях View его папок.

Рис. 1 - Интерфейс разработки портала ZooPython

Портал школы ZooPython

Добро пожаловать В Zope. Мы собрали некоторые примеры прикладных программ. Они показывают простые свойства Zope. Вы можете исследовать, как эти прикладные программы работают, рассматривая их в management interface. Если захотите добавить дополнительные примеры приложений к этой совокупности, пишите нам. Наслаждайтесь!

{--------------------------------"S

• Книга посетителей ZooPython

• Магазин ZooPython

• Библиотека Файлов ZooPython

• План автоматической навигации

• Карта портала ZooPython

• Форум ZooPython

• Школьный буфет ZooPython

\________________________________I

Вы можете удалить папку ZooPythonSite, если пожелаете. Вы Может также перезагрузить примеры, импортируя файл import/ZooPythonSite.zexp или ZooPythonSiteN.zexp.

Рис. 2 - Интерфейс посетителя портала ZooPython

65

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

1. Contents - содержание.

2. View - внешнее представление.

3. Properties -свойства объекта.

4. Security - безопасность объекта.

5. Undo - отмена изменений возможна благодаря наличию аппарата транзакций.

6. Ownership - владение объектом расширяет возможности его редактирования.

7. Find - поиск.

Если объект содержит текст или код, дополнительно появляется представление с закладкой Edit для редактирования. Тестирование возможно в представлениях View (рисунок 2) или Test.

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

4. Русские буквы в Zope

Вот меры по настройке нужной кодировки страниц портала. Кодировка экземпляра задается в файле конфигурации ...etc\zope.conf. Откроем файл конфигурации в текстовом редакторе для редактирования. Директива кодировки издателя zpublisher по умолчанию закрыта комментарием

# default-zpublisher-encoding utf-8

Уберем комментарий '#', для того, чтобы кодировка по умолчанию для Web-браузера была utf-8. Перезапустим Zope. Сейчас браузер запомнит кодировку, и разработчику не потребуется ее устанавливать при переключении страниц повторно.

В корневом фолдере Root Folder экземпляра Zope в представлении свойств Properties заполняются три окна ввода внизу страницы. В поле Name вводится имя свойства management_page_charset, в поле Value указывается значение свойства, равное utf-8 (или другой кодировки, например, koi8-r, CP1251). В поле Type остается тип string. Нажимается кнопка Add - добавить. Убедитесь, что свойство management_page_charset с заданными параметрами появилось в представлении Properties. Кнопка Save Changes возвращает нас к представлению Contents. Если вместо русских букв появляются непонятные символы, проверим кодировку страницы Web-браузера в меню Вид/Кодировка. Она должна соответствовать значению поля Value в свойстве management_page_charset папки корня Zope, т. е. кириллица юникод (utf-8) или Windows (CP1251). К сожалению, после этого шаблоны страниц нельзя сохранить с кириллицей. Для их редактирования нужно удалить свойство management_page_charset, а затем восстановить.

Остается позаботиться о настройке кодировки для посетителей портала. Здесь пригодится тег HTML с атрибутом charset

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Будет утомительно вписывать его в каждый публикуемый документ. Пригодится полезное дополнение заимствования свойств и методов объектов по принципу вложения. Дополним стандартный заголовок standard_html_header корневой папки этим тегом и будем вызывать его на всех уровнях вложений тегом <dtml-var standard_html_header>.

5. Информационное сообщество портала

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

66

Безопасность в широком смысле подразумевает выполнение двух функций: аутентификацию и авторизацию. Аутентификация означает выяснение того, кто вы, а авторизация означает определение того, что вы имеете право делать. Zope предоставляет отдельное средство для управления процессом идентификации пользователей и предоставления им доступа к контролируемым операциям. Для определения учетных имен пользователей Zope использует фолдеры acl_users (User Folder).

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

После того, как вы идентифицировали себя, Zope определяет, имеете ли вы доступ к защищенному ресурсу. В этот процесс вовлекаются два промежуточных слоя, расположенных между вами и защищенным ресурсом: роли и права. Пользователи имеют роли, которые описывают, что они могут делать в системе, а объекты Zope имеют права, которые описывают, что можно делать с этими объектами. Режимы безопасности сопоставляют роли с правами. Иными словами, они определяют, кто и что может делать. Таким способом Zope авторизует пользователя для доступа к защищенному ресурсу.

Новая роль вводится на вкладке Security объекта. Роль может использоваться в сайте на том уровне, где она определена, и ниже. Поэтому, если нужна роль, имеющая значение для всего сайта, она определяется в корневом фолдере сайта.

Выводы

Предложенная технология Zope позволила конструировать из объектов сложные порталы, посвященные многообразным темам. Можно легко модернизировать содержание и структуру полученной конструкции. Изменения будут динамически публиковаться во внешних представлениях страниц сайта. Обеспечены разные уровни безопасного доступа к объектам членам сообщества пользователей. Студенты, выполняя курсовую работу, приобретают компетенции разработчика, дизайнера, администратора, посетителя портала.

Литература

1. Неудачин И.Г. Среда Web-публикации объектов для студентов // Объектные системы - 2011:

материалы III Международной научно-практической конференции. / Под общ. ред. П.П.

Олейника. - Ростов-на-Дону, 2011. - с. 62-65.

2. Неудачин И.Г. Инфраструктура программирования в открытых кодах для студентов. //Теория

и практика применения свободного программного обеспечения: сборник трудов участников

Всероссийской молодёжной конференции с элементами научной школы. - Магнитогорск:

МаГУ, 2011. -с. 57-64.

3. Спикльмайр С. и др. Zope. Разработка Web-приложений и управление контентом: Пер. с англ. -

М.: ДМК Пресс, 2003. - 464 с.

4. Единая система программной документации. - М.: Издательство стандартов, 1982. - 128 с.

УДК 004.04

СИНЕРГЕТИЧЕСКОЕ ИНФОРМАЦИОННОЕ ПРОСТРАНСТВО МУОРБД1

Микляев Иван Александрович, к.ф.-м. н., доцент, Филиал «СЕВМАШВТУЗ», Санкт-Петербургский государственный морской технический университет, Россия, Северодвинск,

ivanmia1@rambler.ru

Черткова Ольга Владимировна, старший преподаватель, Филиал «СЕВМАШВТУЗ», Санкт-Петербургский государственный морской технический университет, Россия, Северодвинск,

chertkova-o@,mail.ru

1 Статья рекомендована к опубликованию в журнале "Информационные технологии"

67