When we think of Nike, what comes to mind are images of activity—be it running, soccer or any other sport imaginable. It’s no surprise that Nike’s vision statement is “To bring inspiration and innovation to every athlete in the world” (If you have a body, you are an athlete). Nike has done such an outstanding job of reinforcing this vision that both the organization and the general public naturally associate Nike with athletes across the globe chanting mantras of ‘just do it’! In fact, Nike has received numerous letters from appreciative customers thanking them for the inspiration. Clearly Nike’s Vision is critical to aligning its organization and the public on a single, successful identity.
Our vision is no different. As our company grows, it is paramount that we are all in alignment on a single identity for Bodhtree: “We want to be the most globally admired company by our Employees, Partners and Customers.” It gives us a sense of direction and captures the aspiration of being the best in whatever we do.
With this constantly in the forefront of our minds, we will hire the right people, make the right choices and execute in the way that will enable our destiny as a globally admired company.
1. Watch your thoughts, for they become words.
2. Watch your words, for they become actions.
3. Watch your actions, for they become habits.
4. Watch your habits, for they become character.
5. Watch your character, for it becomes your destiny.
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.)
When working with clients or prospects, I always relished and appreciated an “Opportunity for Excellence“. What does that mean? It means that when a client or prospect calls with a specific problem that is time sensitive and we, as an organization and team, jump on the problem and work to solve it.
We have had several “Opportunities for Excellence” in the past few months’ with our clientele. On two of them we worked through the Christmas holidays. We have had numerous times where we had several of our colleagues pull “all-nighters” just to respond to a client’s needs. We have met deadlines, pushed ourselves, strived to turn out the best work we could do.
This excellence at my organization can only be exhibited by the members i.e. our employees. When will you have an “opportunity for excellence”? When will you be called upon to deliver success in impossible timeframes and conditions?
Let me end by telling you this. When you go the extra mile for your customer and succeed, you go from being a vendor to being a strategic partner.