I can't say that I can add much more to the tutorials and articles already out there on the Net on this topic, but I'd like to point to the definitive example of how to implement one: http://msdn.microsoft.com/en-us/library/gg193964.aspx
David Taylor's blog also has a good 10 part walkthrough with a bit more explanation; however, I would caution that the example he provides is broken as heck and was part of the problem that it took me a good part of 3-4 days to get something so simple to work right.
One bit of knowledge that I'd like to impart is that you will -- more than likely, 99.99% guaranteed -- run into errors with WCF. In these cases, the errors will:
- Not show up in any level of detail in the SharePoint logs
- Not show up at all in the system event logs
- Not show up in the IIS logs with any level of detail
You'll want to use SvcConfigEditor to enable tracing and of course, SvcTraceViewer to view your logs. Part of my problem was that I had an error in the configuration file for the service and part of the problem was that I had an error in the VirtualPath of the service in my service application. I was only able to track these two down through the usage of the aforementioned WCF utilities so keep them handy!