Sunday, July 30, 2006

AOP and SOA Implementations

We are all familiar with the good old fashioned principle of separation of concerns and thanks to Thomas Erl we know how it's a fundamental principle behind Service Oriented Architectures. But we mostly think about separation of concerns at the architectural level. It's also a good idea to apply the separation of concerns at the implementation level, when coding the services that make up the SOA. This is where the techniques of Aspect Oriented Programming come in. While separation of concerns is a design principle, AOP allows you to carry it through to implementation. The Spring Framework is a nice lightweight Java framework with very good facilities for AOP. There's a companion security system for Spring called the Acegi Security System that allows you to secure your applications developed using Spring. Both of these frameworks provide very nice alternatives to JEE for developing Web services. I'm working on an article that shows you how to develop secure Web services using Apache Axis, Spring, and Acegi. Sure, there are plenty of ways to implement Web services but using Spring allows you to use its AOP facilities to drive the separation of concerns down into the implementation. Spring itself also has support for Web services, but since I'm more familiar with Axis, I decided to go with Axis for the example in the article. Acegi has some pretty nice security functionality but to be able to use it to secure Web services developed with Axis requires a bit of work to bridge the Web service security context from Axis into the Acegi security context. This is one of the things that I will show in the article. Stay tuned, I will post a link to the article once it becomes available.

, , , ,

No comments: