работаем по всей России

Описание платформы

Платформа для разработки корпоративного программного обеспечения
WORKFLOW TECHNOLOGY

1. ВВЕДЕНИЕ

В любом современном предприятии объем информационных потоков внутри его бизнес-процессов рано или поздно достигает той точки, когда требуются средства для хранения, обработки, упорядочивания этой информации, поддержки ее в актуальном состоянии.
Таким средством выступает информационные системы (ИС), ядром которых является программное обеспечение (ПО). При этом далеко не во всех сферах деятельности предприятия может использоваться готовые ИС. В таких случаях они создаются по индивидуальным меркам самой компании. Это может быть создание ИС с нуля или детальное конфигурирование в рамках определенной программной платформы. Но, так или иначе, для решения задачи создания корпоративного ПО предприятия нужны серьезные ресурсы. И здесь возникает проблема: нужно в условиях недостаточности ресурсов создать такую ИС, которая бы удовлетворяла индивидуальные потребности конкретного предприятия и которую можно было бы легко поддерживать своими силами. Именно поэтому была создана специальная CASE-платформа для разработки индивидуального корпоративного ПО ИС, не требующая знаний в области программирования и рассчитанная на системных аналитиков, а не на программистов.

 

2. АРХИТЕКТУРА

Рабочее название платформы – Workflow Technology. Главным образом, она использует трехуровневую архитектуру построения ПО. Соответственно, это сервер приложений, система управления базой данных и «тонкий» клиент (см. рис. 1).
А также отдельная система мгновенных уведомлений, которая тесно связано с основной архитектурой.

Рис. 1. Архитектура платформы

В качестве СУБД на данный момент выступает PostgreSQL (бесплатная), но она может быть легко заменена на любую другую систему управления sql-базами. В качестве сервера приложений используются веб-служба, работающая по технологии WCF (Windows Communication Foundation). Клиент представляет собой оконное windows-приложение. Также отдельным модулем всей платформы является разработанная служба мгновенных уведомлений Messenger, которая получает команды от сервера приложений и использует свою клиентскую сеть для мгновенного распространения информации о тех или иных событиях для пользователей платформы.

 

3. СОЗДАНИЕ ПРИЛОЖЕНИЙ

Для того чтобы определенное приложение заработало на данной платформе, каждому из основных блоков, представленных на рисунке 1, следует задать инструкции (см. рис. 2).
Для СУБД такими инструкциями будет модель данных (другими словами, структура базы данных). Клиенту следует дать информацию в виде описания форм – по сути, это «лицо» программы, ее интерфейс – то есть каким образом приложение будет взаимодействовать с пользователями (внешним миром). Основные инструкции для клиента – это описание объектов, которые будут располагаться на формах, а также их способы взаимодействия с базой данных. Под способами взаимодействия здесь понимаются запросы (причем, только их наименования, а не их содержание), которые клиент адресует серверу (а тот, соответственно, базе). Запросы делятся на две основных категории: для получения данных из базы и для отправки данных в базу. То есть описание форм главным образом заключается в описании объектов и тех данных, которые они (объекты) получают с сервера, а затем отправляют на сервер. Соответственно, сервер приложений должен содержать сами запросы (наименование и содержание) и права доступа на них, чтобы не каждый пользователь обладал возможностью применить тот или иной запрос.

Рис. 2. Инструкции платформы для запуска приложения

 

4. ОБЩИЙ ПОРЯДОК РАЗРАБОТКИ

Таким образом, разработка корпоративного ПО на базе данной платформы имеет следующую обобщенную последовательность:
  1. 1. Создание макетов форм (расположение объектов на форме).
  2. 2. Задание на формах того, какие данные получает объекты и какие данные отправляют, посредством указания наименований запросов, которые хранятся на сервере.
  3. 3. Разработка модели данных и создание структуры базы данных.
  4. 4. Написание запросов, наименования которых были использованы на формах.
  5. 5. Задание прав на выполнение определенных запросов для определенных пользователей.

 

5. ПОДРОБНЕЕ О РАЗРАБОТКЕ

Для того чтобы задать модель данных используются специальные CASE-средства для графического создания структуры базы данных (то есть без программирования). Как правило, такие средства входят в комплект СУБД. Например, готовое решение pgAdmin III – это бесплатное средство для работы с PostgreSQL.
Для того чтобы задать описание форм был разработан специальный язык Workflow Forms Language, основанный на универсальном языке разметки XML. Основные понятия этого языка – это объекты (MyObjects), которые расположены на формах, и соединения с данными (DataConnections), в которых указаны определенные запросы к базе и на которые ссылаются объекты для загрузки данных.
Вот пример описания объекта TextBox на языке Workflow Forms Language:
<MyObject Name="TitleTextBox" Type="TextBox" Assembly="BaseControls">
   <Top>5</Top>
   <Left>5</Left>
   <Width>490</Width>
   <Text>
   <DataConnection SourceDataConnection="DocumentPrimaryGetDataConnection">
      <Fields>
         <Field Name="Title" />
      </Fields>
   </DataConnection>
   </Text>
