Oracle E-Business Suite Integrated SOA Gateway (ISG) provides a customer-focused robust communication and integration infrastructure between an external system and ISG for inbound and outbound communication that does not require a special class of middleware software. This will not only save license costs but also reduce maintenance costs as the existing EBS system support team can maintain the infrastructure easily. This infrastructure not only enables greater and effective business integration with standard SOA concept between heterogeneous applications, but also facilitates the development and execution of complex business processes into highly flexible and reusable Web services. With this standardized and interoperable Web service platform, ISG provides a powerful framework that accelerates publishing of custom PL/SQL procedures as web services over the Web.
Integration Architecture
ISG Integrations require some configurations and customizations to enable the functionality in the ISG module. The functionality would be written in PL/SQL procedures and then enabled as a web service. The Outbound calls are made using the Service Invocation Framework (SIF) of EBS, which internally uses built-in Business Events for initiating the transaction or web service call. Organizations would not need to hire new resources to develop this functionality as Apps technical resources possessing PL/SQL skills can easily deploy this functionality. This helps the firm in saving recruitment and resource management costs. This cross-industry integration can be performed on EBS versions R12.1 and above.
Implementation Steps
Here is a detailed illustration of web services implementation and calling web services from EBS. Oracle E-Business Suite (R12.1.3) must be installed and ready to use for Integrated SOA Gateway (ISG) setup and implementation. This implementation requires some setup configuration and development of several components for Inbound and Outbound as given below:
Inbound
1. ISG Setup
a. Enable ASADMIN user
b. Create ISGUSER
2. Write a Custom PL/SQL procedure
3. Write the annotation into Procedure
4. Generate and Upload the ILDT file
5. View the Published Custom Web Service developed
6. Monitoring SOA Requests
Outbound
1. Run SQL script for Security Parameters to Support UsernameToken based WS-Security WSSE password (If the external services are WSSE enabled only)
2. Creating Business Events
3. Creating Invoke Web Service Subscriptions
4. Creating Error Notification Subscriptions
5. Creating Call back event Subscriptions in PL/SQL
6. Testing the Setup (Don’t DO in the production environments)
7. Resubmitting Failed Business Events
For further details on implementation steps e-mail to Khaleel shaik our Java Practice lead at [email protected]
Using OAuth2.0 authenticating your web application with Google API is now very easy. This will help your applications to maintain sing user repository from Google logging, and no need to maintain any password at your application side. Here the idea is to give an idea of complete Web Server flow (Oauth2 web server side dance) and understand it completely with complete open source technologies. Steps involved for this process are given below:
First step is go to Google API Console and register a project then create a Web Application userid and secret key. (Make sure that the registering URL will have your application’s context path).
Note: Modify the userid/secretkeys as per your settings.
Create a web project ( say TestProject) and then create a servlet as shown below:
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
System.out.println(“Callback to URI that is configured in Google API Console”);
resp.setContentType(“text/html”);
resp.getWriter().println(” “);
resp.getWriter().println(” “);
resp.getWriter().println(”
Top of Form
// Exchange the code for token
HttpClient httpclient = new HttpClient();
BufferedReader bufferedreader = null;
PostMethod postmethod = new PostMethod(
“https://accounts.google.com/o/oauth2/token”);
postmethod.addParameter(“code”, auth_code);
postmethod.addParameter(“client_id”, client_id);
postmethod.addParameter(“client_secret”, client_secret);
postmethod.addParameter(“redirect_uri”, redirectURL);
postmethod.addParameter(“grant_type”, “authorization_code”);
String access_token = null;
String token_type = null;
int expires_in = 0;
String id_token = null;
try {
int rCode = httpclient.executeMethod(postmethod);
System.out.println(“HTTP POST for Token rCode is” + rCode);
if (rCode == HttpStatus.SC_NOT_IMPLEMENTED) {
System.err.println(“The Post postmethod is not implemented by this URI”);
postmethod.getResponseBodyAsString();
} else if (rCode == HttpStatus.SC_NOT_ACCEPTABLE) {
System.out.println(postmethod.getResponseBodyAsString());
} else {
//Calling Google account info API
User user = null;
httpclient = new HttpClient();
bufferedreader = null;
GetMethod getmethod = new GetMethod(“https://www.googleapis.com/oauth2/v1/userinfo?access_token=” + access_token);
try {
int rCode = httpclient.executeMethod(getmethod);
System.out.println(“HTTP GET for User rCode is” + rCode);
if (rCode == HttpStatus.SC_NOT_IMPLEMENTED) {
System.err
.println(“The Get method is not implemented by this URI”);
getmethod.getResponseBodyAsString();
} else if (rCode == HttpStatus.SC_NOT_ACCEPTABLE) {
System.out.println(getmethod.getResponseBodyAsString());
} else {
Author: Khaleel Shaik, JAVA Practice Head & Technical Architect at Bodhtree. He specializes in JAVA/J2EE Technologies; Applications Integration using the SOA web services technologies with more focus on Oracle Fusion Middleware (BPEL/ OSB/ BAM/ B2B/ Oracle Application Adapter/ etc.)