We are using SQL Anywhere 16 and develop an application with MobiLink, in which ever user should be allowed to use only one device (the users have to pay for the use of the app). If the user is triggering the sync from a second device, it should fail.
Is there a out-of-the-box solution for this scenario in SQL Anywhere/MobiLink or is this something we have to develop?
Thanks and best regards, Alex
asked 05 Sep '14, 03:13
Maybe the custom user authentication is what Alexander needs? http://dcx.sybase.com/index.html#sa160/en/mlstart/mt-authentication.html E.g. there it is possible to check a custom table whether the user has the remote database registered. I would use one of mobilink connection events to update that table and assign the remote ID if it was previously empty.
answered 06 Sep '14, 03:25
Short answer: There is no solution built in to SQL Anywhere/MobiLink.
Long answer: It is a simple requirement, but it is one that has spawned an entire industry: "How do I uniquely identify the computer on which my application is running?" Try asking that question on Google; I get 30,400,000 hits.
There are a lot of simplistic solutions (MAC address is a favorite) but they immediately lead to followup questions: "How do I let users move the application to a different computer when the first one is stolen/lost/destroyed/upgraded?" and "How do I deal with spoofed MAC addresses?"
There are no known solutions that meet all of these criteria: economical to implement, reliable, and user-friendly... many solutions (e.g., the one used to protect Sybase software like PowerBuilder) fail to meet ANY of those criteria... IMO anyway :)
The solution I prefer ("Rely on the honesty of users") is known to meet two of the three criteria (economical, user-friendly)... whether it meets the third criteria (reliable) is something I prefer not to think about :)