AutoBAHN UAP interface description

advertisement
AutoBAHN
UAP interface description
(AutoBAHN version 1.0.3)
february 2012
AutoBAHN................................................................................................................................. 1
UAP interface description .......................................................................................................... 1
1. Introduction .................................................................................................................... 4
2. Interface specification .................................................................................................... 4
2.1. Common data types ................................................................................................ 6
2.1.1.
priority ................................................................................................................ 6
2.1.2.
resiliency ............................................................................................................ 6
2.1.3.
state .................................................................................................................... 6
2.1.4.
PathInfo .............................................................................................................. 7
2.1.5.
ReservationRequest ............................................................................................ 8
2.1.6.
ServiceRequest ................................................................................................... 9
2.1.7.
ReservationResponse ........................................................................................ 10
2.1.8.
ServiceResponse ............................................................................................... 11
2.1.9.
ModifyRequest .................................................................................................. 12
2.2. Operations ............................................................................................................ 13
2.2.1.
cancelService .................................................................................................... 13
2.2.1.1.
Request ......................................................................................................... 13
2.2.1.2.
Response....................................................................................................... 13
2.2.1.3.
Example ........................................................................................................ 13
2.2.2.
checkReservationPossibility ............................................................................. 14
2.2.2.1.
Request ......................................................................................................... 14
2.2.2.2.
Response....................................................................................................... 14
2.2.2.3.
Example ........................................................................................................ 15
2.2.3.
getAllDomains .................................................................................................. 16
2.2.3.1.
Request ......................................................................................................... 16
2.2.3.2.
Response....................................................................................................... 16
2.2.3.3.
Example ........................................................................................................ 16
2.2.4.
getAllLinks ........................................................................................................ 17
2.2.4.1.
Request ......................................................................................................... 17
2.2.4.2.
Response....................................................................................................... 17
2.2.4.3.
Example ........................................................................................................ 17
2.2.5.
getAllClientPorts .............................................................................................. 18
2.2.5.1.
Request ......................................................................................................... 18
2.2.5.2.
Response....................................................................................................... 18
2.2.5.3.
Example ........................................................................................................ 18
2.2.6.
getDomainClientPorts ...................................................................................... 19
2.2.6.1.
Request ......................................................................................................... 19
2.2.6.2.
Response....................................................................................................... 19
2.2.6.3.
Example ........................................................................................................ 19
2.2.7.
modifyReservation ............................................................................................ 20
2.2.7.1.
Request ......................................................................................................... 20
2.2.7.2.
Response....................................................................................................... 20
2.2.7.3.
Example ........................................................................................................ 20
2.2.8.
queryService ..................................................................................................... 21
2.2.8.1.
Request ......................................................................................................... 21
2.2.8.2.
Response....................................................................................................... 21
2.2.8.3.
Example ........................................................................................................ 22
2.2.9.
registerCallback ............................................................................................... 23
2.2.9.1.
Request ......................................................................................................... 23
2.2.9.2.
Response....................................................................................................... 23
2.2.9.3.
Example ........................................................................................................ 24
2.2.10. submitService ................................................................................................... 24
2.2.10.1. Request ......................................................................................................... 24
2.2.10.2. Response....................................................................................................... 24
2.2.10.3. Example ........................................................................................................ 25
2.2.11. submitServiceAndRegister ................................................................................ 26
2.2.11.1. Request ......................................................................................................... 26
2.2.11.2. Response....................................................................................................... 26
2.2.11.3. Example ........................................................................................................ 27
1. Introduction
This document describes the UAP interface which enables web service communication
between the AutoBAHN’s InterDomain Manager (IDM) and the WebGUI or other third-party
external User Interface for access to the AutoBAHN service. The WebGUI acts as a client,
sending requests which the IDM must be ready to receive and process at the server side. A
single WebGUI will typically be connected to all the IDMs comprising the AutoBAHN
federation, so that the user can have an overview of the service. (see Figure 1 Overview of
AutoBAHN high level architectureFigure 1).
Web GUI
AutoBAHN system
Single AutoBAHN instance
Lookup Service
Single AutoBAHN instance
Single AutoBAHN instance
Inter -Domain Manager
Inter -Domain Manager
Inter -Domain Manager
Domain Manager
Domain Manager
Domain Manager
Technology Proxy
Technology Proxy
Technology Proxy
Data plane
NMS
SDH domain
GE domain
Tool interface
IP domain
Client equipment
L2 MPLS VPN
GFP over SDH
Native Ethernet
Client equipment
Figure 1 Overview of AutoBAHN high level architecture
2. Interface specification
AutoBAHN system defines following SOAP interface between InterDomain Manager (IDM)
and WebGUI modules.
The wsdl excerpt defining the operations is listed below:
<wsdl:operation name="checkReservationPossibility">
<wsdl:input name="checkReservationPossibility"
message="tns:checkReservationPossibility" />
<wsdl:output name="checkReservationPossibilityResponse"
message="tns:checkReservationPossibilityResponse" />
<wsdl:fault name="UserAccessPointException"
message="tns:UserAccessPointException" />
</wsdl:operation>
<wsdl:operation name="getDomainClientPorts">
<wsdl:input name="getDomainClientPorts"
message="tns:getDomainClientPorts" />
<wsdl:output name="getDomainClientPortsResponse"
message="tns:getDomainClientPortsResponse" />
</wsdl:operation>
<wsdl:operation name="submitService">
<wsdl:input name="submitService" message="tns:submitService" />
<wsdl:output name="submitServiceResponse"
message="tns:submitServiceResponse" />
<wsdl:fault name="UserAccessPointException"
message="tns:UserAccessPointException" />
</wsdl:operation>
<wsdl:operation name="modifyReservation">
<wsdl:input name="modifyReservation" message="tns:modifyReservation" />
<wsdl:output name="modifyReservationResponse"
message="tns:modifyReservationResponse" />
</wsdl:operation>
<wsdl:operation name="getAllDomains">
<wsdl:input name="getAllDomains" message="tns:getAllDomains" />
<wsdl:output name="getAllDomainsResponse"
message="tns:getAllDomainsResponse" />
</wsdl:operation>
<wsdl:operation name="getAllLinks">
<wsdl:input name="getAllLinks" message="tns:getAllLinks" />
<wsdl:output name="getAllLinksResponse" message="tns:getAllLinksResponse"
/>
</wsdl:operation>
<wsdl:operation name="getAllClientPorts">
<wsdl:input name="getAllClientPorts" message="tns:getAllClientPorts" />
<wsdl:output name="getAllClientPortsResponse"
message="tns:getAllClientPortsResponse" />
</wsdl:operation>
<wsdl:operation name="cancelService">
<wsdl:input name="cancelService" message="tns:cancelService" />
<wsdl:output name="cancelServiceResponse"
message="tns:cancelServiceResponse" />
<wsdl:fault name="UserAccessPointException"
message="tns:UserAccessPointException" />
</wsdl:operation>
<wsdl:operation name="submitServiceAndRegister">
<wsdl:input name="submitServiceAndRegister"
message="tns:submitServiceAndRegister" />
<wsdl:output name="submitServiceAndRegisterResponse"
message="tns:submitServiceAndRegisterResponse" />
<wsdl:fault name="UserAccessPointException"
message="tns:UserAccessPointException" />
</wsdl:operation>
<wsdl:operation name="registerCallback">
<wsdl:input name="registerCallback" message="tns:registerCallback" />
<wsdl:output name="registerCallbackResponse"
message="tns:registerCallbackResponse" />
</wsdl:operation>
<wsdl:operation name="queryService">
<wsdl:input name="queryService" message="tns:queryService" />
<wsdl:output name="queryServiceResponse"
message="tns:queryServiceResponse" />
<wsdl:fault name="UserAccessPointException"
message="tns:UserAccessPointException" />
</wsdl:operation>
Detailed description of each operation and data types can be found in the following sections.
2.1. Common data types
2.1.1. priority
Keeps the priority of the reservation and takes one of the three values: NORMAL, HIGH,
HIGHEST.
<xs:simpleType name="priority">
<xs:restriction base="xs:string">
<xs:enumeration value="NORMAL" />
<xs:enumeration value="HIGH" />
<xs:enumeration value="HIGHEST" />
</xs:restriction>
</xs:simpleType>
2.1.2. resiliency
Keeps the resiliency of the reservation and takes one of the three values: NONE,
ONE_TO_ONE, ONE_PLUS_ONE.
<xs:simpleType name="resiliency">
<xs:restriction base="xs:string">
<xs:enumeration value="NONE" />
<xs:enumeration value="ONE_TO_ONE" />
<xs:enumeration value="ONE_PLUS_ONE" />
</xs:restriction>
</xs:simpleType>
2.1.3. mode
Keeps the VLAN mode for a start or end port. It takes one of the three values: VLAN,
UNTAGGED, TRANSPARENT.
<xs:simpleType name="mode">
<xs:restriction base="xs:string">
<xs:enumeration value="VLAN" />
<xs:enumeration value="UNTAGGED" />
<xs:enumeration value="TRANSPARENT" />
</xs:restriction>
</xs:simpleType>
2.1.4. state
Keeps the state of the reservation and takes one of the values shown below.
<xs:simpleType name="state">
<xs:restriction base="xs:string">
<xs:enumeration value="ACCEPTED" />
<xs:enumeration value="PATHFINDING" />
<xs:enumeration value="LOCAL_CHECK" />
<xs:enumeration value="SCHEDULING" />
<xs:enumeration value="SCHEDULED" />
<xs:enumeration value="CANCELLING" />
<xs:enumeration value="WITHDRAWING" />
<xs:enumeration value="DEFERRED_CANCEL" />
<xs:enumeration value="ACTIVATING" />
<xs:enumeration value="ACTIVE" />
<xs:enumeration value="FINISHING" />
<xs:enumeration value="FINISHED" />
<xs:enumeration value="CANCELLED" />
<xs:enumeration value="FAILED" />
</xs:restriction>
</xs:simpleType>
2.1.5. PathInfo
A list of domains and links.
<xs:complexType name="PathInfo">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="domains"
nillable="true" type="xs:string" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="links"
nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
 domains
