Datapower SOMA Calls

The primary administration automation mechanism on IBM WebSphere DataPower appliances is the XML Management Interface.  The XMI interface allows one to make SOMA (SOAP Configuration Management, assuming SOMA = SOap MAnagement) calls to perform various administration tasks.  How to perform these various administrative tasks is not the most documented feature of DataPowerSmile.  So, in this article and in follow up posts, I’ll present some examples of how to do common things like creating WS-Proxy objects and MPG objects.

The WSDL and XSDs for the SOMA interface is located in the store:/// directory.  Look at the files that begin with xml-mgmt*.  You’ll see:

image

The following files describe the SOMA interface (it’s a SOAP service with one operation).

xml-mgmt-base.xsd
xml-mgmt-ops.xsd
xml-mgmt.wsdl
xml-mgmt.xsd

Note, I’m assuming that you are familiar with SOAPUI.

The easiest way to test out SOMA calls is with SOAPUI.  Load the SOMA WSDL shown above into a new SOAPUI project.  Enter the URL of your appliances XMI.  For example,

https://dp2.rcbjconsulting.com:5550/service/mgmt/current

The “/current” part of the path will invoke the current version of the SOMA services.  It is possible to call earlier versions.

The XMI port requires basic authentication.  So, configure SOAPUI to embed a username and password in the HTTP Authorization header (note this is NOT a Username Token).

The XMI Management Interface and SOMA calls are described in this redbook.

As a simple test, a very common thing to do with a SOMA call is to flush a document cache.  Add the following request message (from the Redbook above) to your SOAPUI project.

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
            <env:Body>
                <dp:request domain="RCBJ-DOMAIN"
xmlns:dp="http://www.datapower.com/schemas/management">
                    <dp:do-action>
                        <FlushDocumentCache>
                             <XMLManager>RCBJDocumentCache</XMLManager>
                        </FlushDocumentCache>
                    </dp:do-action>

                </dp:request>
            </env:Body>
</env:Envelope>

You should get something back similar to:

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<dp:response xmlns:dp="http://www.datapower.com/schemas/management">
<dp:timestamp>2012-10–0T22:13:14-05:00</dp:timestamp>
<dp:result>OK</dp:result>
</dp:response>
</env:Body>
</env:Envelope>

I will add a collection of SOMA call examples to ThinkMiddleware.com in the future.