Enterprise Resource Planning

ERP Journal on Ulitzer

Subscribe to ERP Journal on Ulitzer: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get ERP Journal on Ulitzer: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

ERP Journal Authors: William Schmarzo, Jason Bloomberg, Cloud Best Practices Network, Elizabeth White, Greg Schulz

Related Topics: Java EE Journal, SOA & WOA Magazine, ERP Journal on Ulitzer

J2EE Journal: Article

Oracle SOA Suite

An integrated and standards-based platform

The Business Scenario: Order Processing
An order-processing application is a classic example of an SOA application. Imagine a fictional original equipment manufacturer that sells widgets to its customers.

The company uses a virtual inventory business model. Let's say the company deals with two primary suppliers to fulfill orders - Select Manufacturing and Rapid Distributors. The company wants to build an order processing application using SOA principles, secure it, and provide operational dashboards to managers. In this section we show how we can do this using Oracle SOA Suite. Oracle BPEL Process Manager orchestrates all the existing services in the enterprise for order fulfillment with the right supplier; Oracle BAM is used to monitor the order status and other issues; and Oracle Web Services Manager is used to secure and manage the Web services.

In the first step of the process, the company receives sales orders from different channels. Customers are identified from the orders and checked against a credit rating service. The orders' line items are then passed to the two suppliers for price quotes. The process collects the quotes and selects the supplier with the lowest quoted price. This information is passed to the business managers for approval along with other details, including the sales price and the supplier-quoted price, for margin reviews. Once approved, the order is sent to fulfillment. An acknowledgment is sent to the order-placing channel, confirming the acceptance/rejection of the order.

Let's examine the different activities and features of Oracle BPEL Process Manager and see how a developer designs the order processing process. Figure 1 shows the order process in Oracle BPEL Designer:

The order-processing scenario uses various Web services from different suppliers for quotes. For this evaluation, we used a database to insert approved and rejected orders. We liked being able to configure these adapters with graphical wizards. This, in conjunction with many out-of-the-box adapters, will make developers happy.

Since more than one supplier can provide a quote, these services should be called in parallel. We were able to quickly do this by dragging and dropping the BPEL parallel flow activity into the process and adding the necessary logic to it.

To process the orders, you must send them to different applications. This data must be transformed into an application-specific format. Using the XSLT mapper for this transformation was easy, thanks to its drag-and-drop nature. The transform activity takes source and target objects and transforms them through one-to-one mapping, which creates XSL. The XSLT mapper supports various built-in functions.

We implemented an order approval workflow by dragging and dropping the User Task activity into the BPEL flow.

During order processing, users must be notified about their order status. Oracle BPEL Process Manager offers a cool notification services feature: you can notify users by e-mail, SMS, or VoIP by dragging and dropping the notification service into the workflow and configuring a mail server.

In an SOA world, where multiple applications from various company departments take part in a process, business exceptions become critical. With just a few mouse clicks in the Scope Activity, we were able to add fault-handling to our process. Oracle BPEL Process Manager provides easy-to-use constructs such as compensation handlers and catch activities to manage business exceptions.

Moving on to administration, the Oracle BPEL Process Manager console is a great tool for administrators to gather information at the process level. We were able to deploy and trace each and every one of our processes, and it was helpful to be able to visually inspect any process and drill down into it. You can even see the sequence of interactions and XML payloads for each in-flight process in the BPEL Console.

In our scenario, different users from different channels access the process, and you must secure and manage these services. Let's see how Oracle Web Services Manager does this.

Once the order is submitted, you must authenticate the customer information before performing the credit check. The credit rating service should return the results within 30 seconds. The process should monitor the number of authentication failures; if failures exceed a 20% threshold, it should notify the customer and manager. Interactions should also be logged for auditing purposes.

It was fairly easy to configure the gateway using the Web-based console included with Oracle Web Services Manager. The gateway virtualizes the underlying Web service, hiding the address details of the service. We were able to successfully configure the gateway to route customer orders based on the size of the order (content-based routing), but we would have also liked to see the routing based on the source of the message, such as the IP address (context-based routing).

Next, using the console, we registered the service with the gateway by providing the WSDL URL of the service. This generated a new URL to access the Web service. At runtime, when the gateway receives a request, it routes the request to the actual Web service.

We wanted to see how easily we could define policies on Web services. Using the Policy Manager of the Web Services Manager, we defined the steps as:

  • Decrypt the XML payload containing the order and customer information
  • Perform customer authentication against an LDAP directory
  • Log failures
  • Monitor a SLA indicating that the credit check service should complete its execution in 30 seconds