A domain id.
 links
A link id.
2.1.6. PortType
Represents a starting or ending reservation port.
<xs:complexType name=" PortType">
<xs:sequence>
<xs:element minOccurs="0" name="address" type="xs:string" />
<xs:element minOccurs="0" name="mode" type="ns1:mode" />
<xs:element name="vlan" type="xs:int" />
<xs:element minOccurs="0" name="description" type="xs:string" />
<xs:element name="isIdcp" type="xs:boolean " />
<xs:element name="isClient" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
 domains
A domain id.
 links
A link id.
2.1.7. UserAuthParameters
Information about a user.
<xs:complexType name=" PortType">
<xs:sequence>
<xs:element minOccurs="0" name="identifier" type="xs:string" />
<xs:element minOccurs="0" name="organization" type="xs:string" />
<xs:element minOccurs="0" name="projectMembership" type="xs:string" />
<xs:element minOccurs="0" name="projectRole" type="xs:string" />
<xs:element minOccurs="0" name="email" type="xs:string" />
</xs:sequence>
</xs:complexType>
 identifier
A unique user identifier.
 organization
The organization the user belongs to.
 projectMembership
The project the user works for.
 projectRole
The user’s role (ADMINISTRATOR, USER, etc.).
 email
The user’s email.
2.1.8. ReservationRequest
Represents a reservation request.
<xs:complexType name="ReservationRequest">
<xs:sequence>
<xs:element minOccurs="0" name="startPort" type="tns:PortType" />
<xs:element minOccurs="0" name="endPort" type=" tns:PortType" />
<xs:element minOccurs="0" name="startTime" type="xs:dateTime" />
<xs:element minOccurs="0" name="endTime" type="xs:dateTime" />
<xs:element minOccurs="0" name="priority" type="ns1:priority" />
<xs:element minOccurs="0" name="description" type="xs:string" />
<xs:element name="capacity" type="xs:long" />
<xs:element minOccurs="0" name="userInclude" type="tns:PathInfo" />
<xs:element minOccurs="0" name="userExclude" type="tns:PathInfo" />
<xs:element name="mtu" type="xs:int" />
<xs:element name="maxDelay" type="xs:int" />
<xs:element minOccurs="0" name="resiliency" type="ns1:resiliency" />
<xs:element name="bidirectional" type="xs:boolean" />
<xs:element name="processNow" type="xs:boolean" />
<xs:element minOccurs="0" name="authParameters"
type="ns2:UserAuthParameters" />
</xs:sequence>
</xs:complexType>
 startPort
