I had to read up on OLE DB, as I'm unfamilar with its object hierarchy. And, I really don't know what to suggest, except that you do some serious research on the underlying RPC transport that COM uses when accessing remote objects, for instance: (The RPC Model Overview, MSDN[^]). This occurs in a largely transparent way (from a programmer's point of view). So, you don't really create a network layer, specifically. Typically, with standard marshaling, MIDL is used to generate COM interface definitions for your DB provider and comsumer components, and the Proxy/Stub architecture that COM relies on for instantiating remote objects. The security model is implemented at the network machine level boundary (think, AccessCheck) through authentication and Operating System mechanisms of access control which can be configured either programatically or administratively. If you can get a copy of Don Box's 'Essential COM' or, 'Inside COM+ Base Services', by Guy Eddon, I would suggest that you familarize your self with the security aspects of COM. There are a number of technical articles at MSDN, for instance: COM, Component Object Technologies, MSDN[^], and, COM Security in Practice, MSDN[^], or, DCOM Architecture, MSDN[^]. The .NET Framework is largely designed to make internet access easy, but, this depends largely on which version of the runtime you use. Interop between COM and the .NET Framework is also a possibility, but, many programmers initially find this approach cumbersome and error prone. Also, the NET redistributables and whatever dependent libraries are necessary, must be installed on both server and client. I think your answer, is to do more research,...but, start with COM, since the OLE DB component is COM (this will initially simplify alot of development).