</MyObject>
Заметим, что здесь объект «TitleTextBox» ссылается на поле «Title» соединения с данными «DocumentPrimaryGetDataConnection». И вот пример описания этого соединения с данными:
<DataConnection Name="DocumentPrimaryGetDataConnection"
                Type="PrimaryGetDataConnection"
                Assembly="DataConnections">
   <SqlQuery Name="DocumentSelectQuery" Type="Select">
      <Workflow Name="WorkflowName" />
      <Fields>
         <Field Name="Title" NativeName="Title" />
      </Fields>
      <Parameters>
         <Parameter Name="DocumentId">102</Parameter>
      </Parameters>
   </SqlQuery>
</DataConnection>
Для описания серверной части приложения был также разработан специальный язык Workflow Engine Language, также основанный на XML. Основные понятия этого языка – запросы и права доступа на них. Вот пример описания запроса:
<SqlQuery Name="DocumentSelectQuery">
   <Text>
      SELECT
         title AS "Title"
         FROM
            workflow_name.documents
         WHERE
            document_date = {DocumentId}
   </Text>
</SqlQuery>
И пример задания прав доступа на него. Это описание разрешения на выполнение запроса:
<Permission Name="DocumentSqlQueryPermission" Type="SqlQueryPermission">
   <SqlQueries>
      <SqlQuery Name="DocumentSelectQuery" />
   </SqlQueries>
</Permission>
Это описание роли, в которую входит данное разрешение:
<Role Name="AdministratorRole">
   <Permissions>
      <Permission Name="DocumentSqlQueryPermission" />
   </Permissions>
</Role>
Это описание группы определенных пользователей, которая включает в себя несколько ролей:
<Group Name="AdministratorGroup">
   <Roles>
      <Role Name="AdministratorRole" />
   </Roles>
</Group>
Таким образом, не используя программирование, а только лишь декларативное описание, можно создавать очень функциональные приложения. Достоинство такого декларативного описания в том, что его легко визуализировать – то есть применить специальный графический редактор (CASE-средство), в котором можно будет задавать все эти сущности в графическом виде. И для этого можно даже не знать xml-синтаксиса двух разработанных языков. Самая ближайшая задача в рамках проекта – создать такое средство.

 

6. ОБЛАСТЬ ПРИМЕНЕНИЯ

Для того чтобы наглядно продемонстрировать, где можно применять данную платформу, будет приведен график (см. рис. 3).

Рис. 3. Область применения платформы

Здесь синяя кривая – это показатель для разработки, в которой используются средства императивного программирования, а красная – для данной платформы Workflow Technology, в которой используется декларативное (а позже будет просто визуальное) программирование. Точка 1 показывает размер проекта, при котором уже будет оправдано использование платформы. То есть проекты, меньшие размером (как правило, это совсем простые приложения, которые можно разработать за 1-2 дня) можно сделать обычными средствами, а для проектов больших размеров уже выгодно использовать Workflow Technology. Точка 2 показывает «оптимальный» размер проекта, то есть при котором использование данной платформы будет наиболее выгодным по сравнению с другими решениями. С ростом размера проекта отношение в эффективности будет сокращаться, однако будет ли платформа менее эффективной при каком-то большом размере – сказать сложно, т.к. реальных данных пока нет, можно только предполагать.

 

7. ПРЕИМУЩЕСТВА

