|
|
DesignThe basic design provides three layers, the Amazon Web Services (AWS) layer provided by Amazon (the EIS), a EIS integration layer (modified Axis generated classes) and the Data Access Object (DAO) layer (note that the transfer objects are containing in this layer). A client application (for example a J2EE web app) sits on top of this and accesses the AWS through the DAO layer as shown below; Communication to the AWS layer is via SOAP (XML), the Axis EIS layer generates the SOAP messages, making the calls and translating the XML based responses into auto-generated JavaBeans. This can be seen as a DAO type layer in itself. However, the JavaBean APIs created are based on the AWS WSDL and are fairly complex and unintuitive to use. Therefore, the AWS Integration project's DAO layer abstracts this further into simple DAO interfaces and straight forward transfer objects (JavaBeans). The general communication (going up the layers is shown below). A closer look at the design shows that the DAO layer contains a DAO factory, this is used to retrieve concrete DAOs. Each DAO is concerned with a different area, for example, their is a DAO for books and one for DVDs. The basic DAOs are interfaces which are implemented by specific mechanisms. In this case, the system provides SOAP based DAOs but REST based ones or even JDBC can be used. This is summarised in the diagram below. Another nice feature of the system is that the selection of concrete DAO to use is configurable, the DAO factory seamlessly picks the concrete DAO to use based on your settings. The factory is also responsible for selecting the correct implementation for your locale. See the JavaDoc for more details.
|
|