Setup: Oracle SOA Suite and Amazon EC2
To understand the merits of EC2 combined with Oracle SOA Suite, we set up a joint Oracle & Amazon architecture as shown in Figure 1. We started by loading Amazon EC2 WSDL and Amazon S3 WSDL into SOAPSonar, a SOA testing tool from Crosscheck Networks . The EC2 and S3 Web services interfaces provide full provisioning control with capabilities such as stopping and starting servers in EC2 and creating and viewing image storage buckets in S3. It is this provisioning through SOAP messaging, without having to write a single line of code, that makes Amazon EC2 and S3 so powerful. For detailed setup instructions see Using SOAPSonar to Provision Amazon EC2 .
We continued our provisioning process by starting a clean, publicly available Linux Amazon Machine Image (AMI). Once a base Linux image was up and running in the Elastic Cloud, we installed Oracle Application Server 10g (OC4J). Using Oracle JDeveloper, we built a couple of simple web services getServerInfo() and getDate() and deployed them on our OC4J instance running in the Elastic Cloud. Once we were happy with the base configuration of our OC4J Application Server, we bundled the image (EC2 chops the image into small manageable parts), uploaded it on Amazon S3 in a storage bucket named oc4j, and finally registered the image with EC2. When an image is stored on S3, it is fully preserved for future instantiation by EC2.
Figure 1: Oracle SOA Suite components deployed with Amazon EC2
As shown in Figure 1, we started two instances of our new Oracle Application Sever image using SOAPSonar as a Provisioning console. Next we installed Oracle BPEL Process Manager outside the Amazon Cloud for use as an orchestration engine across the two instances of Oracle Application Server.
We loaded the Transactional WSDL generated by the Oracle Application Server instances and the WSDL generated by the BPEL engine into SOAPSonar. The transactional WSDLs gave us the ability to unit test each instance of OC4J and system test the BPEL engine from within the SOAPSonar console.
Our setup was complete. We had both Provisioning control and well as Transactional control over our SOA infrastructure deployed in Amazon’s Elastic Compute Cloud.