The application integration technology market is adapting to digital business requirements. A mix of mature ESB suites and emerging iPaaS- and iSaaS- based offerings provides broader options for application leaders to modernize integration infrastructure toward a hybrid integration platform.
As the saying goes "there are many ways to skin a cat". There are also many ways to do Cloud Integration. We are told that the 'proper' way of doing integration is to use fully baked SOA software solutions such as Oracle's SOA Suite, Mule, Jitterbit, Dell Boomi etc. Sometimes this kind of software is absolutely the right choice, but all too often it is overkill. Many small to medium sized businesses (and even large corporations) just need a secure, reliable and platform agnostic method of integrating data. Oracle's Exadata Express with ORDS, the Oracle Database and the APEX_WEB_SERVICE API provide all of this at a fraction of the cost. Did I mention you get a scalable web development platform thrown in?
To illustrate this right sized integration approach, I want to take you through a use case that involves our company JMJ Cloud. Having worked for Oracle Consulting for 18 years, I am familiar with the concept of eating one's own dog food. In view of this, using Oracle tools to integrate our internal systems seemed like the right thing to do. The thought of paying thousands of dollars a month to do this, however, did not make much sense. We opted instead for Exadata Express and it turns out that eating your own dog food is tastier than you might think!
- Capturing consultants time
- Handling our financials, invoicing, paying vendors etc.
- Project and task management
- Software code packaging and deployment
- Tracking new opportunities and recruits
Capturing Time (Service Desk to Exadata Express)
The diagram shows the flow of this real-time integration:
- A ticket is entered by customer in Service Desk.
- A WebHook in Jira calls a REST Service in ORDS in real time, passing the Ticket ID.
- The ORDS REST service uses APEX_WEB_SERVICE in Exadata Express to call back to a REST Service in Jira. Doing this allows use to pull just the information we need from the ticket and save it to a table in Exadata Express.
- The consultant logs in to the APEX time entry application and selects the ticket to enter their time against.
- Finally, the customer can login to their APEX portal to see time entered against each ticket.
Capturing Costs (QuickBooks Online to Exadata Express )
We schedule a feed of all invoices and expenses to Exadata every 15 minutes. This allows us to build sophisticated reports on our costs. In addition, we make contractor invoices visible with their Apex portal so they can confirm that they have been entered and see when a payment has been made.
The diagram shows the flow of this scheduled integration:
- Supplier invoices and expenses are entered directly into QuickBooks or imported from bank or credit card statements.
- A scheduled job in Exadata Express is created using the CLOUD_SCHEDULER built-in package to run every 15 minutes.
- The job calls REST web services in QuickBooks Online using APEX_WEB_SERVICE, returning new or updated costs in a JSON document.
- The JSON document is processed into Exadata Express and becomes available for reporting.
- Managers analyze expenses and third-party invoices with the APEX management portal.
- Consultants can log into their APEX portal to confirm that their invoices have been received, entered and see the invoice payment status.
Exadata Express Highlights
- Host REST web services via ORDS (with OAUTH2 security built in)
- Call out to SOAP and REST services using APEX_WEB_SERVICE
- Schedule integrations using CLOUD_SCHEDULER
- Build beautiful and performant web applications using APEX
- Cloud Integration and PaaS for Everyone
- Cost effective ($175 / month)
- Be a little quicker to upgrade APEX as new versions are introduced.
- Enable DBMS_CRYPTO, rolling your own HMAC-SHA1 via PL/SQL is about as much fun as it seems when you don't have the ability to call Java Stored Procedures. We'll be blogging how we did this as part of an upcoming post on Exadata Express and OAUTH authentication.