From: yermej Date: 2010-07-16T02:35:23+09:00 Subject: Re: Ruby best practice for "always on" app/service? On Jul 14, 9:52 pm, Richard Conroy wrote: > So the web service client IS a web app? That proxies/intermediates > between (1) a set of back end web services and (2) people or other > services? Basically, but I'm not sure my web service client should be a web app in all cases (this is getting confusing). As I mention in my reply to David, I wasn't sure what exactly I was asking when I started this thread. I just feel like I'm missing something that may be more robust than WEBrick or mod_ruby. I'll definitely look into the Rack-based technologies for future use. At this point, I'm basically writing adapters to SOAP services provided by outside companies to allow ordering and other inquiries. They're accessed via the public internet so there can sometimes be delays in responses, but generally under 2s, I think. Eventually I'll be using similar SOAP services from several companies. The adapters will be used so that internal apps can access those services via a single API. A controller will decide which external company to interact with in a given case and the adapter will handle the details of that particular company's SOAP implementation. Communication can be initiated from either end. In some cases my end will initiate the SOAP communication (to begin an order, validate data, etc.), while in other cases the outside company will initiate the communication (provide status updates on an existing order). I.e., the adapters will contain SOAP clients and servers. So, yes to bi-directional communication and delays. I'll have a look at Delayed Job. Going with something Rack-based may be all I need at this point. A somewhat related question, what's the Ruby way to do communication between two apps on the same machine. Is there something like IPC sockets? Or should I be looking more at something like DRb (particularly since the two apps might not always be on the same machine). It seems that there should be something besides web apps for that, but maybe I'm just making this harder than it needs to be. I apologize for not really having a clear question. I do appreciate the comments and suggestions so far and I now have some more possibilities to explore. Thanks for the help. Jeremy