Process Is The Main Thing

@ Anatoly Belaychuk’s BPM Blog

Third-party BPMS Tools

I often refer to the analogy between DBMS and BPMS:

  1. Once upon a time computer programs consisted from algorithms only.
  2. Then at some moment it became clear that algorithms and data are different entities. Professor Wirth wrote his famous book “Algorithms and Data Structures” and a conclusion was finally made that data need special tools. So a new class of software emerged called DBMS.
  3. Similarly there is now an understanding that it’s better to consider process as an independent entity and not to reduce it to algorithms or data. Hence it requires special tools, i.e. BPMS.

Now let’s recall how user interfaces to databases progressed:

  1. Initially each DBMS came with its own toolset. For example, Informix 4GL for Informix database and Oracle Forms for Oracle DBMS.
  2. Then universal tools able to work with different databases appeared. For example, Unify released Accell 4GL in 80’s that was pretty similar to Informix 4GL and Oracle Forms with the key difference that it could work with Unify’s own database as well as with all leading DBMS of that time: Informix, Oracle, Sybase. At that moment it was achieved simply by embedding support for evry DBMS into the product. The benefit of such tools for the client: he could switch to another DBMS painlessly. And this is not an abstraction: for example Sberbank (the largest financial institution in the country) managed to switch from Unify database to Oracle and keep millions of lines of code written in Accell. Even if Sberbank made a bet on Oracle from the beginning it would be in a serious trouble because, unlike Unify who continues releasing new Accell versions, Oracle cancelled Forms. (Let me remind that we are talking about the application system counting millions lines of code.)
  3. At the end of the day a tool vendor appeared who was powerful enough to make DBMS vendors standardize on API: it was Microsoft with ODBC. Then JDBC followed the way. Yet DBMS vendors wasn’t quite happy so they do everything to make their proprietary interfaces run faster or give access to some non-standard extensions. Hence it’s not uncommon to see a tool supporting, say, Oracle and MS-SQL via proprietary interfaces and all others via ODBC.

Although Microsoft Studio and Oracle JDeveloper are quite popular, many applications developed for Microsoft and Oracle databases utilize tools like Delphi, PHP and God knows what else. So majority of application developers prefer option 3.

Now how things are going regarding BPMS? We are now at step 1 and that’s no good.

Customers choos BPMS by the engine charcteristics mostly. As a result, one have to utilize whatever interface tools the vendor provided. It may have ugly look-and-feel, poor usability and/or non-standard programming language - you have no choice. Well in theory one can use a general-purpose tool and communicate with BPMS through its API. But it’s too expensive and most importantly - time-consuming. Agility is the king in BPM projects so they require rapid development tool with ready-built visual components e.g. to access  process attributes.

I’d like to have a third-party user interface development tool supporting a range of leading BPMS. Preferably from the vendor with a proven record in producing development tools.

It’s enough for the beginning to follow the option 2, i.e. to use adapters to particular systems. If the product was successful, the vendor would be able to offer a standard API for BPMS engine similar to ODBC and increase his market share.

The product should offer the following functionality:

  • Introspection, e.g. a list of attributes of the target process to choose from.
  • Two modes: rapid prototyping and production development. The former is for analysts - it’s enough to specify a list of attributes and set the read-only / editable / mandatory flag for each and the form will be automatically generated. The latter is for programmers: visual components are placed on the canvas and programmer is able to write code for input validation, background calls to the engine etc.
  • Same two modes for the portal. A standard out of the box portal for the prototyping and a portal composed by the programmer from the high-level components for the production (see “Demo vs. Production BPM-based Systems“).
  • Two types of clients: a browser and a smartphone. I’d love to have a development environment producing forms that execute both in a desktop browser and iPhone. Ideally it’d be the same form. As a minimum, let the forms be different but have similar look-and-feel and development environment.
  • Support of routine database and webservice jobs.

Would you use such a tool? Or there is one already? Or are you going to / already work on something similar?

08/27/10 | Articles |    