The starting port of the reservation.
 endPort
The ending port of the reservation.
 startTime
The starting time of the reservation.
 endTime
The ending time of the reservation.
 priority
The priority of the reservation.
 description
Textual description of the reservation.
 capacity
The requested capacity for the reservation (in bps).
 userInclude
A list of domains and links that should be included in the reservation path.
 userExclude
A list of domains and links that should be excluded from the reservation path.
 mtu
The minimum MTU that should be available across the reservation path.
 maxDelay
The maximum allowed delay (in ms).
 resiliency
The type of resiliency requested by the reservation.
 processNow
Whether to process the reservation now. If this field is set, the reservation’s start time
will set to the current time.
 authParameters
Information about the user submitting the request.
2.1.9. ServiceRequest
Represents a service request, which is a collection of reservation requests.
<xs:complexType name="ServiceRequest">
<xs:sequence>
<xs:element minOccurs="0" name="userName" type="xs:string" />
<xs:element minOccurs="0" name="userHomeDomain" type="xs:string" />
<xs:element minOccurs="0" name="userEmail" type="xs:string" />
<xs:element minOccurs="0" name="justification" type="xs:string" />
<xs:element maxOccurs="unbounded" name="reservations" nillable="true"
type="tns:ReservationRequest" />
</xs:sequence>
</xs:complexType>
 userName
