gototop
Без флеша

Концепция платформы

 

Подробную документацию по всем компонентам платформы читайте на нашем Wiki-портале https://share.kurs-it.ru/wiki/

 

Что такое платформа и как она может быть использована?

Начать следует с того, что под термином «разработка программного обеспечения для бизнеса» на практике подразумевают два родственных, но существенно разных процесса: с одной стороны, разработка «настольных» приложений (по-английски — desktop applications, классическим примером desktop-приложения является Microsoft Excel), с другой стороны — разработка бизнес-решений (классическим примером можно считать корпоративную ERP-систему). Хотя то и другое — разработка, она делается совершенно разными людьми и совсем по-разному.

С одной стороны, разработка бизнес-приложений:

  • Происходит в условиях нечётко определённых требований и постоянного изменения требований.
  • Происходит в условиях, когда для состоятельности проекта очень быстро («вчера!») нужен результат.
  • Выполняется силами специалистов, больше разбирающихся в тонкостях бизнес-процессов.

С другой стороны, при разработке desktop / системных приложений:

  • Ключевые требования могут быть очень сложны, но неизменны относительно первоначального замысла.
  • При выпуске новых версий происходит постепенное приближение к идеалу.
  • Выполняется силами специалистов, больше разбирающихся в тонкостях программирования.

Если имеются две команды разработчиков — бизнес-разработчики и системные программисты — то задачу автоматизации бизнес-процесса можно организовать как проходку туннеля — с двух противоположных концов. Подход «платформа + бизнес-решение» обеспечивает такую «проходку», существенно сокращая время на проект.

Diagram of the tunnelling shield used to construct the Thames Tunnel, London. Contemporary image (19th century), probably from the Illustrated London News.

Проходка туннеля под Темзой, 19 век. Разработка программного обеспечения для бизнеса в чём-то похожа на прокладку туннеля, которую, как известно, особенно эффективно вести с двух противоположных сторон.

С одного конца системные программисты разрабатывают платформу — т. е. набор инструментов и «строительных блоков», предназначенных для команды бизнес-разработчиков. Платформа разрабатывается в стиле desktop-приложения, постепенно и тщательно.

С другого конца, используя платформу, бизнес-разработчики выполняют быструю реализацию поддержки автоматизации нужных процессов.

Основными характеристиками платформы являются:

  • Компилируемый код, как наиболее подходящее средство для программистов-системщиков. Для разработки платформы КУРС нами выбран язык программирования Java.
  • Тщательная отладка и оптимизация кода — любая функция платформы должна работать бескомпромиссно быстро и надёжно.
  • Тщательный выбор реализуемых функций: платформа решает общие задачи разработки бизнес-решений, всё частное отдавая на откуп бизнес-решению.
  • Отбор ограничений и запретов, накладываемых на бизнес-решение: это нужно для того, чтобы оберегать неопытного в низкоуровневом программировании бизнес-разработчика от опасных технологических решений.

Основными характеристиками бизнес-решения являются:

  • Интерпретируемый код, как наиболее подходящее средство для бизнес-аналитиков. Для бизнес-решения нами выбран Python — простой, изящный и очень мощный скриптовой язык программирования, прекрасно подходящий, в частности, для использования не профессиональными программистами.
  • Быстро, начерно получаемые результаты.
  • Изменяющаяся логика над накапливающимся со временем массивом бизнес-данных. Последнее обстоятельство играет важную роль: в отличие от desktop- или системного приложения, которое вы можете в любой момент переустановить, бизнес-решение в качестве своей существенной части содержит массивную реляционную базу данных с накопленной информацией, поэтому при обновлении постоянно приходится решать задачу изменения структуры этой базы данных с сохранением накопленных данных.

Стандартные возможности платформы

