That is the environment we're in, integrating ruote with a variety of external systems, and we just built our own thin integration layer into our application which handles mapping messages coming in from the outside and knowing when and how to talk to or signal ruote. The ruote-amqp gem is designed for you to add your own message handlers that do that kind of thing. Personally, I don't think it is necessarily ruote's responsibility to map and interpret messages from the outside world, although that might make a nice additional component library, like ruote-kit, but for enabling more general purpose integration with message transformation capabilities via a nice DSL, AMQP or other queue listeners, and whatnot. In any case, the way I look at it, the systems integration concerns and configuration aren't necessarily directly related to the workflow definitions themselves, and should probably be managed independently at a level above the ruote core itself.
From: [email protected] [mailto:[email protected]] On Behalf Of Mario Camou Sent: Tuesday, January 25, 2011 10:13 AM To: [email protected] Subject: [ruote:2850] Integrating with external systems Hi all, We're working with ruote-kit and ruote-amqp. I've had a question for a long while that our resident Ruote talents haven't been able to answer. Since I am now in the position of taking over some of the Ruote duties, I thought it would be a good idea to get this cleared up in my mind. What is the accepted/recommended way of integrating Ruote with external systems? For example, suppose you have an existing system which integrates through AMQP messages. The system has its own (binary) message formats that it receives and sends. We now want to integrate this system into some Ruote workflows, so, for example, some messages will start workflows (with parameters taken from parts of the message payload), other messages will be received in the middle of a workflow (i.e., the workflow will pause until the receipt of a message, and will then have to correlate the incoming message with the existing expressions to see to which one the message passes), and the workflow should also be capable of generating AMQP messages in the formats expected by the external system. I've worked with other workflow systems (specifically, Sun/Oracle JavaCAPS) in which the incoming/outgoing messages are completely disassociated from the workitems. In those systems, the workflow itself is responsible for getting the information out of the message payload and into the workitem. However, I see that Ruote always works in terms of workitems, so it's expecting to send/receive JSON workitems through AMQP. I was wondering, in Ruote, where do you place the logic to convert between workitems and external system formats, and the correlation logic to correlate incoming messages with process instances/expressions? Thanks! -Mario -- you received this message because you are subscribed to the "ruote users" group. to post : send email to [email protected] to unsubscribe : send email to [email protected] more options : http://groups.google.com/group/openwferu-users?hl=en -- you received this message because you are subscribed to the "ruote users" group. to post : send email to [email protected] to unsubscribe : send email to [email protected] more options : http://groups.google.com/group/openwferu-users?hl=en
