SOA as a software system, if the law technically have the same - that is "always change", changes have also raised of how to architect effective version of the SOA management requirements. Boris Lublinsky recent Microsoft Architect magazine, respectively ("Microsoft Architect Journal") and the IBM Developer Works author, about his relevant experience.
Changes in business environment often requires the realization of IT services to make changes accordingly, although through a lot of new technology or mode of implementation experience to help us provide high quality service, making possible the realization of a small change, but the IT and technology itself - - operating system, development tools, programming languages often lead to realization of the change. SOA itself is an effective mechanism to adapt to change, because it depends on the abstract "service" rather than specific "business process", so when business needs change, the general use of the service the following business process change - changes or reconstruction, also for this reason, SOA environment depends on the service and the development of no less than the component interface. Moreover, in the very particular about SOA services such as autonomy, that is, independent of each service to maintain and modify. When the contradictions and the "autonomy" and "integration" of the time, SOA also to be considered when the version management. Boris Lublinsky 3 in the text that caused the main cause of this problem:
Service interface changes.
Message changes, can be further subdivided into "small" change ("optional" / "must choose" change, the introduction of new global element, etc.) and "big" changes (changes the global elements, modify enum value, etc.).
To achieve change. Theoretically, this will not lead to the service interface changes, but the total handling some "pre" and "follow-up processing" class action, called the order did not change, but change the context of dealing with the same result in different final results. For example: increase the parameters of inspection, some before the call to become a successful failure; security before there is no data source (Data Origianl) limit, add, and it does not comply with security policies can lead to call failure.
For these three cases, Boris Lublinsky made the following two solutions.
Single service method terminal address (EndPoint Address) Add version parameter: that is, when the call to service, while telling a version of terminal services, parameters, according to the parameters of the decision by the service terminal which version of the service method call.
Different versions of the service method has its own terminal address: This mode does not require service method to add a version of the previous scheduling mechanism, the client application to use and own "take on" the service method.
Although the former version of the introduction of new services in the way that has little effect on the client, but will bring the complexity of the package, but with the "pots and pans," the increase, for each service method to maintain a very troublesome if then else. An improved approach is to focus on all of them to a Broker or Mediator on the version of choice to determine the job to it, but because of improved methods to increase the intermediate links, so there is loss of performance.
The latter achieved the Side-by-Side Execution of the target, reducing the client and the coupling between service methods. Of course, this price to pay, in need of services at the address on the registration database is more flexible, allowing users with its SOA find that its version of the service method.
In addition to application-level SOA version of the problem, more complex version of a SOA based environment, including: transport mechanism of the changes (for example: HTTP call to become a queue call) and message encoding of the change, Boris Lublinsky given The answer is simple - Adapter. Compared with "endless" business services, based on the environment is more a "relatively limited" technical mechanism for the development, therefore the amount Adapter (or Integrated workload) in a period of time is stable.
Although the application of SOA in many domestic enterprises, or initial stage, but once on the boat, follow-up operation and maintenance work will be getting heavier and heavier, not to mention a lot of businesses on the positioning of the SOA is used to "sort out" the entire enterprise collaboration between business-critical systems. In order to coordinate the SOA environment, it is management of the preparations to establish SOA version of the time.