The name of the user submitting the service.
 userHomeDomain
The home domain of the user submitting the service.
 userEmail
The email of the user submitting the service.
 justification
Textual description of the service.
 reservations
The reservation request(s) to be included in this service.
2.1.10.
ReservationResponse
Represents the information about a reservation received in a response.
<xs:complexType name="ReservationResponse">
<xs:sequence>
<xs:element minOccurs="0" name="bodID" type="xs:string" />
<xs:element minOccurs="0" name="state" type="ns1:state" />
<xs:element minOccurs="0" name="message" type="xs:string" />
<xs:element minOccurs="0" name="startPort" type="xs:string" />
<xs:element minOccurs="0" name="endPort" type="xs:string" />
<xs:element minOccurs="0" name="startTime" type="xs:dateTime" />
<xs:element minOccurs="0" name="endTime" type="xs:dateTime" />
<xs:element minOccurs="0" name="priority" type="ns1:priority" />
<xs:element minOccurs="0" name="description" type="xs:string" />
<xs:element name="capacity" type="xs:long" />
<xs:element minOccurs="0" name="userInclude" type="tns:PathInfo" />
<xs:element minOccurs="0" name="userExclude" type="tns:PathInfo" />
<xs:element name="userVlanId" type="xs:int" />
<xs:element name="mtu" type="xs:int" />
<xs:element name="maxDelay" type="xs:int" />
<xs:element minOccurs="0" name="resiliency" type="ns1:resiliency" />
<xs:element name="bidirectional" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
 bodID
The ID that has been assigned to this reservation.
 state
The current state of the reservation.
 message
A message with optional information.
 startPort
The starting port of the reservation.
 endPort
The ending port of the reservation.
 startTime
The starting time of the reservation.
 endTime
The ending time of the reservation.
 priority
The priority of the reservation.
 description
Textual description of the reservation.
 capacity
The requested capacity for the reservation (in bps).
 userInclude
A list of domains and links that should be included in the reservation path.
 userExclude
A list of domains and links that should be excluded from the reservation path.
 userVlanId
A VLAN id that should be used by the reservation when traversing Ethernet domains.
 mtu
The minimum MTU available.
 maxDelay
The maximum allowed delay (in ms).
 resiliency
The type of resiliency requested by the reservation.
2.1.11.
ServiceResponse
Represents the information about a service (a collection of reservations) received in a
response.
<xs:complexType name="ServiceResponse">
<xs:sequence>
<xs:element minOccurs="0" name="userName" type="xs:string" />
<xs:element minOccurs="0" name="userHomeDomain" type="xs:string" />
<xs:element minOccurs="0" name="userEmail" type="xs:string" />
<xs:element maxOccurs="unbounded" name="reservations" nillable="true"
type="tns:ReservationResponse" />
</xs:sequence>
</xs:complexType>
 userName
The name of the user that submitted the service.
 userHomeDomain
The home domain of the user that submitted the service.
 userEmail
The email of the user that submitted the service.
 justification
Textual description of the service.
 reservations
The reservation request(s) that are included in this service.
2.1.12.
ModifyRequest
Represents a request to modify an already existing reservation. The modification possibilities
are to change the start and end time of the reservation.
<xs:complexType name="ModifyRequest">
<xs:sequence>
<xs:element minOccurs="0" name="resId" type="xs:string" />
<xs:element minOccurs="0" name="startTime" type="xs:dateTime" />
<xs:element minOccurs="0" name="endTime" type="xs:dateTime" />
</xs:sequence>
</xs:complexType>
 resId
The ID of the reservation to be modified.
 startTime
The new starting time of the reservation.
 endTime
The new ending time of the reservation.
2.2. Operations
2.2.1. cancelService
The cancelService method is called by the UI to cancel a previously submitted service.
2.2.1.1. Request
<xs:element name="cancelService" type="tns:cancelService" />
<xs:complexType name="cancelService">
<xs:sequence>
<xs:element minOccurs="0" name="serviceID" type="xs:string" />
</xs:sequence>
</xs:complexType>
 serviceID
The ID of the service to be canceled.
2.2.1.2. Response
<xs:element name="cancelServiceResponse" type="tns:cancelServiceResponse"
/>
<xs:complexType name="cancelServiceResponse">
<xs:sequence />
</xs:complexType>
<xs:element name="UserAccessPointException"
type="tns:UserAccessPointException" />
The following exceptions may be thrown:
 UserAccessPointException
