So just what is this Service layer anyway?
First let's have a look at what layers we have in a sample MVC (Model, View, Controller) ColdFusion application.
The view layer is what we deliver to the client, traditionally this is as HTML, but increasingly this could be for Flex, AJAX, RSS readers etc. All it should be concerned with is just displaying data.
The control layer is where all your requests from the client are routed. Think of it as a parking attendant at a big event who tells you where to park your car. It determines which scripts are executed and in what order.
OK, we've now got to the model, this is where all of your business logic, the core part of your application (unless you're a designer in which case it just does magical stuff).
Inside our model we have the service layer which handles communication (message passing in OO terms) between the control layer and the Business objects. The service objects inside the service layer can communicate with your persistence layer (DAO/Gateway/Other), Business Objects and even other service objects. Each service object acts as the façade (think API) for my model. So if a controller needs to get some data it talks to a Service Object which then talks to the appropriate object(s). The same applies when the controller wants to supply some data (a form is submitted).
You may be thinking, "why don't I just combine my service layer with my control layer?". Well, you could, but this is not considered to be a good idea as you are tightly integrating your framework to your model. Imagine the issues if you might wanted to change your framework (Fusebox to Mach-II) or maybe add a flex front end as well as an HTML front end.
A question I've heard a lot recently is "Should my bean be able to save itself?" The general consensus in the ColdFusion community is no, that should be the job of your Persistence objects (DAO/Gateway/Other). However, there is no law stating that you can't have CRUD (Create, Read, Update, Delete) methods in your bean. You could even abstract the CRUD methods out and have your bean call your abstracted CRUD methods. As always with these things... it depends!
I'm sorry that I can't show you "one true way". Every technique has it's pros and cons, but it is important not to think to you must have a Bean, BeanService, BeanDAO and BeanGateway. This is a common approach in the ColdFusion community, and has a lot going for it, but it is not the only one. Hopefully I've got you thinking about how you want your applications to be constructed to suit your needs, rather than just doing what seems to be the right way.