Our preceding weekly digests have elaborated on how a few generic tools and technologies can be made use of when SaaS-enabling a product. Now, we move onto technology and platform specific tools that can be used for the same purpose. This week, the focus is on the Java based Spring Framework, Spring Web Services and eFace
Spring Framework: It has a layered architecture and provides a better way to manage business objects. While it is most valuable in the middle tier as a good service design pattern, its configuration management services can be used in any layer. Its usage of the “Inversion of Control Principle” (also called the Hollywood principle – ‘Don’t call me; I’ll call you ‘) is well documented and can be leveraged for loosely coupled objects/components that form the foundation of a well-architected SaaS product. For instance Spring 2.5 provides comprehensive support for configuration annotations, thus underlying the framework’s core theme of flexibility and power.
Spring Web Services: It is a product of the Spring community focused on creating document-driven Web services. Spring Web Services aims to facilitate contract-first SOAP service development, allowing for the creation of flexible web services using one of the many ways to manipulate XML payloads. It is based on Spring itself, which means one can use Spring concepts such as dependency injection, as an integral part of one’s Web service. Spring-WS supports best practices such as the WS-I basic profile, Contract-First development, and having a loose coupling between contract and implementation. The other key features of Spring Web Services are powerful mappings, XML API support, flexible XML marshalling, WS-Security, etc.
eFace: It is a presentation framework developed using Java. It is the XAML/WPF equivalent for the Java world. It enables one to develop products with rich UI using declarative programming. It is well-suited for SaaS-products because it allows for template- based customization of UI.