When the serviceID specified at the request does not exist.
2.2.1.3. Example
Below is an example request for canceling service with ID
150.140.8.13:8080@1270051708928:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:cancelService
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<serviceID>150.140.8.13:8080@1270051708928</serviceID>
</ns2:cancelService>
</soap:Body>
</soap:Envelope>
And the typical response:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:cancelServiceResponse
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/" />
</soap:Body>
</soap:Envelope>
2.2.2. checkReservationPossibility
The checkReservationPossibility method is called by the UI to check whether a reservation is
possible. No actual reservation takes place.
2.2.2.1. Request
<xs:element name="checkReservationPossibility"
type="tns:checkReservationPossibility" />
<xs:complexType name="checkReservationPossibility">
<xs:sequence>
<xs:element minOccurs="0" name="request" type="ns1:ReservationRequest" />
</xs:sequence>
</xs:complexType>
 request
The reservation to be checked.
2.2.2.2. Response
<xs:element name="checkReservationPossibilityResponse"
type="tns:checkReservationPossibilityResponse" />
<xs:complexType name="checkReservationPossibilityResponse">
<xs:sequence>
<xs:element name="Possibility" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
<xs:element name="UserAccessPointException"
type="tns:UserAccessPointException" />
 Possibility
Whether the reservation is possible.
The following exceptions may be thrown:
 UserAccessPointException
When the reservation contains some erroneous information (e.g. start time is after the
end time).
2.2.2.3. Example
Below is an example request for checking the possibility of a reservation. The request
specifies the following parameters:
 Start port: GRNET.port.1
 End port: PSNC.port.5
 Start time: 01 April 2010, 04:42:21.555 (UTC time plus 3 hours)
 End time: 27 July 2010, 17:12:00 (UTC time plus 2 hours)
 Priority: Normal
 Textual description: res1
 Capacity: 1,000,000,000 bps (1 Gbps)
 No domains or links to include or exclude
 User-specified VLAN id: 0 (indicating no user selection)
 Maximum allowed delay: 2 ms
 No resiliency
 Unidirectional reservation
 “Process now” option not selected
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:checkReservationPossibility
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<request>
<startPort>GRNET.port.1</startPort>
<endPort>PSNC.port.5</endPort>
<startTime>2010-04-01T04:42:21.555+03:00</startTime>
<endTime>2010-07-27T17:12:00+02:00</endTime>
<priority>NORMAL</priority>
<description>res1</description>
<capacity>1000000000</capacity>
<userInclude />
<userExclude />
<userVlanId>0</userVlanId>
<maxDelay>2</maxDelay>
<resiliency>NONE</resiliency>
<bidirectional>false</bidirectional>
<processNow>false</processNow>
</request>
</ns2:checkReservationPossibility>
</soap:Body>
</soap:Envelope>
And an example response indicating that the above reservation is possible:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:checkReservationPossibilityResponse
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<Possibility>true</Possibility>
</ns2:checkReservationPossibilityResponse>
</soap:Body>
</soap:Envelope>
2.2.3. getAllDomains
The getAllDomains method is called by the UI to retrieve all domains in the global topology.
2.2.3.1. Request
<xs:element name="getAllDomains" type="tns:getAllDomains" />
<xs:complexType name="getAllDomains">
<xs:sequence />
</xs:complexType>
2.2.3.2. Response
<xs:element name="getAllDomainsResponse" type="tns:getAllDomainsResponse"
/>
<xs:complexType name="getAllDomainsResponse">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="Domains"
type="xs:string" />
</xs:sequence>
</xs:complexType>
 Domains
The domain name.
2.2.3.3. Example
Below is an example request:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getAllDomains xmlns:ns2="http://useraccesspoint.autobahn.geant.net/"
/>
</soap:Body>
</soap:Envelope>
And an example response for a topology that contains 4 domains (GEANT, GRNET,
HEANET, PSNC):
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getAllDomainsResponse
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<Domains>GEANT</Domains>
<Domains>GRNET</Domains>
<Domains>HEANET</Domains>
<Domains>PSNC</Domains>
</ns2:getAllDomainsResponse>
</soap:Body>
</soap:Envelope>
2.2.4. getAllLinks
The getAllLinks method is called by the UI to retrieve all links in the global topology.
2.2.4.1. Request
<xs:element name="getAllLinks" type="tns:getAllLinks" />
<xs:complexType name="getAllLinks">
<xs:sequence />
</xs:complexType>
2.2.4.2. Response
<xs:element name="getAllLinksResponse" type="tns:getAllLinksResponse" />
<xs:complexType name="getAllLinksResponse">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="Links"
type="xs:string" />
</xs:sequence>
</xs:complexType>
 Links
