Michael Hunger wrote:
> Great ideas, thanks for the input.
> 
> What about using the "different roles" of an entity to model either the 
> different places it can be (and so having 
> different view on the same message) i.e. draft, outbox, inbox, trash. So you 
> just add a interface and mixin and use 
> Entity.cast to supply it with the different states the views require.

Yup, that's the idea, although I think a regular Class.cast() will be 
enough (as already outlined, I still don't understand how Entity.cast() 
is supposed to work and am almost in favor of removing it until we 
figure it out).

> The same seems to be possible with the topic. Just add another Composite 
> interface for the properties related to topic 
> and then use that as required. Perhaps topic is only one of many message 
> attributes that we have to look at (see the 
> QoS, Security & co aspects that also could be done with Concerns or 
> SideEffects).

When you say Concerns and/or SideEffects, I assume that is on the 
message sending service. The Message itself will be fairly dumb as I see 
it, but will definitely have interfaces to declare QoS, Security and so on.

> If you look at emails in your email system. These are really instances of an 
> email type which is created at the sender, 
> stored in draft then outbox and sent if some condition holds true (server 
> available, time to send, manual sending). Then 
> the message keeps living in the outbox and a separate view (or entity state 
> copy) of it is serialized and transferred 
> over the wire over lots of stations which use other concerns to evaluate 
> (spam) route and finally deliver the email 
> entity to the recipients system. There the last service (entity store) makes 
> it available for the client which queries 
> the entity store (using imap or pop3) for new messages every x minutes 
> polling (or is pushed the messages actively by a 
> service - blueberry). Then at the receivers client there is a local entity 
> store (inbox) which holds the messages and 
> can be queried (keyword filtering etc, attribute sorting & filtering etc.) by 
> the user.

Pretty much agree with the above.

> Sound perfectly fitting. With business busses you add more QoS, Reliability 
> and Transactions, Security to the picture.
> But in general it keeps the same.
> Regarding multicast; publish/subscribe etc. these are just concerns that can 
> be added to the message as needed.

As above, descriptions of publish/subscribe etc. are added as mixin 
types to the message, but the actual implementation is either in the 
EntityStore or as Concerns on the EntityStore if possible.

> Perhaps looking at Gregor Hohpe's Enterprise Integration Patterns would help 
> to identify the most important properties 
> we have to support?

Good point. Here's the link, for reference: http://www.eaipatterns.com/

And again, I'm a total newbie with messaging, so any help would be 
appreciated.

/Rickard


_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to