Comments (5)

  1. Александр 09/01/10 01:02 PM

    По отношению к DBMS, Вы сконцентрировались на технологиях доступа, а главное, что породило такие системы упущено. Главное - это SQL. Именно использование стандартного языка привело к развитию этой технологии. Если бы каждый начал использовать свой язык, то мы получили совсем другую историю. Преимущество DBMS в том, что есть некое ядро языка, которое поддерживается всеми и есть особенности, которые позволяют реализовывать крутые фишки. Сила Oracle DB не только в ее производительности, но и в ее возможностях, которые иначе представленны у других БД. Ну это отдельная тема…
    Вернусь к теме поста. Проблема в том, что, в то время как БД имеют под собой достаточно стройную теоретическую систему (теория множеств и язык програмирования SQL), BPMS никакого НОРМАЛЬНОГО языка и теоретической базы не имеют. Это всего лишь красочные технологии. Верно подмечено, что “у него может быть…нестандартный язык программирования”. На мой взгляд, это и есть главная проблема. Нет теории, нет НОРМАЛЬНОГО языка. Эти системы будут продолжать коптить, пока не разгорятся :-). А это случится, только после появления стандартного языка (только вот не надо говорить о пародиях на язык програмирования в виде диалекта XML, если бы обращение к БД было бы на таком диалекте, то мы так бы на dbf и жили бы).
    И все таки еще… Если бы Unify закрыл (закроет) Accell, то проблемы действительно были бы (будут). Это странная аргументация.
    Если Вы заплатили за Oracle БД глупо не использовать те особенности, которые присущи этой базе (за которые заплачены немалые деньги) и ограничиватся стандартным SQL 92. Вы говорите про JDBC и ODBC, а что будет если от этих технологий (которые привязаны к конкретному вендору) решат отказаться? Кстати, если бы Oracle не подхватил бы SUN, посмотрел бы я на любителей Java технологий :-) с их мечтами отвязатся от вендора БД. Сила SQL в мобильности программистов между системами, а не в мобильности самих систем. Мобильность систем зависит от архитектора, проектировщика и качества кода программистов.
    Поэтому первое что должно произойти, это появление нормального языка, а потом будет и пункт 2 и пункт 3.
    А просто API не решает проблему, а только усложняет.

  2. Anatoly Belychook 09/01/10 01:46 PM

    Александр

    Ваш выстрел просвистел мимо цели. Во-первых, в BPM есть и стандартный язык BPMN, и математическая основа. В основе DBMS реляционная алгебра Кодда (а вовсе не теория множеств), в основе BPMS - процессная. Погуглите. Нормальные они или там НЕНОРМАЛЬНЫЕ - это уже эмоции. Во-вторых, DBMS появились раньше, чем SQL, и намного раньше, чем появился стандарт SQL. Или Adabas - это, по-вашему, не СУБД? Поинтересуйтесь, какого масштаба прикладные системы на нем построены.

    Если бы… посмотрел бы я… - это слабая аргументация. Ваши аргументы в сослагательном наклонении работают против вас - по факту, любители Java технологий прекрасно себя чувствуют.

    В любом случае, эти аргументы имеют мало отношение к теме заметки, и давайте не затевать религиозных войн в защиту Oracle. Я просто ратую за то, чтобы для BPMS, как и для DBMS, существовал спектр решений для пользовательского интерфейса - и от вендора, и от третьих сторон. Вы, как я понимаю, сторонник концепции “все из одних рук” (single vendor)?

    А.Б.

  3. Александр 09/01/10 06:10 PM

    “Ваш выстрел просвистел мимо цели” :-) Не страшно! Я сторонник не причинения вреда живому :-)
    “Ваши аргументы в сослагательном наклонении работают против вас ” - я не приводил аргументы, это примеры. Вы говорите “Преимущество, которое получал клиент: с таким инструментарием он мог безболезненно сменить СУБД.” А я считаю, что это не правильно. Это значит купить за 100 долларов вещь, а использовать только на 10 долларов, ожидая, что в будущем ее придеться поменять. Про это чуть позже.
    Мне интересна тема BPMS, но, к сожалению, они замерзли несколько лет назад, заняли скромную нишу на рынке и слабо развиваются.
    “DBMS появились раньше, чем SQL” - да ради бога! Я же не отрицаю существование BPMS, хотя языка (аналогичного SQL) все равно нет.
    Навсякий случай я уточнил на http://ru.wikipedia.org/wiki/BPMN и вижу ничего не изменилось.
    “Нотация моделирования бизнес процессов (Business Process Modeling Notation, BPMN) — графическая нотация для моделирования бизнес процессов.”
    Видел я еще XML диалекте этой нотации, но меня надо сильно прижать, чтобы я согласился писать на этом “языке”. Туже гадость могу сказать про BPEL - язык еще тот…. (Пришлось использовать на проектах), если бы не мода, даже не притронулся…
    Вообщем, как я и говорил речь идет о “красочных технологиях” и XML подобных языках.
    Вы пробывали писать SQL запросы не руками, а мастером (с помощью визуального, красочного интерфейса)? Если Вы занимались программирование в больших масштабах, то поймете о чем я. Такой же пример могу привести с точки зрения администрирования систем (командная строка или визуальные мастера).
    Я не сторонник одновендороного подхода. Но считаю, что из инструмента надо вытягивать все возможное (бабки заплачены, имею право), а не ставить себе ограничение в виде “не использовать расширения, которые не соответствуют открытым стандартам, ибо…”. Я делал проекты Oracle+ Delphi, Oracle + Forms, Oracle + Flex, Oracle + J2EE (интерфейс JSF). И каждое решение было, на мой взгляд, выбранно правильно. Кстати, нисколько не защищаю Oracle, просто я очень хорошо знаю базу данных этой фирмы, но некоторые проекты лучше делать на других БД.
    А пытаюсь я донести мысль, что нужен язык для BPMS, а его нет ;-(
    Все это имеет прямое отношение к Заметке, ибо Вы приводите некую типизацию-историзацию развития пользовательских интерфейсов к БД и пытаетесь провести аналогию с развитием BPMS. Наверное развитием доступа к BPMS? Так вот будет язык… Будет и BPMS, будет и доступ к нему. А пока все на уровне DBF файлов, хотя и с красивым интерфейсом.

  4. Anatoly Belychook 09/01/10 06:39 PM

    Александр

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

    Я тут не знаю как управиться со всеми потенциальными заказчиками на проекты BPMS; на тренинг по BPMN, который я анонсировал пока что в очень узком кругу, народ ломится, а Вы говорите - все замерзло ;)

  5. Александр 09/02/10 09:12 AM

    Анатолий
    Вам так же спасибо за приятную дискусию и интересный блог.

Comments are closed

Copyright © 2008-2024 Anatoly Belychook. Thanks to Wordpress and Yahoo.  Content  Comments