Separation of Concerns
Figures 1 and 2 illustrate a widely practiced programming concept called separation of concerns or maximum separation of distinct operations. In the context of a service-oriented operation, the principal separation of concerns occurs between Apache Axis and the application server. Axis enables you to define your service and you then deploy the service on Tomcat (or some other application server).
The details of creating and deploying Axis services are well described in the Informit Java Reference Guide, so I won’t bore you by repeating them here! One important issue to remember with service orientation is that services have a life of their own, that is, there is a notion of a service lifecycle. The service lifecycle phases can be described as follows:
- Design—on paper or in some design tool
- Implementation—in source code form
- Test—in a development toolkit
- Deployment—on an application server platform
- Update—via a source code change and redeployment
- Retirement—taking the service off the application server and replacing it with another service
In relation to Figure 1, the action of deploying a service results in exporting that service to the consumers. Once exported, the service can then be accessed via a web browser (that is, a human user) or it can be consumed programmatically (by other application software). The key point here is that to consume the exported service, you no longer have to delve into the underlying IT infrastructure.
Adopting service-oriented IT can be phased in over a period of time. In other words, you can have a mixture of Figures 1 and 2 as you migrate your services. Though such an infrastructure might be a complex proposition, it does have the merit of not requiring you to migrate all applications and services in one go. You can start with non-critical services, migrate them, test them, and then move onto more critical services.
Apache Axis and Tomcat provide a good platform for the service-oriented approach.