IBM WebSphere Studio Asset Analyzer for Multiplatforms Version 4 Release 1

Web Services


SC18-9518-00
Note!

Before using this information and the product it supports, be sure to read the general information under Notices.

First Edition (March 2005)

This edition applies to IBM WebSphere Studio Asset Analyzer for Multiplatforms Version 4 Release 1 (Program Number 5655-M22).

This edition also applies to all subsequent releases and modifications until otherwise indicated in new editions or technical newsletters.

You can order publications online at www.ibm.com/shop/publications/order, or order by phone or fax. IBM Software Manufacturing Solutions takes publication orders between 8:30 a.m. and 7:00 p.m. Eastern Standard Time (EST). The phone number is (800)879-2755. The fax number is (800)445-9269.

You can find out more about WebSphere Studio Asset Analyzer for Multiplatforms by visiting the IBM Web site for the product at: www.ibm.com/software/awdtools/wsaa/.

A form for reader's comments appears at the back of this publication. When you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you.

Copyright International Business Machines Corporation 2003, 2005. All rights reserved.
US Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

Contents

About this document
Introduction
Downloading the WSDL file
The Web Services data model
Supported asset types and corresponding attributes
Supported relationships
Interface model
API summary
analyze
delete
getAllAssetTypes
getAnalysisStatus
getAsset
getAssetCount
getAssets
getAssetType
getAttributeValue
getRelatedAssets
getVersion
impactAnalysis
login
setAttributeValue
Restrictions and notes
Interacting with Web Services
Sample client code
Appendix A. WsaaAssetTypes.wsaaservices.xml file
Appendix B. Sample WSDL file
Notices
Trademarks

About this document

This guide is intended for programmers who are responsible for accessing the WebSphere Studio Asset Analyzer inventory programmatically. It contains information concerning the interface and services associated with WebSphere Studio Asset Analyzer Web Services. If you require such client access, you need the Web Services component to be available. See WebSphere Studio Asset Analyzer Configuration and Migration Guide, GC18-9517, for instructions for installing the Web Services enterprise application that is distributed as a component of WebSphere Studio Asset Analyzer.

This guide assumes that the reader is familiar with the Web Serves and Web Services Client proxy generation and the writing of Web Services client code.

Introduction

The Web Services component of WebSphere Studio Asset Analyzer provides an external interface that enables limited programmatic manipulation of the data that WebSphere Studio Asset Analyzer manages. The access is provided in the form of Web Services with a run-time environment that is provided by IBM WebSphere Application Server version 5.1 or later. Web Services uses document/literal style messages, wrapped document style operations with literal XML encoding

WebSphere Application Server uses the following Java(TM) Web services standards that were developed for Java under the Java Community Process (JCP):

You need to install the Web Services component of WebSphere Studio Asset Analyzer on the same WebSphere Application Server (WAS) server and in the same server instance as the base product. This service makes external the following data:

WebSphere Studio Asset Analyzer inventory z/OS metadata
You can read the basic z/OS inventory information, assets, and basic attributes, and manipulate some of the inventory metadata.
WebSphere Studio Asset Analyzer z/OS impact analysis
You can initiate an analysis of the impact of a change and receive the results.
WebSphere Studio Asset Analyzer z/OS assets scanning engine
You can make requests of WebSphere Studio Asset Analyzer to scan entire containers or files.

The functionality of this formal Web Service component is described by Web Services Description Language (WSDL) file.

Downloading the WSDL file

After you have installed the WebSphere Studio Asset Analyzer Web Services ear file, you can find the Web Services Description Language (WSDL) file that describes the document-style Web Service interface in the following location:

http://<yourServerIp>:<port>/dmhws/services/WsaaService/wsdl/WsaaService.wsdl

for example:

http://wsaa.my.company.com:9080/dmhws/services/WsaaService/wsdl/WsaaService.wsdl

Download this file into your development environment, and use it for Web Services client proxy code generation. For compatibility it is important to use the WSDL file that you obtain from the target server.

The use of one of the following IBM development tools is recommended:

Related references
Appendix B. Sample WSDL file

The Web Services data model

The external data model that Web Services exposes is a simple data model, yet capable of delivering complex functionality. The model is based on the concept of the WebSphere Studio Asset Analyzer asset. The asset contains the following values:

Asset key
An ID string and an asset type name, which is also a string
Asset attributes
A simple pair of name and value strings that is associated with a given asset
Asset relationships
A simple pair of the relationship name and a collection of assets (asset keys) that remain in the named relationship with a given (anchor) asset

The following diagrams show the data model:

Figure 1. API Framework - external inventory model
Inventory model class diagram

Supported asset types and corresponding attributes

Web Services supports a limited set of WebSphere Studio Asset Analyzer MVS asset types. Supported asset types and the attributes for each asset type are described in Appendix A. WsaaAssetTypes.wsaaservices.xml file. The general description below provides some additional information regarding some attributes. Only a select set of attributes is supported for each asset type.

Supported relationships

The WsaaAssetType object includes a list of supported asset relationships. Supported relationships are also described in Appendix A. WsaaAssetTypes.wsaaservices.xml file. Initially only the FilesNeededToBuild relationship is supported for program assets:

Interface model

The Web Services interface design is focused on simplicity and scalability.

The following diagram shows the Web Services interface:

Figure 2. API Framework - external interface
Interface model class diagram

The following sections describe the APIs that are included in the Web Services interface.

API summary