Каковы же стандартные задачи всякой бизнес-платформы? Наш многолетний опыт показывает, что ни одна бизнес-платформа не может обойтись без следующих функциональных возможностей — стандартных, как гаечные ключи:

  • Аутентификация (интегрированная с LDAP/Active Directory, а также кросс-доменная, т. е. интегрированная с системой аутентификации других приложений, включая социальные сети).
  • Авторизация (распределение прав).
  • Протоколирование изменений данных.
  • Быстрое конструирование таблиц и связей.
  • Быстрое конструирование пользовательского интерфейса, который будет быстро работать на больших объёмах данных.
  • Обновление структуры таблиц на «живой» базе данных.
  • Миграция на другие виды баз данных и операционных систем.
  • Работа с почтовыми рассылками (рассылка почтовых уведомлений из приложения и, реже, автоматическая обработка входящих писем).
  • Генерация отчётов в виде Office-документов.

wrench

Платформа, которую мы выстроили — платформа КУРС — является, конечно же, далеко не единственным в своём роде ответом на  поставленные задачи. Где-то мы похожи на другие решения — в частности, нас вдохновляли большие ERP-системы — но уникальны в том, что мы построены на опыте десятков проектов, выполненных непосредственно нами. В частности, мы пришли к выводу о том, что наша платформа должна быть максимально лаконична и проста — но при этом, разумеется, не упускать ни одной существенной детали, требуемой для построения бизнес-приложения.

Системная архитектура

Наша платформа использует наиболее распространённый на сегодняшний день вариант клиент-серверной архитектуры, а именно — трёхзвенную архитектуру для веб с использованием реляционной базы данных. Так как неизменяемая (платформенная) часть написана на Java, то это требует использование такого компонента, как сервлет-контейнер, о чём будет сказано далее. Изменяемая часть — бизнес-решение — существует в виде набора текстовых файлов на языках CelestaSQL, Python и XML, хранящихся на дисковом пространстве сервера приложения.

Системная архитектура платформы КУРС

Принцип кросс-платформенности

Важнейшим принципом, заложенным в нашу систему, является принцип кросс-платформенности. Весь наш опыт говорит о том, что выбор заказчиком конфигурации серверного программного обеспечения, т. е.

  • операционной системы (Win/Linux)
  • СУБД (MS SQL/ Oracle/etc.)
  • сервлет-контейнера (Tomcat / Glassfish / Websphere/etc.)

есть вопрос не технологический, а политический.

К примеру, заказчик может хотеть сервлет-контейнер Glassfish, развёрнутый под операционной системой Linux и работающий с базой данных Oracle просто потому, что таковы принятые когда-то в его организации стандарты. Совершенно неважно, если для решаемой задачи Oracle не имеет никакого преимущества перед SQL Server, а Glassfish — перед Tomcat, заказчику важно оставаться в рамках ограниченного набора используемых технологий. И если решение подходит под бизнес-процесс заказчика, но было разработано, например, под SQL Server, то могут возникнуть проблемы.

Платформа КУРС не только поддерживает

  • любые операционные системы, на которых работает Java SE (включая Windows и Linux)
  • сервлет-контейнеры Tomcat, Glassfish и Websphere
  • наиболее распространённые на рынке СУБД: MS SQL Server, Oracle, PostgreSQL и MySQL,
но и обеспечивает перенос решений, созданных под одну из конфигураций на другую без существенных доработок. Особенно важна возможность миграции решений с одного типа СУБД на другой, это достигается использованием универсального интерфейса доступа к данным, предоставляемого платформой.

Лицензионная политика КУРС

GPL v. 3

Логотип лицензии GPL v.3. Всю информацию об этой лицензии можно найти на сайте www.gnu.org.

Компоненты платформы КУРС распространяются по лицензии GPL v.3 или более поздней. Это означает, что все пользователи данного ПО имеют право копировать, модифицировать и распространять копии этих программ при условии, что и пользователи всех копий/производных программ также получат вышеперечисленные права.

Создаваемые на платформе КУРС бизнес-решения могут быть проприетарными.