How to call an C# program after an insert into Azure table - sql-server

I need some architecture guidance here.And if anybody can please give me an overview of how it can be done and i will figure out rest of stuff myself.
So from my WINRT App i am capturing an image and sending the image
to Azure tables. I am storing image in blob and image path in table.
So whenever the image is inserted into azure tables, a service [or
whatever it is a bus , a queue..] should call a C# program [This
C# program takes the image and other parameters from table and does
shape recognition].
This C# program will run asynchronously and will update the table
with image matching %.
After that Azure will send an push notification to device if image matching % is greater than 90%. [i know
this is a simple script].
I know Steps 1 and Steps 4. How do i do go around with Step 2 and Step 3?.Where should i put my C# program so that azure tables can call it?

One option would be a worker role hosting a WCF service. The worker role host your C# program and take care of step 3 the WCF service will provide the means for step 2 and your flow would look something like:
So from my WINRT App i am capturing an image and sending the image to Azure tables. I am storing image in blob and image path in table.
Client (WinRT app) makes a call to the WCF service after image is sent to initiate step 3.
Web service call executes your shape recognition code asynchronously.
After that Azure will send an push notification to device if image matching % is greater than 90%. [i know this is a simple script].

Related

Nagios3 configuration for sending simple text message on some port

I am developing an application and decided Nagios3 for performing monitoring stuff. But I am stuck at two points. I am using check_http plug-in for monitoring load on my service api. Now I want to perform below tasks.
I need to set a threshold in check_http for performing some task after crossing that threshold. I tried below command
'check_command check_nrpe_1arg!check_service_api'
but it only tells me the load, not any threshold is set. while below one doesn't work.
'check_command check_service_api!100!200'
I need to send simple text message on some port(my application).
I am new to Nagios, so please help me figuring out the solution except email notification stuff.
There is a check command that you can download called "notify_sms" that integrates with an API server hosted by a company called Esendex. They charge for their service but it works well.

Best approach for real time process information / Server + JS Client

I have a C# Web API project on server side and on front-end I have ExtJS 4.2.1 (Javascript framework client).
There is a section in my app where I request to start a long running process (about 5 minutes) and I want to show the user the status of the process being executed.
Basically, the process will run a special calculation for every employee in the database (about 800), so I want to let the user know which Employee is being processed in that moment.
So I was thinking in two ways of doing this, and maybe I don't know if having both is ok.
Use SignalR to show the information of the process in Real Time.
Write to a database table all the process log (every employee that its being processed).
If I use the first approach, if the user close the browser he will loose all the information about the process and if he log into the app again he will only see the actual status.
If I use the second approach, if he log into the app again he could see all the information, and using maybe a timer on client side the data could be refreshed every 5 seconds.
Does anyone have implemented something like this? Any advice is appreciated.
You should use a combination of the two. When you have calculated a employee save the state to the database and publish the change on a service bus.
Let SignalR pick these messages up and forward them to the client. This way the user will see old state when he connects and new state then they arrive with SignalR. I have created a Event aggregator proxy that makes this very easy.
https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki
Follow the wiki to set it up, here is a demo project
https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/tree/master/SignalR.EventAggregatorProxy.Demo.MVC4
Live demo
http://malmgrens.org/Signalr/

How to scan an image straight onto a cloud database through web browser interface

I have a MySQL cloud database with a browser-based front-end.
Backend code is written using Perl/Dancer
The employee logs on to www.example.com and enters the data into fields, hits ' save ' to create a new record.
Now I need to scan in an image and attach it as one of the fields.
How can I accomplish this?
I realise that I could just scan the image, save it as a file on the desktop, and then upload this file. but there is a high volume of data to process, this method is very clunky.
( It isn't essential that it is a scanner, it could equally well be a web cam or digital camera )
To control scanner's from browser u may either use activeX controls or u may use flash, which gives options to take options from web/digital

What data does Bing maps send and receive from the Microsoft servers?

I have a Bing Maps control in a silverlight application.
The application is to be deployed on a company network which has a very tight security policy and so they need to know what data is going to be sent/recieved over the connection to the Microsoft servers.
Can anyone point me in the right direction with regards to data connections etc. I understand that the control sends a licence and recieves map tiles but I don't know how.
The only data that gets sent from the Bing Maps control to Bing's servers is your application key, which is used to log a transaction recording the start of your session. This is done by a call to the service at http://dev.virtualearth.net/webservices/v1/LoggingService/LoggingService.svc. The service sends back an authentication result code and a session id which is assigned for the rest of the session.
In terms of data received from Bing's servers to the Map Control - if you use one of the built-in map styles (aerial/road etc.), then the tile images are requested from one of the tile servers in the edge caching network, which have URLs as follows:
http://ecn.t0.tiles.virtualearth.net
http://ecn.t1.tiles.virtualearth.net
http://ecn.t2.tiles.virtualearth.net
http://ecn.t3.tiles.virtualearth.net
That's it. If you load a tile layer from a local tile source then no content gets transferred from Bing. Nothing ever gets sent to Microsoft relating to any shapes or other data plotted on the map.

Calling Function on a different client SIlverlight

I have one very weird question.
There are 2 Silverlight Client
1. Admin
2. User
Now, I want a scenario wherein the Admin Silverlight can initiate a function call on the User Silverlight.
Pretty much a newbie with SL so wonder if that would be possible.
I'd appreciate any help.
Thanks
I suppose the applications are not in the same browser / machine, and when you describe the usage pattern as admin and user, I take that there are probably more users than admins.
You might want to take a look at duplex bindings for WCF services - this is a web service binding that allows pushing notifications to clients from the server. When all clients establish such a channel, you can implement hub-and-spoke communication between clients.
This blog post gives a good receipt for getting started:
http://silverlightforbusiness.net/2009/06/23/pushing-data-from-the-server-to-silverlight-3-using-a-duplex-wcf-service/
If they are both in the same frame/browser, you could call JavaScript in the first using the HtmlPage API, which could interact with the second.
So:
Silverlight control -> injects JS into HtmlPage -> JS interacts with Silverlight control 2 (assuming this is possible, please correct me if wrong) -> Silverlight control responds.
If they are in separate windows or running "out of browser", I would expect it wouldn't work.
If the 2 instances are seperated (i.e., the admin is on one machine and the user is on another) there's no direct way to do it. However, you can rig it up with a publisher/subscriber style system.
Assumption: You have some sort of shared data store between the two, maybe a database or something.
Idea: You have the admin client write a request to this shared data store; an entry in a table, or a new file in a network share, or something. You have the user client app regularly scan this table/share for new entries, say every .5 seconds or so. When it sees the entry, it executes the requested operation, storing any return values back to the shared store. When the admin sees the return value, he knows the operation has been successfully executed.
There are a couple of options that I can think of.
You could implement some sort of remote procedure call via web services whereby one Silverlight app posts a request to call the method, and the other Silverlight regularly checks for method call requests.
If hosted on the same HTML page in a browser, you could use javascript to allow the two controls to interact.
However, direct communication between two Silverlight instances isn't supported, and while the suggestions may help to achieve something close to what you want, they don't provide a complete solution that will work in all scenarios.

Resources