Return-Path: Delivered-To: apmail-activemq-users-archive@www.apache.org Received: (qmail 36703 invoked from network); 12 Oct 2007 14:31:48 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 12 Oct 2007 14:31:48 -0000 Received: (qmail 75051 invoked by uid 500); 12 Oct 2007 14:31:36 -0000 Delivered-To: apmail-activemq-users-archive@activemq.apache.org Received: (qmail 74728 invoked by uid 500); 12 Oct 2007 14:31:35 -0000 Mailing-List: contact users-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@activemq.apache.org Delivered-To: mailing list users@activemq.apache.org Received: (qmail 74719 invoked by uid 99); 12 Oct 2007 14:31:35 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 12 Oct 2007 07:31:35 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of james.strachan@gmail.com designates 66.249.82.231 as permitted sender) Received: from [66.249.82.231] (HELO wx-out-0506.google.com) (66.249.82.231) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 12 Oct 2007 14:31:38 +0000 Received: by wx-out-0506.google.com with SMTP id s14so1041667wxc for ; Fri, 12 Oct 2007 07:31:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=uiLsaYMxrwUDOe3h0p59AKgaR55GxVu2bvHmVa+7qtc=; b=C8Q4Gm9sywduqU148mQt2fIbXJiKKN5iaIkXVfO7BnxJ97MwS6itioEGmV79AWRkD5Qb35UrZCdrCTJiH8Vefj10cejQarNBdxDYiCeiepP3wInJL4/jxTlGHAwgd73Iqpn+rdgrx3yGzxvLGJWcxbpnpxRXHbdSOs7GFh9yfyc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=aEDwtNr/1mjX9kCTsm6nwBGskCWQtoVnNbmB89ypyN4hVAlpX0V7Oq8U0qjVCaGFkGMpgwZDOf1FX5RrXsjjOJGN4htxoYVQrC6v9tbVpZ5ICSadmZ+aNAsD2NdyByguc4afQW+UV+Bca1wdXTsMjJQRWYeEHMr/i9ZR5IGRZP0= Received: by 10.90.74.1 with SMTP id w1mr4855833aga.1192199476907; Fri, 12 Oct 2007 07:31:16 -0700 (PDT) Received: by 10.90.67.7 with HTTP; Fri, 12 Oct 2007 07:31:16 -0700 (PDT) Message-ID: Date: Fri, 12 Oct 2007 15:31:16 +0100 From: "James Strachan" To: users@activemq.apache.org Subject: Re: Advice Needed on Design In-Reply-To: <9E1C1C29-979C-4944-AD83-EB535C4B2332@sherman.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <9E1C1C29-979C-4944-AD83-EB535C4B2332@sherman.ca> X-Virus-Checked: Checked by ClamAV on apache.org On 12/10/2007, Adam Sherman wrote: > Good Morning All, Welcome Adam! > I am in the process of designing my first project using JMS. So far, > I am using the Spring XBean support and ActiveMQ 5.0-SNAPSHOT to > exchange some simple messages between two network nodes to get my > feet wet and start understanding all the components. > > I am now looking for some advice on how to architect this application > and am hoping the list can help me out! :-) > > The requirements: > > - multiple nodes sending "process this data" messages ("web node") > - multiple nodes consuming the above messages and doing work > ("processor node") > - processor nodes broadcast messages containing status updates which > need to cause things like email notifications and various other data > updates > > Basically, I am designing a special-purpose video site where users > upload video and it gets processed. The users need to receive a lot > of progress information. > > How can I have a variety of "listeners" for a event-style message > (like "processing complete") but only have one of them process the > message? (e.g. I have a pool of consumers that send notification > emails, another pool that updates a status page and will eventually > add more.) My understanding of "topics" is that you can't force only > a single subscriber to handle each message. > > Any thoughts/comments/suggestions you can provide would be very helpful. > > Thank you, To get things going and to avoid you having to worry about how to use the JMS API properly and so forth I'd recommend you experiment with the Bean Integration in Camel... http://activemq.apache.org/camel/bean-integration.html it basically means you can create a messaging application without writing any JMS code; you'd also be transport agnostic allowing you to switch between various kinds of protocol if you need it later on.. http://activemq.apache.org/camel/components.html e.g. start off writing interfaces for your remote services (such as the send data interface) then start with spring remoting; which lets you bind the interface to a queue for load balancing or topic for publish subscribe; then the server side would consume the messages etc. http://activemq.apache.org/camel/spring-remoting.html -- James ------- http://macstrac.blogspot.com/ Open Source SOA http://open.iona.com