This was easy to define using the console. It's a great idea to group all these steps into a policy pipeline that can be reused. This lets developers build a policy template and apply it to other Web services.

In addition to the pre-built policies included with the product, Oracle Web Services Manager lets you define custom policies. This is handy when you have fine-grained security requirements within your organization.

We also defined some service levels to see how easy it is to define SLAs in Web Services Manager. The service level we monitored had a number of authentication failures on a particular service and set an alert when it reached a threshold. This was also easy to define since Oracle Web Services Manager logs all interactions, whether they're failures or successes. Figure 2 shows the monitoring dashboard for our order booking service.

Now let's see how Oracle BAM can monitor the business and create operational dashboards for business users.

In our scenario, we wanted to monitor some KPIs, including the number of:

  • Pending orders (those waiting for suppliers to respond)
  • Rejected orders (due to bad customer credit)
  • Rejected orders (due to customers with orders greater than accounts payable)
To continuously monitor business performance, there must be direct communication with business processes. Oracle BAM can collect business events from any source. However, in our particular case, we could pre-instrument the BPEL order processing process with sensors at various steps in the flow, and route the data to Oracle BAM, JMS or database. Applying sensors to steps within a BPEL Process proved to be very easy - you just configure the step to publish into Oracle BAM. Whenever the order booking process is started or completed, the data is sent from Oracle BPEL PM into Oracle BAM and the dashboard - in this way we could monitor average completion times.

We used the Oracle BAM Architect tool to create data objects from the data coming in on the JMS queue from BPEL PM. Once we defined them, we used Oracle BAM Active Studio to design our reports without worrying about the underlying metadata or rules. This demarcation of responsibility (developer vs. business user) not only facilitates cleaner development but also lets the business community define its own dashboard - as long as the data sources have been registered with BAM, a business user can build a real-time dashboard with them.

Creating reports was intuitive, thanks to Oracle BAM Active Studio's drag-and-drop interface. Once deployed, the dashboard offered a rich collection of reports such as multiple filters, drill into, drill across, moving time-slice window, alerts, and navigation across objects.

We configured a dashboard that showed us incomplete orders. We were able to drill down from the dashboard to the order level to find out exactly which orders had the problem and analyze them individually. It would have been nice to drill down from the order to the actual BPEL process instance, which we managed to do by rolling up our sleeves. Figure 3 shows the BAM dashboard that we built.

Oracle SOA Suite offers a comprehensive and standards-based functionality. All of its components are designed with developers in mind. Whether it's ease of use or a high degree of customization, Oracle SOA Suite helps developers' productivity. Oracle BPEL Process Manager is a good tool for orchestrating services. However, it doesn't offer extensive business process analysis and analysts might find it challenging to model business processes with Oracle BPEL Designer unless they had help from a developer. Oracle Web Services Manager is ideal for securing the entire SOA infrastructure including services and business processes developed using Oracle BPEL Process Manager. Oracle BAM provides an intuitive framework for defining and monitoring KPIs.

One of the greatest advantages of leveraging tools from a single vendor is a high level of product integration. Oracle has done a good job of integrating its development and run-time environment across all components of Oracle SOA Suite. However, it falls a little short in offering a 100% integrated administration console; we hope this is going to be addressed in future releases. Finally, we were impressed with the interoperability Oracle has built into its products. Oracle BPEL Process Manager can work with all J2EE application servers; Oracle Web Service Manager can secure Web services running on BEA or IBM; and Oracle BAM can monitor data from any data source. This will help developers build solutions without having to rip apart existing applications.

Whether you're embarking on an SOA initiative or already in the middle of an SOA project, we recommend you review Oracle SOA Suite. Its combination of Oracle JDeveloper, Oracle BPEL Process Manager, Oracle BAM, and Oracle Web Services Manager offers an integrated and standards-based platform to build, automate, monitor, and secure your SOA.

We rated Oracle SOA Suite on a scale of 1 to 10, using the following criteria. (These scores are based on the collective assessment of the product evaluation team. See table 1.)

More Stories By Feroze Mohammed

Feroze Mohammed is the senior vice president, product engineering, custom development and integrations, Sierra Atlantic, Inc. He is also responsible for Sierra Atlantic's own R&D and product development initiatives. Feroze holds an master's degree in computer
applications from the University of Hyderabad.

More Stories By Lawrence Pravin

Lawrence Pravin is the product manager, Process Integration Packs, Sierra Atlantic, Inc. He has over 10 years of experience in packaged applications, and has deep integration expertise with Oracle, PeopleSoft, Siebel and SAP applications. Lawrence holds a computer science and engineering degree from the University of Madras.

Comments (4)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.