BlueBream — обзор open source фреймворка для Python
Доброго времени суток, читатели. Данная статья познакомит Вас с одним из фреймворков для языка программирования Python. BlueBream — фреймворк с открытым исходным кодом, используемый в веб-разработке. Произведён корпорацией Zope. Более того, является преемником Zope 2 и ранее сам BlueBream был известен под названием Zope3. Данный фреймворк прекрасно подходит для средних и крупных проектов, подразделённых на множество взаимозаменяемых компонентов.
Краткий экскурс в историю: как зарождался BlueBream
Началось всё в далёком в 1996 году. Джим Фултон, технический директор компании "Digital Creations", на международной конференции IPC делал доклад о CGI («общий интерфейс шлюза») — стандарт интерфейса, используемого для связи внешней программы с веб-сервером), который именовался "Python и программирование в сети Интернет". Джим считал CGI недостаточно практичным решением, и потому придумал лучший способ программирования на Python. Легенда гласит, что Фултон изучал CGI летя в самолете на конференцию, а затем, на обратном пути, спроектировал Bobo.
Тогда с подачи Digital Creations свет увидели три открытых Python пакета: Bobo, Document Template, и Bobopos. Эти пакеты — веб публикатор, движок шаблонов, и объектная база данных стали ядром Principia — коммерческого сервера приложений. В ноябре 1998 года, инвестор Хадар Педхазур убедил Digital Creations сделать Principia открытым. Эти пакеты развились в компоненты ядра фреймворка Zope 2, а а компания получила новое имя — Zope Corporation.
С тех пор Zope пребывал постоянной разработке, развиваясь наперегонки с тем, как сообщество набиралось опыта, всегда стараясь найти баланс между мощностью фреймворка и простотой его эксплуатации. В Zope 2 внимание акцентировали на быструю разработку, а компонентная архитектура Zope, которая является базой для Zope 3, делает упор на модульность и адаптивность настроек. Именно эти свойства получили спрос у “корпоративных” приложений, поскольку их важнейшие требования — масштабируемость и гибкость.
На сегодняшний день Zope 3 известен как BlueBream. Это название вытекает из схожести произношения. Z Object Publishing Environment, читаемый как Zope — это наименование вида рыбы. Blue bream (пер. - голубой лещ) — альтернативное название этого вида.
Международная команда опытных программистов активно совершенствует BlueBream.
Почему стоит выбрать BlueBream? Преимущества и отличительные черты фреймворка
Приведём ряд особенностей, которые отличают BlueBream от других Python фреймворков для веб-разрабокти.
- Данный фреймворк создан на базе Zope Tool Kit (ZTK), подкреплённом многолетним опытом, который успел доказать, что соответствует требованиям к разработке стабильного, масштабируемого ПО.
- Использует мощную систему сборки.
- Использует Zope Object Database (ZODB) — транзакционную объектную СУБД, которая предоставляет простой путь к реализации хранения данных.
- Регистрирует компоненты с помощью Zope Component Markup Language (ZCML) — языка конфигураций, основанного на XML, который предоставляет безграничную гибкость.
- Также может регистрировать компоненты используя GROK, который заменяет декларативную конфигурацию ZCML на соглашения и объявления в стандартах Python.
- Обладает компонентной архитектурой Zope (ZCA), которая реализует принцип разделения задач для создания связываемых повторно используемых компонентов (zope.component).
- Реализует Python Web Server Gateway Interface WSGI используя Paste, PasteScript, и PasteDeploy.
Отдельно стоит уточнить, что BlueBream содержит немало хорошо оттестированных компонентов для обеспечения общих нужд. Среди них:
- zope.publisher — публикует Python объекты в веб, уделяя внимание совместимости с WSGI
- zope.security — обеспечивающий общий механизм подключаемых политик безопасности
- zope.testing и zope.testbrowser — помогают для unit- и функционального тестирования
- zope.pagetemplate — XHTML-совместимый язык шаблонов
- zope.schema — движок схем
- zope.formlib — инструмент для автоматической генерации форм
Установка и простой проект BlueBream
Для начала установим Python версии 2.4 или выше. Также нам потребуется Distribute или Setuptools. Однако я предпочитаю установку через PIP, таким образом появляется возможность деинсталляции и переустановки модулей. Также необходимо установить компилятор языка C (GCC), иметь доступ в интернет, чтобы подключиться к PyPI, для загрузки сборщика и сборки приложения с помощью Buildout.
Доступ в интернет не обязателен при сборке, если используется пакет zc.sorcerelease.
После того как Вы установили Python, не забудьте изменить переменные среды и проверить успешность установки в командной строке посредством ввода команды "python". Установите PIP. Далее войдя в командную строку используйте следующую команду:
pip install bluebream
В результате Вы установите сам фреймворк и другие необходимые для него пакеты (Paste, PasteDeploy, PasteScript). Вывести список установленных пакетов можно следующей командой:
pip list
Команда для отображения устаревших пакетов:
pip list --outdated
Команда для обновления устаревшего пакета:
pip install package-name --upgrade
Команда для полной переустановки пакета:
pip install package-name --upgrade --force-reinstall
Команда для удаления пакета:
pip uninstall package-name
Для создания простого проекта вводим команду:
paster create SampleProject
Данная команда запустит мастер установки, нужно всего лишь ввести данные о проекте, а после можно реализовать сборку.
Практическое применение фреймворка Bluebream
К сожалению, как на русскоязычных, так и на иностранных ресурсах число информации о проектах, выполненных на данном фреймворке, а также обучающих пособий по нему невелико, к счастью, один пример удалось сыскать.
Bluebream использовался при создании системы электронного документооборота NauDoc. На сайте ранее было указано, что данная система некоторое время была в эксплуатации ОАО Далькомбанк, и в неё были введены около 1000 пользователей. Вскоре банк отказался от данной системы в виду её непригодности для решения необходимых задач и многочисленных технических неисправностей.
Как видите, BlueBream не пользуется популярностью, но именно Вы можете её принести, реализовав свой уникальный проект. Чтоб найти для себя идеально подходящий фреймворк попробуйте поработать в нём на практике и сравнить с аналогами. Перечень возможностей и общая концепция BlueBream, упомянутые ранее, сами по себе являются мотивацией для его тестирования. На том и закончим, желаю Вам максимально скоро определиться с комфортным для вас фреймворком и достигнуть высшего уровня мастерства разработки на языке Python.