Method Summary
 boolean analyze ((WsaaAuthToken) token, java.lang.String containerName, java.lang.String FileName, java.lang.String resourceManagerName)

Request to analyze specific file or directory.

 void delete ((WsaaAuthToken) token, (WsaaAssetKey) assetKeyToDelete)

Valid only for files, containers and projects.

 WsaaAssetType[] getAllAssetTypes ((WsaaAuthToken) token)

Obtain the list of asset types supported by WebSphere Studio Asset Analyzer external interfaces, the list of the names of their attributes and relationships supported.

 java.lang.String getAnalysisStatus ((WsaaAuthToken) token)

Informs the client about the status of analysis process.

 WsaaAsset getAsset ((WsaaAuthToken) pToken, (WsaaAssetKey) pKey)

Retrieve the asset instance with all attributes based on asset key.

 int getAssetCount ((WsaaAuthToken) token, (WsaaQuery) query)

Find out how many assets match the criteria specified by query.

 WsaaAsset[] getAssets ((WsaaAuthToken) token, (WsaaQuery) query, (WsaaPagingData) pData)

Retrieve instances of assets matching the criteria specified in query.

 WsaaAssetType getAssetType ((WsaaAuthToken) token, java.lang.String typeName)

Retrieve WsaaAssetType object instance based on asset type name.

 java.lang.String getAttributeValue ((WsaaAuthToken) pToken, (WsaaAssetKey) pKey, java.lang.String pAttributeName)

Obtain attribute value knowing its name and attribute key.

 WsaaAssetKey[] getRelatedAssets ((WsaaAuthToken) token, (WsaaAssetKey) anchorAsset, java.lang.String relationshipName)

Retrieve the list of assets remaining in the named relationship with the given asset.

 java.lang.String getVersion ()

Obtain the version of external interface.

 WsaaAssetKey impactAnalysis ((WsaaAuthToken) token, (WsaaAssetKey)[] dataElements)

Initiates impact analysis; it is an asynchronous function.

 WsaaAuthToken login (java.lang.String pUserId, java.lang.String pPassword)

Authenticate with WebSphere Studio Asset Analyzer external interface.

 void setAttributeValue ((WsaaAuthToken) authToken, (WsaaAssetKey) key, java.lang.String attributeName, java.lang.String attributeValue)

Store the value of attribute in the WebSphere Studio Asset Analyzer database.

analyze

public boolean analyze((WsaaAuthToken) token,
                       java.lang.String containerName,
                       java.lang.String FileName,
                       java.lang.String resourceManagerName)
                throws WsaaExternalException

 

Request to analyze specific file or directory. This is an asynchronous function: control is returned to the client as soon as the request is accepted, but before it is carried out. When the request is processed depends on the specific installation and local configuration. You should check the status by calling the getAnalysisStatus API, or by getting the AnalysisStatus attributes of the requested container or file.

The container analysis is quick but can span multiple file-analysis requests. After you submit a container or file for analysis, the status of the analysis of the container quickly changes to Incomplete, and then to Complete. Container analysis status reflects only the status of collecting metadata about the container itself, such as name, number of files, and type.

The file analysis status has one of the following values:

 
Parameters:
token: the security token returned from login
 
containerName: The name of the directory in WSED
 
FileName: the name of the file or file pattern. If the value is null, the given directory structure is recursively analyzed. A file pattern can include an asterisk (*) in place of a string of characters. For example, to include all files starting with "PAYRL", specify: "PAYRL*". To scan a specific file, specify the file name, for example: "PAYRL05".
 
resourceManagerName: the name of the resource manager in WebSphere Studio Asset Analyzer. If the value is null, the local file system is assumed.
Returns:
true if the container is found and the request is accepted; otherwise returns false. The existence of the specific file for a given file pattern is not verified.

delete

public void delete((WsaaAuthToken) token,
                   (WsaaAssetKey) assetKeyToDelete)
            throws WsaaExternalException

 
Valid only for files, containers, and projects. The functionality is equivalent to deleting the asset by using the WebSphere Studio Asset Analyzer UI. If the asset key of a file is specified, the file and corresponding related assets, such as data elements and programs, are deleted from WebSphere Studio Asset Analyzer. If the asset key of a container name is specified, the container metadata and all data about the files in that container are deleted. Because containers in WebSphere Studio Asset Analyzer do not include other containers, container deleting is not recursive. Thus, if you are deleting a high-level directory, subdirectories are not deleted.
 
Parameters:
token: the security token returned from login
 
assetKeyToDelete: an asset key of type of file or a container.
 

getAllAssetTypes

public (WsaaAssetType)[] getAllAssetTypes((WsaaAuthToken) token)
                                 throws WsaaExternalException

 
Obtain the list of asset types that are supported by WebSphere Studio Asset Analyzer APIs, the list of the names of their attributes, and the relationships that are supported.
 
Parameters:
token: WsaaAuthToken, the security token returned from login
Returns:
An array with instances of all of the asset types that are support by WebSphere Studio Asset Analyzer APIs. Each asset type object includes the following values:
  • The name of the asset type
  • Description
  • A list of all of the attribute names that are supported for this asset type
  • A list of all of the relationship names that are supported for this asset type

getAnalysisStatus

public java.lang.String getAnalysisStatus((WsaaAuthToken) token)
                                   throws WsaaExternalException

 
Gives the status of analysis process.
 
