Expecco RPC Interface: Unterschied zwischen den Versionen

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen
(Weiterleitung nach Expecco RPC Interface/en erstellt)
 
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
#redirect [[ Expecco RPC Interface/en ]]
== Introduction ==
[[Category: Incomplete]]
This document describes how expecco itself can be controlled by other programs, not how expecco can interact with the SUT. However, all of the interfaces described below can also be used by an expecco test suite to do so.
[[Category: Empty]]

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 ==
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 - in contrast to SOAP, which by many is no longer considered to be "simple".
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:

<CODE><PRE>
<?xml version="1.0"?>
<methodCall>
<methodName>system.listMethods</methodName>
<params></params>
</methodCall>
</PRE></CODE>
and get the response:
<CODE><PRE>
<?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>
</PRE></CODE>

==== Introspection ====
The XML-RPC implementation supports the introspection interface:


*'''struct''' ''system.getCapabilities''( )<br>returns a structure containing info about supported RPC-interfaces and protocols


*'''struct''' ''system.versionInfo''( )<br>returns a structure containing version info about the RPC-service itself


*'''array''' ''system.listMethods''()<br>returns a vector of strings, comprising the names of supported RPC-entries.


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


*'''string''' ''system.methodHelp''( '''string''' )<br>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.

&nbsp;

== JSON-RPC ==
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 ==
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 ==
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 ==
It is also possible to talk to expecco directly via HTTP.
Thus, any webBrowser can be used to control an expecco slave.


<hr>
Back to [[Online_Documentation#Remote_Control_.28RPC.29_Interface_Reference | Online Documentation]]

Aktuelle Version vom 8. Dezember 2015, 17:23 Uhr

Weiterleitung nach:



Copyright © 2014-2024 eXept Software AG