Informatica Web Services

Informatica has its metadata & data integration functions exposed as webservices to allow accessibility by any third party application.  This means that workflows can be run from outside Informatica.  Apps can be written in any language to communicate with the Power Center integration services.

What is SOAP and WSDL ?  Simple Object Access Protocol is the communication protocol that defines the format of a message for the web service. Communication takes place through XML, and the document that contains the XML is called WSDL.

Informatica web services components:

Web Services Hub: Bridge between Informatica Integration Services, Repository Services and the web service clients (third party applications). It uses SOAP to receive requests and send responses, and it contains a console that provides the WSDL files for various operations that can then be used by the client application.

Batch Web Services: Methods or operations that allow access to repository metadata and integration services. There are two kinds of batch web services – Data Integration Web Service(DIWS) and Metadata Web Services (MWS). The former provides operations with respect to integration services, such as schedule/run/stop/start workflows/tasks. DIWS also receives statistics about the load. MWS provides the set of operations for repository objects such as folders/workflows/tasks, task source table, task target tables, etc.

Real Time Web Services: Workflows that can be run as a web service from other applications. Once the web service hub is created, the workflows can be marked as web services. Web service mapping can also be created, in which the source defines the user request and the target defines the response. Real Time Web Services are managed through the web service hub console.

Architecture

Informatica Batch Web Services IMG 1-resized-600

The web service hub processes both real time and batch web services. The web service client communicates with web service hub by the SOAP message to run a web service (by using WSDL). The security gateway authenticates the web service client using the Session ID if it is Batch Web Services, or by using the User Token if it is Real Time Web Services. If the web service request is for Batch Web Services, web service hub sends a message to integration service or repository service based on the type of request. The Batch Web Services can only communicate with the workflows and not a web service workflow. However, if the request is from Real Time Web Services, then the integration service communicates with the web service workflow and the integration service sends the processed data to the web service hub. Web service hub then communicates with the web service client using SOAP.

Steps to create Batch Web Services

Step 1 – Create a web service hub: in the Informatica admin console and under the actions tab, click on new-> web service hub.Informatica Batch Web Services IMG 2-resized-600

Enter details as below:Informatica Batch Web Services IMG 3-resized-600

On the next screen, enter the details below:Informatica Batch Web Services IMG 4-resized-600

(Note: you can select http, or https, or both. The port number will change based on this selection. For HTTPS, the default number is: 7343)Informatica Batch Web Services IMG 5-resized-600

Once the hub is created, the hub service is enabled by clicking Enable Service, as below:

Step 2 – Log into the web service hub console http://localhost:7333/wsh/

These are the functions which enable the operations between the client app & the repo service.Informatica Batch Web Services IMG 6-resized-600

There are two options – Try-It and WSDL.

Step 3 – Using the Try-It feature:

Click on Try-It and then select Login from the operations pane. Select the XML input tab and enter the Informatica domain that you are using:Informatica Batch Web Services IMG 7-resized-600

Click Send to check the operation. The status will indicate if it was successful and the Session ID will be generated in the XML. Below is the getAllFolders web service operations:

Informatica Batch Web Services IMG 8-resized-600

The folder names will appear in the bottom section of the screen. This is a test of the operation from the Try-It feature.

Step 4 – Using Java Based Client Side Application:

Two things are needed in order to write a Java-based client side application:

  1. WSDL file for all the batch operations that Informatica supports.
  2. Web Service Tool Kit, which generates the client side proxy classes from the WSDL.

The client side application code contains:

  1. Generating client proxy classes
  2. Initialization of the proxy classes
  3. Session maintenance
  4. Operation calls
  5. Resource clean-ups
  6. Error handling
  7. Proxy objects

Sample JAVA applications provided by Informatica

If you have access to the informatica server path you can browse through some of the sample code written in Java. All of these sample codes are located at:

<Infa_HOME>\server\samples\WebServices\samples\BatchWebServices\axis\

There are several folders and each one has its own set of operations. Consider the sample code in the following path:

<Infa_HOME>\server\samples\WebServices\samples\BatchWebServices\axis\dataintegration\

There are three folders in this path.Informatica Batch Web Services IMG 9-resized-600

You can use ComplieSample1.bat to compile the Sample1.java file. Once the code is compiled, you will have Sample1.class file and can use RunSample1.bat to run the Sample1.class file. The following are arguments that need to pass while running RunSample1.bat.

Usage: RunSample1.bat [-s|-ns] <WSH Hostname>

The command should look like this after filling the entries:

RunSample1.bat -ns localhost 7333 Domain_KPI-LAPTOP34 infa_repository Administrator Administrator Domain_KPI-LAPTOP34 Infa_Integration TEST wf_Real_Time_Web_Service s_Real_Time_Web_ServiceInformatica Batch Web Services IMG 10-resized-600

Informatica Batch Web Services IMG 11-resized-600

Once the command is executed, the workflow monitor will show that the task is running.Informatica Batch Web Services IMG 12-resized-600

(s_Real_Time_Web_Service is a session that has simple source to target mapping, from oracle to oracle)

Reference: Informatica White Papers

Advertisements