The link id.
2.2.4.3. Example
Below is an example request:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getAllLinks xmlns:ns2="http://useraccesspoint.autobahn.geant.net/"
/>
</soap:Body>
</soap:Envelope>
And an example response for a topology that contains 6 abstract links:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getAllLinksResponse
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<Links>GRNET.Link.1</Links>
<Links>GRNET.Link.3</Links>
<Links>GRNET.Link.4</Links>
<Links>GRNET.Link.7</Links>
<Links>GEANT.Link.2</Links>
<Links>GEANT.Link.3</Links>
</ns2:getAllLinksResponse>
</soap:Body>
</soap:Envelope>
2.2.5. getAllClientPorts
The getAllClientPorts method is called by the UI to retrieve all client ports in the global
topology.
2.2.5.1. Request
<xs:element name="getAllClientPorts" type="tns:getAllClientPorts" />
<xs:complexType name="getAllClientPorts">
<xs:sequence />
</xs:complexType>
2.2.5.2. Response
<xs:element name="getAllClientPortsResponse"
type="tns:getAllClientPortsResponse" />
<xs:complexType name="getAllClientPortsResponse">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="Ports"
type="xs:string" />
</xs:sequence>
</xs:complexType>
 Ports
The port ID.
2.2.5.3. Example
Below is an example request:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getAllClientPorts
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/" />
</soap:Body>
</soap:Envelope>
And an example response for a topology with 2 client ports:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getAllClientPortsResponse
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<Ports>GRNET.Port.7</Ports>
<Ports>PSNC.Port.8</Ports>
</ns2:getAllClientPortsResponse>
</soap:Body>
</soap:Envelope>
2.2.6. getDomainClientPorts
The getDomainClientPorts method is called by the UI to retrieve client ports the are
connected to the IDM that responds to the method.
2.2.6.1. Request
<xs:element name="getDomainClientPorts" type="tns:getDomainClientPorts" />
<xs:complexType name="getDomainClientPorts">
<xs:sequence />
</xs:complexType>
2.2.6.2. Response
<xs:element name="getDomainClientPortsResponse"
type="tns:getDomainClientPortsResponse" />
<xs:complexType name="getDomainClientPortsResponse">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="Ports"
type="xs:string" />
</xs:sequence>
</xs:complexType>
 Ports
The port ID.
2.2.6.3. Example
Below is an example request:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getDomainClientPorts
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/" />
</soap:Body>
</soap:Envelope>
And an example response by an IDM that controls a domain with 1 client port:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getDomainClientPortsResponse
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<Ports>GRNET.Port.7</Ports>
</ns2:getDomainClientPortsResponse>
</soap:Body>
</soap:Envelope>
2.2.7. modifyReservation
The modifyReservation method is called by the UI to modify a previously submitted service.
2.2.7.1. Request
<xs:element name="modifyReservation" type="tns:modifyReservation" />
<xs:complexType name="modifyReservation">
<xs:sequence>
<xs:element minOccurs="0" name="request" type="ns1:ModifyRequest" />
</xs:sequence>
</xs:complexType>
 request
The modification request containing the modified reservation details.
2.2.7.2. Response
<xs:element name="modifyReservationResponse"
type="tns:modifyReservationResponse" />
<xs:complexType name="modifyReservationResponse">
<xs:sequence />
</xs:complexType>
2.2.7.3. Example
Below is an example request for modifying the reservation with ID
150.140.8.13:8080@1270051708928. The modification request specifies the following
changes:


Start time: Change to 26 July 2011, 17:12:00 (UTC time plus 2 hours)
End time: Change to 27 July 2011, 17:12:00 (UTC time plus 2 hours)
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:modifyReservation
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<request>
<resId>150.140.8.13:8080@1270051708928</resId>
<startTime>2011-07-26T17:12:00+02:00</startTime>
<endTime>2011-07-27T17:12:00+02:00</endTime>
</request>
</ns2:modifyReservation>
</soap:Body>
</soap:Envelope>
And the typical response:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:modifyReservationResponse
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/" />
</soap:Body>
</soap:Envelope>
2.2.8. queryService
The queryService method is called by the UI to retrieve information about a service and its
reservations.
2.2.8.1. Request
<xs:element name="queryService" type="tns:queryService" />
<xs:complexType name="queryService">
<xs:sequence>
<xs:element minOccurs="0" name="serviceID" type="xs:string" />
</xs:sequence>
</xs:complexType>
 serviceID
The ID of the service for which information will be retrieved.
2.2.8.2. Response
<xs:element name="queryServiceResponse" type="tns:queryServiceResponse" />
<xs:complexType name="queryServiceResponse">
<xs:sequence>
<xs:element minOccurs="0" name="ServiceResponse"
type="ns1:ServiceResponse" />
</xs:sequence>
</xs:complexType>
<xs:element name="UserAccessPointException"
type="tns:UserAccessPointException" />
 ServiceResponse
