Maybe I’m just getting too old, but sometimes buzzwords cause me more confusion than anything else. For the past two years, whenever web services development was discussed in terms of either Process Integration or Composition Environment, I’ve often heard the terms “Inside Out” or “Outside In” development. Now I knew that one meant you started with an interface and one meant that you started with the service already implemented, but I could never keep them straight. The following exceprt from the documentation on the Enterprise Services Repository has set me straight and relates these terms to other names that are more commonly used outside of SAP:
The problem posed by the use of different programming languages is overcome by encapsulating an existing function in a system (such as a function module or a method of a class) using a Web service. … Thus, this involves passing a programming-language-independent description of a function in a system to another outside application. Hence the use of the term“ inside-out development”.
SAP NetWeaver adopts the outside-in approach, which basically involves two steps:
1. Development of the service starts in the Enterprise Services Builder (ES Builder). In contrast to inside-out development (which publishes an existing function by generating a WSDL document based on the function), the ES Builder creates the service implicitly as an WSDL document in the Enterprise Service Repository (ES Repository).
2. To implement or call a service, developers generate proxies in the relevant application system for the service from the ES Repository. Developments therefore begins outside the application system and is then continued in the application system (hence the term outside-in).
In place of “Outside-In” and “Inside-Out” the following terms are used in the SOA world: “Contract-First” and “Code-First”; “Top-Down” and “Bottom-Up”.