[rules-users] Single Session versus Multiple Sessions

Wolfgang Laun wolfgang.laun at gmail.com
Tue Nov 23 02:37:09 EST 2010


Is the processing of individual Incidents independent from each other except
that, perhaps, Persons may reoccur in different Incidents, without this
having any influence on the processing? If so, each Incident could be
handled in a session of its own, which (since the number of objects around a
single Incident is relatively small) could be restarted upon the arrival of
new data, fire all rules and go back to the data base. (Similar operations
will have to be there anyway, because you'll need this for system restarts.
This does not sound like an application where you need 24/7.)

-W


On 23 November 2010 05:31, Brian Wallis <brian.wallis at infomedix.com.au>wrote:

> I'm (very) new to Drools and am trying to determine the best way to use it
> for our scenario.
>
> I have a domain model that has millions of object instances representing
> Documents, People and Incidents.
>
> - Incidents are associated with People (1-100+ per person)
> - Documents are associated with Incidents (1-50+ per incident)
> - Documents are also associated directly with People (1-100+)
> - Typical number of documents directly or indirectly associated with
>  a person is 20-40.
> - An incident has a start and end date
> - The documents associated with the incident will be created
>  approximately within the time bounds of the incident
>
> I need to have a workflow for which there will be 1000's of instances that
> wait for certain documents to be associated with an Incident (or Person) and
> then continues with an interaction with a user before terminating. It may
> have to exist for days or weeks.
>
> The simple solution is to have a single session that contains all the
> documents, incidents and people and to which new documents, incidents and
> people are added as they arrive at the system. Then I can have a workflow
> that runs with rules over those facts that will wait until all the necessary
> documents are available and continue on with the human interaction part.
>
> Of course this won't work. There are too many facts and most of them are
> not relevant to any particular workflow instance anyway.
>
> So, I'm thinking of doing this with a session per workflow instance where
> the session is populated with the relevant documents on startup and has any
> new relevant documents are added when they arrive (using a jms event
> pipeline).
>
> I can easily filter the event stream to just insert new facts into the
> session's working memory for documents that are associated with the person
> and I can pre-populate the session's working memory with a selection of
> existing documents before starting the workflow. A typical number of
> documents required for a workflow instance is in the order of 6-50.
>
> So I would create a knowledgebase preloaded with the workflow and rules and
> create a new session each time I need to run the workflow. At any one time I
> could have 1000's of sessions. I delete sessions (and reclaim any associated
> resources) when the workflow completes so I don't need to clean up
> individual facts. The sessions would need to be stateful and persistent (to
> a database).
>
> Does this make sense or is there a better way to approach this? Will Drools
> scale OK when used like this?
>
> thanks,
>
> Brian Wallis
> InfoMedix | Architect
> p: 3 8615 4553 | f: 3 8615 4501
> e: brian.wallis at infomedix.com.au
> Level 5, 451 Little Bourke Street, Melbourne VIC 3000
>
>
>
>
>
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20101123/136c1480/attachment.html 


More information about the rules-users mailing list