Showing posts with label Integration Cloud Service. Show all posts
Showing posts with label Integration Cloud Service. Show all posts

Monday, 10 October 2016

Install Oracle ICS On Premise

Introduction


Oracle Integration Cloud Service allows customers having a subscription to install the product in their On Premise site.
This is really useful in the following situations:
  • You need to create integrations between On Premise Applications;
  • You are developing a Custom Adapter using the Cloud Adapter SDK;
In the first scenario we can also use the Connectivity Agent to create a tunnel between the Cloud and our On Premise site and create the connection in the ICS Cloud instance configuring our agent in the Connection Configuration page. But if you only need to integrate two On Premise applications you can install ICS in our On Premise and create the integration locally. 
In the second scenario we need to register our Custom Adapter in ICS to test it and verify it is working as expected before publish it on the Cloud. 

System Requirements


Before installing on-premises Oracle Integration Cloud Service ensure that you satisfy the following prerequisites on your on-premises host:
  • Operating system: Oracle Enterprise Linux 6 UC4 or above
  • CPUs: 2
  • Physical memory: 8 GB
  • Hard disk space: 100 GB
  • Database:
    • Java Database (JavaDB). This is the default database.
    • Oracle Database (XE or Standard). If you select this database option during installation, you are prompted to provide specific Oracle Database details.

On Premise Host


To install ICS On Premise I used a host running Oracle Linux 7 matching the requirements above. In this host I created an oracle user having its Home folder in /home/oracle. Before starting the installation, I created the directory /home/oracle/ics to store the installer and all the ICS files.

Download ICS Execution Agent


To install Oracle ICS on premise we need to download the Execution Agent installer. This is a self-extracting Linux bash script.

The installer can only be downloaded from your Integration Cloud Service instance and can only be run on a Linux environment. In this post I used an ICS instance version 16.2.5.

To download the installer, follow the steps below:
  1. Log in to the instance of Oracle Integration Cloud Service to which you are subscribed.
  2. In the Integration Cloud Service toolbar, click Designer.
  3. On the Designer Portal, click Agents.
  4. The Agent Groups page is displayed.
  5. Click Download Agent Installer.
  6. Select Execution Agent. The execution agent is used for On Premise installations of Oracle Integration Cloud Service.
  1. Select Save File when prompted to save the ZIP file to a directory location on your on-premises host.
  2. Unzip the ZIP file in the folder /home/oracle/ics. The ics-executionagent-installer.bsx execution agent file is included in the ZIP file.
  1. Change the file permissions of the ics-executionagent-installer.bsx file to be executable.

    • chmod 755 ics-executionagent-installer.bsx

Install Oracle ICS


Execute the installer.

  • ./ics-executionagent-installer.bsx

This starts the installation. During the installation, you are prompted to specify authentication and configuration details. The table below shows the parameters I entered during the process

When Prompted With the Following...
Enter…
Enter your ICS subscription URL for authentication
https://<my-subscription-url>:7002/ics
Enter ICS subscription Username
<my ICS Username>
Enter ICS subscription Password
<my ICS Password>
Enter HTTPS Proxy Server Host Name
Enter
Enter HTTPS Proxy Server Port Number
Enter
What Do You Want to call this Execution Agent?
CSC-ICS-OnPremise
Press enter to accept the default path or enter a new install path
Enter
Enter the user name (cannot be root) to be used for install
oracle
Enter the group (groups <user> will list the groups of a user) of the user to be used for install
oracle
Press enter to accept the default value or enter a new port number
Enter
Press enter to accept the default value or enter a new port number
Enter
Enter the password for the default user weblogic
My secret password
Select the type of database to use (JavaDB or Oracle):

JavaDB

More information about these parameters can be found here
The installation process will take about 1 hour and 40 minutes. After the installation completed successful you will see the following:


I started the installer from the directory /home/oracle/ics and accepted the default installation location, this will create the following directories structure:
  • Oracle Base (OB): /home/oracle/ics/ICSOPInstall/ICSOP
  • Oracle Home (OH): OB/app/Oracle/Middleware/Oracle_Home
  • Domain Home (DH): OB/data/user_projects/domains
During the installation the installer also configured and started the Compact Domain available at:
  • Compact Domain (CD): DH/compact_domain
We can now access the ICS Console available at the address: http://<host-ip>:<port>/ics  



Verify the Agent Installation 


After the installation the execution agent should be listed in your ICS cloud instance. To verify that do the following: 
  1. Log in to the instance of Oracle Integration Cloud Service to which you are subscribed.
  2. In the Integration Cloud Service toolbar, click Designer.
  3. On the Designer Portal, click Agents.
  4. The Agent Groups page is displayed.


  1. In the Execution Agent Group click to expand the menu and select agents

Here you should see the agent just installed.

Solve the Proxy Issue


I don’t have any proxy so during the installation I pressed Enter to skip the proxy configuration. However, not configuring the proxy could generate the following error when accessing remote resources


