| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > BlackFrameWork - Open Source платформа |
| Автор: BlackLFL 18.3.2008, 17:25 |
| Добрый день, уважаемые посетители! Последнее время, я редко появлялся на форуме, был полностью погружен в написание платформы для создания web-приложений, получившую название http://blackframework.com. ( Чтобы прочитать последнею версию, пройдите по ссылкам. ) http://blackframework.com/documentation/general/welcome/ BlackFrameWork - это открытая ( open source ) разработка, позволяющая программистам создавать Web-приложения имея под рукой готовую базовую структуру программы, все компоненты которой разработаны применяя подход ООП ( Object-Oriented Programming ). Принцип взятый за основу разработки, минимум кода на выходе, гарантирует снижение затраченного времени на изучение нашего продукта. Некоторые основные особенности BlackFrameWork:
Структура платформы, способна развиваться до неограниченной вложенности, использовать различные шаблоны отображения данных на нескольких языках. Регистрация, аутентификация, пользователей. Вы можете использовать пакет расширения для работы с пользователями лишь для уже реализованных в нем минимальных нужд, все остальные надстройки Вы можете разрабатывать в своих модулях, наследуя базовый ( принцип наследования в ООП ). Аутентификация на основе сессий, что позволит избавиться от разработки механизма передачи данных. Разграничение доступа к любым компонентам платформы. Доступ может быть предоставлен как к целому объекту, так и к его любому компоненту ( методу ). Например, метод read_application модуля Application считывает данные из таблицы applications, мы можем дать группе пользователей или конкретному пользователю привилегию select к таблице applications, что предоставит ему возможность считывать данные из этой таблицы через метод Application::read_application(). Разработка интерфейса ( шаблона отображения данных ) полностью отделена от кода. Программист подготавливает XML данные, а дизайнер/верстальщик использует XSL шаблоны для преобразования полученных данных в пригодный для восприятие вид, например, в HTML. По умолчанию, преобразование происходит на стороне сервера, используя наиболее мощную библиотеку на сегодняшний день http://www.xmlsoft.org/, что позволяет отображать данные на устройствах не поддерживающих XML&XSL, например, некоторые модели сотовых телефонов. http://blackframework.com/documentation/general/about/ Истоки разработки были положены в 2004 году, когда появилась необходимость создания некой программы, которая поддерживала бы крупный web портал и все его сервисы. В 2005 году наработки были использованы в интранет проекте, где немного модернизированное ядро поддерживало документ оборот одной из фирм. Постепенно, в 2007 году была начата разработка отдельного проекта под названием BlackFrameWork на базе уже существующего ядра, что позволило избежать многих ошибок допущенных в прошлом, и выявленных в течение последних 3 лет. Зарождению планов разработки отдельного проекта, подвигло некое отчаяние, которое появлялось всегда, когда необходимо было начать новый проект, что приводило к серьезному изменению структуры ядра, т.к. многие его компоненты были нужны только для прошлого проекта, и мешали в новом. Хотелось создать платформу, которая включала минимальный набор инструментов необходимый для любого web ( интернет/интранет ) приложения, что избавило бы от затрат на проектирование базовый структуры, а все силы были брошены на реализацию поставленных задач в новом проекте. 12 марта 2008 года был выпущен первый релиз! Данная разработка поддерживается энтузиастами, в любой момент Вы можете принять участие и помочь проекту, стать одним из разработчиков, для этого достаточно проявить интерес и написать нам на почту. От себя ... В ближайшее время, будет релиз базового пакета с поддержкой базы данных Oracle. Хотелось бы услышать Ваши отзывы, рекомендации, пожелания по работе платформы. Если кому интересно, можете присоединиться! Заранее благодарен за любые комментарии! |
| Автор: ginnie 18.3.2008, 17:57 |
| Уважаемый BlackLFL, одним из основных критериев ПО для "крупного web портала" является не простота разработки, а скорость выполнения. Можно увидеть цифры для разрабатываемой платформы? |
| Автор: BlackLFL 18.3.2008, 21:19 | ||
Разработка, тем более крупная, не может быть реализована просто и быстро, данный процесс должен проходить комфортно для разработчика(ов), что позволит увеличить скорость и сократить сроки. BlackFrameWork преследует как раз цели. Из Вашего поста, к сожалению, не смог понять, какие именно цифры Вас интересуют. |
| Автор: arto 19.3.2008, 09:26 |
| скорость отдачи контента, например. т.е. например, статистику ab неплохо опубликовать. |
| Автор: BurnerCode 19.3.2008, 09:40 |
| nice release =) |
| Автор: AlexPet 19.3.2008, 14:21 |
аутентификация все же, наверное |
| Автор: BlackLFL 19.3.2008, 20:56 | ||||||||
| ginnie, я Вас не так понял, двоякий смысл предложения был, спасибо arto подсказал. Все тесты выполнялись на следующей машине, при 100% загрузки процессора
Параллельно загружена база данных oracle и работают несколько приложений. Тест 1. Загрузка только библиотек, подключаемых в исполняемом файле, без обработки запроса. ab -n 1000 -c 10 http://bfw/mysql/
Тест 2. Загрузка библиотек, подключаемых в исполняемом файле, обработка запроса. ab -n 1000 -c 10 http://bfw/mysql/
Тест 3. Загрузка библиотек, подключаемых в исполняемом файле, обработка запроса, загрузка и обработка шаблона (xml&xsl). ab -n 1000 -c 10 http://bfw/mysql/
Мне кажется приемлимо на таком компьютере... на более мощном компьютере скорость отдачи была выше, статистику приведу позже. 2AlexPet, спасибо, конечно имелось ввиду именно это, когда читаешь одно и тоже днями, перестаешь замечать ошибки |
| Автор: ginnie 20.3.2008, 11:58 |
| BlackLFL, большое спасибо за совершенно бесполезные результаты тестирования! Windows XP + 100% загрузка процессора + 40% используемого свопа + 1000 Non-2xx responses в части тестов это как раз то, о чем я спрашивал! |
| Автор: BlackLFL 20.3.2008, 13:12 |
| 2ginnie, как я упоминал выше, статистику с другого компьютера предоставлю позже, вчера под рукой был только этот ... п.с. мне кажется, такая статистика тоже о чем-то говорит, в частности, что даже при таких нагрузках результат более менее приемлемый |
| Автор: nitr 20.3.2008, 21:45 |
| BlackLFL, ginnie, по возможности (для сравнения) надо выложить тесты и с другими фреймворками Раз уж тут тесты пошли... Лично понравилась разработка, хочу затестить на нескольких проектах, проверить, помочь, чем смогу ;) P.S.: А потом эти данные можно выложить на своём ресурсе в виде графиков... |
| Автор: Itsys 20.3.2008, 22:23 |
| Разработка хорошая, но Аутентификацию в своем проекте я уже сделал, да и нет поддержки MS SQL |
| Автор: Ramirez 21.3.2008, 12:23 |
| мне кажется, что если планируется хоть какая-то более-менее серьезная нагрузка, то сайт на перл должен работать только из-под mod_perl. Как с этим? |
| Автор: BlackLFL 27.3.2008, 17:16 | ||||
Если есть желание, можешь реализовать поддержку MSSQL.
Появится в первом обновление, сейчас проходит последние тестирование под Apache 2.2.x |
| Автор: fray 28.3.2008, 22:27 |
| Слышал про Catalyst наверно и вы тоже слышали, чем этот фреймворк отличается от него. |
| Автор: BlackLFL 2.4.2008, 13:07 | ||
Очень интересный вопрос, спасибо! Досконально сравнивать эти проекты нет смысла, они преследуют похожие цели, но по своему отличаются, Catalyst достаточно старая разработка, включающая десятки готовых решений. Думаю главное отличие, в своем проекте, я полностью исключаю привязку к моей структуре. Разработчику нет необходимости изучать сотни новых методов, в своем распоряжение он имеет разобранные данные, например, POST/GET/COOKIE, и работает с ними по своему усмотрению, применяя свои собственные модели. Вторым, является готовый web интерфейс для управления ядром платформы, пользователями, ролями, конфигурационным файлом, пакетами расширений, процессом инсталляции. Для нашего сегмента пользователей, документация, техническая поддержка на русском языке. |
| Автор: nirburg 2.4.2008, 23:20 |
| BlackLFL, многообещающий фреймворк по коду есть одно замечание. в модулях Black::CGI (строка 483) и BlackFrameWork::Kernel (строка 312) метод receive_file, на мой взгляд, все-таки должен называться recieve_file. не суть важно, конечно, но глазу так значительно приятнее |
| Автор: BlackLFL 3.4.2008, 11:07 |
| 2nirburg, спасибо за поправки и отзыв! Мне все-таки кажется, receive как раз правильно написано, recieve такого слова ведь нет в английском языке?! |
| Автор: KSURi 3.4.2008, 12:25 |
| BlackLFL, вам правильно кажется |
| Автор: nirburg 3.4.2008, 18:48 |
| BlackLFL, прошу прощения, вы правы |
| Автор: tishaishii 5.4.2008, 13:04 |
| А что предлагается нового в данной разработке? Аутентификация? В том числе идентификация служит для персонализации (о как!). И где мы этого не видели? Разграничение доступа? Она же связана с предыдущим - персонализация на уровне ролей. Разделение дизайна от данных и обработки? Ну это вообще классика. Для чего мне использовать этот самый набор модулей? Что я получу? |
| Автор: BlackLFL 28.5.2008, 15:53 | ||
| Обновление платформы! Перво-наперво, хотелось поблагодарить людей, которые присылали отзывы, тестировали платформу, спасибо! Главное изменение, добавлена поддержка mod_perl/mod_perl2, включить можно без затруднений из панели управления. Добавлен новый пакет http://blackframework.com/documentation/base/BlackFrameWork/BlackMembers/DefaultMethods/, содержащий минимально необходимые методы для работы с пользователями, которые раньше были вшиты в пакет расширения BlackFrameWork::Members, что затрудняло обновление пакета расширения и могло в будущем привести к потери данных внесенными разработчиками. Полный список изменений читайте в разделе "http://blackframework.com/contents/changes/". 2tishaishii, отвечаю с задержкой, был в командировке, и vмог общаться только по почте, на форум доступа не было :(
Что-то новое трудно изобрести ( но мы движемся в этом направление ), наша задача дать разработчикам отлаженные инструменты разработки, которые оттестированы на разных платформах, и мы надеемся будут работать устойчиво при больших нагрузках. Конечно все, что предлагается, уже реализовано, но так сложилось, что платформ написанных на Perl, которые выложены в свободный доступ очень мало, либо они настолько громоздки, 90% ненужных функций вшитые в ядро, что отбивает любое желание их использовать, например, Catalyst. Для многих большим плюсом будет, документация, написанная на русском языке, удобный WEB интерфейс управления платформой. Как я уже упоминал, данная разработки включает в себя тот минимум, который необходим для создания любого WEB приложения, никакие лишние разработки никогда не будут включены в базовый пакет. Что Вы получите? Я думаю, и надеюсь, удобный инструмент разработки, с подробной документацией описывающей не только суть платформы и модулей, а так же исходники. Мы изначально держим путь использования только признанных технологий, стандартов, например, XML&XSL(T). |