A futher look at Oracle ADF overview
As I notice, with Oracle ADF it looks like it is free to deploy on any Oracle-based application server (i.e. WebLogic). Deploy it on non-Oracle app servers (i.e. JBoss, IBM) or web container (i.e. Tomcat), you have to pay for licences.
Another thing to note is the architecture for Oracle ADF (
http://download.oracle.com/docs/cd/E...o.htm#BHCFFJHC). A software architecture typically has the following layers:
application -> service -> domain/model -> gateway -> data source
where
application - the presentation layer is implemented here. Normally, the MVC pattern is used.
service - acts as a facade between the application and domain layers. Also handles distributed transactions, exceptions and logging. The Service or Facade pattern is used.
domain/model - business rules, entities and data transfer objects are defined here. Normally, the Strategy pattern is used (but Template pattern can be used optionally).
gateway - similar to a DAO, where objects are mapped to the data source. Gateway or DAO pattern is used.
data source - can be a database, web service, xml, etc.
Looking at their architecture they've highlighted the MVC, which I interpret it as the application layer. But then have a Business Services (perhaps indicating the Service/Facade + Strategy + Gateway/DAO patterns) and then a Data Services (indicating the data source). My question is around the Business Services, as to what patterns they use.
Its probably worth asking the questions to Oracle, and get a deeper view of the patterns adopted, with any implementation examples (hopefully, with an unbiased opinion).
A futher look at Spring overview
In contrast to Oracle ADF, its free and free to deploy on any application server or web container. It is a recognised product and is classed as the de facto standard for enterprise application development.
You can pay for additional support from Spring Source, and training is provided by Spring Source as well as other training vendors.
Also, there are modules provided for security, integration, batch processing. Spring also integrates very well with other frameworks/technologies such as Struts, Hibernate, Mule ESB and even TopLink. A number of IDEs also recognise Spring (Eclipse, NetBeans, IntelliJ IDEA, etc.). Not to forget there is Spring.NET (
http://www.springframework.net) for .NET developers, and Spring Phython (
http://sourceforge.net/projects/springpython/) for Python developers.
The framework blends in well with the application -> service -> domain/model -> gateway -> data source layers.