The error is caused by an empty proxy Port. (See here for more details)
To solve this error, change the proxy settings by editing:

DH/compact_domain/bin/setICSDomainEnv.sh

This file contains the proxy settings:

#!/bin/sh
EXTRA_JAVA_PROPERTIES="${EXTRA_JAVA_PROPERTIES} -Dhttps.proxyHost= -Dhttps.proxyPort= -Dhttp.proxyHost= -Dhttp.proxyPort="
EXTRA_JAVA_PROPERTIES="${EXTRA_JAVA_PROPERTIES} -Dweblogic.security.SSL.minimumProtocolVersion=TLSv1.0"
EXTRA_JAVA_PROPERTIES="${EXTRA_JAVA_PROPERTIES} -DExecutionContext=ICS_ON_PREMISE"
export EXTRA_JAVA_PROPERTIES

Comment the line below:

#EXTRA_JAVA_PROPERTIES="${EXTRA_JAVA_PROPERTIES} -Dhttps.proxyHost= -Dhttps.proxyPort= -Dhttp.proxyHost= -Dhttp.proxyPort="

Restart the server.

The result of this is that ICS will not use a proxy server anymore


Documentation Links


Wednesday, 16 December 2015

Oracle Integration Cloud Service

Many companies today are looking to remove costs from the bottom line by moving non-mission critical applications into the cloud. There are many advantages to doing this but the main being to lower the TCO (total cost of ownership). However, there still remains the problem of integrating these applications with other enterprise applications and with on premise systems. These new SaaS applications cannot function in splendid isolation!

I have spent some time recently investigating Oracle’s Cloud Integration Service (ICS). ICS is designed to simplify the task of integrating data between SaaS applications. It can also be used for SaaS to on premise integration using either Rest or Web service calls (currently).

Oracle has done a good job of abstracting the complexity of connecting to SaaS applications by introducing Application Connectors: all the user needs to do is to configure the endpoint and provide credentials. Once connected, the user can use the web based mapping tool to map data between the applications.

Oracle has been keen to boost the community aspects of the tool by providing recommended mappings based on what most users currently use. This can make the job of mapping much simpler and open up the possibility that integrations can be done by functional rather than technical experts. Nevertheless, Oracle also provides more advanced mapping functions where straight forward field mapping is not obvious or achievable.

Oracle is really pushing this area and they are providing many pre built application connectors to SaaS applications such as its own SaaS offerings (e.g Service Cloud) but also third parties such as SAP, Netsuite and Linkedin. The pace of development is very rapid in this area and new connectors are being provided almost monthly by Oracle. There are somewhere in the region of 2500 SaaS applications available in the market today and Oracle cannot possibly hope to provide connectors for all of them. So, Oracle are supporting third party developers to create their own Application Connectors using the shipped SDK.  Since ICS is based on the tried and tested Oracle Service Bus for its implementation, the same application connectors can be used on premise or in the cloud. Perfect for saving time and effort!


Security protocols are supported too. Web Service calls can be secured with basic authentication, WS-Security username/token, or other mechanisms, along with transport level security using SSL/TLS. Future releases will support the uploading of certificates. Integration Cloud Service runs on Oracle’s secure cloud infrastructure with each tenant getting their own dedicated environment.

The beauty of ICS lies in the fact that integration between SaaS applications can be packaged up and sold (or even given away!) on the Oracle Marketplace. This will help companies moving to the cloud to rapidly set up integrations that previously would have taken weeks or months via the more traditional software development lifecycles.

Oracle has made several announcements regarding the roadmap for ICS and they are quite exciting! These include the introduction of basic orchestration features in future versions to allow for enrichment of data prior to mapping. Also, to help with security issues, Oracle will provide agents that will execute on premise and talk back to ICS. These agents communicate via Rest so there is no need for complex firewall rules.

Oracle offers four main approaches to integration with ICS:

Cloud adapters, Technical adapters (for database, FTP, SOAP connections), on premise agents (to be introduced shortly) and finally the SDK/market place.

Further adapters will become available over the next few months to open ICS up to SFTP, databases and many other back-end systems.

Most importantly, Oracle also provides rich web based monitoring tools to provide visibility onto the performance and reliability of the integrations.

So one question I had was where does SOA Suite fit in now that more orchestration features are being built into ICS? I think that the answer lies in what you are trying to integrate. In much the same way as Oracle Service Bus can be used to provide orchestration (of sorts using pipelines), I would never recommend doing this. SOA Suite has many features that make this more suitable such as dehydration. In the same way, just because ICS can do something, doesn’t mean that it should be used if it is not best tool for the job. So, in summary, for more complex integrations, especially long running processes, SOA Suite is still the best choice – whether on premise or in the cloud. ICS however, is an excellent tool that provides an elevated user experience (meaning that it can be used by non-core techies) for SaaS to Saas and SaaS to on premise integrations.

Finally, I would not recommend using the tool for batch integrations either, as there are better alternatives, such as Oracle Data Integrator (ODI).