Основными преимуществами платформы Workflow Technology являются:
  1. 1. Гибкость при разработке приложений. То есть платформа позволяет создавать приложения, которые подстраиваются под работу предприятия, а не наоборот. Обратным примером могут служить системы с жесткой конфигурацией, где приходится изменять бизнес-процессы предприятия, чтобы они удовлетворяли требованиям системы.
  2. 2. Данная платформа легко расширяема за счет новых модулей (объекты, алгоритмы, обработчики и прочее), которые можно создавать, используя обычные средства программирования (языки общего назначения, в частности, например, C#)
  3. 3. Платформа создана специально для системных аналитиков и внедренцев. Декларативное описание сближает реальную предметную область задачи и разработку приложения для этой области. Другими словами, используя данную платформу, нужно задавать вопрос «ЧТО НАДО СДЕЛАТЬ?», а не «КАК ЭТО СДЕЛАТЬ?»
  4. 4. Т.к. вся работа платформы сводится к исполнению приложений на клиенте и логики на сервере, причем и там, и там вся деятельность регламентирована описанием на разработанных xml-языках, то это существенно повышает прозрачность работы приложения.
  5. 5. Т.к. платформа подразумевает, главным образом, графическую разработку и написание запросов, то обучение ее возможностям и применению проходит существенно быстрее.
  6. 6. Наличие специальной подсистемы мгновенных уведомлений увеличивает потенциал применения платформы.
  7. 7. Независимость платформы от предметной области, то есть решать задачи можно с любой проблематикой.
  8. 8. Направленность платформы на индивидуальное проектирование.
  9. 9. Более высокая адаптивность уже разработанных на данной платформе приложений к новым условиям. Также засчет декларативного описания.
  10. 10. Простота устранения ошибок. Вся семантика приложений описана в xml-языках, которые по своей сути очень дискретны, что существенно облегчает поиск ошибок и их исправление.
  11. 11. Защита от ошибок программиста. Вся логика работы тех или иных сущностей реализована внутри и это сделано однажды (то есть больше нет необходимости менять код). Впоследствии возможности этих сущностей используются многократно посредством их внешнего интерфейса.

 

8. ЗАКЛЮЧЕНИЕ

Представленная CASE-платформа Workflow Technology является технологичным и удобным инструментом для создания нетипового корпоративного ПО, сочетающим в себе два главных качества: простота и мощность (функциональность).
Она не требует знаний в области языков программирования, что существенно понижает квалификационный порог для разработчиков (простота). Но при этом для построения приложений дает достаточно богатый функционал, который всегда может быть расширен (мощность). Приложения, созданные на базе данной платформы, будут легко адаптируемы к новым требованиям, легко поддерживаемы и прозрачны в работе.
Отзывы
  • Боева Жанна,
    руководитель отдела по работе с оптовыми клиентами
    ООО "Новый дом"

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

  • Андрей Гаврилов,
    директор
    Служба такси «Такси Плюс»

    Самое главное, что было общение напрямую с руководителем проекта. Без посредников. Без прямого контакта успеха бы не было. В итоге что хотели, то и получили. В общем, сейчас все контролирую гораздо быстрей.

  • Артём Артемян,
    директор
    Автопрокат «NarsCars»

    У нас уже была программа, но не настолько обширная, какая нам была нужна. Частично вели учет в Excel. Сейчас все делается в одной программе и сразу. Получили все, что хотели.

  • Королёв Михаил,
    директор
    ООО "Эдельвейс"

    Главное, что сейчас все цели, которые ставились перед началом автоматизации, достигнуты, все, ради чего покупали, получили — сокращение времени производственного цикла и автоматизированное производство.

  • Ситалиев Ахат,
    директор
    ООО "Платан"

    С вами все как-то быстро получилось. Сказал, что было нужно, и вы сделали. Да и по цене ваше предложение оказалось поинтересней. В общем, что сомневаться? Надо брать и смотреть. Если бы продукт был плохим, то и не рекомендовал бы никому.

  • Бельтикова Марина,
    руководитель отдела по взысканию дебиторской задолженности
    ООО "Оланд"

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

  • Корсунов Игорь,
    директор
    ООО "БВД"

    Сейчас все устраивает и мы очень довольны. Все, что мы хотели сделать, сейчас есть в программе. Более того, мы ее уже значительно усовершенствовали, чтобы она связывалась с другими программами, сайтами и системами.

  • Татаринова Алёна,
    директор
    Прокат автомобилей "Бета"

    Удобство в экономии времени, сокращение временных затрат на рутинные процессы, которых нельзя избежать, простота и доступность для обучения сотрудников. Если бы узнали, что у коллег есть потребность в каких-то подобных программах, то порекомендовали бы!

  • Капониров Александр,
    генеральный директор
    ЗАО "Промышленная компания ЭЛИНА"

    Главное достоинство программ, которые сделаны для нас, – очень высокая гибкость, всё подгоняется под  наши конкретные желания и требования. Второе — это сам процесс автоматизации, снижающий количество рутинных операций, что дает возможность сосредоточиться на более важных вопросах. И, как следствие, третье — теперь для этих важных вопросов есть исходная информация, то есть сегодня решения принимаются не на основе пустых мнений, а на основе фактов.

  • Девальд Андрей,
    директор
    Автомоечный комплекс "Северный луч"

    Процесс у нас теперь полностью автоматизирован. Программа автоматически все рассчитывает, разработана так, как нам надо: все доработки были сделаны именно для нас. Ошибки исключены, и выручки соответственно увеличились.
    Сервис – на 5. Быстро и хорошо. В любое время любая доработка, добавление новых функций, какие-то наши капризы – это все делается быстро.

  • Неверов Михаил,
    директор по качеству
    ЗАО "Промышленная компания ЭЛИНА"

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

Контакты
Свяжитесь с нами