Hi, mrtedweb -
1. As you probably know (having worked with it), COM/ActiveX is basically an "abstraction" technology. The name of the game is defining an interface, and hiding the implementation details.
2. Sockets are fairly low-level. This can be an advantage, and it can also be a disadvantage. It depends on how complex your distributed system becomes, and how robust it needs to be. If you're comfortable with sockets, and if sockets will suffice - good. Otherwise, you might need to look elsewhere.
3. Web services (for example, SOAP or WCF) might well be overkill.
4. If Java is an option, you might consider RMI. It's a relatively light-weight, robust middle ground between sockets (very low-level, you need to concern yourself with *all* system details) and Web Services.
Java RMI is an "open", portable standard that fills exactly the niche DCOM tried (and failed!) to satisfy.
Here are a couple of links that might help:
http://www.javacoffeebreak.com/artic...i/javarmi.html
http://java.sun.com/docs/books/tutorial/rmi/index.html