Chapter 18. Model-Driven Service Development
SERVICE INTERFACES IN HETEROGENEOUS ENVIRONMENTS REQUIRE A LOT OF CODE. MOST OF THIS CODE often has the same structure, differing only according to the different parameters, exceptions, and other configuration data. This is a perfect situation for the application of code generators, or, to use a term that is more hype, model-driven service development (MDSD). (The S in MDSD more typically stands for “software,” but as we’re talking about services here I’ll use the alternative “service.”) Model-driven service development encompasses code both for the provider and for the consumers.
Generated Service Code
Because SOA is a concept for heterogeneous environments, you might need a lot of different code to implement and call a service. However, aside from the implementation details, the structure of the code is usually pretty much the same for any given platform. Thus, code for two different services will differ only in the specific data transferred, including aspects such as message exchange patterns (see Chapter 10).
The code that deals with this data conceptually (code to map the middleware protocol to an API, code to deal with security and reliability, and so on) will be pretty much the same. You could use libraries and frameworks to deal with the commonalities, but this approach has limits. Somewhere, the specific behavior of a specific service must come into play, and unless you provide full generic solutions, you’ll need code that operates ...