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

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.

Related

securing webgl + react app -> database connection

So, i thought if my webgl game runs on a particular ip / domain, i can ensure that my api only accepts the data from that particular domain / ip. But that can be hacked by simply add vhost and mimicking to have the data sent over via that faked vhost.
Alternate is to add jwt tokens to unity (webgl) but then again, the secret-key for jwt would be easy to take out from the client-builds (webgl). I'm unable to figure out a secure architecture to save the games data, for e.g., to keep on a leaderboard or create a reward system.
my flow is:
1.) user logins webgl via discord
2.) play the game in webgl (unity) over a particular domain
3.) react app collects the data transmitted over from unity (webgl)
4.) save that data to the database
the insecurity is at 2. (where anyone can modify the game/run a clone -- i can fix it by ensuring that this build is running on my server / via ip and domain but i know that can be mimicked).
so there has to be some sort of handshake between 2 and 3 to validate if the source of the data is authentic.

Improving mobile aps client server communication efficiency and data availability in offline mode

My question is about how to store data which once was received online and still can be processed after the mobile device got offline and/or was restarted.
I'm using AngularJS with Ionic (PhoneGap) for building apps. But my question is not explicitly adressing these technologies.
Best practices, patterns or algorythms would be very helpful to me or even some useful articles or key words.
1) The most simple challenge is to make my app more user-friendly by making its functionality usable not only if the device is online but also in offline mode. In my case this implies that I have to make the last fetched online data available for later use (while device is offline and also after restarting the device!).
2) A bit more difficult is to reduce the communication costs by only synchronizing the server side changed data when the device reconnects to the internet.
3) Entities can also be produced on client side while the device is offline and they must get synchronized to the server too. There are no potential risks of conflicts because the users don't share Entities with write access.
4) I use Googles and Apples push services to inform the devices about newer entity versions, which should get updated on client side. So polling isn't needed.
Client side technologies: Javascript, AngularJS Framework, Ionic Framework, SQLite (WebSQL) or IndexedDB, PhoneGap (Cordova)
Server side technologies: Java EE, JPA, MySQL
Data Format and communication: JSON over REST / http, Googles and Apples push services for server-to-client messaging
1) Store the needed data inside a local SQLite database, and pull it out when the app starts/resumes.
2)In the MySQL database you need a table that creates new entries when you update/change/create content. You would need to store an id and a timestamp (maybe a boolean value if the content was deleted).
On the device you would make a request to the server to send the data from that table and compare it with the locally stored data. If there is a new id or the timestamp has change make a new request to pull the updated data.
3)Store the created data locally with a flag that it isn't synced with the server. When the device then goes online again check for not synced flags and send the data to the server with an identifier to know which device it comes from and where to save it.
4)See 2)
You could make a Java script which checks every x minutes for updated entries and send an automatic push Notification with it. What you would need is 2 tables, one with the newest updates and one with the updates that got pulled by the device(just id's and timestamps, not all the data).
I hope this was helpful, if something new comes to my mind I will update this answer.

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

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].

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

limit the instance of silverlight application to one

How to make sure that only one instance of a silver light web out of browser application is running?
How to make sure that only one instance of a silverlight web application inside the web browser is running?
Take a look at the part of the Silverlight Docs: Implement Communication Between Local Silverlight-Based Applications
You can use the LocalMessageSender and LocalMessageReceiver. Create a sender and send a message, if you get a response inform the user by loading an alternate root visual. If you don't get a response set up a receiver so that any other sender do gets a response.

Resources