Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / управление сложными сущностями / 15 сообщений из 15, страница 1 из 1
24.05.2018, 12:23
    #39649322
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
Есть некий объект на которым нужно производить множество операций. Одни короткие в пределах 15с другие могут занять целый час.
Причем есть между операциями зависимости когда какую можно запускать после какой, есть зависмости можно запускать только если одна из какого то набора операций в данный момент не производится.

Такая вот куча мала. Дебаг еще то удовольствие все в голове держать.

Как такие вещи решаются, ну и куда копать и чего читать посоветуйте.
Как вообще называются проблемы такого типа.
...
Рейтинг: 0 / 0
24.05.2018, 12:26
    #39649323
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
llemingЕсть некий объект на которым нужно производить множество операций. Одни короткие в пределах 15с другие могут занять целый час.
Причем есть между операциями зависимости когда какую можно запускать после какой, есть зависмости можно запускать только если одна из какого то набора операций в данный момент не производится.

Такая вот куча мала. Дебаг еще то удовольствие все в голове держать.

Как такие вещи решаются, ну и куда копать и чего читать посоветуйте.
Как вообще называются проблемы такого типа.
А в чем конкретно проблема?

lleming...чего читать посоветуйте...
я бы почитал? что нибудь со словами "теория конечных автоматов".
...
Рейтинг: 0 / 0
24.05.2018, 13:02
    #39649367
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
[quot Leonid Kudryavtsev
А в чем конкретно проблема?
[/quot]

пока все это на уровне if else типа если
по таким операциях статус done, а других статус wait то можно иначе reject.
Причем объект не одного типа а разного и с разными зависимостями.

как такими зависимостями управлять? Зависимости не статические еще и меняются и уточняются регулярно.
Как то эти зависимости описать чтобы можно было хоть как то управлять ими.
...
Рейтинг: 0 / 0
24.05.2018, 13:14
    #39649377
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
lleming...
Как то эти зависимости описать чтобы можно было хоть как то управлять ими.
пока выглядит как обычный "конечный аппарат"

состояние объекта - операция (допустимая для данного состояния) - новое состояние

Описать можно банальной табличкой. Но тут проектировать не готов. Сначала хорошо бы самому книжки/википедию перечитать )))

Ну и я так понимаю, что у Вас ряд операций может быть ассинхронными. Что тоже добавляет некоторую сложность. Т.е. нужно будет вводить еще какие-то переходные состояния,
например:
"лампочка не горит" (состояние) - нажали на выключатель (операция пользователя) - "лампочка зажигается" (состояние) - пришло подтверждение включения (системная операция) - "лампочка горит в штатном режиме" (состояние)

IMHO
...
Рейтинг: 0 / 0
24.05.2018, 13:19
    #39649381
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
Leonid Kudryavtsev"конечный аппарат"

читать "конечный автомат".
...
Рейтинг: 0 / 0
24.05.2018, 13:32
    #39649399
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
Leonid KudryavtsevНу и я так понимаю, что у Вас ряд операций может быть ассинхронными.
IMHO

имеено так
Leonid KudryavtsevЧто тоже добавляет некоторую сложность.

да
...
Рейтинг: 0 / 0
24.05.2018, 14:53
    #39649462
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
Leonid Kudryavtsevряд операций может быть ассинхронными.коренным образом всё меняется.
Всё переводится на событийную модель.
Делать половину синхронно, а половину в потоках крайне сложно.
Это уже другой автомат)
...
Рейтинг: 0 / 0
24.05.2018, 15:01
    #39649472
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
lleming,

Посмотрите
Spring Batch

Drools

Autosys

По первому - надо долго обсуждать но если взлетит - то будет хорошо интегрировано в ентерпрайз.

Второе - по сути dsl для принятия решений.

Последнее - вообще не про java но с помощью него можно строить сложные зависимости между заданиями OS.
...
Рейтинг: 0 / 0
24.05.2018, 15:30
    #39649495
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
Petro123Leonid Kudryavtsevряд операций может быть ассинхронными.коренным образом всё меняется.
Всё переводится на событийную модель.
Делать половину синхронно, а половину в потоках крайне сложно.
Это уже другой автомат)
Совершенно ничего не меняет
Конечный автомат, он конечным автоматом и останется.
IMHO & AFAIK Событийно-ориентированное программирование и конечный автомат ничем друг другу не противоречат, а замечательно друг друга дополняют.

