Chapter 8 presented the basics of discovery services and showed how you could use a discovery service to facilitate peer discovery and index peer content. To support this design, the registration database stored information about each peer and the TCP/IP endpoint it uses to listen for connections.
But what if you want to apply the same approach—using a stateless discovery web service—but allow your peers to interact using .NET Remoting? This simpler approach is less suitable for situations in which you need to stream large amounts of data over the wire (such as the file-sharer application), but it could be useful if you're building a distributed task processor or messaging application. Fortunately, the changes are easy to implement. You simply need to serialize Remoting's network pointer, the ObjRef.
In this chapter, we'll use this technique to develop a discovery web service that can support the Talk .NET application developed in Part Two. We'll use the decentralized version presented at the end of Chapter 4, because it allows peers to interact directly and only requires the server for peer discovery. Best of all, you'll see that you can implement these changes with minimal coding changes to the Talk .NET peer application—a fact that makes this the shortest chapter in this book!