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.
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
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/
There are two options – Try-It and WSDL.
Step 3 – Using the Try-It feature:
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:
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:
- WSDL file for all the batch operations that Informatica supports.
- Web Service Tool Kit, which generates the client side proxy classes from the WSDL.
The client side application code contains:
- Generating client proxy classes
- Initialization of the proxy classes
- Session maintenance
- Operation calls
- Resource clean-ups
- Error handling
- 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:
There are several folders and each one has its own set of operations. Consider the sample code in the following path:
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:
(s_Real_Time_Web_Service is a session that has simple source to target mapping, from oracle to oracle)
Reference: Informatica White Papers