Parameters:
token: WsaaAuthToken, the security token returned from login
Returns:
  • Incomplete: in progress
  • Completed: finished
  • Pending: there are outstanding analysis requests, but analysis is not running. For example, analysis is not yet started or has failed without processing all requests.

getAsset

public (WsaaAsset) getAsset((WsaaAuthToken) pToken,
                          (WsaaAssetKey) pKey)
                   throws WsaaExternalException

 
Retrieve the asset instance with all attributes based on asset key.
 
Parameters:
pToken: WsaaAuthToken, the security token returned from login
 
pKey: WsaaAssetKey
Returns:
WsaaAsset with the asset-attributes array populated with values of all supported attributes

getAssetCount

public int getAssetCount((WsaaAuthToken) token,
                         (WsaaQuery) query)
                  throws WsaaExternalException

 
Find the number of assets that match the criteria specified by query
 
Parameters:
token: WsaaAuthToken, the security token returned from login
 
query: WsaaQuery; Alert: Some combinations of scope in WsaaQuery object are invalid; see WsaaQuery limitations ***.
Returns:
int number of assets that match the criteria specified by query

getAssets

public (WsaaAsset)[] getAssets((WsaaAuthToken) token,
                             (WsaaQuery) query,
                             (WsaaPagingData) pData)
                      throws WsaaExternalException

 
Retrieve instances of assets matching the criteria specified in query
 
Parameters:
token: WsaaAuthToken, the security token returned from login
 
query: WsaaQuery with valid search criteria and a list of names of requested asset attributes to be returned. Only attributes with explicitly requested names are returned by this API. If the list is empty, no attributes are returned
 
pData: WsaaPagingData specifying the page size, the number of assets to be returned in a single call, and the requested page number
Returns:
WsaaAsset[] an array populated with asset objects that match the criteria specified in the query object. Asset attributes are populated only with the values explicitly requested in the query.

getAssetType

public (WsaaAssetType) getAssetType((WsaaAuthToken) token,
                                  java.lang.String typeName)

 
Retrieve WsaaAssetType object instance based on asset type name. The returned object includes a list of the names of asset attributes and relationships that are supported by this given type.
 
Parameters:
token: WsaaAuthToken, the security token returned from login
 
typeName: string
Returns:
WsaaAssetType as described in (getAllAssetTypes)
 

getAttributeValue

public java.lang.String getAttributeValue((WsaaAuthToken) pToken,
                                          (WsaaAssetKey) pKey,
                                          java.lang.String pAttributeName)
                                   throws WsaaExternalException

 
Obtain attribute value of a specific attribute for a given asset. The asset is pointed to by the asset key, and the attribute is identified by its name.
 
Parameters:
pToken: WsaaAuthToken, the security token returned from login
 
pKey: WsaaAssetKey
 
pAttributeName: String
Returns:
String: attribute value

getRelatedAssets

public (WsaaAssetKey)[] getRelatedAssets((WsaaAuthToken) token,
                                       (WsaaAssetKey) anchorAsset,
                                       java.lang.String relationshipName)
                                throws WsaaExternalException

 
Retrieve the list of assets remaining in the named relationship with the given asset.
 
Parameters:
token: WsaaAuthToken, the security token returned from login. See login.
 
anchorAsset: WsaaAssetKey of the subject asset
 
relationshipName: String, the name of the requested relationship
Returns:
WsaaAssetKey[]: an array of WsaaAssetKey with assets remaining in the relationship named relationshipName with the anchorAsset
 

getVersion

public java.lang.String getVersion()
 
Obtain the version of API.
 
Returns:
A string that identifies the version of the WebSphere Studio Asset Analyzer external interface. The returned string has the following format: IBM WSAA V4.1 yy/mm/dd nn.mm[.mm].. WSAA WS engine: yy/mm/dd nn.mm[.mm], where nn.mm is a minor development: a version of the related component for support information.
 

impactAnalysis

public (WsaaAssetKey) impactAnalysis((WsaaAuthToken) token,
                                   (WsaaAssetKey)[] dataElements)
                            throws WsaaExternalException

 
Initiates impact analysis for a given set of seeds. You can subsequently use the returned project key in the getAssets API to set the WsaaQuery object and retrieve lists of impacted assets. This is an asynchronous function.
 
Parameters:
token: WsaaAuthToken, the security token returned from login
 
dataElements: an array of data element keys constituting the seeds for impact analysis
Returns:
Project Asset Key, which you should query for the AnalysisStatus attribute value by using the getAttributeValue API, to verify that the analysis has completed The expected value is "C", for Complete.

login

public (WsaaAuthToken) login(java.lang.String pUserId,
                           java.lang.String pPassword)
                    throws WsaaExternalException

 
Authenticate with WebSphere Studio Asset Analyzer API.
 
Parameters:
pUserId: a valid user ID that has access to WebSphere Studio Asset Analyzer
 
pPassword: a valid password
Returns:
WsaaAuthToken a security token that you use in other operations to authenticate the requesting client

setAttributeValue

public void setAttributeValue((WsaaAuthToken) authToken,
                              (WsaaAssetKey) key,
                              java.lang.String attributeName,
                              java.lang.String attributeValue)
                       throws WsaaExternalException

 
Store the value of the attribute in the WebSphere Studio Asset Analyzer database. You can set the value of the ExternalAnnotation attribute for selected asset types only.
 
Parameters:
authToken: WsaaAuthToken, the security token returned from login
 
key: WsaaAssetKey
 
attributeName: String, an attribute name
 
attributeValue: String, the value of the attribute to store in WebSphere Studio Asset Analyzer

