Oracle PaaS for SaaS Experiences

This summer we attended the Oracle PaaS to extend SaaS workshop from Oracle. This five days hands on workshop consisted of presentations, live demos, and hands-on laboratory exercises covering Java, Doc, Developer, and Messaging Cloud Service.

So what SaaS are we extending?

As of today Oracle has several SaaS solutions available [2]. Ranging from HCM, Financials, CRM, to Project, Inventory, Cost and Order Management software. For this workshop we have used the Oracle Sales Cloud [3].

Oracle Sales Cloud is basically the Oracle Fusion CRM solution hosted in the cloud. It supports the entire sales process. From registering customer contacts, leads, opportunities, to the actual sale. Fusion CRM also easily integrates with the other Oracle Cloud applications, and has built in mobile capabilities.

Fig 1: Fusion CRM Sales Dashboard Fig 1: Fusion CRM Sales Dashboard
Fig 2: Fusion CRM: Edit Opportunity Fig 2: Fusion CRM: Edit Opportunity
Fig 3: Oracle Fusion CRM Opportunities in Simplified UI Fig 3: Oracle Fusion CRM Opportunities in Simplified UI

The benefits of using Oracle Fusion CRM as a cloud solution:

  • No need to invest in hardware
  • No need for a team to support the Fusion Middleware stack, or to set up Identity Management etc.
  • Software is updated by Oracle on regular intervals
  • The environments are available anywhere/anytime

To proceed with the workshop…

What’s to Extend?

Customers need integration with 3rd party systems. They also might want different front-ends for their users, or combine their CRM solution with other systems. There are numerous examples why customers would like to extend their CRM (cloud) solution.

  • Create your own Applications using Oracle Sales Cloud data (see Fig 4)
  • Create your own Mobile Applications using Oracle Sales Cloud data (see Fig 5)
  • Extend Oracle Sales Cloud UI to include additional functionality (see Fig 6)
Fig 4: Custom ADF Application running on Oracle Java Cloud Service. Showing ‘closed opportunities’ coming from Oracle Sales Cloud Fig 4: Custom ADF Application running on Oracle Java Cloud Service. Showing ‘closed opportunities’ coming from Oracle Sales Cloud
Fig 5: Mobile ADF application displaying Opportunities from the Oracle Sales Cloud Fig 5: Mobile ADF application displaying Opportunities from the Oracle Sales Cloud
Fig 6 : Fusion CRM Simplified UI – extended with a custom ADF form running on Oracle Java Cloud Service. The custom form enables us to store ‘additional data’ outside of the Oracle Sales Cloud Application Fig 6 : Fusion CRM Simplified UI – extended with a custom ADF form running on Oracle Java Cloud Service. The custom form enables us to store ‘additional data’ outside of the Oracle Sales Cloud Application

Oracle Sales Cloud cannot be customized, as one could do with a similar solution running on premise. In the cloud you don’t get access to the database or PL/SQL, and you are not allowed to do customizations on the SOA/ADF components of the applications.

Every extension in the Oracle Sales Cloud needs to be performed using composers. For third party integration, webservices are available to interact with Oracle Sales Cloud. This is where PaaS can come into play.

Oracle PaaS

Oracle Platform-as-a-Service is comprised of several platforms which can work together to form a complete cloud platform solution. A platform on which to deploy and offer applications to your end-users. 

A selection of Oracle’s PaaS offerings [4]:

  • Java Cloud Services
  • Database Cloud
  • Document Services
  • Developer Cloud
  • Java Messaging Cloud

You don’t need the entire offering. Just by using Java Cloud Services it is possible to deploy an ADF application which uses data from the Oracle Sales Cloud (see Fig 4).

Java Cloud Services

The Oracle Java Cloud Service is in essence a Weblogic server hosted in the cloud. On this server J2EE applications can be deployed, and used.

Oracle offers some web frontends to monitor and maintain the cloud instance. For more advanced configuration there is limited access to a command line shell.

Most applications will use data. Traditionally data is fetched and stored in a database. But it is fairly simple to retrieve and update data using webservices instead.

Like for instance data from webservices offered by the Oracle Sales Cloud. Just using the SalesParty related webservices it is possible to build an application for listing all customers and their contact information. This could be helpful for other employees in the organization who do not directly have an account on the Oracle Sales Cloud.

Fig 7 : Java Cloud Services using REST/SOAP to access data from Oracle Sales Cloud. Application on Java Cloud Services provides a web frontend. Also see fig 4 for an example of such a web frontend build using ADF Fig 7 : Java Cloud Services using REST/SOAP to access data from Oracle Sales Cloud. Application on Java Cloud Services provides a web frontend. Also see fig 4 for an example of such a web frontend build using ADF

Database Cloud

Oracle Database Cloud is simply an Oracle database hosted in the cloud. When combined with Java Cloud Services, one can build, deploy and run J2EE applications without the need for any other infrastructure (or platform).

The Oracle Database Cloud can be maintained using web-based frontends. One of these is the Oracle Apex frontend which can be used to view, load, and create database objects.

It can serve as the storage foundation for all other kinds of Cloud services.

Oracle Developer Cloud

In a nutshell Oracle Developer Cloud provides a development environment for the enterprise by hosting:

  • Source Control (GIT)
  • Issue Tracking
  • Continuous integration (Hudson)
  • Collaboration (Wiki)

In the workshop we have used these tools to automatically build and deploy our application on our Java Cloud Service.

Oracle PaaS for SaaS

In the Oracle Workshop we have worked out the following solutions to extend our Fusion CRM (SaaS) using the Java Cloud Service and the Oracle Database Cloud (both PaaS):

ADF Application displaying SaaS data. This application used webservices to retrieve SaaS data. This application was hosted on the Java Cloud (fig 8).

ADF Application hosted on the Java Cloud showing data coming from the Oracle Database Cloud. This on its own does not yet extend SaaS. It is an extension when you use ‘Application Composer’ to add this ADF application on the UI of the Fusion CRM (fig 9).

ADF Mobile Application displaying SaaS data. The mobile application used REST services deployed on the Java Cloud Service. These REST services were basically adapters between the REST and SOAP protocol. Every REST request was transformed to SOAP and sent to the appropriate Fusion CRM webservice (fig 8).

Fig 8: Java Cloud Services providing a frontend to users, and REST/SOAP services to Mobile and other apps. The applications hosted on Java Cloud Services use either the Oracle Database Cloud or the Oracle Sales Cloud for retrieving or persisting data Fig 8: Java Cloud Services providing a frontend to users, and REST/SOAP services to Mobile and other apps. The applications hosted on Java Cloud Services use either the Oracle Database Cloud or the Oracle Sales Cloud for retrieving or persisting data
Fig 9: Depicts Oracle Sales Cloud embedding a web frontend which is hosted on Java Cloud Services Fig 9: Depicts Oracle Sales Cloud embedding a web frontend which is hosted on Java Cloud Services

We recommend everyone interested to sign up for the classed offered by Oracle to get some insight and hands-on experience. More information is available at: [1].

In following blogs we will highlight how these PaaS extension are to be performed in more detail.

  • ADF Application using Fusion CRM Webservice. Generating WS proxy with proper security headers
  • Extend Fusion CRM using Application Composer. Adding custom applications to Fusion
  • Extend Fusion CRM using Application Composer. Using security token for WS authentication
  • Java Cloud Services REST adapter
  • Using Oracle Messaging Cloud

Sources

Richard: “Oracle Sales Cloud is basically the Oracle Fusion CRM solution hosted in the cloud”