I am involved in a development project of an enterprise level hosted application. The main product is a smart client application, and will soon have an embedded sql express option. At the moment I am building the WM 5.0 mobile application and have been advised against using merge replication to syncronize the databases.
The reasons have been that our main SQL 2005 database is on a hosted server that would have to open ports directly to the internet for the merge replication to do its thing. So far I have built some realy pain in the *** manual synchronization that loops through every table it needs to sync looking for a last modified time... pushing and pulling this way. This way it can pass DataSets through a web service just like the smart client app is working today.
Is Merge Replication acceptable or even safe in a situation like this? Any advice or opinions would be appreciated.
Thanks.
You do not need SQL Server to be on the internet for replication. Replication goes through IIS, so you only need IIS on the internet. You can use all security measures IIS offers including SSL and authentication to protect your data.
Keep in mind what whatever method you would choose, you have to have some open port for device to connect to. It's doubtful your home grown solution would be more secure than IIS which was around for years, tested by hackers, fixed and tested again. So, yes, replication should be appropriate for that.
|||Ok, I understand what you are saying. Since it is hosted through IIS I guess we could avoid setting up IIS on our data boxes and create a virtual directory to the snapshot folder or whatever it exposed through IIS.
Another concern is filtering data. We have 6000 or so customers sharing one SQL server database and the data exposed to them is filtered through organization ID's and logins..., Is merge replication accessible through code (also the filters) or would each device have to be setup in SQL manually with a static view of data?
I'm sorry for the questions that might be ignorant, but I can't seem to find any good documentation on what situations merge replication is optimal for.
Thanks again.
|||Excuse us for catching this up very lately.
You can use SqlCeReplication.HostName as your filter on SQL Server. You can use HOST_NAME() function on the SQL Server filter which would then replaced byt the SqlCeReplication.HostName to know which records this device/client is interested in.
I am sure there will be many more question that would arise and I sincerely request you to go through the resources available and get prepared for better questions!
Resources are listed out @. http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=295034&SiteID=1
Thanks,
Laxmi
No comments:
Post a Comment