Expecco RPC Interface

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen

Introduction[Bearbeiten]

Many of the operations of expecco can be remote-controlled via RPC interfaces. These interfaces allow for external programs to invoke functions of an expecco running in "slave-mode", thereby allowing for expecco to be integrated into an existing QM infrastructure.

Currently, interfaces are available for:

XML-RPC[Bearbeiten]

XML-RPC is a lightweight xml-based RPC mechanism, as documented in http://www.xmlrpc.com/spec. XML-RPC uses HTTP as a transport mechanism. Implementations for XML-RPC are very lightweight and available for many programming languages and systems. The protocol is simple enough, to be even used by humans; for example, to invoke the system.versionInfo call as described below, send the following HTTP-POST-request to the service:

  <?xml version="1.0"?>
  <methodCall>
    <methodName>system.listMethods</methodName>
    <params></params>
  </methodCall>

and get the response:

  <?xml version="1.0"?>
    <methodResponse>
      <params>
        <param>
          <value>
            <array>
              <data>
                <value>system.getCapabilities</value>
                <value>system.listMethods</value>
                <value>system.methodHelp</value>
                ...
              </data>
            </array>
          </value>
        </param>
      </params>
    </methodResponse>

Introspection[Bearbeiten]

The XML-RPC implementation supports the introspection interface:


  • struct system.getCapabilities( )
    returns a structure containing info about supported RPC-interfaces and protocols


  • struct system.versionInfo( )
    returns a structure containing version info about the RPC-service itself


  • array system.listMethods()
    returns a vector of strings, comprising the names of supported RPC-entries.


  • array system.methodSignature( string )
    returns a vector of strings, comprising the return-type and argument types names of the given RPC-entry.


  • string system.methodHelp( string )
    returns an informative string, describing the functionality of the given RPC-entry.


use system.getCapabilities to get up-to-date information on the supported interfaces.

 

JSON-RPC[Bearbeiten]

JSON-RPC a lightweight JSON-based RPC mechanism, documented in http://json-rpc.org/wiki/specification and http://groups.google.com/group/json-rpc/web/json-rpc-2-0. JSON is a very simple encoding, which is common among JavaScript based browser applications. JSON can therefore be used to control a running expecco from an interactive web-page.

SOAP[Bearbeiten]

SOAP is a not so lightweight xml-based RPC mechanism, which is well-documented and well-supported, especially in java enterprise and SOA environments. Specs are found in http://www.w3.org/TR/soap. Operations are described by a standard notation (WSDL), which can be parsed and used for automatic generation of service call interfaces. See http://www.w3.org/TR/wsdl for details.

The SOAP interface is also used by expeccoNET to control the execution of its remote testHosts.

Telnet[Bearbeiten]

The Telnet protocol is a very simple, line-oriented ascii-command interface, which can even be entered by a human operator. Its simplicity enables even simple batch-files or shell scripts to communicate with expecco slaves. The telnet protocol is specified in RFC854 (http://www.ietf.org/rfc/rfc854.txt).

HTTP[Bearbeiten]

It is also possible to talk to expecco directly via HTTP. Thus, any webBrowser can be used to control an expecco slave.



Back to Online Documentation



Copyright © 2014-2024 eXept Software AG