users
[Top] [All Lists]

Re: [cinjug-users] Messaging At the Web Layer

To: CinJug <users@xxxxxxxxxx>
Subject: Re: [cinjug-users] Messaging At the Web Layer
From: "Edward Sumerfield" <esumerfd@xxxxxxxxxxxxxx>
Date: Tue, 23 Oct 2007 16:38:03 -0400
Delivered-to: mailing list users@xxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:reply-to:sender:to:subject:in-reply-to:mime-version:content-type:references:x-google-sender-auth; bh=LGRgZZR2c+nuyWOdCuaqs/Z6leIvCLSf+UHwzI7hCxo=; b=orMvUPfZcFaH9u6JFCwxYH8VujjVhOdpUeYJmDSiWdLgMpQqXRu9uUak/PkAkaEsGp3YGbrtzjQCnTqeWoEFqoQK1R9gUvHBs09fJQ8y2NeE18YX4eCQvCKch5tg75uSFaNzRzUmjKwodFIrmvrSoapSOb4DZpWGaHxHS8Pp2ZY=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:reply-to:sender:to:subject:in-reply-to:mime-version:content-type:references:x-google-sender-auth; b=H+6NEhmDgm6vpEG/2xjuKvk7oGOYcXoTffva0e3ve/iprOTPOPKxo1zlHm/ztzQUaH+/u0ywDUCnkL7oEwcaPLmq5VFlbRrdHrg9YL6HjqUT9Hte9uBy/JSikxuc+F5iMbPvrS1eKGw3WGcH/EPqeALldDfQcYorN0xwdV/7fp8=
In-reply-to: <7c3a7f620710231305x3f12c155x963f309ae3a564cf@xxxxxxxxxxxxxx>
Mailing-list: contact users-help@xxxxxxxxxx; run by ezmlm
References: <6a216ba20710231235h730074f7ma164455e7bb8307a@xxxxxxxxxxxxxx> <e569498d0710231251t145bab6kbd5319511255baec@xxxxxxxxxxxxxx> <7c3a7f620710231305x3f12c155x963f309ae3a564cf@xxxxxxxxxxxxxx>
Reply-to: esumerfd@xxxxxxxxxxxxxx
Sender: esumerfd@xxxxxxxxx
Hehe, everyone is assuming a browser client, in fact the client is Google Earth polling my web server every second to retrieve updates to the KML that it renders. So no ajax.

There is an extensive MVC / business and DAO layer in the web container for managing the interactions with the users to change the data ready for the next GE poll and rendering cycle but that is sort of a side issue. The problem is the data and the fact that the notifications of changes to it, by normal architectural ideas, go to MDB's inside the EJB layer.

JMS provides all the API's necessary to create a message container at the web layer that would call my MDB code when messages arrives. I don't think that is hard, just weird.

Not sure what the transactional ramifications are.  I know I can configure my queues to be transactional but I think that is honored by the JBoss container and not the JMS container so I may loose some of these features if I do this.

Another, weird option might be to make the MDB post HTTP requests to the web server to notify of changes. This might actually be easier than moving the JMS container. Just strange to have a container talk to itself.

Scaling is another issue,  I don't think this app is going to require more than one server for the time being but I would hate to limit that for the future. So imagine many web containers and many EJB containers in a cluster and I have to notify all web containers that they need to refresh their cache. A JMS container at the web layer listening to a topic would solve this problem or I could use a distributed cache solution but I still need the web layer to get notified of the change.


On 10/23/07, Edward Sumerfield < esumerfd@xxxxxxxxxxxxxx> wrote:
> > I am considering implementing a JMS messaging container at the Web layer.
> Tell me I am a fool? :-)
> >
> > I have a simple web app polled by a client every second for its data. Not
> wanting to hit the database for every client, every second, it is cached at
> the web layer.
> >
> > Enter JMS. We will be receiving notifications of changes to the database
> data via JMS messages. So MessageDrivenBeans, deployed to JBoss EJB
> container will receive these messages but what should they do to tell the
> cache in the Web container to update.
> >
> > It seems my options are to push the cache to a java space somewhere so
> that the web layer and the MDB's can access it or to move the messaging
> container to the web layer.
> >
> > Thoughts?
> >
> > Ed

<Prev in Thread] Current Thread [Next in Thread>