maytonВторое - по сути dsl для принятия решений.

Тут можно ошибаться, но мне кажется, автору нафик никакое "принятие решений" не нужно
У него оно уже есть, в виде кучи if.

Описав же конечный автомат и все возможные состояния. тут же будет понятно, какие операции и почему (в каких сотояниях) резрешены или запрещены. И программисту и постановщику.

Если же подходить "принятие решений", то правила очень часто начинают становится противоречивыми и непонятным.

Note: про Drools и Rule-based ничего не знаю и против не имею, но не уверен, что в описанном lleming случае нельзя без них обойтись.

Например, порядок применения правил не задан, а от аналитика (а то и нескольких разных аналитиков) приходят два противоричивых указания:

Код: sql
1.
2.
3.
4.
5.
6.
if A=3 then
  method 1;
end if;
if A=3 and B=5 then
  method 2;
end if;



Еще терпимо. когда таких условий/проверок немного, а когда их под 20-30..... и ты не понимаешь что конкретно и какие случае по бизнесу они проверяют.... это п...ц. Тестирования и взаимные притензии могут в месяцы и даже в годы перерасти.

У коллеги сейчас такая фигня. Куча непонятных и взаимопересекающихся проверок и постоянные притензии: "в этом случае, должно было бы по другому, Вам же написали, что в этом случае см. правило N 100500" (а то, что правило 100500 противоречит правилу 100501 - заказчик не задумывается).

IMHO & AFAIK
...
Рейтинг: 0 / 0
24.05.2018, 16:44
    #39649516
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
Leonid Kudryavtsev

Например, порядок применения правил не задан, а от аналитика (а то и нескольких разных аналитиков) приходят два противоричивых указания:

Код: sql
1.
2.
3.
4.
5.
6.
if A=3 then
  method 1;
end if;
if A=3 and B=5 then
  method 2;
end if;



(а то, что правило 100500 противоречит правилу 100501 - заказчик не задумывается).

IMHO & AFAIK

это вполне термимо если есть возможность показать это аналитику а то он это он не поймет если стопицот правил
Код: sql
1.
2.
3.
4.
5.
6.
7.
if A=3 then
  method 1;
end if;
if A=3 and B=5 then
  method 2;
end if;
....



но если наглядно была бы возможности показать взаимоисключающие параграфы в списке правил

mayton сэнкью почитаю
...
Рейтинг: 0 / 0
24.05.2018, 17:09
    #39649525
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
Про сто питсот правил.

Если они изначально заданы таблично и компилируются роботом в код то это вполне себе норм.
...
Рейтинг: 0 / 0
24.05.2018, 17:21
    #39649526
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
У нас все немного хуже. Постановщик формулирующий правила - просто пользователь. Самое для него простое: "программа не работает, программист виноват, читать ТЗ лучше нужно, см. пункт N 100500".

Вопрос поймет/не поймет, даже не стоит (((

На задаче уже 4-ый программист, текущий кодирует в поте лица с нового года, а воз и ныне там.

А вот в ситуации "конечный автомат" - все просто. Есть таблица состояний, есть разрешенные переходы. Все. Проблемы конфликтов на уровне кода уже не встоет.
...
Рейтинг: 0 / 0
24.05.2018, 19:17
    #39649563
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
Мы говорим об одних и тех же вещах.
Я не против FSM или таблички переходов. Это просто разные формы представления знаний.
...
Рейтинг: 0 / 0
25.05.2018, 05:51
    #39649653
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
llemingТакая вот куча мала. Дебаг еще то удовольствие все в голове держать.


Не надо держать в голове, надо держать в коде. ;-)
Начните хоть с каких нибудь тестов.
А потом потихоньку рефакторите код и добавляйте новых тестов.

Как минимум вы будете уверены, что при добавлении нового условия, старые работают как надо.
...
Рейтинг: 0 / 0
28.05.2018, 21:59
    #39651369
rfq
rfq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управление сложными сущностями
lleming,

выбираете картинку, которая нравится больше, и копайте в ту степь: scientific workflow
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / управление сложными сущностями / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]