Showing posts with label osb 11g. Show all posts
Showing posts with label osb 11g. Show all posts

Thursday, July 13, 2017

CSV to XML or Native to XML Transformation using MFL

Hi Guys,

Recently one of associate asked me about the MFL, so here I am writing this post on the usage of the MFL.
What I have experienced so far is, there are very few SOA experts who uses the Message Format Language or MFL.
There are others, who underestimates the MFL capability as compared to Oracle Technology adapters.

Lets get started..

Use case :
Reading a .csv file from file location, transforming to XML, and writing the XML file to another location.
Sample Input CSV Message -

CustomerID;Firstname;Lastname;Age
1212;Dheeraj;Mishra;25
3242;Ajay Kumar;Singh;43

Background -
The MFL can be used to transform a Native format to XML and vice versa. The biggest advantage MFL provides is, It can be done in OSB message flow. So you have option to log or audit both the formats as well as you can use it anywhere in Message flow as per your need.
Whereas Oracle technology adapters can only be used as a start point or end point of service.

Another advantage, MFL requires only one artifact (MFL transform file, .mfl file) for message transformation and no extra configuration is needed. Whereas Oracle Technology adapters will generate multiple artifacts like .wsdl file, .xsd file, .jca file etc.
Due to this Oracle Technology adapters can make the service complex when you have to cater for multiple formats conversion.

Implementation:

Step 1 - Create Proxy to read .csv file.









 Step 2 - Create a Pipeline (Not applicable in 11g)



Step 3 - Add pipeline in Message flow


Step 4 - Now create a MFL transform file. 



New MFL will look like below- 



Step 5 - Add GROUP by right click on message icon in MFL. This is needed only if your Message or File has repeated records.
There are few properties on this page.
tick OPTIONAL if file can have only one record.
tick UNLIMITED if file can have more than one record.
Enter DELIMITER, usually \n for next line. Sometimes, it could be anything else like ; or " or | etc.
Tick DELIMITER IS OPTIONAL if this is possible to be used as delimiter for the last field in a record. As in our example, Last field uses \n as delimiter



Step 6 - Now add fields names as child elements in order of occurrence under Group.
Mention there Delimiters. Here delimiter is ;



Notice Last field has '\n' as delimiter



Step 7 - Test you MFL in Jdevloper itself



Step 8 - Now go back to Message flow, Add MFL transform Action. Specify the properties as shown.
Here MFL output is assigned to VarXML variable




Step 9 - Add replace action to put XML in Body content



Step 10  - Create Business Service to write XMl file.






Step 11 - Add Route, Browse Business Service






Thats it guys. You have completed the Service.
Now go on deploy it to server, and Test the Service

Here's the Sample output file

<?xml version="1.0" encoding="UTF-8"?>
<CSVToXML>
  <Customer>
    <customerId>CustomerID</customerId>
    <firstName>Firstname</firstName>
    <lastName>Lastname</lastName>
    <age>Age</age>
  </Customer>
  <Customer>
    <customerId>1212</customerId>
    <firstName>Dheeraj</firstName>
    <lastName>Mishra</lastName>
    <age>25</age>
  </Customer>
  <Customer>
    <customerId>3242</customerId>
    <firstName>Ajay Kumar</firstName>
    <lastName>Singh</lastName>
    <age>43</age>
  </Customer>
</CSVToXML>



Download the sample osb jar file from below link
https://drive.google.com/open?id=0BxHj0h0tnxxObDkzT2FCNUN6aEE





Thursday, May 04, 2017

Securing OSB Proxy Service using OWSM : Simple guide

Service Bus is integrated with Oracle Webservices Manager (OWSM) that provides several out of the box security policies. You can use any of these OWSM policies to secure your Proxy Services based on requirements. Here in this post, you will use oracle/wss_username_token_service_policy policy to secure Proxy Service.
Steps Summary :
1.    Create Users who needs access
2.    Add policy to Service
3.    Test and Validate

Login to Admin Console and click Security Realms in Domain Structure.




Click myrealm as shown below.




Navigate to Users by clicking on Users and Groups tab.




Click New and enter credentials as shown below.



Click OK. 
Observe that new user has been created which can be used to invoke Proxy Service.







Go to sbconsole. Create a new session. Navigate to All Projects –> <<your project>> and open the Proxy service to bring up a new tab as shown below.




Click Security and choose the option as shown below.



Click Attach Policies icon (highlighted above) and select the policy as shown below and click Attach.




Click OK and observe that selected policy is shown up as shown below.


