Amazon EC2 and Oracle SOA Suite a Strong Combo
Agility meets extensibility in the combination of Amazon EC2 and Oracle SOA Suite 10g
By Mamoon Yunus, Rizwan Mallal, and Dave Shaffer
Jan 14, 2007
The union of Amazon Elastic Compute Cloud (EC2) and Oracle SOA Suite is a match made in heaven. Recently, we tested Amazon EC2 by marrying components of Oracle SOA Suite with EC2 to demonstrate how utility computing and SOA are shaking the foundations of current IT provisioning, development, deployment and maintenance models. This article examines how SOA technologies enable utility computing to move beyond the vision stage and become a reality.
Amazon EC2 is a massive farm of Linux servers at your finger tips. It enables you to bring up a single server or many server instances -- all installed with preconfigured Linux images -- with a single command. You can use pre-packed Linux images provided by EC2 -- public images are currently available that include Apache and MySQL -- or build new images and upload them to Amazon's S3 storage service.
Organizations have to anticipate expected load/traffic and plan the capacity accordingly, but they often waste capacity during idle time. Amazon EC2 eliminates the need to do capacity planning. Organizations can use the dynamic provisioning of Amazon EC2 instances to scale up and down based on the load, making optimum use of the infrastructure, smoothing out utilization curves, and saving costs.
The recently released Oracle SOA Suite 10g is a packaged set of standards-based components for enabling web services-based SOA. Oracle SOA Suite covers web services development, orchestration, monitoring, and security. Within the SOA Suite, Oracle BPEL Process Manager orchestrates transactions across disparate applications within and across corporate boundaries. But across all such technologies, what is important in the context of this article is that they be Web-service enabled and support a grid computing model where several low-cost servers can be deployed in a cluster to provide scalability and high availability.
Web services-based SOA has fundamentally changed how applications integrate. Add on top of that Amazon EC2 to host your business operations, and you get a potent combination. The significant, yet unnoticed breakthrough of Amazon EC2 is in its ability to spawn up a server instance by a mere web-service call. In addition to a command line interface, EC2 provides a detailed provisioning WSDL that can be used by any web-services application to dynamically control (e.g., run, terminate, authorize) Linux instances within the Amazon Cloud.
This EC2 provisioning enables WSDL-aware products to readily call into EC2 through SOAP-based messaging. Because of this approach, SOA platform products and orchestration languages like BPEL can now be extended beyond their typical application development role to also manage infrastructure provisioning. Now the same components which run business applications can also control dynamic provisioning and maintenance of the very physical infrastructure that they are deployed on. With Amazon EC2, for the first time, SOA components are aware of and in control of their host machines and can clone new instances of themselves based on environmental factors such as user load, available resources and cost.
Shifting Sands: New Business and Usage Models
Amazon Elastic Compute Cloud is a pragmatic beginning to utility computing that has the potential of transforming how IT assets are used. With EC2 a number of new business models and shifts are emerging such as:
Software Rentals: Software as a Service (SaaS) now moves from renting entire business applications such as Salesforce.com and NetSuite to renting industrial strength software components. Companies like Oracle, SAP, BEA and IBM now offer SaaS but have to create their own enterprise-strength infrastructure for it and typically only offer entire packaged applications through this model. An external compute capacity provider like EC2 brings the same capability to all organizations, while grid-enabled SOA infrastructure and applications mean they can actually take advantage of it.
Of course, open source software fits this model particularly well. In EC2 beta, Amazon has provided public images of Apache and MySQL, indicating the direction of things to come.
Zero-Configuration Services: AMIs are pre-configured, pre-packaged templates that can be instantiated by a simple web service call. Software vendors can "ship" their products in the form of pre-configured images that will never require any sort of configuration and/or installation and it just works. With the ability to pass in configuration data to instances at launch time (Parameterized Launches), AMIs can be created more generic in nature and vendors can "ship" generic images and instantiate instances with "editions." For example, an Oracle AMI can be packaged to spawn an "Oracle App Server with 8i DB" Instance or an "Oracle App Server with 10g DB" Instance.
Value-Add Services: Much like StrikeIron and Xignite provide Functions for Rent, a new breed of service providers will emerge that harness the scale of Amazon EC2 to provide and charge for general purpose and business specific Web services.
General purpose web services are independent of business process and can include operations such as time-stamp, sign, encrypt, validate, or archive a SOAP message. Business specific services are related to core business functions and may include operations such as calculating mortgage payments, sales commissions, or sales tax. Rentable business-specific operations may mature into manageable modules of complex business processes such as processing insurance claims, aggregated items catalogues or fulfilling customer orders. Amazon EC2 Images can be shared with other users, and this will enable users to reuse already existing AMIs (created by other users) that are completely pre-configured with installed software (say Oracle App Server with Oracle 10g DB and Ordering BPEL process)
IT Asset Marketplace: Amazon EC2 is ideal for building shareable and reusable services. For example, User 1 can share with User 2 an entire pre-packaged EC2 Linux image with configured applications. Imagine an "AMI Marketplace" where users could shop for Images and reuse and in fact even start working on somebody else's unfinished work (AMI). The marketplace concept could be further extended to enabling corporations to sell their under utilized assets dynamically and buy required assets from sellers. IT asset trading exchanges could become a possibility although such exchanges would only follow heavy commoditization and liquidity of such services.
Outsourcing Testing: There will be a new twist in Quality Assurance and Testing, especially the outsourcing companies. Since Outsourcing companies can provision instances as "testboxes" and since they only pay for as much as they use, they now have the ability to bill their customers for infrastructure they used for a project and also relinquish the "testboxes" when the project is over. Not to mention, they can get as many test boxes as they need at their disposal for stress/load/functional testing.
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.
Grid Orchestrator: BPEL Engine
Oracle BPEL Process Manager is a natural infrastructure fit for a utility computing-based SOA. Typically, BPEL engines are used to orchestrate and execute business processes. However, in our setup we deployed a BPEL process for SOA traffic management such as failover, switching, load balancing and parallel processing across the Oracle Application Server instances in the Amazon EC2 cloud. While there are lots of ways to handle traffic management, many of which are more appropriate than BPEL, this was an interesting architecture because it demonstrated the dynamic capabilities " here including dynamic orchestration of services, provisioning and even run-time traffic across the instances on the cloud.
Let's examine a few of these traffic management functions across multiple copies of a web service. Figure 2 shows a simple BPEL process modeled using Oracle JDeveloper.
Failover: To see how Failover can be accomplished, consider Figure 2 with an Invoke_OracleAppServer_on_Amazon_EC2 task in the BPEL process calling a Partner Link Amazon_EC2 . This Partner Link has a property named location defined with two service endpoint URIs listed:
- http://domu-12-31-34-00-00- 0d .usma2.compute.amazonaws.com:8888/EC2
- http://domu-12-31-34-00-00- e0 .usma2.compute.amazonaws.com:8888/EC2
These endpoints only differ in the URIs and provide identical instances of the web services hosted on Instance #1 and Instance #2 on EC2. The number of instances can be scaled by a single EC2 command the corresponding additional endpoint URIs can be added to the location endpoint URI list. The BPEL engine provides extensive fault handling capabilities including managing runtime exceptions . If the first Amazon EC2 instance URI becomes unavailable because of a network, software or hardware failure, a run-time fault occurs that automatically enables the BPEL engine to retry the second instance URI.
Figure 2: BPEL Flow for Failover across OC4J instances deployed within Amazon EC2
Using such failover techniques adds resilience and reliability to Web services hosted with Amazon EC2. Oracle BPEL Process Manager extends the virtualization capabilities of Amazon EC2 by adding failover across multiple instances of web services deployed in the Amazon Cloud.
Switching: Figure 3 is a process display for switching between two instances of Oracle Application Server deployed in the Amazon Cloud. The switching condition is defined in the case statement and can be based on any input parameter extracted from the client request. For example, a certain class of purchase-order numbers for platinum customers can be targeted towards Amazon 1 whereas others can be sent to Amazon 2 endpoints. Such content-aware switching can align resource costs with preferred customers and provide granular IT asset alignment with revenue.
Switching can be combined with other SOA traffic-management functions such as Failover. For example, Amazon 1 in Figure 3 below can have multiple failover endpoints " as shown in Failover Figure 2. This would ensure that the corporation is paying a premium for providing reliability only for high-value customers by enabling significant redundancy, whereas the low revenue generating customer would be sent to nominally redundant partner links.
Figure 3: BPEL Flow for Switching across App Server Instances in EC2
Additional Traffic Management: A few additional SOA traffic management processes are described below:
Dynamic Scalability: Oracle BPEL Process Manager provides a powerful mechanism called dynamic binding . This enables a BPEL process to decide which endpoint to call at run-time. A BPEL process can start off by invoking the Amazon EC2 SOAP API and calling the DescribeInstance operation. This operation can return a list of all instances running and available to the BPEL process within the Amazon Cloud. Once all the endpoints are known, dynamic binding can be used for failover, switching, load balancing or any other traffic management algorithm. This is called a "Parameterized Launch," which lets you pass configuration data at launch time and you can also "read" Instance Metadata like IP address, DNS, and so on, from the EC2 API.
Concurrent Processing: Oracle BPEL Process Manger provides Parallel Flows to perform multiple tasks at the same time. Selected computationally intensive processes can be deployed within Amazon EC2 and Parallel flows within a BPEL engine can be used to control client interaction with such intensive processes. With flowN activity, any arbitrary number of parallel branches can be invoked dynamically based on the upstream data available. For example, a process can first determine the number of endpoints available through an invoke call to Amazon EC2 DescribeInstance . If an array of say 5 endpoints is returned by Amazon, this data can then be sent to the flowN activity to create 5 branches for simultaneous invocations of the 5 Amazon EC2 instances.
SOA: Practice of Grand Unification
Oracle SOA Suite components and Amazon EC2 Grid Provisioning both provide native support for Web services. This enables Web services-aware client tools, such as SOAPSonar to act as a unifying console for end-to-end testing and management. Figure 4 shows a screen shot of SOAPSonar with a number of WSDLs loaded. As shown in Figure 1, the WSDLs can be categorized as Provisioning WSDLs , those that help manage the environment, and Transactional WSDLs , those that are used to pass SOAP messages for business processes. With a unified console such as SOAPSonar users can readily manage multiple Linux instances, manipulate storage, and test transactions across SOA components.
Figure 4: SOAPSonar Console controlling Amazon S3, EC2 and Oracle SOA Suite.
Within a complex SOA deployment that goes across corporate boundaries, a product like SOAPSonar can enable:
Provisioning: Control both hardware and software assets provisioning from a single console. User can create Linux images on Amazon S3, provision them on Linux Servers, start and stop such servers, add newer instance of an image stored on S3. Beyond just hardware provisioning, the user can also control software assets such as Oracle OC4J within the Amazon Cloud through simple SOAP API calls.
Unit Testing: Each software component can be unit tested independently from within the same console. A user can ensure that all published services are up and running and meet functional, performance, and interoperability base-line requirements.
Production Controls: Users can test SOA component reliability, scalability, fault-tolerance and availability by pointing the test console to different components within the SOA deployment and continuously checking the health of published services against established base-lines.
As shown in Figure 4, SOAPSonar provides Unified Provisioning and Transaction Controls for SOA components deployed in a utility computing model.
Dynamic Provisioning: We are starting to see enterprises deploy automated business processes using standards like BPEL and put in place rich real-time monitoring dashboards using Business Activity Monitoring (BAM) products like Oracle BAM. The power of BAM is that an organization can monitor in real-time how they are doing in terms of processing business transactions and meeting service level agreements. This provides business visibility into conditions that may cause SLAs to be violated. However, besides being aware of the problem, the real value here is only achieved when the problem can be addressed is a timely fashion. With utility computing approaches like EC2 that can be provisioned dynamically, we believe that self-regulating systems will start to emerge such that a system will identify a need for additional computing power, generate an alert (because people will always want to know about such a condition), and then automatically provision new grid servers to handle the surge in load. When the surge abates, the additional servers can be released. While such self-regulating systems may seem futuristic, all the pieces are in place today for them to emerge.
Optimized SOA
Amazon Elastic Compute Cloud is an ideal hosting environment for commodity SOA components. Web services-based administration and provisioning of Linux servers on-the-fly heralds a new era of dynamic traffic management. With such flexible SOA components, reliable, resilient, scalable and high-performance SOA deployments can be built on utility computing infrastructure that lives outside corporate boundaries. Some simple enhancements to the Amazon Web services API and open collaboration with the developer community as well as with commercial software vendors could position Amazon EC2 as the utility computing platform of choice. Overtime, business models, service level agreements, and regulatory requirements will all find a happy balance to optimize IT assets' efficiency. We anticipate that the Amazon EC2 cloud coupled with grid-enabled software like Oracle SOA Suite will help realize IT gestalt: The whole is greater than the sum of the parts. At the same time, the ability to share computing pools across many users can smooth out the issues of peak loads for much more efficient use of resources. This will enable an effect which could be called "economic gestalt": the whole costs much less than the sum of the parts .
Mamoon Yunus is CTO of Forum Systems and a pioneer of SOA Gateways & Firewalls. Prior to Forum, Mr. Yunus was at webMethods where he developed XML-based techology. Mamoon holds two Graduate Degrees in Engineering from MIT.
Rizwan Mallal is Technology Director at Crosscheck Networks and Chief Security Architect of Forum Systems. Previously, Rizwan held various positions at Sonicwall and Raptor (now Symantec). Rizwan holds a Masters in Computer Science from University of Vermont.
David Shaffer is Sr. Director of Product Management at Oracle for the Oracle SOA Suite and Integration products. Prior to Oracle, he has held leadership roles at a wide-range of technology companies including Collaxa, Apple Computer and NeXT Software. Dave can be reached at david.shaffer@oracle.com.
No comments:
Post a Comment