79593275

Date: 2025-04-25 20:42:20
Score: 1
Natty:
Report link

One very late thought, in case others pick up this thread, is that if you look at what is probably one of the better in-production/non-trivial frameworks is the JBoss Drools + Governor + jBPM + whatever their optimization framework is called + their complex event processing framework. IBM had a really strong competitor with its commercial system, but them, um bought JBoss. So long as they remain a "good corporate citizen" (which is likely, as the open source approach has been rather profitable for Microsoft, Amazon, Google, maybe even Oracle?) then you could just use their APIs. You likely wont be doing a lot of custom Java programming for rules, but if you learn the Drools language isn't not so bad, and their BPM tooling, when I last played with it was pretty decent (aesthetics of Eclipse on a KDE desktop not withstanding...).

The biggest barrier is you really do need someone who knows their way around the JBoss server infrastructure. They have some very good software, but it isn't like you are going to master it over a weekend.

These are all essential parts of a production system: Rules engine with Rule management (so you don't end up with conflicting rules), probably with some sort of master data management so the rules and the rest of the framework all understand the data the same. Not much help if different departments insist on their own narrowly focused view of the data so rules run fine on tasks completed by some, but not all..

You need a way to turn task assignments into changes in the state machine of tasks and/or value of data objects so you can trigger whatever happens next.

Because the real world never does what it is supposed to, having a complex event processor lets you define time-based, value-based, and event-based rules that work with stateful data. In a lot of enterprises, this translates into integration with email, schedule/calendars, and at a minimum the sort of task/todo that would be supported by a reasonably robust to-do list management service or end-user applications (including Outlook, KDE Akonadi, GNOME's Evolution, and server side options are supported by a variety of open source groupware solutions).

If your tasks are all done by robots or vending machines, then you can skip the groupware!

It also requires a fairly sophisticated (but the algorithms are well-defined and there are plenty of open source implementations to interface with) optimiztion engine. As things gets completed (and never in the order the workflow designer intended, and conflicting priorities constantly emerge, you want to be able to redo an optimized schedule, possibly in real time (imagine you are usng this to run a large busy restruant--food gets prepared as close as possible to syndronized but as patrons leave before their food arives, and some VIP shows up, and suddenly the cook drops a block of ice by accident in the deep fryer, etc. etc. you need to scramble to reorder when things are ready to be picked up from the kitchen and bar and delivered to the tables as diners are given the options to substitute somethign for their french fries or put up with a long delay while the paramedics take the fry cook to the hospital and the defryer gets cleaned out and heated back up. Hey, if things worked by plan we would not need these sort of systems!)

Reasons:
  • Long answer (-1):
  • No code block (0.5):
  • Contains question mark (0.5):
  • Low reputation (1):
Posted by: DrKC