Bernd,
Fusion allows for events to come from different "event streams". In the example
I posed (similar to the quickstart business_ruleservice_stateful) one object stream is of
customers, the other is orders. Fusion does not really care how these events come in (e.g.
JMS queues, etc.), but it does allow rules to be written against events from both streams.
For example, the rules could calculate discounts based on order totals for a specific
customer over some time period. So far this is just Drools CEP capabilities.
Now we want to add the ESB to the architecture to help manage the input streams, and
deploy these rules as a service. So in what I described previously there could be three
services, one that actually implements the business rules. and the other two to manage the
input streams>
Your question is why does each service not have its own working memory? The answer is that
we want both streams of objects in a single working memory so the rules operate against
the combined set of facts. That is not the same as putting all the customers into one
working memory and all the orders into a second working memory. If you did that with rules
testing for the existence of both types of facts (like the rules in the quickstart), no
rules would ever fire.
Internal optimizations should not be visible to the outside? Implementation details should
not be visible outside of a service, but the functionality of a service is visible and why
one service has one set of capabilities and another service has another set of
capabilities would certainly be influenced by the desire to "optimize" services
(i.e., it may not perform well if given too many tasks to perform). In this sense the
allocation of capabilities to services is an "optimization"s.
So in this spirit, I proposed we provide the capabilities to create individual services,
some whose capabilities are based on a managing the input stream of events of a certain
type, and another to manage the actual rules execution. Perhaps these services could be
better named the CustomerEventHandlingService and the OrderEventHandlingService, and the
third service is the DiscountService. Yes this design is the result of an
"optimization". But it might be a very reasonable optimization to make.
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4240478#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...