УДК 681.3.06
СРЕДА WEB-ПУБЛИКАЦИИ ОБЪЕКТОВ ДЛЯ СТУДЕНТОВ
Неудачин Илья Георгиевич, к. ф.м. н., доцент, Уральский федеральный университет имени первого Президента России Б.Н.Ельцина, Россия, Екатеринбург, [email protected]
Введение
Описывается учебный курс освоения Zope. Zope - это сервер, среда, инфраструктура разработки и выполнения объектных Web-приложений с открытыми исходными кодами. Этот курс лекций обучает тому, как разрабатывать, отлаживать и сопровождать Web-приложения при помощи Zope. Он заинтересует как пользователей и администраторов Zope, так и тех, кто только начинает изучение Zope.
Технически Zope представляет собой объектно-ориентированную среду, реализующую на основе Python базовую идею заполнения стандартных объектов данными портала и данными, извлеченными и отображенными из запросов пользователя [1]. Любое информационное наполнение в Zope представляется как объекты определенного типа.
1. Описание среды Z Object Publishing Environment (Zope)
Среда Z Object Publishing Environment (Zope) удовлетворяет большинству требований для построения динамического Web-сайта, и в этом убеждают её характеристики. К выбору Zope могут привести две основные причины. Во-первых, Zope - открытый продукт (Open source). Это позволяет студентам, при желании, не только видеть, как что-то работает, но понимать, как это работает. Во-вторых, использование Zope не требует начальных вложений (если не считать времени). Это позволяет изучать, исследовать и приобретать опыт без больших начальных расходов. В-третьих, Zope можно изменять. Мотивы внедрения и изучения: легкость, с какой в Zope можно создавать интересные приложения; активность пользовательского сообщества Zope[2], уже создавшего сотни нетривиальных и полезных компонент Zope; наконец, сама интегрирующая мощь Zope. Zope включила в себя почти все: объектную ориентированность, базы данных, транзакционные системы, публикацию, Web-протоколы, XML, распределенное составление контента, системы управления проектами, E-коммерцию, порталы.
2. План и аннотации лекций
2.1. Установка и старт Zope
Эта лекция объясняет, как установить и впервые запустить Zope. К концу лекции вы должны установить и начать работу в Zope. Довольно легко установить Zope на большинстве платформ, и обычно для этого требуется не больше десяти минут. Изучается структура каталога установки. Настраивается экземпляр Zope и проводится обучение элементарному администрированию [3].
Цель лекции. Изучить процедуры поиска, загрузки, установки и запуска инфраструктуры Zope. Описать локализацию, настройку экземпляра и эксплуатацию Zope. Сообщается, как получить помощь при неполадках. К концу этой лекции вы должны установить Zope и начать в ней работу.
2.2. Концепции архитектуры Zope
Вводятся фундаментальные понятия и частично описывается архитектура Zope. Объектная структура Zope является иерархической, т.е. типичный сайт Zope состоит из объектов, которые содержат другие объекты (которые могут содержать другие объекты, и т.д. до бесконечности). В дополнение к этому, объекты Zope умеют заимствовать динамическое поведение других объектов. Заимствование развивает традиционное наследование классов объектов принципом контейнерного вложения [3]. Объекты Zope хранятся в объектной базе данных ZODB (Zope Object DataBase).
63
Цель лекции. Объяснить, что такое инфраструктура Zope и для кого она предназначена. В общих чертах описывается, что можно делать с помощью Zope. Сообщить о различиях между Zope и другими серверами Web-приложений. Изучить фундаментальные понятия Zope (объектный подход и заимствование) и описать архитектуру Zope.
2.3. Интерфейс управления Zope
Когда вы загружаете Zope, вы попадаете в интерфейс управления Zope (Zope Management Interface - ZMI). ZMI - среда управления и разработки, которая позволяет вам управлять Zope, объектами Zope, и разрабатывать Web-приложения через Web. Лекция описывает функции и применение ZMI.
Цель лекции. Изучить интерфейс управления Zope (Zope Management Interface - ZMI). Научить пользоваться фреймами ZMI для управления объектами: редактирование, импорт и экспорт. К концу этой лекции студент должен быть в состоянии перемещаться по пространству объектов Zope, копировать и перемещать объекты и использовать другие основные возможности Zope.
2.4. Применение основных объектов Zope
Разрабатывая Web-приложение в Zope, мы конструируем приложение из объектов. В этой лекции описываются три группы основных объектов Zope: объекты контента, объекты презентации и объекты логики. Изучаются фундаментальные объекты (папки, документы, методы, файлы, графические файлы) и действия над ними. Основными операциями над выбранными объектами являются: копировать, вырезать, вставить, удалить, экспортировать, импортировать.
Цель лекции. Описать три группы объектов Zope, предназначенных для: хранения контента, Web-презентации контента, и программирования логики обработки данных. Изучить действия над фундаментальными объектами: папка, документ, метод, файл. Здесь будет построено простое приложение с использованием объектов шаблонов страниц и скриптов.
2.5. Основы скриптинга в Zope
Эта лекция рассказывает, как сделать Web-запрос объекта Zope и как управлять объектами Zope из приложения, используя методы и скрипты Python. Изучается и применяется программный интерфейс API приложения Zope.
Цель лекции. Изучить процедуру Web-запроса как объекта Zope. Обсудить идею скриптов в Zope, и сосредоточиться на скриптах Python. Освоить создание и применение скриптов на основе Python и программного интерфейса API приложения Zope. Научить методике вызова других объектов из скриптов.
Объяснить, как программировать деловую логику в Zope с помощью более мощных инструментов, нежели DTML. Показать, как добавить производительную силу скриптинга в Web-сайт.
2.6. Основы шаблонов страниц Zope
Шаблоны страниц Zope (Zope Page Templates - ZPT) - это инструмент генерации Web-страниц и средство быстрого скриптинга графического интерфейса основанное на XML. Они помогают программистам и дизайнерам сотрудничать при создании динамических Web-страниц для приложений Zope [4].
Цель лекции. Реализовать принципы Web-дизайна и организовать сотрудничество программистов и дизайнеров через шаблоны страниц Zope. Объяснить, как создавать и редактировать шаблоны страниц. Ввести основные операторы шаблонов, которые позволят вставлять динамический контент.
Узнать, как внедрить логику принятия решений в свои шаблоны посредством переменных и условных тестов. Показать, как вся эта теория может быть практически использована, вводом простого процессора формы для применения на Web-странице.
2.7. Циклические структуры шаблонов страниц
После обзора переменных и условных операторов лекция расширяет знание ZPT (шаблонов страниц) изучением циклов, динамически генерированных атрибутов и управлением исключениями.
64
ZPT включает несколько конструкций циклов, которые позволяют сканировать по последовательностям переменных и объектов. ZPT имеет некоторые довольно интересные отличия от традиционного подхода.
Цель лекции. Дать интенсивный курс циклических атрибутов TAL - Template Attribute Language. Показать, как может использоваться атрибут repeat, чтобы сканировать последовательности. Добавить функциональные возможности стандартных конструкций циклов, существующих в других языках. Демонстрировалось использование реального, динамического построения Web-страницы из базы данных MySQL и одного циклического шаблона.
Построить макет страницы библиотеки файлов в качестве иллюстрации того, как ZPT позволяет динамически определять атрибуты Web-страницы, и также объединять эту возможность с атрибутом repeat для итерационного построения Web-страницы. Наконец, дать беглый обзор простейших возможностей обработки ошибок, доступных в ZPT, как жизнеспособной и очень простой альтернативы встроенному обработчику ошибок Zope.
2.8. Разработка приложений в Zope
В этой лекции построим простые, но мощные Web-приложения при помощи изученных инструментов. Способы проектирования, обсуждаемые здесь, применимы также в сложных случаях.
Лекция приведёт нас шаг за шагом к построению первого Web-приложения в Zope. Дополнительно исследуем некоторые из центральных объектов Zope.
Цель лекции. Привести пользователю несколько практических примеров построения Web-приложений Zope. Объяснить, как использовать основные объекты Zope и как они могут взаимодействовать при формировании приложения. Zope имеет еще много дополнительных свойств, кроме уже рассмотренных, но эти простые примеры должны помочь начать создавать динамические, сложные, но хорошо управляемые Web-сайты.
2.9. Основы динамического контента в DTML
DTML (Document Template Markup Language) - это презентация на основе тегов и скриптовый язык [5]. Это означает, что теги DTML, вложенные в HTML, заменяют части страницы "вычисленным" контентом. Команды DTML выполнятся сервером.
Цель лекции. Познакомить с DTML, скриптовым языком разметки на основе тегов, применяемым в Zope. Описать применение DTML для создания шаблонов страниц и для скриптинга и его место по отношению к другим способам скриптинга в Zope. Объяснить синтаксис DTML и ввести три основных тега: var, if и in. Изучив эту лекцию, можно создавать динамические Web-страницы.
2.10. Web-формы запроса к серверу
Для того чтобы пользователь мог сформировать и отправить запрос серверу через HTML документ, применяются так называемые формы. Это блок документа HTML, заключенный в тегах <form></form>, содержащий различные текстовые поля и кнопки отправления. Формы ввода в Zope взаимодействуют с DTML и с шаблонами страниц.
Цель лекции. Изучить содержание и атрибуты тега form в HTML. Научить методике применения скриптов DTML и шаблонов страниц обработки форм ввода Zope. Реализовать примеры оптималных форм.
2.11. Пользователи и безопасность
Zope - это многопользовательская система. Однако, вместо того, чтобы полагаться на учётные записи пользователей, обеспеченные операционной системой, под которой всё это выполняется, Zope поддерживает одну или больше её собственных баз данных пользователей. В этой лекции мы подробно рассмотрим управление пользователями, формирование ролей, отображение ролей на права, и организацию режима безопасности сайта Zope.
Цель лекции. Описать, как Zope работает с пользователями, устанавливает их подлинность (аутентификация), разрешает доступ (авторизация), и обсудить другие вопросы, связанные с безопасностью. Например, формирование типовых ролей членов портала и влияние ролей на права. Функции безопасности являются центральными в архитектуре Zope
65
и должны быть центральными в архитектуре тех Web-приложений, которые вы создаете в Zope.
2.12. Поиск и каталогизация контента
Zcatalog - это встроенный в Zope инструмент поиска. Он позволяет распределять по категориям и искать в Zope объекты всех типов. Можно также использовать его, чтобы находить внешние данные, типа реляционных данных, файлов, и удаленных Web-страниц. В дополнение к поиску можно использовать ZCatalog, для того чтобы организовать коллекции объектов.
Цель лекции. Показать, как осуществлять индексацию и поиск объектов при помощи встроенного поискового средства Zope - объекта каталога ZCatalog. Ввести понятие индексации и обсудить различные примеры внесения в указатель и поиска. Наконец, рассмотреть результаты поиска и метаданные.
2.12. Присоединение реляционной базы данных
При использовании реляционных данных в Zope вы сохраняете все преимущества Zope, включая безопасность, динамическую презентацию и сетевую организацию. Вы можете использовать Zope, чтобы динамически построить доступ к данным, презентацию данных и управление данными.
Цель лекции. Описать, как Zope связывается с внешними реляционными базами данных. Объяснить подход, позволяющий интерпретировать реляционные данные в качестве объектов Zope. Применить методы запросов Z SQL в сочетании с DTML. Затронуть вопросы безопасности и производительности.
Литература
1. Спикльмайр С. и др. Zope. Разработка Web-приложений и управление контентом: Пер. с англ. - М.: ДМК Пресс, 2003. - 464 с.
2. Zope Community. [Электронный ресурс] http://www.zope.org/
3. Amos Latteier, Michel Pelletier, Chris McDonough, ... The Zope2 Book. - Zope Developers Community, 2009. [Электронный ресурс]
3. http://docs.zope.org/zope2/zope2book/
4. Harish Kamath. ZPT Basics. - Melonfire, 2002 [Электронный ресурс]
http://www.devshed.com/c/a/Zope/
5. Harish Kamath. DTML Basics. - Melonfire, 2002. [Электронный ресурс]
www.devshed.com/c/a/Zope/DTML-Basics-part-1/
УДК 004.78
УНИФИЦИРОВАННАЯ МОДЕЛЬ ДЛЯ ТЕСТИРОВАНИЯ ИНСТРУМЕНТОВ ОБЪЕКТНОРЕЛЯЦИОННОГО ОТОБРАЖЕНИЯ
Олейник Павел Петрович, к.т.н., Системный архитектор программного обеспечения, ОАО «Астон»,
Россия, Ростов-на-Дону, [email protected]
Шаблоны проектирования - это многократно используемые решения широко распространённых проблем, возникающих при разработке программного обеспечения. По мере приобретения опыта программисты осознают сходство новых проблем с решаемыми ранее. С накоплением ещё большего опыта приходит осознание того, что решение похожих проблем представляет собой повторяющиеся шаблоны. Зная эти шаблоны, опытные программисты распознают ситуацию их применения и сразу используют готовое решение, не тратя время на предварительный анализ проблемы [1-2].
В настоящее время применение шаблонов (паттернов) проектирования непосредственно связано с их реализацией в объектно-ориентированном языке программирования при помощи объявления иерархии классов и описания ассоциаций. Стоит отметить, что часть паттернов посвящены принципам реализации объектной системы на основе реляционной системы и носит название методов (шаблонов) объектно-реляционного отображения (ОРО) [3]. Т.к. в классической реляционной модели отсутствует
66