Общее описание

M3 представляет собой набор модулей для разработки web-приложений на python, функционирующих в частных и открытых облаках. Создаваемые на основе M3 приложения функционируют в трехзвенном режиме: web-браузер в качестве тонкого клиента, сервер приложений и сервер баз данных. Рабочие места и сервера, на которых развертываются такие приложения, могут функционировать под любой распространенной операционной системой (Windows, Linux, MacOS). В качестве серверов баз данных могут использоваться различные СУБД: Oracle, PostgeSQL, MS SQL, MySQL, Firebird. На клиентских рабочих местах могут использоваться любые браузеры (кроме IE 6, поддержка которого ограничена).

Ключевыми особенностями платформы являются:

  • Ориентированность на создание облачных систем, функционирующих в гетерогенной среде;
  • Широкие возможности модификации функциональности и поведения web-приложений без изменения исходного кода системы путем подключения плагинов, которые могут разрабатываться специалистами сторонних компаний;
  • Развитый функционал обмена информацией с внешними информационными системами, с использованием POST и SOAP сервисов;
  • Многочисленные плагины, в которых реализованы различные полезные механизмы;
  • Масштабируемость серверной части как по серверам приложений, так и по серверам базы данных с различными способами балансировки нагрузки.

Архитектура модулей m3

Приложения на основе М3 базируются на Django. Отличительно особенностью Django является архитектура проекта. Каждый проект состоит из независимых или слабозависимых приложений. Каждое приложение реализует паттерн MTV (Model – Template – View). Model – модель из классического MVC. Template – Django шаблон, аналог представления View из MVC. View – controller из классического MVC.

Каждый проект, в основе которого лежит данный подход состоит из модулей. Каждый модуль является отдельным приложением, которое существует само по себе и может быть встроено в другое приложение или вынесено в другой проект. Архитектура каждого приложения очень похожа на архитектуру приложения в Django. Но имеется серьезные переработки некоторых компонент MTV.

Как уже было сказано, m3 состоит из модулей. Основополагающим модулем является m3-core. Внутри него реализована дополнительная абстракция над концепцией Django. В роли модели выступает обычная Django-модель. В роли контроллера (view из MTV) выступает Action. Action является внутренним классом m3-core. Он пришёл на смену Django-view. Дело в том, что подход, используемый в Django прост и вполне подходит для небольших приложений, однако масштабные корпоративные приложения выдвигают новые требования:

  • Отсутствие вшитых в программу адресов (URL);
  • Изменение адресов на ходу;
  • Перехват выполнения перед view и после view;
  • Автоматическое извлечение и контроль входных параметров view;
  • Гибкое встраивание нового функционала;
  • Возможность работы с сущностями, а не с действиями напрямую.

Для решения этих задач механизм URL Dispatcher, используемый в Django был заменен на собственный механизм. Django-view используются только как точки входа в приложение. Т.е. одно приложение – одна view, в которую приходят все запросы, адресованные данному приложению. Далее будем называть её view-controller. На смену остальным view пришли классы Action, ActionPack и ActionController, которые образуют механизм, отвечающий требованиям крупного корпоративного проекта. В качестве представления выступают визуальные компоненты из модуля m3-ext. Эти компоненты представляют собой в большей степени реализацию ExtJS контролов, а так же имеются и свои наработки.

Contents © 2014 БАРС Груп - Powered by Nikola