CloudWpsFactory

!include includes/skins.iuml
skinparam backgroundColor #FFFFFF
skinparam componentStyle uml2
!include target/rst/in/group___cloud_wps_factory.iuml

This component enables Cloud Appliance that exposes a WPS service to be exposed as a processing service automatically.

Using the OneClient to the cloud, it retrieve the VMs that expose WPS interface and load the services. The following diagrams describes how the WPS services are discovered and offered to the users dynamically. Only operations that differs from the ones described in WPS Provider module are illustrated.

!define DIAG_NAME WPS Service Cloud Discovery Sequence Diagram

participant "WebClient" as WC
participant "WebServer" as WS
participant "Provider" as P << Virtual Machine >>
participant "Cloud Provider" as C << OpenNebula >>

autonumber

== Get Capabilities ==

WC -> WS: GetCapabilities request
activate WS
WS -> C: List all VMs that are tagged as WPS provider
WS -> WS: create temporary WPS providers
loop on each provider
    WS -> P: GetCapabilities
    WS -> WS: extract services from GetCapabilities using remote identifier
    loop on each service
        WS -> WS: get service info (identifier, title, abstract)
    end
end
WS -> WS: aggregate all services info into response offering
WS -> WC: return aggregated GetCapabilities
deactivate WS

== Describe Process ==

WC -> WS: DescribeProcess request
activate WS
WS -> C: get service provider
WS -> P: GetCapabilities
WS -> WS: extract describeProcess url from GetCapabilities using remote identifier
WS -> WS: build describeProcess request
WS -> P: DescribeProcess
WS -> WC: return result from describeProcess
deactivate WS

== Execute ==

WC -> WS: Execute request
activate WS
WS -> C: get service provider
WS -> P: GetCapabilities
WS -> WS: extract execute url from GetCapabilities using remote identifier
WS -> WS: build execute request
WS -> P: Execute
alt case error
    WS -> WC: return error
else case success
    WS -> DB: store job
    WS -> WS: update job RetrieveResultServlet url
    WS -> WC: return created job
end
deactivate WS

== Search WPS process ==

WC -> WS: WPS search request
activate WS
WS -> C: Load all Providers
loop on each provider
    WS -> P: GetCapabilities
    WS -> WS: get services info
    loop on each service
        WS -> WS: create local identifier and cache remote identifier
        WS -> WS: use local server url as baseurl
        WS -> WS: add service info to the response
    end
end
deactivate WS


footer
DIAG_NAME
(c) Terradue Srl
endfooter

Dependencies

  • calls Cloud Provider to retrieve the computing appliances
  • calls OneClient to contact OpenNebula interface
  • creates WPS Provider for each computing appliance that expose WPS
  • creates WPS Service for each process found in GetCapabilities of the WPS Service