The response with the information about the requested service.
The following exceptions may be thrown:
 UserAccessPointException
When the serviceID specified at the request does not exist.
2.2.8.3. Example
Below is an example request for querying about the service with ID
150.140.8.13:8080@1270051708928:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:queryService xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<serviceID>150.140.8.13:8080@1270051708928</serviceID>
</ns2:queryService>
</soap:Body>
</soap:Envelope>
And below is an example response, which provides the following information about the
service:
 User that submitted it:user1
 User’s home domain: GRNET
The service contains a single reservation with the following characteristics:
 State of the reservation: Scheduled
 Textual message (currently the same in all responses): message
 Start port: GRNET.Port.1
 End port: PSNC.Port.5
 Start time: 01 April 2010, 05:09:14.367 (UTC time plus 3 hours)
 End time: 27 July 2010, 18:12:00 (UTC time plus 3 hours)
 Priority: Normal
 Textual description: res1
 Capacity: 1,000,000,000 bps (1 Gbps)
 No domains or links to include or exclude
 User-specified VLAN id: 0 (indicating no user selection)
 Maximum allowed delay: 2 ms
 No resiliency
 Unidirectional reservation
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:queryServiceResponse
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<ServiceResponse>
<userName>user1</userName>
<userHomeDomain>GRNET</userHomeDomain>
<reservations>
<state>SCHEDULED</state>
<message>message</message>
<startPort>GRNET.Port.1</startPort>
<endPort>PSNC.Port.5</endPort>
<startTime>2010-04-01T05:09:14.367+03:00</startTime>
<endTime>2010-07-27T18:12:00+03:00</endTime>
<description>res1</description>
<capacity>1000000000</capacity>
<maxDelay>2</maxDelay>
<bidirectional>false</bidirectional>
</reservations>
</ServiceResponse>
</ns2:queryServiceResponse>
</soap:Body>
</soap:Envelope>
2.2.9. registerCallback
The registerCallback method is called by the UI to be registered at the IDM for receiving
callback calls related to a service. The IDM can use the list of registered callback clients in
order to notify them with updates about the service status.
2.2.9.1. Request
<xs:element name="registerCallback" type="tns:registerCallback" />
<xs:complexType name="registerCallback">
<xs:sequence>
<xs:element minOccurs="0" name="serviceID" type="xs:string" />
<xs:element minOccurs="0" name="url" type="xs:string" />
</xs:sequence>
</xs:complexType>
 serviceID
The ID of the service for which callback calls will be made.
 url
The location where callback calls should be made (normally the UI server that can
handle the callback calls from the IDM).
2.2.9.2. Response
<xs:element name="registerCallbackResponse"
type="tns:registerCallbackResponse" />
<xs:complexType name="registerCallbackResponse">
<xs:sequence />
</xs:complexType>
2.2.9.3. Example
Below is an example request for registering callback to the service with ID
150.140.8.13:8080@1270051708928. Callback calls will be addressed to the url
http://testurl.com/uapcallback.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:registerCallback
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<serviceID>150.140.8.13:8080@1270051708928</serviceID>
<url>http://testurl.com/uapcallback</url>
</ns2:registerCallback>
</soap:Body>
</soap:Envelope>
And the typical response:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:registerCallbackResponse
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/" />
</soap:Body>
</soap:Envelope>
2.2.10.
submitService
The submitService method is called by the UI to submit a service.
2.2.10.1.
Request
<xs:element name="submitService" type="tns:submitService" />
<xs:complexType name="submitService">
<xs:sequence>
<xs:element minOccurs="0" name="request" type="ns1:ServiceRequest" />
</xs:sequence>
</xs:complexType>
 request
The service request containing the service details.
2.2.10.2.
Response
<xs:element name="submitServiceResponse" type="tns:submitServiceResponse"
/>
<xs:complexType name="submitServiceResponse">
<xs:sequence>
<xs:element minOccurs="0" name="serviceID" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="UserAccessPointException"
type="tns:UserAccessPointException" />
 serviceID
The ID of the submitted service, assigned by the IDM.
The following exceptions may be thrown:
 UserAccessPointException