Save your changes in current tab and activate the session.


You can use SOAPUI or SBConsole Test service for testing.
Open request editor for any of your Proxy Service operations and paste the following in SOAP header. This represents the WS-Security header and is expected by OWSM policy i.e. attached to Proxy Service.

Test using wrong credentials or without security header and observe the output showing security error.



Test using credentials created in first section and observe the output.
Add below header to your request, You can see username and password fields below.
                                                              
<soap:Header>
                <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                                <wsse:UsernameToken wsu:Id="UsernameToken-F7A4A73DA710AE195C14938940405155">
                                                <wsse:Username>dheeraj</wsse:Username>
                                                <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">webic123</wsse:Password>
                                                <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">T36cJsRsgb5IzQyyy/Yskw==</wsse:Nonce>
                                                <wsu:Created>2017-05-04T10:34:00.515Z</wsu:Created>
                                </wsse:UsernameToken>
                </wsse:Security>
</soap:Header>






That’s all.




Wednesday, July 03, 2013

Oracle Service Bus 11g - Installation for Windows 32 bit

Hi All,

Here I am discussing Installation of Oracle Service Bus 11g, in windows 32 bit machine.
First quesstion comes to mind is, What all do we need ?
Answer is pretty simple:

A windows 32 Bit PC with
1. 300 Mhz or Faster Processor(I'm sure , you have it)
2. 2 GB of RAM
3. 5 GB of Hard Disk Space
4. 500 MB or More SWAP and TEMP space.



In order to install, we need to download few packages :
1. Oracle WebLogic Server 11gR1 (10.3.6) + Coherence + OEPE - Package Installer
2. Oracle Service Bus
 from location  http://www.oracle.com/technetwork/middleware/service-bus/downloads/index.html


Download and Extract these files into a directory.



Now, First of all we need to install Weblogic server 11g.
Step 1: Now start the weblogic installer by double clicking on it. Since setup is large, keep patience, it will take some time to start.


After this screen a new screen will appear,


Click next, new screen will appear like,



 Here choose the Middleware Home Directory and Click Next


Deselect security update if installing for learning purposes, or provide oracle support password if you have purchased the oracle support..
 Then click Next

Choose Custom, and click next


Choose Server Example, if you are installing for learning purpose. Else leave the default values.
Then Click next

Leave Default for this Page.
Click Next

Review the Installation Directories, Make a note of these.
Click Next

Click on Yes, to install Node Manager. It will help in Remote start and Stop and health monitoring of Managed servers.


Choose the users here as per your requirement.
Click Next

Review the Installtion summary here.
Then click Next

Installation will begin, and you can see the progress in terms of percentage.


Deselect Run Quickstart. Then Click on Done.
Step 1 is Completed.
Now we have to install OSB 11g.

Step 2: 
Go to the Directory where you have Extracted the OSB setup.
 it will be something like - "ofm_osb_generic_11.1.1.7.0_disk1_1of1"
go inside Disk1 Directory. There you will find a setup.exe file
Copy the Path of setup.exe file.

Now open the command prompt. and move to directory of setup.exe


now write the command
"setup.exe -jreLoc E:\Oracle\Middleware\jdk160_29\jre"
press Enter.
Where "E:\Oracle\Middleware\jdk160_29\jre" is the path of JRE installed with the Weblogic, which we have done in step 1.



Now, setup will start. You will show a window like


 Click on Next



Click on 'skip software update'. If you have purchased the Oracle licences then provide username and password to search for update.

Click Next

Now browse The Middleware  Home directory, which was created in step 1, while installing Weblogic server.
Then Click Next

Choose Custom.
Click next



Select 'Oracle service bus IDE' to use the OEPE(Eclipse IDE for developement).
Select 'Oracle service bus example' if you are a new learner of OSB.

Click Next
 Setup will check some prerequisites here.
click Next

Browse the path for Weblogic server and OEPE, which we have installed in step 1.
 Then click next

Review the Summary of installation here. You can also save the response file here.
The response file are used for silent installation of product.
 Click Install

Now your Installation is started.You can see the progress here. Click Next

Click Next


Click on Finish.

The Installation of Oracle Service Bus is Finished.

In order to use the OSB, you will need to configure the OSB Domain.
I will describe the process of Domain configuration in my next Post "Oracle Service Bus 11g - Domain Configuration". You can find it here

Oracle Service Bus 11g - Domain Configuration for Windows

http://osb-dheeraj.blogspot.in/2013/07/oracle-service-bus-11g-domain.html