Restrictions and notes

Interacting with Web Services

Your Web Service client code would typically first retrieve the list of supported asset types and corresponding asset attributes. You should use this blueprint for the model on the client side for the duration of the session.

Your client session is initialized by the call to the login API with the correct user ID and password. You can then start retrieving data and information about supported asset types and corresponding attribute names from WebSphere Studio Asset Analyzer by using the security token that is returned from login.

Sample client code

The following sample code retrieves one page of assets of each type:

public void
testGetAssets() throws RemoteException, WsaaExternalException {
    String endPointForTesting = "http://wsaa.ibm.com:9080/dmhws/services/WsaaService";
    WsaaServiceProxy proxy;
    WsaaAuthToken token;
    proxy = new WsaaServiceProxy();

    proxy.setEndpoint(endPointForTesting);
    token = proxy.login(null, "");
    WsaaAssetType[] types = proxy.getAllAssetTypes(token);
for (int i = 0; i < types.length; i++)
    { // iterate over all asset types

        System.out.println(" getting assets for : " + types[i].getName());
        WsaaQuery query = new WsaaQuery();

query.setAssetTypeName(types[i].getName());
        String[] attributesRequested = {"Name"}; // Name is a valid attribute for all asset types

        query.setRequestedAttributeNames(attributesRequested);
        query.setNamePattern(null); // we ask for all assets

        WsaaAsset[] assets = null;
        WsaaPagingData pd = new WsaaPagingData();

     // we are going to retrieve up to 5 assets for each type

        pd.setPageNumber(1);
        pd.setPageSize(5);
        assets = proxy.getAssets(token, query, pd);
   if (assets == null) {
throw new RuntimeException("No assets found");
        }

     // Print the results for this type

for (int j = 0; j < assets.length; j++) {
            WsaaAsset a;
            a = proxy.getAsset(token, assets[j].getKey());
            System.out.println(toStringAsset(a));
        }
    }
}

**
* @param asset
*

private
String toStringAsset(WsaaAsset asset) {
    StringBuffer dump = new StringBuffer();
    dump.append(asset.getKey().getTypeName() + ":\n");
    dump.append(" Id: "+ asset.getKey().getId() + "\n");
    WsaaAssetAttributeValue[] attribteValues = asset.getAttributeValues();
    dump.append(" Attributes: \n");
for (int i = 0; i < attribteValues.length; i++) {
        dump.append(" "+ (attribteValues[i].getName()+" ").substring(0, 19)+
        ": '"+ attribteValues[i].getValue() + "'\n");
    }
return
dump.toString();
}

Appendix A. WsaaAssetTypes.wsaaservices.xml file

The following XML sample shows the asset types and corresponding asset attributes that are supported by Web Services.

<?xml version="1.0" encoding="ASCII"?>
<services:WSAA xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:services="http:///services.ecore">
  <assetTypes name="Program" description="Program">
    <attributeNames>Name</attributeNames>
    <attributeNames>Site</attributeNames>
    <attributeNames>ContainerName</attributeNames>
    <attributeNames>ContainerAccessMethod</attributeNames>
    <attributeNames>FileName</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
    <attributeNames>AnalysisStatus</attributeNames>
    <attributeNames>SourceLocation</attributeNames>
    <attributeNames>Language</attributeNames>
    <attributeNames>FileType</attributeNames>
    <attributeNames>ViewSourceURL</attributeNames>
    <attributeNames>ProgramStructureURL</attributeNames>
    <relationshipNames>FilesNeededToBuild</relationshipNames>
  </assetTypes>
  <assetTypes name="Site" description="Site">
    <attributeNames>Name</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
  </assetTypes>
  <assetTypes name="RunUnit" description="Run unit">
    <attributeNames>Name</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
    <attributeNames>ExternalAnnotation</attributeNames>
    <attributeNames>Site</attributeNames>
  </assetTypes>
  <assetTypes name="CicsOnlineRegion" description="CICS online region">
    <attributeNames>Name</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
    <attributeNames>ExternalAnnotation</attributeNames>
    <attributeNames>Site</attributeNames>
  </assetTypes>
  <assetTypes name="File" description="File">
    <attributeNames>Name</attributeNames>
    <attributeNames>Site</attributeNames>
    <attributeNames>ContainerName</attributeNames>
    <attributeNames>ContainerAccessMethod</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
    <attributeNames>AnalysisStatus</attributeNames>
    <attributeNames>ExternalAnnotation</attributeNames>
    <attributeNames>SourceLocation</attributeNames>
    <attributeNames>Language</attributeNames>
    <attributeNames>FileType</attributeNames>
    <attributeNames>ViewSourceURL</attributeNames>
  </assetTypes>
  <assetTypes name="DataElement" description="Data element">
    <attributeNames>Name</attributeNames>
    <attributeNames>Site</attributeNames>
    <attributeNames>ContainerName</attributeNames>
    <attributeNames>ContainerAccessMethod</attributeNames>
    <attributeNames>FileName</attributeNames>
    <attributeNames>ProgramName</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
    <attributeNames>AnalysisStatus</attributeNames>
    <attributeNames>SourceLocation</attributeNames>
    <attributeNames>DefinitionLine</attributeNames>
  </assetTypes>
  <assetTypes name="CicsTransaction" description="CICS transaction">
    <attributeNames>Name</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
    <attributeNames>ExternalAnnotation</attributeNames>
    <attributeNames>Site</attributeNames>
    <attributeNames>RegionName</attributeNames>
    <attributeNames>GroupName</attributeNames>
    <attributeNames>RunUnitName</attributeNames>
  </assetTypes>
  <assetTypes name="Project" description="Impact analysis">
    <attributeNames>Name</attributeNames>
    <attributeNames>AnalysisStatus</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
  </assetTypes>
  <assetTypes name="Container" description="Container">
    <attributeNames>Name</attributeNames>
    <attributeNames>Site</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
    <attributeNames>ExternalAnnotation</attributeNames>
    <attributeNames>ContainerAccessMethod</attributeNames>
  </assetTypes>
  <assetTypes name="ImsTransaction" description="IMS transaction">
    <attributeNames>Name</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
    <attributeNames>ExternalAnnotation</attributeNames>
  </assetTypes>
  <assetTypes name="Application" description="Application">
    <attributeNames>Name</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
  </assetTypes>
  <assetTypes name="ImsSubsystem" description="IMS subsystem">
    <attributeNames>Name</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
    <attributeNames>ExternalAnnotation</attributeNames>
  </assetTypes>
  <assetTypes name="EntryPoint" description="Entry point">
    <attributeNames>Name</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
    <attributeNames>ExternalAnnotation</attributeNames>
    <attributeNames>Site</attributeNames>
    <attributeNames>ProgramName</attributeNames>
  </assetTypes>
  <assetTypes name="CicsGroup" description="CICS group">
    <attributeNames>Name</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
    <attributeNames>ExternalAnnotation</attributeNames>
    <attributeNames>Site</attributeNames>
    <attributeNames>RegionName</attributeNames>
  </assetTypes>
  <assetTypes name="BatchJob" description="Batch job">
    <attributeNames>Name</attributeNames>
    <attributeNames>Site</attributeNames>
    <attributeNames>ContainerName</attributeNames>
    <attributeNames>ContainerAccessMethod</attributeNames>
    <attributeNames>FileName</attributeNames>
    <attributeNames>AnalysisStatus</attributeNames>
    <attributeNames>DetailsURL</attributeNames>
  </assetTypes>