When the reservations in the service contain some erroneous information (e.g. start
time is after the end time).
2.2.10.3.
Example
Below is an example service submission. The service is submitted by user1 and contains a
single reservation with the following characteristics:
 Start port: GRNET.port.1
 End port: PSNC.port.5
 Start time: 01 April 2010, 05:09:14.367 (UTC time plus 3 hours)
 End time: 27 July 2010, 17:12:00 (UTC time plus 2 hours)
 Priority: Normal
 Textual description: res1
 Capacity: 1,000,000,000 bps (1 Gbps)
 No domains or links to include or exclude
 User-specified VLAN id: 0 (indicating no user selection)
 Maximum allowed delay: 2 ms
 No resiliency
 Unidirectional reservation
 “Process now” option not selected
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:submitService
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<request>
<userName>user1</userName>
<reservations>
<startPort>GRNET.port.1</startPort>
<endPort>PSNC.port.5</endPort>
<startTime>2010-04-01T05:09:14.367+03:00</startTime>
<endTime>2010-07-27T17:12:00+02:00</endTime>
<priority>NORMAL</priority>
<description>res1</description>
<capacity>1000000000</capacity>
<userInclude />
<userExclude />
<userVlanId>0</userVlanId>
<maxDelay>2</maxDelay>
<resiliency>NONE</resiliency>
<bidirectional>false</bidirectional>
<processNow>false</processNow>
</reservations>
</request>
</ns2:submitService>
</soap:Body>
</soap:Envelope>
And here is an example response to the above request, which contains the ID that has been
assigned to the submitted service:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:submitServiceResponse
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<serviceID>150.140.8.13:8080@1270051708928</serviceID>
</ns2:submitServiceResponse>
</soap:Body>
</soap:Envelope>
2.2.11.
submitServiceAndRegister
The submitServiceAndRegister method is called by the UI to submit a service and
simultaneously register itself at the IDM for receiving callback calls related to a service. The
IDM can use the list of registered callback clients in order to notify them with updates about
the service status.
2.2.11.1.
Request
<xs:element name="submitServiceAndRegister"
type="tns:submitServiceAndRegister" />
<xs:complexType name="submitServiceAndRegister">
<xs:sequence>
<xs:element minOccurs="0" name="request" type="ns1:ServiceRequest" />
<xs:element minOccurs="0" name="url" type="xs:string" />
</xs:sequence>
</xs:complexType>
 request
The service request containing the service details.
 url
The location where callback calls should be made (normally the UI server that can
handle the callback calls from the IDM).
2.2.11.2.
Response
<xs:element name="submitServiceAndRegisterResponse"
type="tns:submitServiceAndRegisterResponse" />
<xs:complexType name="submitServiceAndRegisterResponse">
<xs:sequence>
<xs:element minOccurs="0" name="serviceID" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="UserAccessPointException"
type="tns:UserAccessPointException" />
 serviceID
The ID of the submitted service, assigned by the IDM.
The following exceptions may be thrown:
 UserAccessPointException
When the reservations in the service contain some erroneous information (e.g. start
time is after the end time).
2.2.11.3.
Example
Below is an example service submission. The service is submitted by user1 and contains a
single reservation with the following characteristics:
 Start port: GRNET.Port.1
 End port: PSNC.Port.5
 Start time: 05 April 2010, 05:30:33.015 (UTC time plus 3 hours)
 End time: 27 July 2010, 17:12:00 (UTC time plus 2 hours)
 Priority: Normal
 Textual description: res1
 Capacity: 1,000,000,000 bps (1 Gbps)
 No domains or links to include or exclude
 User-specified VLAN id: 0 (indicating no user selection)
 Maximum allowed delay: 2 ms
 No resiliency
 Unidirectional reservation
 “Process now” option not selected
The request also registers a callback for the submitted service. Callback calls will be
addressed to the url http://testurl.com/uapcallback.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:submitServiceAndRegister
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<request>
<userName>user1</userName>
<reservations>
<startPort>GRNET.Port.1</startPort>
<endPort>PSNC.Port.5</endPort>
<startTime>2010-04-05T05:30:33.015+03:00</startTime>
<endTime>2010-07-27T17:12:00+02:00</endTime>
<priority>NORMAL</priority>
<description>res1</description>
<capacity>1000000000</capacity>
<userInclude />
<userExclude />
<userVlanId>0</userVlanId>
<maxDelay>2</maxDelay>
<resiliency>NONE</resiliency>
<bidirectional>false</bidirectional>
<processNow>false</processNow>
</reservations>
</request>
<url>http://testurl.com/uapcallback</url>
</ns2:submitServiceAndRegister>
</soap:Body>
</soap:Envelope>
And here is an example response to the above request, which contains the ID that has been
assigned to the submitted service:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:submitServiceAndRegisterResponse
xmlns:ns2="http://useraccesspoint.autobahn.geant.net/">
<serviceID>150.140.8.13:8080@1270398598697</serviceID>
</ns2:submitServiceAndRegisterResponse>
</soap:Body>
</soap:Envelope>
Download