locked
Which notification for what RRS feed

  • Question

  • Dear all,

    I have an Azure SQL server database hosted on Azure where I have live data in it.
    What I mean by live data is data which are updated frequently from our configuration web portal or client data.

    Our main application is a WPF client application running under Windows 8 embedded. That application is running in each of our client worldwilde.

    One part of this application is to collect different type of status information from connected device, like payement system and small motors. Our customer using our application need to know asap when there is any error on a connected device.

    For that we are sending from local application to SQL server on azure, every minutes the current device status.
    In case one of the device is in error, then we need to broadcast that error to potential listeners app which have potential interest on that error send.

    3rd party application can be a SalesForce platform or a dynamics platform for which we have no control. We simply need to find the proper and reliable way to inform those platform that an error occurs in Application 1 for instance.

    For that I browse to different solution like SignalR, service buss, wcf , and do not know really what is the best and reliable solution.

    For instance we can have 6000 running worldwild and each application send status on Azure SQL, then any of those 6000 status is in Error, that error need to be send over.

    Which solution will be best to use based on performance, quantity of message to perform, subscriber types ?

    Thanks for advise

    regards

    Wednesday, August 20, 2014 3:14 PM

All replies

  • Notification Hub is designed mostly for notify end-user's applications on mobile platforms (iOS, Android, Amazon Kindle Fire, Windows 8, Windows RT, Windows Phone).

    Service Bus messaging is designed for covering infrastructure needs by providing scalable and reliable implementation of commonly used abstractions like  topic or queue. 

    As far as I know Windows Embedded does not support push notifications, so there is no way to use Notification Hub to notify your client application. For 3rd-party applications Notification Hub is not useful as well.

    So I would try to solve described task using Service Bus Topics. Where backend services or connected devices produce messages and client/3rd-party applications are subscribed to consume them.


    Wednesday, August 20, 2014 11:25 PM
  • Thnaks for your replyHello the idea is as follow :

    the WPF client application has a kind of Windows Service which ask for Device status and push the status result to our web platform under Azure in a dedicated SQL server table.
    Then the message should be send out from that point.

    For that I was thinking to build a kind of worker role which act as a message dispatcher.

    That worker role will then be in charge to check new insert data fro status device and in case of error send the message out ?

    Does Service Bus can be used and manage by a separate component like a Worker role?

    regards 

    Thursday, August 21, 2014 6:58 AM
  • Yes, SB can be used by any component hosted in Azure or somewhere else, even on your laptop or any internet-connected device.

    The thing is that SQL table you are using may not be required at all if it's only purpose is message dispatching. In fact devices can put messages directly into the SB topic. And then any subscribers can get those messages from the topic. So message dispatching task can be solved without introducing any additional self-made component in your system. 
    Thursday, August 21, 2014 8:26 PM
  • Hello, thanks for your answer.

    So you mean that each of my WPF client application could send the Message directly to a Service Bus ?

    I was thinking of storing message in my sql database in order to not overload WPF client application, and also in case message gets not send properly or gets lost.

    So if I catch correctly the infrastructure I could have in my client WPF application:

    -  a Windows NT service which ask device status

    -Then status is send to SB hosted in a worker role in Azure

    Correct ?

    regards

    Sunday, August 24, 2014 10:12 AM
  • Hi,

    It is possible to use SB REST API for basic features of queues/topics or advanced .NET client (Microsoft.ServiceBus.dll) if it works in your environment. So your WPF app should be able to send messages directly to SB using one of the options. 

    "then status is send to SB hosted in a worker role in Azure" - You do not need to "host" SB, MS is doing it, you just create SB namespace using Management Portal, then grab connection string and use it to access to SB features.

    Wednesday, August 27, 2014 6:27 PM
  • When a client register to a message it it interested in, I guess that the client gets a kind of callback notification without the need to pool the message queue for incoming message correct ?

    Next, I am dealing with some client 3rd party where I have no control, wich would like to receive in the message the complete object ( it can be a complete object like a SalesOrder or a ShopingCartItems), this in order to treat the receive data directly when they receive it, without going to fetchj somewhere with a second call.

    IS that possible ?

    regards

    Thursday, August 28, 2014 6:10 PM