External Service Integrator - universAAL/tools.eclipse-plugins GitHub Wiki

Role and benefits of this tool

This AAL Studio tool provides the necessary code snippets for importing external SOAP web services into an AAL application. This tool will be useful for application developers when integrating external services into universAAL, since it will save a lot of development time because they do not have to deal with the interaction with WSDL files.

Overview of functionality

The application developer is able through the AAL Studio menu to select to integrate an external service to universAAL platform. The supported external services are SOAP web services that have online WSDL descriptions (both WSDL1.1 and WSDL2.0) In the background, the tool parses the online web service definition and extract all the operations, Inputs/Outputs, Documentation and grounding information of the service. The underlying mechanism for parsing all the required information is the Internet Gateway developed in the Remote Interoperability Expert Group.

The tool is accessible through the AAL Studio menu and the "Import WSDL description" option. The new popup window will ask for an online valid WSDL description:

When the developer enters the URL and presses OK, the definition is parsed in the background and the web service operations along with the corresponding inputs and outputs are displayed.

The user can navigate through the available web service operations and can test the invocation of them:

For creating the web service client the developer should select the "Create Web Service Operation client" button. This option will create a new universAAL application (with name the same of the imported WSDL operation). This project contains all the necessary code for invoking the selected web service operation.

For invoking the web service operation, the developer should fill in the web service input values in the Java method "fillInInputValues" created by the tool, e.g.

// TODO: add input value for input parameter: day
addInputValue(input.getHasNativeOrComplexObjects(), "day", "yourValue");
and then call the invokeWebService() method. The output values of the web service operation can be obtained with the "getOutputValue" method of the generated class.

Known remaining limitations and problems

  • The current implementation does not support web services with arrays as inputs/outputs.
⚠️ **GitHub.com Fallback** ⚠️