Okay, we have a better idea of what it is you are doing.
While I'll give you some things to think about, we unfortunately still
cannot answer your initial question: ("Can you tell me what is the best
communication method that should be used and why?") because we are missing
so much relevant information about what you are doing.
"Best" is always relative to some context and specific limitations of your
environment. What I can tell you is that you have not provided any reason to
use XML and SOAP in your environment. Is that a requriement of the Tandem
database? I doubt it. So, given the performance hit you'd incur in the
XML/SOAP communications - why would you use SOAP and XML at all? Given your
environment as you described - it's all in one intranet running Windows OS -
so no need to exchange to different platforms. That's what XML/SOAP is
useful for - it solves the "different platforms" problem and possibly
firewall issues as well - but you don't have any of those issues. You might
want to find the Tandem data provider for ADO.NET and/or OLE-DB and/or ODBC
and use that (if one exists, and I'm sure one does). Your performance would
be much better than translating XML/SOAP.
Now - about the VB.NET component that is to "connect to the Tandem
database": Is that all it's doing? If so, then there is no need to create
this component at all. If you are just connecting then just go with your VB6
desktop app's current capabilities - and just point it to whatever database
is necessary (just swapping out connection strings and providers).
From what you have described so far, there is no real justification for:
1. The use of XML/SOAP (you could use some native providers for both Tandem
and SQL Server instead)
2. Remoting (that, too, incurs a performance hit all by itself)
3. The architectural decision to have any new physically isolated/separated
data access layer (which is apparently what the VB.NET component would
function as). You just say it is to transfer data between Tandem and SQL
Server. If that's all it's doing, then perhaps don't create the VB.NET
utility and instead create a DTS package and schedule it if it needs to
transfer data on a regular basis. Also, from the client application side,
you apparently already have an investment in a VB6 desktop app that already
communicates with Tandem; why not just point it to SQL Server and be done in
under an hour? I do strongly advocate having a separate data access layer -
but given your existing investment, you just might want to work with the
existing architecture until you get to do a wholesale rewrite.
Good Luck.