</services:WSAA>

Appendix B. Sample WSDL file

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://services.external.dmh.ibm.com"
 xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap"
 xmlns:impl="http://services.external.dmh.ibm.com" xmlns:intf="http://services.external.dmh.ibm.com"
 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <wsdl:types>
  <schema elementFormDefault="qualified" targetNamespace="http://services.external.dmh.ibm.com"
  xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap"
  xmlns:impl="http://services.external.dmh.ibm.com" xmlns:intf="http://services.external.dmh.ibm.com"
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
   <complexType name="WsaaAuthToken">
    <sequence>
     <element name="authToken" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getRelatedAssets">
    <complexType>
     <sequence>
      <element name="token" nillable="true" type="impl:WsaaAuthToken"/>
      <element name="anchorAsset" nillable="true" type="impl:WsaaAssetKey"/>
      <element name="relationshipName" nillable="true" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="WsaaAssetKey">
    <sequence>
     <element name="id" nillable="true" type="xsd:string"/>
     <element name="typeName" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getRelatedAssetsResponse">
    <complexType>
     <sequence>
      <element maxOccurs="unbounded" name="getRelatedAssetsReturn" type="impl:WsaaAssetKey"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="WsaaExternalException">
    <sequence>
     <element name="detail" nillable="true" type="xsd:string"/>
     <element name="enclosedException" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="WsaaExternalException" nillable="true" type="impl:WsaaExternalException"/>
   <element name="login">
    <complexType>
     <sequence>
      <element name="pUserId" nillable="true" type="xsd:string"/>
      <element name="pPassword" nillable="true" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="loginResponse">
    <complexType>
     <sequence>
      <element name="loginReturn" nillable="true" type="impl:WsaaAuthToken"/>
     </sequence>
    </complexType>
   </element>
   <element name="getAssetType">
    <complexType>
     <sequence>
      <element name="token" nillable="true" type="impl:WsaaAuthToken"/>
      <element name="typeName" nillable="true" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="WsaaAssetType">
    <sequence>
     <element name="name" nillable="true" type="xsd:string"/>
     <element name="description" nillable="true" type="xsd:string"/>
     <element maxOccurs="unbounded" name="attributeNames" nillable="true" type="xsd:string"/>
     <element maxOccurs="unbounded" name="relationshipNames" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getAssetTypeResponse">
    <complexType>
     <sequence>
      <element name="getAssetTypeReturn" nillable="true" type="impl:WsaaAssetType"/>
     </sequence>
    </complexType>
   </element>
   <element name="getAsset">
    <complexType>
     <sequence>
      <element name="pToken" nillable="true" type="impl:WsaaAuthToken"/>
      <element name="pKey" nillable="true" type="impl:WsaaAssetKey"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="WsaaAsset">
    <sequence>
     <element maxOccurs="unbounded" name="attributeValues" nillable="true" type="impl:WsaaAssetAttributeValue"/>
     <element name="key" nillable="true" type="impl:WsaaAssetKey"/>
    </sequence>
   </complexType>
   <complexType name="WsaaAssetAttributeValue">
    <sequence>
     <element name="name" nillable="true" type="xsd:string"/>
     <element name="value" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getAssetResponse">
    <complexType>
     <sequence>
      <element name="getAssetReturn" nillable="true" type="impl:WsaaAsset"/>
     </sequence>
    </complexType>
   </element>
   <element name="getAssets">
    <complexType>
     <sequence>
      <element name="token" nillable="true" type="impl:WsaaAuthToken"/>
      <element name="query" nillable="true" type="impl:WsaaQuery"/>
      <element name="pData" nillable="true" type="impl:WsaaPagingData"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="WsaaQuery">
    <sequence>
     <element name="namePattern" nillable="true" type="xsd:string"/>
     <element name="containerNamePattern" nillable="true" type="xsd:string"/>
     <element name="assetTypeName" nillable="true" type="xsd:string"/>
     <element maxOccurs="unbounded" name="requestedAttributeNames" nillable="true" type="xsd:string"/>
     <element name="application" nillable="true" type="impl:WsaaAssetKey"/>
     <element name="project" nillable="true" type="impl:WsaaAssetKey"/>
     <element name="site" nillable="true" type="impl:WsaaAssetKey"/>
    </sequence>
   </complexType>
   <complexType name="WsaaPagingData">
    <sequence>
     <element name="pageNumber" type="xsd:int"/>
     <element name="pageSize" type="xsd:int"/>
    </sequence>
   </complexType>
   <element name="getAssetsResponse">
    <complexType>
     <sequence>
      <element maxOccurs="unbounded" name="getAssetsReturn" type="impl:WsaaAsset"/>
     </sequence>
    </complexType>
   </element>
   <element name="analyze">
    <complexType>
     <sequence>
      <element name="token" nillable="true" type="impl:WsaaAuthToken"/>
      <element name="containerName" nillable="true" type="xsd:string"/>
      <element name="FileName" nillable="true" type="xsd:string"/>
      <element name="resourceManagerName" nillable="true" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="analyzeResponse">
    <complexType>
     <sequence>
      <element name="analyzeReturn" type="xsd:boolean"/>
     </sequence>
    </complexType>
   </element>
   <element name="impactAnalysis">
    <complexType>
     <sequence>
      <element name="token" nillable="true" type="impl:WsaaAuthToken"/>
      <element maxOccurs="unbounded" name="dataElements" type="impl:WsaaAssetKey"/>
     </sequence>
    </complexType>
   </element>
   <element name="impactAnalysisResponse">
    <complexType>
     <sequence>
      <element name="impactAnalysisReturn" nillable="true" type="impl:WsaaAssetKey"/>
     </sequence>
    </complexType>
   </element>
   <element name="getVersion">
    <complexType>
     <sequence/>
    </complexType>
   </element>
   <element name="getVersionResponse">
    <complexType>
     <sequence>
      <element name="getVersionReturn" nillable="true" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="delete">
    <complexType>
     <sequence>
      <element name="token" nillable="true" type="impl:WsaaAuthToken"/>
      <element name="assetKeyToDelete" nillable="true" type="impl:WsaaAssetKey"/>
     </sequence>
    </complexType>
   </element>
   <element name="deleteResponse">
    <complexType>
     <sequence/>
    </complexType>
   </element>
   <element name="setAttributeValue">
    <complexType>
     <sequence>
      <element name="authToken" nillable="true" type="impl:WsaaAuthToken"/>
      <element name="key" nillable="true" type="impl:WsaaAssetKey"/>
      <element name="attributeName" nillable="true" type="xsd:string"/>
      <element name="attributeValue" nillable="true" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="setAttributeValueResponse">
    <complexType>
     <sequence/>
    </complexType>
   </element>
   <element name="getAnalysisStatus">
    <complexType>
     <sequence>
      <element name="token" nillable="true" type="impl:WsaaAuthToken"/>
     </sequence>
    </complexType>
   </element>
   <element name="getAnalysisStatusResponse">
    <complexType>
     <sequence>
      <element name="getAnalysisStatusReturn" nillable="true" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="getAllAssetTypes">
    <complexType>
     <sequence>
      <element name="token" nillable="true" type="impl:WsaaAuthToken"/>
     </sequence>
    </complexType>
   </element>
   <element name="getAllAssetTypesResponse">
    <complexType>
     <sequence>
      <element maxOccurs="unbounded" name="getAllAssetTypesReturn" type="impl:WsaaAssetType"/>
     </sequence>
    </complexType>
   </element>
   <element name="getAssetCount">
    <complexType>
     <sequence>
      <element name="token" nillable="true" type="impl:WsaaAuthToken"/>
      <element name="query" nillable="true" type="impl:WsaaQuery"/>
     </sequence>
    </complexType>
   </element>
   <element name="getAssetCountResponse">
    <complexType>
     <sequence>
      <element name="getAssetCountReturn" type="xsd:int"/>
     </sequence>
    </complexType>
   </element>
   <element name="getAttributeValue">
    <complexType>
     <sequence>
      <element name="pToken" nillable="true" type="impl:WsaaAuthToken"/>
      <element name="pKey" nillable="true" type="impl:WsaaAssetKey"/>
      <element name="pAttributeName" nillable="true" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="getAttributeValueResponse">
    <complexType>
     <sequence>
      <element name="getAttributeValueReturn" nillable="true" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
  </schema>
 </wsdl:types>

   <wsdl:message name="getRelatedAssetsRequest">

      <wsdl:part element="intf:getRelatedAssets" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAnalysisStatusRequest">

      <wsdl:part element="intf:getAnalysisStatus" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAnalysisStatusResponse">

      <wsdl:part element="intf:getAnalysisStatusResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAttributeValueResponse">

      <wsdl:part element="intf:getAttributeValueResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="deleteRequest">

      <wsdl:part element="intf:delete" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="analyzeRequest">

      <wsdl:part element="intf:analyze" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="loginResponse">

      <wsdl:part element="intf:loginResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAssetCountRequest">

      <wsdl:part element="intf:getAssetCount" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="impactAnalysisResponse">

      <wsdl:part element="intf:impactAnalysisResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="impactAnalysisRequest">

      <wsdl:part element="intf:impactAnalysis" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAssetCountResponse">

      <wsdl:part element="intf:getAssetCountResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="setAttributeValueRequest">

      <wsdl:part element="intf:setAttributeValue" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getVersionResponse">

      <wsdl:part element="intf:getVersionResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAllAssetTypesResponse">

      <wsdl:part element="intf:getAllAssetTypesResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="loginRequest">

      <wsdl:part element="intf:login" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAllAssetTypesRequest">

      <wsdl:part element="intf:getAllAssetTypes" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAssetResponse">

      <wsdl:part element="intf:getAssetResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAssetsRequest">

      <wsdl:part element="intf:getAssets" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAssetTypeRequest">

      <wsdl:part element="intf:getAssetType" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getVersionRequest">

      <wsdl:part element="intf:getVersion" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="setAttributeValueResponse">

      <wsdl:part element="intf:setAttributeValueResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="deleteResponse">

      <wsdl:part element="intf:deleteResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="WsaaExternalException">

      <wsdl:part element="intf:WsaaExternalException" name="fault"/>

   </wsdl:message>

   <wsdl:message name="getRelatedAssetsResponse">

      <wsdl:part element="intf:getRelatedAssetsResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAssetsResponse">

      <wsdl:part element="intf:getAssetsResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAssetRequest">

      <wsdl:part element="intf:getAsset" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAssetTypeResponse">

      <wsdl:part element="intf:getAssetTypeResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getAttributeValueRequest">

      <wsdl:part element="intf:getAttributeValue" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="analyzeResponse">

      <wsdl:part element="intf:analyzeResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:portType name="WsaaService">

      <wsdl:operation name="getRelatedAssets">

         <wsdl:input message="intf:getRelatedAssetsRequest" name="getRelatedAssetsRequest"/>

         <wsdl:output message="intf:getRelatedAssetsResponse" name="getRelatedAssetsResponse"/>

         <wsdl:fault message="intf:WsaaExternalException" name="WsaaExternalException"/>

      </wsdl:operation>

      <wsdl:operation name="login">

         <wsdl:input message="intf:loginRequest" name="loginRequest"/>

         <wsdl:output message="intf:loginResponse" name="loginResponse"/>

         <wsdl:fault message="intf:WsaaExternalException" name="WsaaExternalException"/>

      </wsdl:operation>

      <wsdl:operation name="getAssetType">

         <wsdl:input message="intf:getAssetTypeRequest" name="getAssetTypeRequest"/>

         <wsdl:output message="intf:getAssetTypeResponse" name="getAssetTypeResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getAsset">

         <wsdl:input message="intf:getAssetRequest" name="getAssetRequest"/>

         <wsdl:output message="intf:getAssetResponse" name="getAssetResponse"/>

         <wsdl:fault message="intf:WsaaExternalException" name="WsaaExternalException"/>

      </wsdl:operation>

      <wsdl:operation name="getAssets">

         <wsdl:input message="intf:getAssetsRequest" name="getAssetsRequest"/>

         <wsdl:output message="intf:getAssetsResponse" name="getAssetsResponse"/>

         <wsdl:fault message="intf:WsaaExternalException" name="WsaaExternalException"/>

      </wsdl:operation>

      <wsdl:operation name="analyze">

         <wsdl:input message="intf:analyzeRequest" name="analyzeRequest"/>

         <wsdl:output message="intf:analyzeResponse" name="analyzeResponse"/>

         <wsdl:fault message="intf:WsaaExternalException" name="WsaaExternalException"/>

      </wsdl:operation>

      <wsdl:operation name="impactAnalysis">

         <wsdl:input message="intf:impactAnalysisRequest" name="impactAnalysisRequest"/>

         <wsdl:output message="intf:impactAnalysisResponse" name="impactAnalysisResponse"/>

         <wsdl:fault message="intf:WsaaExternalException" name="WsaaExternalException"/>

      </wsdl:operation>

      <wsdl:operation name="getVersion">

         <wsdl:input message="intf:getVersionRequest" name="getVersionRequest"/>

         <wsdl:output message="intf:getVersionResponse" name="getVersionResponse"/>

      </wsdl:operation>

      <wsdl:operation name="delete">

         <wsdl:input message="intf:deleteRequest" name="deleteRequest"/>

         <wsdl:output message="intf:deleteResponse" name="deleteResponse"/>

         <wsdl:fault message="intf:WsaaExternalException" name="WsaaExternalException"/>

      </wsdl:operation>

      <wsdl:operation name="setAttributeValue">

         <wsdl:input message="intf:setAttributeValueRequest" name="setAttributeValueRequest"/>

         <wsdl:output message="intf:setAttributeValueResponse" name="setAttributeValueResponse"/>

         <wsdl:fault message="intf:WsaaExternalException" name="WsaaExternalException"/>

      </wsdl:operation>

      <wsdl:operation name="getAnalysisStatus">

         <wsdl:input message="intf:getAnalysisStatusRequest" name="getAnalysisStatusRequest"/>

         <wsdl:output message="intf:getAnalysisStatusResponse" name="getAnalysisStatusResponse"/>

         <wsdl:fault message="intf:WsaaExternalException" name="WsaaExternalException"/>

      </wsdl:operation>

      <wsdl:operation name="getAllAssetTypes">

         <wsdl:input message="intf:getAllAssetTypesRequest" name="getAllAssetTypesRequest"/>

         <wsdl:output message="intf:getAllAssetTypesResponse" name="getAllAssetTypesResponse"/>

         <wsdl:fault message="intf:WsaaExternalException" name="WsaaExternalException"/>

      </wsdl:operation>

      <wsdl:operation name="getAssetCount">

         <wsdl:input message="intf:getAssetCountRequest" name="getAssetCountRequest"/>

         <wsdl:output message="intf:getAssetCountResponse" name="getAssetCountResponse"/>

         <wsdl:fault message="intf:WsaaExternalException" name="WsaaExternalException"/>

      </wsdl:operation>

      <wsdl:operation name="getAttributeValue">

         <wsdl:input message="intf:getAttributeValueRequest" name="getAttributeValueRequest"/>

         <wsdl:output message="intf:getAttributeValueResponse" name="getAttributeValueResponse"/>

         <wsdl:fault message="intf:WsaaExternalException" name="WsaaExternalException"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="WsaaServiceSoapBinding" type="intf:WsaaService">

      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="getRelatedAssets">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getRelatedAssetsRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getRelatedAssetsResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

         <wsdl:fault name="WsaaExternalException">

            <wsdlsoap:fault name="WsaaExternalException" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="login">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="loginRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="loginResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

         <wsdl:fault name="WsaaExternalException">

            <wsdlsoap:fault name="WsaaExternalException" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="getAssetType">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getAssetTypeRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getAssetTypeResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getAsset">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getAssetRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getAssetResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

         <wsdl:fault name="WsaaExternalException">

            <wsdlsoap:fault name="WsaaExternalException" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="getAssets">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getAssetsRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getAssetsResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

         <wsdl:fault name="WsaaExternalException">

            <wsdlsoap:fault name="WsaaExternalException" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="analyze">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="analyzeRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="analyzeResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

         <wsdl:fault name="WsaaExternalException">

            <wsdlsoap:fault name="WsaaExternalException" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="impactAnalysis">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="impactAnalysisRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="impactAnalysisResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

         <wsdl:fault name="WsaaExternalException">

            <wsdlsoap:fault name="WsaaExternalException" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="getVersion">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getVersionRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getVersionResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="delete">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="deleteRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="deleteResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

         <wsdl:fault name="WsaaExternalException">

            <wsdlsoap:fault name="WsaaExternalException" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="setAttributeValue">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="setAttributeValueRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="setAttributeValueResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

         <wsdl:fault name="WsaaExternalException">

            <wsdlsoap:fault name="WsaaExternalException" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="getAnalysisStatus">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getAnalysisStatusRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getAnalysisStatusResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

         <wsdl:fault name="WsaaExternalException">

            <wsdlsoap:fault name="WsaaExternalException" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="getAllAssetTypes">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getAllAssetTypesRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getAllAssetTypesResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

         <wsdl:fault name="WsaaExternalException">

            <wsdlsoap:fault name="WsaaExternalException" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="getAssetCount">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getAssetCountRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getAssetCountResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

         <wsdl:fault name="WsaaExternalException">

            <wsdlsoap:fault name="WsaaExternalException" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="getAttributeValue">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getAttributeValueRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getAttributeValueResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

         <wsdl:fault name="WsaaExternalException">

            <wsdlsoap:fault name="WsaaExternalException" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="WsaaServiceService">

      <wsdl:port binding="intf:WsaaServiceSoapBinding" name="WsaaService">

         <wsdlsoap:address location="http://localhost:9080/dmhws/services/WsaaService"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>

