<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Комментарии к записи: Процесс встречается с данными</title>
	<atom:link href="http://mainthing.ru/item/558/feed/" rel="self" type="application/rss+xml" />
	<link>https://mainthing.ru/ru/item/558/</link>
	<description>BPM-блог Анатолия Белайчука</description>
	<pubDate>Tue, 21 Apr 2026 08:39:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>Автор: Anatoly Belychook</title>
		<link>https://mainthing.ru/ru/item/558/#comment-1627</link>
		<dc:creator>Anatoly Belychook</dc:creator>
		<pubDate>Mon, 04 Feb 2013 08:44:01 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=558#comment-1627</guid>
		<description>If I only new what it is...</description>
		<content:encoded><![CDATA[<p>If I only new what it is&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Xipe</title>
		<link>https://mainthing.ru/ru/item/558/#comment-1626</link>
		<dc:creator>Xipe</dc:creator>
		<pubDate>Mon, 04 Feb 2013 05:01:13 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=558#comment-1626</guid>
		<description>Would you comment on the approach taken by Drools jBPM5, please?</description>
		<content:encoded><![CDATA[<p>Would you comment on the approach taken by Drools jBPM5, please?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Anatoly Belychook</title>
		<link>https://mainthing.ru/ru/item/558/#comment-1422</link>
		<dc:creator>Anatoly Belychook</dc:creator>
		<pubDate>Wed, 15 Aug 2012 06:59:37 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=558#comment-1422</guid>
		<description>Jonas

Well said!</description>
		<content:encoded><![CDATA[<p>Jonas</p>
<p>Well said!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Jonas Ekström</title>
		<link>https://mainthing.ru/ru/item/558/#comment-1421</link>
		<dc:creator>Jonas Ekström</dc:creator>
		<pubDate>Tue, 14 Aug 2012 20:20:28 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=558#comment-1421</guid>
		<description>"XML and XML-based services are great: abstract, platform-independent. But even the greatest things have a domain where they are effective; we can’t afford storing all enterprise data in XML or abandoning integration at data level."

Anatoly, that's what I meant by having an abstract relationship to storage. XML is just a way of package data, SOAP is how we wrap it in, and a web service is how we deliver it between parts in a SOA eco-system. Data needs a durable storage, by all means, and I believe we all can agree that a business process implementation isn't a good choice - even though a BPMS is secure in terms of reliability. That said, I think that some data (such as an Order instance) should be accessed from a predictable business process (Order Process) since it's valuable to have centralized control over data from a process perspective. That doesn't necessarily mean a BPMS should be the place of storage for the Order data, but more of an event handler. The Order data shouldn't be accessed without knowing why it's being accessed. This approach is possible for most business processes, but for the rest I guess we have things like Adoptive Case Management, plain collaboration, and such.

Cheers!</description>
		<content:encoded><![CDATA[<p>&#8220;XML and XML-based services are great: abstract, platform-independent. But even the greatest things have a domain where they are effective; we can’t afford storing all enterprise data in XML or abandoning integration at data level.&#8221;</p>
<p>Anatoly, that&#8217;s what I meant by having an abstract relationship to storage. XML is just a way of package data, SOAP is how we wrap it in, and a web service is how we deliver it between parts in a SOA eco-system. Data needs a durable storage, by all means, and I believe we all can agree that a business process implementation isn&#8217;t a good choice - even though a BPMS is secure in terms of reliability. That said, I think that some data (such as an Order instance) should be accessed from a predictable business process (Order Process) since it&#8217;s valuable to have centralized control over data from a process perspective. That doesn&#8217;t necessarily mean a BPMS should be the place of storage for the Order data, but more of an event handler. The Order data shouldn&#8217;t be accessed without knowing why it&#8217;s being accessed. This approach is possible for most business processes, but for the rest I guess we have things like Adoptive Case Management, plain collaboration, and such.</p>
<p>Cheers!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Anatoly Belychook</title>
		<link>https://mainthing.ru/ru/item/558/#comment-1420</link>
		<dc:creator>Anatoly Belychook</dc:creator>
		<pubDate>Mon, 13 Aug 2012 09:27:38 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=558#comment-1420</guid>
		<description>Thank you for the input, Jonas.

That is the key point: "I as a service developer", "I as a BPEL developer", "I as a CRM developer" is one type of thinking and "I as an enterprise architect" or "I as a database administrator" is another.

Many application developers tend to believe that implementing a client part - the ability to call external webservices or to access external relational data means being "open". In too many cases the services API is incomplete and/or data access is not available. They can "call" but hardly can be "called" - this is the way to the "information zoo".

XML and XML-based services are great: abstract, platform-independent. But even the greatest things have a domain where they are effective; we can't afford storing all enterprise data in XML or abandoning integration at data level.</description>
		<content:encoded><![CDATA[<p>Thank you for the input, Jonas.</p>
<p>That is the key point: &#8220;I as a service developer&#8221;, &#8220;I as a BPEL developer&#8221;, &#8220;I as a CRM developer&#8221; is one type of thinking and &#8220;I as an enterprise architect&#8221; or &#8220;I as a database administrator&#8221; is another.</p>
<p>Many application developers tend to believe that implementing a client part - the ability to call external webservices or to access external relational data means being &#8220;open&#8221;. In too many cases the services API is incomplete and/or data access is not available. They can &#8220;call&#8221; but hardly can be &#8220;called&#8221; - this is the way to the &#8220;information zoo&#8221;.</p>
<p>XML and XML-based services are great: abstract, platform-independent. But even the greatest things have a domain where they are effective; we can&#8217;t afford storing all enterprise data in XML or abandoning integration at data level.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Jonas Ekström</title>
		<link>https://mainthing.ru/ru/item/558/#comment-1419</link>
		<dc:creator>Jonas Ekström</dc:creator>
		<pubDate>Sun, 12 Aug 2012 12:12:22 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=558#comment-1419</guid>
		<description>Anatoly, I'm a BPEL developer and XML is all I know of when it comes to data representation and the challenges with storage is completely abstract to me. All I care of is the consistency of the data I request and the quality of the services I call. Manipulating XML is sometimes awkward, but most tools support schema mappings and query building. 

My concerns regarding process data is most related to how service developers tends to think in terms of object-orientation instead of process-orientation. The message types gets over designed and focus is set on reuse instead of having that particular service request supported. This is also common for process developers with a OO background.

Thanks for an interesting topic.</description>
		<content:encoded><![CDATA[<p>Anatoly, I&#8217;m a BPEL developer and XML is all I know of when it comes to data representation and the challenges with storage is completely abstract to me. All I care of is the consistency of the data I request and the quality of the services I call. Manipulating XML is sometimes awkward, but most tools support schema mappings and query building. </p>
<p>My concerns regarding process data is most related to how service developers tends to think in terms of object-orientation instead of process-orientation. The message types gets over designed and focus is set on reuse instead of having that particular service request supported. This is also common for process developers with a OO background.</p>
<p>Thanks for an interesting topic.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Anatoly Belychook</title>
		<link>https://mainthing.ru/ru/item/558/#comment-1384</link>
		<dc:creator>Anatoly Belychook</dc:creator>
		<pubDate>Wed, 18 Jul 2012 10:43:50 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=558#comment-1384</guid>
		<description>&gt;&gt; 1. ...данные, которые могут понадобиться после завершения процесса, должны хранится в внешней структуре данных (например SQL СУБД, здесь никаких запретов нет). 

Тут мы серьезно расходимся во взглядах.

Как это предложение реализовать практически - после завершения процесса сбрасывать данные в реляционную БД? А схему этой БД делать так, чтобы она была эквивалентна объектной? А до того, как процесс завершится, в эту базу лезть нельзя? И зачем тогда весь этот зоопарк: двойная разработка, дублирование данных... Вот я и прихожу к выводу: сразу нормализовать в реляционную БД и не мучиться.

&gt;&gt; Во-вторых, промежуточные, временные данные, которые хранятся в “черном ящике” так же могут быть доступны из вне. Про современные ИТ-системы с огромным кол-вом адаптеров, я умолчу. Скажу только, что для универсальной взаимосвязи приложений есть XML, есть Web Service, наконец есть ESB, если у какой-то ИТ-системы есть проблемы подключения с выходом в большой свет….

Хорошо. Представим себе корпоративную систему OLAP/BI/MDM. 100% у нее не будет проблем с извлечением процессных данных из реляционной БД. Несколько кликов мыши - и готово, данные всосали. А вебсервисы (любые) - это изучение API и программирование с заранее неизвестным результатом.

&gt;&gt; И, кстати, учитывая SOA, хранение данных в XML формате наиболее обосновано, чем SQL. 

Стоп! А что, хранение данных в реляционной БД как-то отменяет представление ее в виде вебсервиса? Да не боже мой. Хоть WS-*, хоть REST-ом отдадим, без проблем.

Из реляционной БД сделать сервисы - элементарно. Представить вебсервисы или объектный "черный ящик" в виде реляционной модели - проблематично.

&gt;&gt; Действительно, если надо быстро и на коленке, то прочитать SQL из внешней ИТ-системы это самый простой и удобный вариант. Но где гарантия, что вас туда пустят? Да и тем более, любая БД (как например та, которая стоит 1C) имее закрытый формат, где все таблицы надо расшифровывать…

"та, которая стоит в 1С" - это совсем не "любая". Это извращение, если называть вещи своими именами. Именно за него 1С так страстно "любят" все, кому приходится с ней интегрироваться. Более корректно выражаясь, это еще одна вариация на тему "СУБД поверх СУБД". "Прямое использование реляционной СУБД", о которой я говорю в статье, этого не допускает.

&gt;&gt; 4. ... Просто в какой-то момент сохраните нужный атрибут в внешнюю структуру данных. В чем проблема? 

Проблема в дублировании разработки и хранения.

&gt;&gt; По сути в Bizagi происходит тоже самое, насколько я понимаю. 

Нет, у Bizagi нет другого хранения кроме реляционных таблиц.

&gt;&gt; 5. Вы показывали, как вы обращаетесь к данным, типа var1.client.avto.number…Это ведь сугубо объектный подход.

Эх, молодежь ;) Вообще-то это называется навигацией. Которая появилась она в СУБД намного раньше, чем появилась реляционная алгебра и реляционные СУБД, не говоря уже об ООП.


&gt;&gt; BPMN разработан на основе объектно-ориентированных технологий

Впервые слышу.

&gt;&gt; Правильно ли я понимаю значение диаграммы классов в BPMN 2.0? 

Диаграммы классов в стандарте описывают не атрибуты процесса, о которых мы сейчас говорим, а атрибуты модели процесса.</description>
		<content:encoded><![CDATA[<p>>> 1. &#8230;данные, которые могут понадобиться после завершения процесса, должны хранится в внешней структуре данных (например SQL СУБД, здесь никаких запретов нет). </p>
<p>Тут мы серьезно расходимся во взглядах.</p>
<p>Как это предложение реализовать практически - после завершения процесса сбрасывать данные в реляционную БД? А схему этой БД делать так, чтобы она была эквивалентна объектной? А до того, как процесс завершится, в эту базу лезть нельзя? И зачем тогда весь этот зоопарк: двойная разработка, дублирование данных&#8230; Вот я и прихожу к выводу: сразу нормализовать в реляционную БД и не мучиться.</p>
<p>>> Во-вторых, промежуточные, временные данные, которые хранятся в “черном ящике” так же могут быть доступны из вне. Про современные ИТ-системы с огромным кол-вом адаптеров, я умолчу. Скажу только, что для универсальной взаимосвязи приложений есть XML, есть Web Service, наконец есть ESB, если у какой-то ИТ-системы есть проблемы подключения с выходом в большой свет….</p>
<p>Хорошо. Представим себе корпоративную систему OLAP/BI/MDM. 100% у нее не будет проблем с извлечением процессных данных из реляционной БД. Несколько кликов мыши - и готово, данные всосали. А вебсервисы (любые) - это изучение API и программирование с заранее неизвестным результатом.</p>
<p>>> И, кстати, учитывая SOA, хранение данных в XML формате наиболее обосновано, чем SQL. </p>
<p>Стоп! А что, хранение данных в реляционной БД как-то отменяет представление ее в виде вебсервиса? Да не боже мой. Хоть WS-*, хоть REST-ом отдадим, без проблем.</p>
<p>Из реляционной БД сделать сервисы - элементарно. Представить вебсервисы или объектный &#8220;черный ящик&#8221; в виде реляционной модели - проблематично.</p>
<p>>> Действительно, если надо быстро и на коленке, то прочитать SQL из внешней ИТ-системы это самый простой и удобный вариант. Но где гарантия, что вас туда пустят? Да и тем более, любая БД (как например та, которая стоит 1C) имее закрытый формат, где все таблицы надо расшифровывать…</p>
<p>&#8220;та, которая стоит в 1С&#8221; - это совсем не &#8220;любая&#8221;. Это извращение, если называть вещи своими именами. Именно за него 1С так страстно &#8220;любят&#8221; все, кому приходится с ней интегрироваться. Более корректно выражаясь, это еще одна вариация на тему &#8220;СУБД поверх СУБД&#8221;. &#8220;Прямое использование реляционной СУБД&#8221;, о которой я говорю в статье, этого не допускает.</p>
<p>>> 4. &#8230; Просто в какой-то момент сохраните нужный атрибут в внешнюю структуру данных. В чем проблема? </p>
<p>Проблема в дублировании разработки и хранения.</p>
<p>>> По сути в Bizagi происходит тоже самое, насколько я понимаю. </p>
<p>Нет, у Bizagi нет другого хранения кроме реляционных таблиц.</p>
<p>>> 5. Вы показывали, как вы обращаетесь к данным, типа var1.client.avto.number…Это ведь сугубо объектный подход.</p>
<p>Эх, молодежь <img src='https://mainthing.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> Вообще-то это называется навигацией. Которая появилась она в СУБД намного раньше, чем появилась реляционная алгебра и реляционные СУБД, не говоря уже об ООП.</p>
<p>>> BPMN разработан на основе объектно-ориентированных технологий</p>
<p>Впервые слышу.</p>
<p>>> Правильно ли я понимаю значение диаграммы классов в BPMN 2.0? </p>
<p>Диаграммы классов в стандарте описывают не атрибуты процесса, о которых мы сейчас говорим, а атрибуты модели процесса.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Кирилл Куршев</title>
		<link>https://mainthing.ru/ru/item/558/#comment-1383</link>
		<dc:creator>Кирилл Куршев</dc:creator>
		<pubDate>Wed, 18 Jul 2012 10:09:39 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=558#comment-1383</guid>
		<description>Я прошу прощения за свою активность в обсуждении данного вопроса, но для меня эта тема крайне важна. Анатолий, хотел Вам задать вопрос, как к эксперту в области BPMN. Изучая спецификацию (правда с точки зрения организационной перспективы), я обратил внимание, что в BPMN 2.0 выделены отдельные элементы "Data Object", "Data Store" и др. Для каждого из этих элементов есть отображение на уровне диаграммы классов, с помощью которых описывается семантика их выполнения. Так вот, насколько я понимаю, что следуя спецификации BPMN, каждая модель процесса, описанная в BPMN 2.0 может быть интегрирована с помощью объектов "Data Object" с соответствующей моделью данных. Учитывая, что BPMN разработан на основе объектно-ориентированных технологий, то и модель данных так же должна быть выполнена соответственно. Вопрос. Правильно ли я понимаю значение диаграммы классов в BPMN 2.0? Не получается ли, что в Bizagi действительно можно выделить объектную прослойку между схемой процесса и SQL-таблицами? Заранее спасибо. Прошу прощения, если где-то написал глупость...</description>
		<content:encoded><![CDATA[<p>Я прошу прощения за свою активность в обсуждении данного вопроса, но для меня эта тема крайне важна. Анатолий, хотел Вам задать вопрос, как к эксперту в области BPMN. Изучая спецификацию (правда с точки зрения организационной перспективы), я обратил внимание, что в BPMN 2.0 выделены отдельные элементы &#8220;Data Object&#8221;, &#8220;Data Store&#8221; и др. Для каждого из этих элементов есть отображение на уровне диаграммы классов, с помощью которых описывается семантика их выполнения. Так вот, насколько я понимаю, что следуя спецификации BPMN, каждая модель процесса, описанная в BPMN 2.0 может быть интегрирована с помощью объектов &#8220;Data Object&#8221; с соответствующей моделью данных. Учитывая, что BPMN разработан на основе объектно-ориентированных технологий, то и модель данных так же должна быть выполнена соответственно. Вопрос. Правильно ли я понимаю значение диаграммы классов в BPMN 2.0? Не получается ли, что в Bizagi действительно можно выделить объектную прослойку между схемой процесса и SQL-таблицами? Заранее спасибо. Прошу прощения, если где-то написал глупость&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Кирилл Куршев</title>
		<link>https://mainthing.ru/ru/item/558/#comment-1382</link>
		<dc:creator>Кирилл Куршев</dc:creator>
		<pubDate>Wed, 18 Jul 2012 09:56:37 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=558#comment-1382</guid>
		<description>Анатолий, спасибо за ответ. К сожалению, видимо я не очень хорошо выразился, в связи с чем произошла путаница. Отвечу на каждый Ваш комментарий.
1. "С точки зрения BPMS это проблемой не является, так как мы сидим внутри этого черного ящика. С точки же зрения корпоративной архитектуры это проблема, и большая." Почему? Во-первых, в своем комментарии я говорил, что данные, которые могут понадобиться после завершения процесса, должны хранится в внешней структуре данных (например SQL СУБД, здесь никаких запретов нет). Во-вторых, промежуточные, временные данные, которые хранятся в "черном ящике" так же могут быть доступны из вне. Про современные ИТ-системы с огромным кол-вом адаптеров, я умолчу. Скажу только, что для универсальной взаимосвязи приложений есть XML, есть Web Service, наконец есть ESB, если у какой-то ИТ-системы есть проблемы подключения с выходом в большой свет....И, кстати, учитывая SOA, хранение данных в XML формате наиболее обосновано, чем SQL. Действительно, если надо быстро и на коленке, то прочитать SQL из внешней ИТ-системы это самый простой и удобный вариант. Но где гарантия, что вас туда пустят? Да и тем более, любая БД (как например та, которая стоит 1C) имее закрытый формат, где все таблицы надо расшифровывать...
Вывод: интеграция двух и более систем через SQl не является на мой взгляд верным подходом, с точки зрения корпоративной IT-архитектуры...  

2. Тут Анатолий, я полностью с Вами согласен. Сожалею, что Вы меня не верно поняли.  В своем комментарии у говорил, что "Я считаю, что тут эффективнее всего выглядят объектно-ориентированные технологии. Но пользоваться ими нужно аккуратно". Другими словами, заставь дурака молится, он себе лоб расшибет. Это одинаково справедливо как для SQL, так и для ОТ. Кстати, в защиту ОТ нашел несколько хороших слов (http://intersystems.ru/cache/technology/techguide/cache_tech-guide_01.html): Объектная технология - это опыт отражения того, как в действительности человек думает об информации и использует ее. Преимущества ОТ:
   * Объектная технология прекрасно сочетается с графическими пользовательскими интерфейсами (GUI). (!!!!) -&#62; пример UML CD
   * Объекты упрощают взаимодействие с различными технологиями и приложениями.
   * Принцип "черного ящика" (или инкапсуляция) позволяет программистам совершенствовать внутреннее устройство объекта, не нарушая работу других частей приложения.
   * Структура данных объекта более емкая, за счет чего можно естественным образом описывать данные реального мира.
   * Версии классов, настроенные под определенного клиента, могут легко заменить стандартные версии. Это облегчает индивидуальную настройку приложения и гарантирует ее сохранение в следующих версиях. 

3. Анатолий, мне кажется этот пункт -  повтор 1 Вашего комментария. Соответственно я ответил на него в своем 1 тезисе. Еще раз повторю - интегрировать на уровне SQL мне кажется не верным подходом. Кину ложку дегтя. Как быть при реализации supply chain management (SCM), реализации B2B? Кстати, BPMN, насколько я понимаю это отлично поддерживает. А вот как это реализовать на уровне данных??Неужели через единую SQL БД???

4. Это самое интересное. Действительно, требования к СУБП постоянно меняются. Меняется и состав атрибутов, которые нужно хранить после завершения выполнения процесса. Но данный факт никак не противоречит использованию ОТ для моделирования данных в СУБП. Просто в какой-то момент сохраните нужный атрибут в внешнюю структуру данных. В чем проблема? По сути в Bizagi происходит тоже самое, насколько я понимаю. Другой вопрос, куда сохранить данный атрибут. В отдельную СУБД, созданную для того, чтобы закрыть провал, который появился после того, как была реализована СУБП и выяснилось, что существующие функциональные IT-системы не хранят в себе половину важной информации??? Или все же в внешнюю ИТ-систему?

5.  Очень рад за Bizagi...надеюсь, что у остальных BPMS это так же хорошо реализовано. Кстати, Анатолий, немного в сторону вопрос. Я помню, что Вы показывали, как вы обращаетесь к данным, типа var1.client.avto.number...Это ведь сугубо объектный подход. Не понимаю, как это может быть реализовано на табличном уровне? Получается, что все параметры в запросы подставляются автоматически? Не кажется ли Вам, что это попытка Bizagi все же реализовать элементы ОТ?

6. Понятно. Спасибо. Посмотрел. Хотел добавить, что в Oracle BPM это же реализуется так:
var1 as Object = Object() //перменная процесса, которая ссылается на произвольный объект в модели представления данных в BPMS
copy = clone(this) // создаем клон нашего процесса (с всем необходимыми переменными)
copy.var1 = .... //совершаем действия уже над отклонированной переменной var1
....//при слиянии потоков
if var1  copy.var1 then ....//если копия переменной в каком-то конкретном потоке была изменена по отношению к главной переменной процесса var1, то производим необходимые действия.</description>
		<content:encoded><![CDATA[<p>Анатолий, спасибо за ответ. К сожалению, видимо я не очень хорошо выразился, в связи с чем произошла путаница. Отвечу на каждый Ваш комментарий.<br />
1. &#8220;С точки зрения BPMS это проблемой не является, так как мы сидим внутри этого черного ящика. С точки же зрения корпоративной архитектуры это проблема, и большая.&#8221; Почему? Во-первых, в своем комментарии я говорил, что данные, которые могут понадобиться после завершения процесса, должны хранится в внешней структуре данных (например SQL СУБД, здесь никаких запретов нет). Во-вторых, промежуточные, временные данные, которые хранятся в &#8220;черном ящике&#8221; так же могут быть доступны из вне. Про современные ИТ-системы с огромным кол-вом адаптеров, я умолчу. Скажу только, что для универсальной взаимосвязи приложений есть XML, есть Web Service, наконец есть ESB, если у какой-то ИТ-системы есть проблемы подключения с выходом в большой свет&#8230;.И, кстати, учитывая SOA, хранение данных в XML формате наиболее обосновано, чем SQL. Действительно, если надо быстро и на коленке, то прочитать SQL из внешней ИТ-системы это самый простой и удобный вариант. Но где гарантия, что вас туда пустят? Да и тем более, любая БД (как например та, которая стоит 1C) имее закрытый формат, где все таблицы надо расшифровывать&#8230;<br />
Вывод: интеграция двух и более систем через SQl не является на мой взгляд верным подходом, с точки зрения корпоративной IT-архитектуры&#8230;  </p>
<p>2. Тут Анатолий, я полностью с Вами согласен. Сожалею, что Вы меня не верно поняли.  В своем комментарии у говорил, что &#8220;Я считаю, что тут эффективнее всего выглядят объектно-ориентированные технологии. Но пользоваться ими нужно аккуратно&#8221;. Другими словами, заставь дурака молится, он себе лоб расшибет. Это одинаково справедливо как для SQL, так и для ОТ. Кстати, в защиту ОТ нашел несколько хороших слов (http://intersystems.ru/cache/technology/techguide/cache_tech-guide_01.html): Объектная технология - это опыт отражения того, как в действительности человек думает об информации и использует ее. Преимущества ОТ:<br />
   * Объектная технология прекрасно сочетается с графическими пользовательскими интерфейсами (GUI). (!!!!) -&gt; пример UML CD<br />
   * Объекты упрощают взаимодействие с различными технологиями и приложениями.<br />
   * Принцип &#8220;черного ящика&#8221; (или инкапсуляция) позволяет программистам совершенствовать внутреннее устройство объекта, не нарушая работу других частей приложения.<br />
   * Структура данных объекта более емкая, за счет чего можно естественным образом описывать данные реального мира.<br />
   * Версии классов, настроенные под определенного клиента, могут легко заменить стандартные версии. Это облегчает индивидуальную настройку приложения и гарантирует ее сохранение в следующих версиях. </p>
<p>3. Анатолий, мне кажется этот пункт -  повтор 1 Вашего комментария. Соответственно я ответил на него в своем 1 тезисе. Еще раз повторю - интегрировать на уровне SQL мне кажется не верным подходом. Кину ложку дегтя. Как быть при реализации supply chain management (SCM), реализации B2B? Кстати, BPMN, насколько я понимаю это отлично поддерживает. А вот как это реализовать на уровне данных??Неужели через единую SQL БД???</p>
<p>4. Это самое интересное. Действительно, требования к СУБП постоянно меняются. Меняется и состав атрибутов, которые нужно хранить после завершения выполнения процесса. Но данный факт никак не противоречит использованию ОТ для моделирования данных в СУБП. Просто в какой-то момент сохраните нужный атрибут в внешнюю структуру данных. В чем проблема? По сути в Bizagi происходит тоже самое, насколько я понимаю. Другой вопрос, куда сохранить данный атрибут. В отдельную СУБД, созданную для того, чтобы закрыть провал, который появился после того, как была реализована СУБП и выяснилось, что существующие функциональные IT-системы не хранят в себе половину важной информации??? Или все же в внешнюю ИТ-систему?</p>
<p>5.  Очень рад за Bizagi&#8230;надеюсь, что у остальных BPMS это так же хорошо реализовано. Кстати, Анатолий, немного в сторону вопрос. Я помню, что Вы показывали, как вы обращаетесь к данным, типа var1.client.avto.number&#8230;Это ведь сугубо объектный подход. Не понимаю, как это может быть реализовано на табличном уровне? Получается, что все параметры в запросы подставляются автоматически? Не кажется ли Вам, что это попытка Bizagi все же реализовать элементы ОТ?</p>
<p>6. Понятно. Спасибо. Посмотрел. Хотел добавить, что в Oracle BPM это же реализуется так:<br />
var1 as Object = Object() //перменная процесса, которая ссылается на произвольный объект в модели представления данных в BPMS<br />
copy = clone(this) // создаем клон нашего процесса (с всем необходимыми переменными)<br />
copy.var1 = &#8230;. //совершаем действия уже над отклонированной переменной var1<br />
&#8230;.//при слиянии потоков<br />
if var1  copy.var1 then &#8230;.//если копия переменной в каком-то конкретном потоке была изменена по отношению к главной переменной процесса var1, то производим необходимые действия.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Anatoly Belychook</title>
		<link>https://mainthing.ru/ru/item/558/#comment-1381</link>
		<dc:creator>Anatoly Belychook</dc:creator>
		<pubDate>Mon, 16 Jul 2012 13:08:30 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=558#comment-1381</guid>
		<description>Кирилл

Спасибо за содержательный и развернутый ответ. Никакой жесткости в аргументации не увидел.

Некоторые комментарии к комментарию:

1. Объектная модель - это замечательно, по сравнению с ней реляционная модель - это такой "наименьший общий делитель". Другими словами, полное убожество. Но у реляционной модели есть одно достоинство, которое перевешивает все недостатки - открытость. Для объектной модели нет стандартных механизмов доступа - получаем "черный ящик". С точки зрения BPMS это проблемой не является, так как мы сидим внутри этого черного ящика. С точки же зрения корпоративной архитектуры это проблема, и большая.

2. Реляционную модель проектировать сложно, для этого нужен профессионал, а объектную - легко, это может делать кто попало (вольное цитирование). Извини, но это караул. Легкость проектирования - это ловушка, позволяющая одному ламеру наворотить такого, что потом десять профессионалов не разгребут. Проектирование любой модели данных - хоть объектной, хоть реляционной - требует профессионализма. В обязательном порядке. Иначе катастрофа гарантирована. Это даже ответственнее, чем проектирование схемы процесса.

3. Про единую базу данных организации. Это недоразумение - я за нее не агитировал. Мой выбор - честная реляционная БД в противовес "черному ящику" любого сорта, будь то объектному, будь то какому другому. Но наличие нескольких баз внутри любой организации - это еще один аргумент в мою пользу: современные СУБД научились обращаться к "чужим" базам данных, как к своим. Можно в MS-SQL сказать: мол, есть у меня таблица, только физически она находится в Oracle, там-то и там-то. И после этого премилым образом строить join-ы. Bizagi поддерживает два механизма: реплиацию и виртуализацию. Аналитик работает как бы с локальной таблицей, а на уровне "физики" она смапирована на внешнюю БД. По-моему очень изящное решение. А вот со своеобычной объектной базой (а они все своеобычны, так как стандарта наподобие SQL там нет) этот номер не пройдет.

4. По поводу комбинированного хранения. Да, на первый взгляд, какие могут быть возражения против того, чтобы взять лучшее из двух миров? Но дело в том, что ни один атрибут "не даст честного слова", что он не превратится из процессного короткоживущего в персистентный. Поэтому - нафиг!

5. Версионность схему данных. Если я и умолчал, то не специально. Bizagi встроил в свой инструмент полноценный моделер БД наподобие PowerDesigner. Это очень удачное решение, так как система отслеживает все зависимости между разными частями проекта - процессом, моделью данных и пользовательскими интерфейсами. В том числе он совершенно "прозрачно" переносит изменения схемы данных из разработки в эксплуатацию.

6. Распараллеливание процесса на несколько потоков. Насколько я понимаю, имеется в виду цикл по объектам? Если есть цикл по объектам, значит должно быть какое-то конкретное множество объектов, по которым мы в цикле будем запускать подпроцесс. У нас есть запись в таблице, соответствующая текущему экземпляру процесса верхнего уровня, и некая другая таблица, связанная с ней соотношением М:1. Опционально фильтруем какие именно записи, ссылающиеся на текущую, надо обработать, и запускаем по ним подпроцесс. Во втором мастер-классе по Bizagi я это демонстрировал, в числе прочего: http://www.youtube.com/watch?v=ikV3VUAqbK4</description>
		<content:encoded><![CDATA[<p>Кирилл</p>
<p>Спасибо за содержательный и развернутый ответ. Никакой жесткости в аргументации не увидел.</p>
<p>Некоторые комментарии к комментарию:</p>
<p>1. Объектная модель - это замечательно, по сравнению с ней реляционная модель - это такой &#8220;наименьший общий делитель&#8221;. Другими словами, полное убожество. Но у реляционной модели есть одно достоинство, которое перевешивает все недостатки - открытость. Для объектной модели нет стандартных механизмов доступа - получаем &#8220;черный ящик&#8221;. С точки зрения BPMS это проблемой не является, так как мы сидим внутри этого черного ящика. С точки же зрения корпоративной архитектуры это проблема, и большая.</p>
<p>2. Реляционную модель проектировать сложно, для этого нужен профессионал, а объектную - легко, это может делать кто попало (вольное цитирование). Извини, но это караул. Легкость проектирования - это ловушка, позволяющая одному ламеру наворотить такого, что потом десять профессионалов не разгребут. Проектирование любой модели данных - хоть объектной, хоть реляционной - требует профессионализма. В обязательном порядке. Иначе катастрофа гарантирована. Это даже ответственнее, чем проектирование схемы процесса.</p>
<p>3. Про единую базу данных организации. Это недоразумение - я за нее не агитировал. Мой выбор - честная реляционная БД в противовес &#8220;черному ящику&#8221; любого сорта, будь то объектному, будь то какому другому. Но наличие нескольких баз внутри любой организации - это еще один аргумент в мою пользу: современные СУБД научились обращаться к &#8220;чужим&#8221; базам данных, как к своим. Можно в MS-SQL сказать: мол, есть у меня таблица, только физически она находится в Oracle, там-то и там-то. И после этого премилым образом строить join-ы. Bizagi поддерживает два механизма: реплиацию и виртуализацию. Аналитик работает как бы с локальной таблицей, а на уровне &#8220;физики&#8221; она смапирована на внешнюю БД. По-моему очень изящное решение. А вот со своеобычной объектной базой (а они все своеобычны, так как стандарта наподобие SQL там нет) этот номер не пройдет.</p>
<p>4. По поводу комбинированного хранения. Да, на первый взгляд, какие могут быть возражения против того, чтобы взять лучшее из двух миров? Но дело в том, что ни один атрибут &#8220;не даст честного слова&#8221;, что он не превратится из процессного короткоживущего в персистентный. Поэтому - нафиг!</p>
<p>5. Версионность схему данных. Если я и умолчал, то не специально. Bizagi встроил в свой инструмент полноценный моделер БД наподобие PowerDesigner. Это очень удачное решение, так как система отслеживает все зависимости между разными частями проекта - процессом, моделью данных и пользовательскими интерфейсами. В том числе он совершенно &#8220;прозрачно&#8221; переносит изменения схемы данных из разработки в эксплуатацию.</p>
<p>6. Распараллеливание процесса на несколько потоков. Насколько я понимаю, имеется в виду цикл по объектам? Если есть цикл по объектам, значит должно быть какое-то конкретное множество объектов, по которым мы в цикле будем запускать подпроцесс. У нас есть запись в таблице, соответствующая текущему экземпляру процесса верхнего уровня, и некая другая таблица, связанная с ней соотношением М:1. Опционально фильтруем какие именно записи, ссылающиеся на текущую, надо обработать, и запускаем по ним подпроцесс. Во втором мастер-классе по Bizagi я это демонстрировал, в числе прочего: <a href="http://www.youtube.com/watch?v=ikV3VUAqbK4" rel="nofollow">http://www.youtube.com/watch?v=ikV3VUAqbK4</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
