Service Bus and SOA
-
mardi 17 juillet 2012 15:03
Trying to understand how the new Windows (on-premise, not Azure) Service Bus works and its functionality compared:
- Is there any support for OO messages where one message subclasses from another and you want two handlers subscribing to each specific message (one that does super class and another that does a subclass?
- Is there an out of the box scale out support for service bus? Can you provide details?
- How do you support long running processes (sagas/workflows/process managers)? If supported and if supported within WF, how do you correlate messages within the service bus?
- Is there a way to wake up the service bus say 3 days from now to do certain processing?
- Any retry functionality upon failure?
Appreciate any response as certain aspects are important to us when comparing to something like NServiceBus.
Toutes les réponses
-
mercredi 18 juillet 2012 05:24
Hi Tim,
Regarding the items above:
1) Topics and Subscriptions provide the ability to distribute messages between different clients. See http://abhishekrlal.wordpress.com/2012/02/07/enterprise-integration-patterns-with-service-bus-part-1/
2) Service Bus does support high availability and scale on multiple machines, see http://msdn.microsoft.com/en-US/library/jj193012(v=azure.10).aspx
3) There are several ways of correlating messages, for long running workflows etc. Sessions are your best bet. You can lock a session and then process all messages associated with it. Session state can be used (with transactions if needed) to store progress of processing that session. See http://code.msdn.microsoft.com/windowsazure/Brokered-Messaging-Session-41c43fb4
4) Yes, you can schedule a message for a later time and then have a pending receive and the message will be delivered at the desired time to wake up the client. see http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.servicebus.messaging.brokeredmessageproperty.scheduledenqueuetimeutc.aspx
5) In case of errors you can check the IsTransient property on the exception and that will tell you if it is ok to retry. See http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.servicebus.messaging.messagingexception.istransient
On key advantage of Service Bus is the symmetric choice it offers in both a cloud hosted PAAS and local server environments. More details at: http://abhishekrlal.wordpress.com/2012/07/16/service-bus-symmetry/
Regards, -Abhishek Lal
Senior Program Manager
Windows Azure AppFabric Team- Proposé comme réponse Abhishek Lal MSFTMicrosoft Employee mercredi 18 juillet 2012 05:24
-
mercredi 18 juillet 2012 23:22
Just a few follow up questions to the responses above:
- Does the bus use MSMQ where if the client crashes, the messages are stored in the queue and when back up, continues to process/send? I guess I'm confused as I see that it uses tcp or rest so I'm not sure how msmq is involved if at all.
- Would you say that it supports both brokered architecture as well as bus? Not just routing but also simply publishing events and have subscribers which is a bit more bussy than brokered?
- Regarding #1 above, I see you use topic and subscriptions as strings and not as OO messages. For example, I can't have a handler that waits for Handle<MessageOne>. It's more of string based topics and subscriptions and no polymorphism per say. Would you agree?
- Regarding the rest, I know Clemens Vasters had some sample on code gallery but I can't seem to locate them, if you have some, please point some out.
- Since Azure uses ACS, what options do I have on the server on-premises? ADFS2? Any samples?
Appreciate it as it will help drive critical decisions for us.
- Modifié TimJohnson_1 mercredi 18 juillet 2012 23:24
- Modifié TimJohnson_1 mercredi 18 juillet 2012 23:35
-
jeudi 19 juillet 2012 22:17
Hi Tim,
- The on-premise offering currently does NOT have any dependency or integration with MSMQ
- Yes, you should be able to achieve both scenarios, see a recent addition published for promoting properties from WCF services: https://nuget.org/packages/ServiceBus.Extensions.PromotedProperties/1.0.1
- Take a look at the CloudFX written on top of the SB service, its different API abstractions on the same infrastructure: http://code.msdn.microsoft.com/windowsazure/CloudFx-Samples-60c3a852#content
- All our samples are here (let me know if you need something specific) http://code.msdn.microsoft.com/windowsazure/site/search?f%5B0%5D.Type=Topic&f%5B0%5D.Value=Service%20Bus
- There is no ACS on-premise so we have our own STS, and you can use AD.
Regards, -Abhishek Lal
Senior Program Manager
Windows Azure AppFabric Team- Proposé comme réponse TimJohnson_1 vendredi 20 juillet 2012 03:22
- Marqué comme réponse TimJohnson1 vendredi 20 juillet 2012 14:39
-
vendredi 20 juillet 2012 03:23Thank you, that helped.
-
mardi 7 août 2012 12:37Thank you for this post which has some key links and features to take on board. The key question that I have is about the roadmap for this product. With an indication of when this will be RC, developers can begin to build enterprise solutions with this key product. I am aware that this is early days but when are we likely to see this (early, mid, end next year???)
- Modifié Nicejumper mardi 7 août 2012 13:40 punctuation