Notices

References in this document to IBM products, programs, or services do not imply that IBM intends to make these available in all countries in which IBM operates. Any reference to an IBM product, program, or service is not intended to state or imply that only IBM's product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe on any of IBM's intellectual property rights may be used instead of the IBM product, program, or service. Evaluation and verification of operation in conjunction with other products, except those expressly designated by IBM, is the responsibility of the user.

To obtain current service recommendations and to identify current product service requirements, always contact the IBM Customer Support Center or use S/390 SoftwareXcel to obtain the current "PSP Bucket".

IBM may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to the

IBM Director of Licensing
IBM Corporation
J46A/G4
555 Bailey Avenue
San Jose, CA 95141-1099
USA

For online versions of this book, we authorize you to:

You are responsible for payment of any taxes, including personal property taxes, resulting from this authorization.

THERE ARE NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Some jurisdictions do not allow the exclusion of implied warranties, so the above exclusion may not apply to you.

Your failure to comply with the terms above terminates this authorization. Upon termination, you must destroy your machine readable documentation.

Trademarks

The following terms are trademarks of the IBM Corporation in the United States or other countries or both:

CBPDO
CICS
DB2
IBM(R)
IMS
OS/390
RETAIN
ServerPac
SystemPac
WebSphere
z/OS

ClearCase is trademark of Rational Software Corporation in the United States, other countries, or both.

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.

Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.

UNIX is a registered trademark of The Open Group in the United States and other countries.

Other company, product and service names may be trademarks or service marks of others.