Service Oriented Architecture
The advent of sophisticated browser based MVC frameworks means a Service Oriented Architecture will become increasingly important. The server presents a service layer to the client using SOAP Webservices, REST, JSON or the GWT RMI.
WebServices
I have used the Apache Axis webservices toolkit extensively. Though the software works well, it is impossible to integrate the code generated by the WSDL compiler into a JSON or GWT environment.
My preferred solution is to use the Castor XSD compiler. The java beans generated by the Castor compiler can easily be integrated into
- a Webservices service layer using Spring Webservices
- a JSON service layer using JSON-RPC-JAVA
- a GWT environment using the GWT RPC mechanism.
REST and SOA
Service layers like WSDL and JSON services are consumed by applications. The Internet is used by people who use web browsers.
REST proponents makes some interesting assertions:
- The RESTful Web Services Book asserts in Chapter 2 that "Web Services are Web sites".
- The Restlet open source project suggests that you "Leverage our innovative REST engine and start blending your Web Sites and Web Services into uniform Web Applications!".