I Asked this at Staock Overflow, but I would like your oppinion too as it has as much to do with administration as it does with coding.
We have a .net 2-tier application where a desktop program is talking to a database. We support MS SQL Server 2000, 2005, 2008 and Oracle 9, 10 and 11.
The application is sold, not as shrink-wrap, but pretty close. It is quite important for us that the installation and configuration is as easy as possible as installation instructions are usually supplied in written form to the customers internal IT-department. Our application is usually not seen as mission critical for the IT-department, so we need to keep their work down to a minimum.
Now we are starting to get wishes for a web application build on top of the same data. The web application will be hosted by us and delivered as a SaaS application.
Now the challenge is how to move data back and forth between the web application and the customers internal database. as I see it we have some requirements:
- We must be ready to handle the situation where the customers database is not accessible from the DMZ. I guess the easiest solution is that all communication is initiated from inside the customers lan.
- As little firewall configuration as possible. The best is if we can run without any special configuration as long as outgoing traffic from the customers lan are not blocked. If we need something changed in the firewall, we must be able to document that the change is secure.
- It doesn't have to be real time. Moving data in batches every ten minutes or so is OK.
- Data moves both ways, but not the same tables, so we don't have to support merges.
- It would be nice if we don't have to roll our own framework completely.
Looking forward to hear your suggestions.