I was instructed to implement a system to continuously receive a large amount of data from a partner. The data scheme on the partner side is different from ours, so some conversion should occur when the data is received and imported into our database.
What is the best approach to solve this problem?
I have some control over both sides of the equation, i.e. if we decide to use WCF, our partner will execute this service. But it is important to limit the amount of programming that should take place on the side of partners as much as possible. Ideally, they would use some SQL Server function to export their data, and then let's talk to the rest.
Other relevant factors:
- SQL Server is used on both sides (2008 on our side, unknown to the partner).
- .NET 4 and / or everything that comes out of the box from Microsoft, without third-party products.
- Transmission is one way, i.e. from a partner to us.
- The amount of data is about tens of thousands of updated records / objects transmitted daily.
- The data model is quite complex, with several tables and relationships.
- The decision should be tolerant to changes on the part of partners (we do not know when and how they change their model).
- Maintaining health and reliability is more important than performance, that is, we do not need the latest data, but the service must be easily modified and it cannot fail / stop.
I ask this question because I overflowed, but the number of ways you can do this. As a .NET developer, Im is leaning toward implementing WCF, or perhaps even some trivial xml-based exchange. But I know that Biztalk is likely to put the score here, and SQL Server may have some great features that I don't know.
Any pointers, ideas and suggestions are welcome!
source share