Chapter 6. Service Classification
AS DISCUSSED IN Chapter 3, THERE ARE DIFFERENT WAYS TO DEFINE SERVICES, AND SERVICES CAN have different attributes. Even within the same context or landscape, services can differ. For this reason, it’s impossible to formulate one common, concrete definition of the term. The variety of business functionality is enormous, and services serve very different purposes and play very different roles. Some services read data; others write it. Some services have simple, fast effects; others perform complicated workflows. Services might have access to no, one, or multiple backends. As with objects in object-oriented programming, there is an enormous variety among services. Thus, it makes no sense to try to deal with all of them in the same way. Correspondingly, it makes sense to categorize services when common differences among their properties become clear.
In this chapter, I will discuss some different categorization approaches. As usual, I won’t prescribe general rules, but rather will try to provide a good starting point from which you can make decisions for your concrete SOA.
Of course, there are multiple ways to classify services. I’ll begin with a technically driven approach that is pretty common in the community (although different terminology is sometimes used). I start with this approach because, in my opinion, it is the best way to categorize services in such a way that it is easy to introduce different SOA layers and stages of expansion. I will then ...